# Module 7 Expansion Drop: ALL The lesson's [Expansion Drop](../lesson.md#expansion-drop) beat explains the task. This file holds the scenario, the test locations and the check. - Word: ALL, a meta-noun: as a subject it names every object that is not text. The Baba Is You Wiki's TEXT page: "TEXT is not included in ALL, but is included in NOT ALL." (recorded in `docs/research/baba-is-you.md` ยง5). - Tests: `tests/rust/test_07x.rs` and `tests/ts/test_07x.test.ts`. Copy the one for your track into your workspace's `tests/`. - Reference answer: `solution/words.json`, one file for both tracks: the Module 7 reference's `src/content/words.json` with one entry added, `{ "name": "ALL", "role": "noun", "selects": "things" }`. Copy it over your workspace's `src/content/words.json`. Nothing under `src/engine/` changes, and neither does the harness. The `"selects"` field is the hook the Module 7 engine already reads: the engine's own `TEXT` uses it too (`"text"`). - Check: commit your workspace before you start, then run `node tools/expansion-check.mjs ` from the course repository. It fails if any file under `src/engine/` changed. ## Scenario ### test_07x_all_meta_noun - Setup: `newBaba` with an empty level 4 wide and 5 high. Place `ALL (0,0) IS (1,0) YOU (2,0)`, an object `baba` at (0,4), an object `rock` at (1,4) and a text `text:FLAG` at (3,4). - Assertions 1: - `activeRules()` is exactly `["ALL IS YOU", "TEXT IS PUSH"]`. - `hasProperty(baba, "YOU")` and `hasProperty(rock, "YOU")` are true: ALL names every thing, whatever its noun. - `hasProperty(flagText, "YOU")` is false: text is not in ALL. - Action: place `BABA (0,2) IS (1,2) NOT (2,2) YOU (3,2)`. - Assertions 2: - `activeRules()` is exactly `["ALL IS YOU", "BABA IS NOT YOU", "TEXT IS PUSH"]`. No rule cancels another as written: `BABA IS NOT YOU` and `ALL IS YOU` have different subjects. - `hasProperty(baba, "YOU")` is false and `hasProperty(rock, "YOU")` is still true. The negation is settled per object: Baba is named by both `ALL` and `BABA`, and "BABA IS NOT YOU prevents BABA from having the property YOU" (wiki, IS page). Before the drop the lexicon doesn't know `ALL`, so the first sentence spells nothing and Baba is not `YOU`.