clone

a browser grid puzzle game where you push words around to rewrite the rules of each level

main
miau-is-true / openspec / changes / archive / 2026-09-23-build-dynamic-rule-engine / specs / game-presentation / spec.md
spec.md 2.6K rendered
1## ADDED Requirements23### Requirement: The app SHALL render the simulation as a readable emoji grid4The renderer SHALL display each grid cell at a stable coordinate with stacked entities in a consistent visual order. Object nouns SHALL use emoji mappings, word entities SHALL remain legible as text tiles, and the board SHALL expose enough contrast and spacing to distinguish adjacent cells and stacked words.56#### Scenario: Stacked entities remain visible7- **WHEN** multiple objects or words occupy one cell8- **THEN** the renderer preserves their identity and indicates the stack without changing simulation occupancy910#### Scenario: A modded noun has no emoji fallback11- **WHEN** a noun has no declared emoji mapping12- **THEN** the renderer uses a readable text fallback containing the noun instead of hiding the entity1314### Requirement: The app SHALL show active rules and turn feedback15The presentation SHALL display the currently active rules beside or below the board and SHALL update them after each settled turn. It SHALL provide visible feedback for blocked movement, undo, reset, transformations, defeat, and victory without changing engine state.1617#### Scenario: Active rules update after a word push18- **WHEN** a word tile is pushed into or out of a sentence19- **THEN** the displayed rule list reflects the engine's new active rule table after the turn2021#### Scenario: Victory is readable22- **WHEN** the engine enters the won state23- **THEN** the app shows a victory message and a clear continue or reset action2425### Requirement: Text effects SHALL support variable-length labels without driving grid geometry26The app MAY use Pretext or an equivalent text-effect layer for animated labels, rule emphasis, hints, and feedback. Text effects SHALL be laid out within the UI surface and SHALL not determine the integer coordinates or collision geometry of the simulation grid.2728#### Scenario: A long hint does not move cells29- **WHEN** a level hint is longer than the available sidebar width30- **THEN** the hint wraps or scrolls while every grid cell retains its original coordinate and size3132### Requirement: The presentation SHALL provide accessible control feedback33The app SHALL expose text labels or accessible names for movement, undo, reset, and continue controls and SHALL communicate rule and level status in a readable text representation in addition to animation and emoji.3435#### Scenario: Controls are understandable without animation36- **WHEN** reduced motion is enabled or animation is unavailable37- **THEN** the board, active rules, current level, and control actions remain understandable from static text and emoji