Skip to content

The Lantern Under the Mill (SPE-5) - #24

Open
jakelevirne wants to merge 14 commits into
mainfrom
cytest/spe-5-the-lantern-under-the-mill
Open

jakelevirne wants to merge 14 commits into
mainfrom
cytest/spe-5-the-lantern-under-the-mill

Conversation

@jakelevirne

@jakelevirne jakelevirne commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

One lantern outlasts a mill. Two rooms, both faces of a new place, mill-race, reached
from the Turning House.

  • mill-race:2099-ba — the High Masonry. The working race: black water, the wheel
    turning, an iron nail in a ring of soot with nothing on it.
  • mill-race:1099-ba — the Long Noon. Silt, a wheel dry to the hub, brick where the stair
    came down, and the lantern on that same nail. Unlit, and the glass is warm.

The Turning House gains a DOWN exit, the lantern beside its door, and the second stair.
landings is now ["2099 BA", "1099 BA"]. test/engine.test.ts builds its fixture from
the shipped world instead of the lone room, because validateWorld rejects a room whose
exit leaves its world and the House now has one; same start room, same assertions, no
engine change.

Route

turning-houseDOWNmill-race:2099-baFUTUREmill-race:1099-ba, and back
out by PAST, UP. The 1099 BA room has no spatial exits by design — the stair is brick.

Checks (on this branch)

npm run typecheck                                            # exit 0
npm test                                                     # 36 pass, 0 fail
npm run eval:reach                                           # verdict: PASS  rooms: 3  reachable: 3
node scripts/play.ts --expect mill-race:2099-ba DOWN         # exit 0
node scripts/play.ts --expect mill-race:1099-ba DOWN FUTURE  # exit 0
node scripts/play.ts --expect turning-house DOWN FUTURE PAST UP  # exit 0

Evaluated by SPE-8: verdict: PASS, no failures, every harness route played through the
real engine. Zero fix rounds used.

Trail

Two rooms, both faces of the mill-race: 2099 BA (the High Masonry) and
1099 BA (the Long Noon). Reached from the start room by DOWN, then FUTURE.
No src/content written.
Adds mill-race:2099-ba and the three bounded Turning House touches the
outline calls for: the DOWN exit, the iron lantern on its nail, and the
second stair (with lookAgain refreshed to list the lantern).

test/engine.test.ts built its Game from the turningHouse room alone; a
room with an exit can only be validated inside the world that holds its
target, so the fixture is now the shipped world (which still starts in
the Turning House).
… nail

Registers the 1099 BA landing (oldest-first) and closes the PAST/FUTURE
pair, so DOWN, FUTURE reaches the payoff and PAST is the way home.
…e 9)

The Turning House lantern answers to NAIL and GLASS (the nail is its
fixture, not a fourth edit); the mill-race gains the House overhead in
2099 BA and folds HOUSE into the brick in 1099 BA; the race no longer
names a wall it does not describe.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant