1## ADDED Requirements23### Requirement: The app SHALL provide three built-in MIAU teaching puzzles4The app SHALL ship exactly three deterministic ordered built-in levels using `MIAU` as the initial controlled noun. The puzzles SHALL cover movement and pushing, `YOU`, `PUSH` and `STOP`, word manipulation, `WIN`, and `AND` subject expansion; each level SHALL include dimensions, entities, and title or hint metadata.56#### Scenario: The first MIAU level is playable without a mod7- **WHEN** the app is started with no mod selected8- **THEN** it loads the first MIAU level and displays its board, word tiles, and current rules910#### Scenario: Completing a teaching puzzle advances the campaign11- **WHEN** the active level reaches its win state and the player chooses continue12- **THEN** the app loads the next built-in level while preserving the campaign order1314### Requirement: The app SHALL expose reset, undo, and cardinal controls15The app SHALL provide reset and undo actions and SHALL accept up, down, left, and right intents from keyboard input and touch controls. Controls SHALL call the same engine intent API and SHALL show the current move count and whether undo is available.1617#### Scenario: Keyboard and touch produce the same move18- **WHEN** the player uses a keyboard arrow or the corresponding touch direction control19- **THEN** the engine receives the same cardinal intent and the resulting state is identical2021#### Scenario: Reset is available after a deadlock22- **WHEN** the player has made moves that cannot reach the goal23- **THEN** reset restores the initial level and move count without reloading the page2425#### Scenario: Undo is disabled at the initial state26- **WHEN** the current level has no successful moves27- **THEN** the undo control is visibly unavailable and invoking it has no effect2829### Requirement: Level definitions SHALL be validated before play30The app SHALL reject a built-in level whose dimensions, coordinates, entity ids, word text, or object nouns are invalid, and SHALL report the level id and validation problem in developer-visible diagnostics.3132#### Scenario: An out-of-bounds entity is rejected33- **WHEN** a level definition places an entity outside its declared width or height34- **THEN** the level does not start and validation reports the offending entity