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 / proposal.md
proposal.md 1.6K rendered
1## Why23We need a playable foundation for a browser puzzle game where moving word tiles rewrites the rules of a Sokoban grid. A shared vocabulary and explicit turn order will keep puzzles, mods, and the interface consistent as the game grows.45## What Changes67- Add a deterministic grid engine with push chains, overlapping objects, active sentence detection, object properties, and undo.8- Establish a deliberately small first vocabulary: nouns, `IS`, `AND`, `YOU`, `PUSH`, `STOP`, `WIN`, `SINK`, and `DEFEAT`, plus noun-to-noun transformation.9- Add a small sequence of playable teaching levels and browser controls.10- Render the grid with emoji objects and animated word tiles, with active rules visible beside the board.11- Load local CommonJS mods that define new nouns, emoji, and levels through a validated manifest.12- Document the vocabulary, turn pipeline, and extension boundaries for future releases.1314## Capabilities1516### New Capabilities1718- `rule-engine`: Parsing movable words and resolving deterministic turns, properties, collisions, transformations, and undo.19- `playable-puzzles`: Built-in teaching levels, progression, reset, and keyboard or touch input.20- `commonjs-mods`: Loading and validating local CommonJS level and palette modules.21- `game-presentation`: Emoji grid rendering, active rule display, feedback, and readable layout.2223### Modified Capabilities2425None. This is a new project.2627## Impact2829Adds the browser app, engine API, level and mod formats, tests, OpenSpec artifacts, and a dependency on Pretext for variable-length interface text. Uses a small selection of CC0 Kenney sounds from the supplied asset collection.