MODIFIED Requirements
Requirement: Supported character glyphs SHALL use scoped facing state
The presentation SHALL maintain horizontal facing per entity ID as visual state separate from simulation coordinates. The built-in MIAU 🐈 SHALL have native left-facing direction, including when a pack repeats that same glyph as a plain palette string. A mod palette object MAY declare faces: 'left' | 'right' for another profile glyph; a different plain string and a front-facing glyph such as FENN 🦊 SHALL remain non-directional by default. Every accepted horizontal displacement SHALL update a directional entity's facing to its travel direction, including being pushed. When a pushed entity also moves itself horizontally in the same turn, its self-movement direction SHALL take precedence. Vertical movement, transformation, idle frames, and blocked intents SHALL preserve prior horizontal facing. Undo SHALL restore per-ID facing history, while loading or resetting a level SHALL use its native declared or neutral facing. A facing change MAY use a glyph-only squash; reduced motion SHALL apply the direction immediately.
Scenario: Built-in cat faces forward in every pack
- WHEN a MIAU entity with the built-in 🐈 glyph moves right in a core proof or a pack with
palette.MIAU: '🐈' - THEN the settled board mirrors the native-left glyph to face right, without mirroring its cell, shadow, or text
Scenario: Leftward travel uses the native pose
- WHEN that MIAU entity subsequently moves left
- THEN the settled board draws the native-left glyph without a mirror
Scenario: Pushes turn a directional actor
- WHEN a directional entity is successfully pushed one cell to the right
- THEN its settled horizontal facing is right, while a blocked push leaves its prior facing unchanged
Scenario: Self-movement wins after a push
- WHEN one accepted turn pushes an actor right and then moves that actor left under an automaton rule
- THEN the actor's settled horizontal facing is left
Scenario: Vertical movement preserves the horizontal pose
- WHEN a MIAU entity moves up or down after facing right
- THEN its horizontal glyph orientation remains right because the side-profile emoji has no vertical view
Scenario: A transformation preserves per-ID facing
- WHEN an entity transforms to another noun during a settled turn
- THEN the entity ID retains its prior horizontal facing, unless the resulting noun has no directional glyph and uses its normal fallback
Scenario: A custom mod glyph opts in explicitly
- WHEN a mod supplies a different profile glyph with
faces: 'right' - THEN leftward travel mirrors that glyph, while a different plain-string glyph is not mirrored
Scenario: Undo and reset restore the correct pose
- WHEN the player undoes a directional turn or resets/loads a level
- THEN Undo restores the prior per-ID facing, and reset/load returns MIAU to the declared native-left pose
Scenario: Reduced motion skips facing animation
- WHEN reduced motion is enabled and a horizontal move changes facing
- THEN the settled glyph faces its direction immediately without a transitional squash