Files
station-master/docs/rules/glossary.md
T
Jesse c3c5cbfeec v0.5.0 — multiplayer Phases 2 and 3: a server that runs a game and survives being restarted
Phases 0-1 shipped in v0.4.0 (seat/identity split, per-player turn state, the Session boundary).
This lands Phase 2 (server core, one game, no lobby) and Phase 3 (persistence and resumption) per
docs/architecture/multiplayer.md §12. Phases 4-6 (lobby/reconnection, the 22 opponent-directed
cards, StartOS packaging) are still ahead.

Phase 2: src/server/session.ts hosts a game in pure logic (no sockets) on top of game.ts's existing
Game/submit/currentActor/actionMenu; it verifies seat === currentActor(game) itself before calling
submit, since submit() trusts its caller and a server can't. src/server/http.ts and index.ts add
POST /api/game, GET /api/stream (SSE, per-seat), POST /api/intent, and static serving of dist/.
src/sim/frame-delta.ts is a purpose-built per-seat board delta for one live push at a time. Found
and fixed along the way: actionMenu(game, seat) only used seat for the hand field, so a server
computing every connected seat's Menu would have handed the acting player's legal moves to a
waiting seat. Verified with a live end-to-end smoke test (2-player game, two SSE streams, a
rejected intent from the wrong seat, an idempotent resend) plus test/server/session.test.ts and
test/redaction.test.ts. Not verified: an actual browser (none available in this environment).

Phase 3: src/server/persistence.ts writes game.json and turn-timings.json, atomic-rewrite-then-
rename. game.ts gained fromMultiplayerSave, fixing a narration-attribution bug found while testing
it (fromSave's replay loop drops the actor argument, invisible in solitaire, unreadable the moment
there's more than one seat — fromSave itself still has this gap, deliberately untouched). Verified
live: server killed and restarted mid-game, both seats reconnected exactly where they left off.

Two rules bugs found while building this: the New Train phase never implemented its car-placement
round (every car of every train was placed by the Superintendent alone, in every mode, all along —
now reads the round position off tray.consist.length); and victory conditions are now one shared,
configurable GameConfig set across solitaire/competitive/coop instead of a fixed length lookup and
a dead firstToTarget condition.

Also folds in the three fixes already released on the patch line as v0.4.9b/c/d: a switching
train's crew badge failing to draw once it left the Office square, an unload that always took the
westmost car regardless of which was picked, and a legal decision that could render with zero
buttons.

docs/testing/0.5.0-test-plan.md and three reported-bug save files (docs/station-master-seed*.json)
included for reproducibility. tools/jitsi-harness/ deliberately left untracked — unrelated
side-project work, not part of this release. 635 tests, 0 failures.
2026-08-20 23:50:38 -04:00

8.4 KiB
Raw Blame History

Station Master — Glossary

Every defined term, alphabetized for lookup. The core comes from the Definitions section of rules-v0.1.md (§2); terms introduced by gap decisions carry their rules-v0.2.md section. The "Where" column points at the defining section.

Term Definition Where
A/D (Arrival/Departure) Track Short sidings in front of your office where trains arrive and depart from. A train at an Office occupies one A/D track. If a train arrives and no A/D track is available, it is a collision. §2.1, §8.3
Caboose Red rolling stock, for the conductor and switch crews. Returns directly to the Division Yard when used. Counts toward the Crew Tray's four-piece limit. §2.2, §A.4
Classification Yard Where used Rolling Stock is placed. When the Division Yard empties, everything here moves back to it. §2.2
Coach Passenger rolling stock (blue = loaded, white = empty). §2.2
Consist A collection of Rolling Stock (cars) in a Crew Tray. Order is significant. §2.2, §A.3
Control Point An Office where trains are reported in to the distant (NPC) dispatcher — Division Points, Depots, Stations, Terminals. Whistle Posts are not Control Points. Denoted by a train order signal on the card. §2.1
Crew Tray The canoe-shaped holder containing the train pieces. Must always hold an engine; may hold at most four Rolling Stock, cabooses included. §2.2, §A.4
Day A series of twelve Stages. §2.4
Departments Three face-up slots beside the Home Office deck from which cards may be drawn and to which they may be discarded. Fed from the one deck, not decks of their own. §2.6
Dispatcher The imaginary (NPC) person running the railroad and granting rights to trains to operate. §2.6
Division Your company's tracks connecting the Eastern and Western Division Points. May represent hundreds of miles and several Offices. §2.1
Division Point Where your railroad ties into other railroads. There is an Eastern and a Western Division Point. §2.1
Division Yard A table-top pile of Rolling Stock. Cars for cargo, passengers, or trains are selected from here. §2.2
East The player's right. §2.4
Engine The engine piece. May pull cars, push cars, or both. Has couplers on the front end. §2.2, §A.3
Extra Platform Modifier card: +1 green and +1 red slot at a Passenger Facility. §12.5
Extra Train A one-and-done train; its card returns to the Salvage Yard on completion. Head-on card image, so the drawing player picks its direction. Numbered with an "X" prefix; the following number gives its seniority, and it yields to the Timetabled train of that number. §2.3, §8
Facility A business which loads/unloads cargo and freight. §2.5
Freight Facility Mine Tipples, Produce Sheds, Grocer's Warehouses, Oil Refineries, Power Plants, Freight Houses. Some allow only outbound, some only inbound, some both. Per-card values in §12.5. §9, §12.5
Freight House A sixth Freight Facility card (corrected v0.5.0 — an earlier pass here read it as a collective term for the Grocer's Warehouse and the Oil Refinery rather than a card of its own; it is dealt like any other industry). Permits both directions, the same as a Grocer's Warehouse or Oil Refinery. §9.3, §12.5
Highball When a train holding at an Office automatically departs. §2.4
Home Office The primary face-down deck cards are drawn from. 52 cards. §2.6, §12.1
Hopper Coal rolling stock (brown = loaded, white = empty). §2.2
Inbound box A red box holding all just-unloaded freight/passengers of the designated type. §2.5
Junction stub The diverging connection printed above and below every Office card's track, allowing Secondary Track to branch from the opening Stage. A plain connection — §A.1's turnout directionality does not apply. §11.3
Laborer A blue man-icon; works cargo. Usable once each per Stage. Four Laborer-actions complete one load. §2.5, §9.1, §9.3
Limits The sign east and west of your Office that denotes the limit of your control area. Moves outwards as your Running Track expands. §2.1, §11.2
Loading Dock Modifier card: +1 green Outbound capacity at a Freight Facility. §12.5
Mainline Card Tarot-sized cards representing roughly the hundred miles of track between train offices. Each has two regions. §2.1
MEN | AT | WORK A blue three-box turn track tracking how quickly freight cars are loaded/unloaded. Only one Load per box. While any load sits on it, the industry's track loses Operational Rail status. §2.5, §9.3
Modifier Facility A card placed adjacent to a Facility (any of the nine nearby spots) that increases its capacities or workers. If adjacent to two Facilities, it may only be used on one per Stage. §2.5, §9, §12.5
Move A Crew Tray moving from one Operational Rail card to another, regardless of distance, without changing direction. §2.4, §A
Number board Small tiles numbered 1-12 recording which Stage (hour) a train departs. §2.3
Office The location the Station Master sits at. A Whistle Post, Depot, Station or Terminal. All four share identical track geometry. §2.1, §11.1, §11.3
Operational Rail Any track (Running or Secondary) on which a train may sit, change direction, and drop or pick up cars. Marked with a wheel icon. §2.1
Outbound box A green box holding all to-be-loaded freight/passengers of the indicated type. §2.5
Passenger Facility Depots, Stations and Terminals — any Office above Whistle Post. Always allow both loading and unloading. §9, §11.1
Phase An operational component of a Stage. §2.4
Porter A black man-icon; assists passengers. Usable once each per Stage. One Porter-action earns one Revenue. §2.5, §9.1, §9.2
Reefer Refrigerated rolling stock for field produce (brown = loaded, white = empty). §2.2
Revenue Points gained and lost to determine victory. +1 per load/unload operation, −5 per collision. §2.4, §10
Rolling stock The non-engine pieces representing rail cars, either in a Crew Tray or sitting on an Operational Rail card. A colored car is loaded; a white car is empty. §2.2
Running Track The "Mainline" running horizontally between your Limits, including your Office — the horizontal row of cards, Limit-to-Limit. §2.1
Salvage Yard Where used cards are placed, face up, so no card that shouldn't be discarded is. §2.6
Secondary Track All track inside your Limits that is not the Running Track. §2.1
Section Gang Modifier card: +1 Laborer or +1 Porter. The only worker-adding Modifier. §12.5
Stage A two-hour section of time. Twelve make a Day. Each player gets one Local Operations action per Stage. §2.4, §6
Storage Shed Modifier card: +1 red Inbound capacity at a Freight Facility. §12.5
Subdivision The Mainline track between the Limits of opposing Control Points. Whistle Posts are not Control Points and sit inside a Subdivision like ordinary Mainline. §2.1
Superintendent The Dispatcher's right-hand-man, managing the division. The role passes player to player; a shift is six hours (three Stages). Marked by the Fedora piece. Rules on following-train clearances. §2.6, §8.1
Tank car Oil rolling stock (brown = loaded, white = empty). §2.2
Team Track Modifier card: +1 car on a Freight Facility's industry track. §12.5
Timetabled Train A train scheduled to run every day at the same time, marked by a Number Board on the turn chart. Numbered 1-12; odd westbound, even eastbound. Lower numbers hold greater seniority, and all outrank Extras. §2.3, §8
Turnout A drawn track card where a train entering from "A" may proceed to B or C, but one entering from B or C may only proceed to A. Not Operational Rail, so no stopping. Distinct from the Office card's junction stubs, which carry no directional restriction. §A.1, §11.3
West The player's left. §2.4
Whistle Post The most basic Office — "a shack in the middle of nowhere". Not a Control Point and not a Passenger Facility, so a Whistle Post player has no passenger business. §2.1, §11.1