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-24-fix-miau-forward-facing / design.md
design.md 2.3K source

Context

The board currently infers native-left facing only when no palette entry exists. Basic Proofs, Word Lab, and the FENN example all repeat MIAU: '🐈', so those proofs lose mirroring. The faces palette field already states a custom glyph's native horizontal direction. The 🐈 image has no authored up/down view.

Goals / Non-Goals

Goals: Make the native direction explicit for the built-in cat and have successful horizontal movement face that direction on every board surface. Keep mod glyphs predictable and Undo/reset exact.

Non-Goals: Rotate the side-profile emoji for vertical motion or infer an arbitrary emoji's native direction from its Unicode name.

Decisions

  • Resolve native direction from the final glyph: 🐈 used for MIAU or CAT is left-facing even when supplied as a plain string. An explicit palette faces value takes precedence. A different plain glyph stays non-directional. This fixes bundled content without changing the CommonJS schema.
  • A successful horizontal movement event sets facing to its horizontal direction. A pushed directional actor also faces its actual displacement. If the same actor moves itself later in a turn, its horizontal self direction wins. Vertical movement preserves the last horizontal orientation because the available emoji has no up/down drawing. Blocked intents do not move and do not turn.
  • Retain per-ID visual history for Undo and clear it on level load/reset. Rendering compares that direction with the glyph's declared native direction and mirrors only the emoji bitmap.

Risks / Trade-offs

  • A platform draws 🐈 with a different native direction → the glyph declaration can be changed in one place; the movement logic remains the same.
  • A mod replaces MIAU with a different plain glyph → it will not flip without an explicit faces declaration, avoiding accidental mirroring of front-facing emoji.
  • Vertical travel lacks a matching emoji view → preserve the last horizontal pose and send a separate design question if a four-direction visual becomes necessary.

Migration Plan

Ship as a presentation correction. Existing packs using MIAU: '🐈' gain forward-facing movement automatically; saved packs and progress require no migration.

Open Questions

  • Whether the designer wants a separate up/down direction cue for MIAU in a later visual change.