1## Why23The engine can already activate a level-scoped automaton from a custom rule4such as `MOUSE IS TICK`, but the board and ledger still recognize only the5hard-coded property vocabulary. A mod-defined word therefore looks like a6noun, and the player has no in-board explanation for what the new word does.7Clockwork's `TICK` glossary and the accepted D24 presentation need a stable8data path from CommonJS pack loading through the board and stage.910## What Changes1112- Validate and normalize an optional pack-level `properties` glossary with13 property colour accents and short descriptions.14- Derive the property-word set from the current level's implemented custom15 properties, and pass glossary metadata through catalog, pack-service, and16 share views without changing simulation semantics.17- Render declared custom properties as chamfered property tiles and glossary18 colours in the board and rule ledger.19- Show a first-encounter custom-word card with its tile, description, and a20 level-derived example sentence, persisted once per pack and word.21- Make the description available through inspect mode and ledger hover or its22 equivalent accessible details affordance.23- Add browser acceptance for local/imported custom-property packs on desktop,24 mobile, and reduced-motion presentation paths.2526## Capabilities2728### New Capabilities2930- `custom-property-presentation`: glossary validation, metadata plumbing,31 property tile and ledger presentation, first-encounter teaching, and32 accessible inspection copy.3334### Modified Capabilities3536- `commonjs-mods`: validate the optional property glossary and preserve it in37 normalized and shared pack data.38- `game-presentation`: consume level-local custom property metadata in the39 board, ledger, and first-encounter card.4041## Dependencies4243- `add-rule-driven-automata` supplies the current level-local source of44 implemented custom properties through `level.automata[].property`.45- The D21 automata beat strip remains a separate presentation change. This46 change may provide its property metadata seam but does not alter beat-strip47 geometry, cue glyphs, or timing.4849## Deliberately Deferred5051- `level.pairs`, `OPEN`/`SHUT`, and their destroy-both or enter collision effect52 remain W13. This change does not make glossary entries executable rules or53 add pair semantics.54- Arbitrary custom rule callbacks, new engine phases, solver state, and55 changes to rule precedence are out of scope.56- Exact card typography, motion timing, and final visual composition remain57 designer-owned within the accepted Motion language; the implementation58 must expose a stable card request and data model for those decisions.