Why
The engine can already activate a level-scoped automaton from a custom rule
such as MOUSE IS TICK, but the board and ledger still recognize only the
hard-coded property vocabulary. A mod-defined word therefore looks like a
noun, and the player has no in-board explanation for what the new word does.
Clockwork's TICK glossary and the accepted D24 presentation need a stable
data path from CommonJS pack loading through the board and stage.
What Changes
- Validate and normalize an optional pack-level
propertiesglossary with property colour accents and short descriptions. - Derive the property-word set from the current level's implemented custom properties, and pass glossary metadata through catalog, pack-service, and share views without changing simulation semantics.
- Render declared custom properties as chamfered property tiles and glossary colours in the board and rule ledger.
- Show a first-encounter custom-word card with its tile, description, and a level-derived example sentence, persisted once per pack and word.
- Make the description available through inspect mode and ledger hover or its equivalent accessible details affordance.
- Add browser acceptance for local/imported custom-property packs on desktop, mobile, and reduced-motion presentation paths.
Capabilities
New Capabilities
custom-property-presentation: glossary validation, metadata plumbing, property tile and ledger presentation, first-encounter teaching, and accessible inspection copy.
Modified Capabilities
commonjs-mods: validate the optional property glossary and preserve it in normalized and shared pack data.game-presentation: consume level-local custom property metadata in the board, ledger, and first-encounter card.
Dependencies
add-rule-driven-automatasupplies the current level-local source of implemented custom properties throughlevel.automata[].property.- The D21 automata beat strip remains a separate presentation change. This change may provide its property metadata seam but does not alter beat-strip geometry, cue glyphs, or timing.
Deliberately Deferred
level.pairs,OPEN/SHUT, and their destroy-both or enter collision effect remain W13. This change does not make glossary entries executable rules or add pair semantics.- Arbitrary custom rule callbacks, new engine phases, solver state, and changes to rule precedence are out of scope.
- Exact card typography, motion timing, and final visual composition remain designer-owned within the accepted Motion language; the implementation must expose a stable card request and data model for those decisions.