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 source

Why

We 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.

What Changes

  • Add a deterministic grid engine with push chains, overlapping objects, active sentence detection, object properties, and undo.
  • Establish a deliberately small first vocabulary: nouns, IS, AND, YOU, PUSH, STOP, WIN, SINK, and DEFEAT, plus noun-to-noun transformation.
  • Add a small sequence of playable teaching levels and browser controls.
  • Render the grid with emoji objects and animated word tiles, with active rules visible beside the board.
  • Load local CommonJS mods that define new nouns, emoji, and levels through a validated manifest.
  • Document the vocabulary, turn pipeline, and extension boundaries for future releases.

Capabilities

New Capabilities

  • rule-engine: Parsing movable words and resolving deterministic turns, properties, collisions, transformations, and undo.
  • playable-puzzles: Built-in teaching levels, progression, reset, and keyboard or touch input.
  • commonjs-mods: Loading and validating local CommonJS level and palette modules.
  • game-presentation: Emoji grid rendering, active rule display, feedback, and readable layout.

Modified Capabilities

None. This is a new project.

Impact

Adds 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.