Files
station-master/docs/rules/open-questions.md
T

52 KiB
Raw Blame History

Station Master — Open Questions

Live tracker for gaps in the prototype rules. Each entry records the problem, the options considered, the decision, and why. Decided entries feed rules-v0.2.md; anything still open blocks implementation of the systems it touches.

Status key: OPEN — not yet discussed · DECIDED — settled, in v0.2 · DEFERRED — knowingly left open, with the consequence noted.

⚠ 2026-07-31 — four design files were recovered (Deck cards2.xlsx, Mainline Cards.pdf, Trains3.pdf, tracks.png) that answer several of these questions directly. Where the design contradicts a decision below, the design wins and the entry is marked SUPERSEDED. The reasoning is kept, not deleted: it is how we know which questions the design answers. See implications.md.

# Gap Status
1 Phase resolution order DECIDED
2 Collision resolution (and the Whistle Post highball condition) DECIDED, amended by ABS Signals
3 Office upgrades DECIDED
4 Component manifest and deck composition SUPERSEDED — deck is 115, track is per-player
5 Extra-train seniority ties MOOT — Extras are X13-X22, the tie cannot occur
6 Victory conditions DECIDED
7 Terminology errata DECIDED
8 First placement into an empty Office Area DECIDED — found during verification
9 Consist length scales with player count DECIDED — found during verification
10 Card face specifications SUPERSEDED — the real card list exists
11 Track card orientation SUPERSEDED — handedness is printed; both hands supplied
12 Balance targets INVALIDATED — measured against a placeholder ruleset
13 Deck scaling by player count LARGELY DISSOLVED — track is per-player by design

Gap 1 — Phase resolution order

Status: DECIDED — phase-major, strict player order.

The problem. §5 says "In each Stage of the day the players perform Phases, one at a time in order from the Superintendent through the players in order to his left." This admits two readings:

  • (a) Player-major — each player performs all four Phases, then the next player does.
  • (b) Phase-major — every player performs Local Operations, then every player performs New Train, and so on.

Reading (b) is supported by the Mainline Phase (§8), which is described as global and automatic — trains move in train-number order across the whole Division, not per player — and by the New Train Phase (§7), where "starting with the superintendent and working left, each player may place ONE car" describes a single round inside one phase. Reading (a) would make both of those incoherent.

Why it matters. This is the server's entire turn state machine. Every other timing question (when Laborer/Porter usage resets, when a collision is evaluated, what a player sees while waiting) depends on it.

Decision. Reading (b), phase-major, with strict sequential player order:

STAGE N
├─ 1. Local Operations   P(super) → P(+1) → P(+2) …   one at a time
├─ 2. New Train          per train: super → left, ONE car each
├─ 3. Mainline           ALL trains move, train-number order (global)
├─ 4. Load / Unload      P(super) → P(+1) → P(+2) …   one at a time
└─ 5. Shift Change       Stages 3, 6, 9, 12 only

"One at a time in order from the Superintendent through the players to his left" describes ordering within a phase, not the phase loop.

Rationale. New Train's shared car-placement round (one train, each player adds one car in Superintendent-then-left order) and Mainline's global lowest-train-number-first ordering are both incoherent under player-major; phase-major is the only reading where the rules as written function.

Simultaneous resolution of the two player-local phases was considered and rejected for now: Local Operations and Load/Unload touch shared piles (Division Yard, Home Office deck, the three face-up Department decks), so concurrency would turn draw order into a race and change the game. It stays available as a possible later "fast mode" but is not the rule.

Consequences for implementation. The server holds a single current-actor pointer — exactly one player may act at any moment. Every other client is in a spectating state. Per-Stage resources (Laborer and Porter usage) reset at the start of each Stage, not each phase.

The Mainline Phase is the exception to the pointer, in both directions: it is automatic, so no player acts in turn order — but §8.1's fourth condition interrupts it to ask the Superintendent whether a following train may safely depart. That decision arrives out of turn order and may concern another player's train. It is the one point in the game where a player acts during someone else's traffic, and Gap 2 deliberately made the consequences automatic so that this decision carries full weight.


Gap 2 — Collision resolution

Status: DECIDED — collisions are automatic.

The problem. §8.2 gives three collision triggers and each says a collision "may occur":

  • cars or trains sitting on the Running Track between the Limits and the Office,
  • no room at the station (every A/D track occupied),
  • a train ready to Highball with the track between it and the Limits occupied.

§10 gives the consequence (5 Revenue, both trains removed, timetabled trains rerun next day) and assigns fault. But nothing says whether "may" means automatic, a die roll, or a judgment call. A server needs a deterministic rule.

Note §A.4 states flatly that cars encountered by a train during the Mainline Phase "result in a collision" — no "may". That suggests the triggers are in fact automatic and "may" is loose writing, but this needs confirming rather than assuming.

Sub-question 2b — the Whistle Post highball condition. §8.1's final bullet reads: "If the Subdivision contains a Whistle Post (i.e. a non-Control Point) yet a train is occupying Secondary Track there (i.e. clear of the Running Track), the superintendent must Highball the train." It is unclear which train "the train" refers to — the one being considered for departure, or the one sitting on Secondary Track. Read as the former, it is a permission (a train parked clear of the Running Track doesn't block the Subdivision). That reading fits the surrounding list, but the sentence doesn't say so.

Decision (2b) — "the train" is the train being considered for departure. A train parked on Secondary Track at a Whistle Post does not foul the Running Track, so it does not count as occupying the Subdivision, and the Superintendent has no grounds to withhold clearance from the departing train — hence "must".

Rationale. The definition of Highball settles it. §2.4 defines it as "when a train holding at an Office automatically departs", and §8.1's first bullet requires that a train "must be sitting on the A/D track before the Office or at a Division Point" to be cleared. A train on Secondary Track fails that condition and is therefore not highball-eligible at all, so the word cannot be referring to it.

The bullet is a clarifying exception to bullets 3 and 4, not a new power: those say a train in the next Subdivision blocks or complicates departure, and this one carves out the case where that train is stabled clear of the Running Track. The alternative reading also has a destructive side effect — if the Superintendent could force a parked train back onto the mainline, any player mid-way through a six-Move switching sequence could have their train ejected, gutting the local switching game.

Decision (2a) — collisions are automatic. If a trigger condition holds at the moment the train moves, the collision occurs. There is no die roll and no judgment call. "May occur" is descriptive prose about risk, not a resolution mechanic.

Rationale. §A.4 states the identical situation without any hedge ("Any cars encountered by such trains result in a collision"). The Superintendent's discretion is already spent earlier, at §8.1, deciding whether to clear a following train — randomizing the outcome afterwards would blunt that decision, which is the game's central tension. And the Emergency Toolbox optional rule exists so collisions "can be avoided", which is most meaningful when they are otherwise certain.

Decision (2c) — a train striking loose cars is a full collision. §10's "both trains are removed" assumes two trains; triggers 1 and 3 can involve a moving train striking uncoupled Rolling Stock. In that case the train and the struck cars are destroyed and the responsible player loses 5 Revenue — the same penalty as a train-on-train wreck.

Disposition of destroyed pieces (following §2.2): engines and cabooses return to the Division Yard; all other Rolling Stock goes to the Classification Yard. Timetabled train cards return to their timetable slot and run again the next Day; Extra train cards go to the Salvage Yard.

Decision (2d) — no room at the station is a collision. A train arriving at an Office where every A/D track is occupied collides. Fault is the Office's player under §10 (it occurs inside his Limits), costing 5 Revenue, and the train is removed.

Rationale. Harsh, but it makes A/D capacity a constraint the player must actively plan around and gives Office upgrades (Gap 3) real value. The gentler alternative — holding the train short in the Subdivision — was rejected because a blocked Subdivision cascades into later Stages and is arguably the harsher punishment anyway, while costing more server state to evaluate.

Consequences for implementation. Collision evaluation is a pure function of board state at each train movement step in the Mainline Phase, with no player input and no RNG. The only interrupt is a Red Flag card (Emergency Toolbox optional rule), which means the Mainline Phase is automatic but not necessarily uninterruptible — see Gap 4 for what Red Flag actually does.


Gap 3 — Office upgrades

Status: DECIDED — cards played from hand, strict sequence, 1/2/3/4 A/D tracks.

The problem. The rules depend on Offices changing type but never say how. §8 notes "Updating Offices with the Control Point icon split the Subdivision in two at that point," §2.1 lists Whistle Post / depot / station / terminal as Office types, and §A.4 says the Office track "has the number of A/D tracks listed" — implying the count varies by type. Setup (§4) starts everyone on a Whistle Post. Nothing states what card or action performs the upgrade, what each type costs, or what A/D counts each type has.

Why it matters. Control Point placement determines Subdivision boundaries, which determine highball legality, which is the core of the Mainline Phase. It also gates what card types must exist in the Home Office deck, so it precedes Gap 4.

What the upgrade is worth. Three benefits arrive together, which is why it needs no additional price: passenger revenue (a Whistle Post is not a Passenger Facility, so a Whistle Post player is restricted to freight entirely), A/D capacity (and after Gap 2, running out of A/D tracks is a 5 collision), and Subdivision splitting (which raises traffic capacity for the whole Division, not just the upgrading player).

Decision (3a) — upgrades are cards played from hand, at no Revenue cost. Depot, Station and Terminal are card types in the Home Office deck. A player plays one during the "Draw a card" option of the Local Operations Phase (§6.2); it replaces the current Office card, and the replaced card goes to the Salvage Yard. The Office card carries the Control Point signal, the A/D track count, and the Passenger Facility icons (Porters and loading/unloading boxes — exact counts in Gap 4).

Rationale. Playing a card from hand is the only "play" verb the rules define. The cost is already real without adding Revenue: one of three hand slots, plus a whole Local Operations action, which is mutually exclusive with switching your trains or working freight that Stage.

Decision (3b) — strict sequence: Whistle Post → Depot → Station → Terminal. Each tier must be built in order; no skipping.

Two consequences accepted with this choice. First, a Terminal or Station drawn early is a dead card occupying one of only three hand slots — the player must either sit on it or discard it face-up onto a Department deck, where an opponent may take it. This turns the Department decks into an informal market for high-tier Office cards and is a genuine strategic wrinkle, not a defect. Second, it constrains Gap 4: the deck must contain Office cards in a pyramid (more Depots than Stations, more Stations than Terminals), or the strict chain will stall players who cannot find the next rung.

Decision (3c) — A/D track counts are 1 / 2 / 3 / 4 for Whistle Post / Depot / Station / Terminal. A Whistle Post holds exactly one train, which makes the opening genuinely tense given that overflow is an automatic collision (Gap 2d); 4 matches the maximum consist length (§A.4).

Deferred to Gap 4. §2.1 says Limits "may be moved outwards" as controlled track expands, which implies separate track-expansion cards adding Secondary Track. That is a component question, not an Office-type question.


Gap 4 — Component manifest and deck composition

Status: OPEN

The problem. No quantities are specified anywhere. Unknown:

  • Home Office deck contents — what card types exist and in what proportion (Facilities, Modifiers, track/turnout cards, Timetabled Train cards, Extra Train cards, Office upgrades, Red Flag, anything else).
  • Track cards — how many Whistle Posts and Limits per player, how many Mainline cards, what track geometries exist (straight, turnout, crossover/run-around).
  • Train cards — 12 timetabled trains are implied by the 1-12 numbering, but how many Extras, and what consist criteria does each train card carry.
  • Pieces — how many Crew Trays and engines (§7 says the number is limited and it matters, since trains are held when none are free), how much Rolling Stock of each type, how many Number Boards.

Why it matters. The largest gap. Deck composition drives the whole economy; Crew Tray scarcity is an explicit mechanic that can't be tuned without a number.

Approach. Break into sub-discussions: (4a) card types and deck composition, (4b) piece counts, (4c) train card consist criteria.


4a — Card types and deck composition · DECIDED

Three structural findings, derived from the rules rather than chosen.

  1. The Home Office deck is a single deck containing every card type. §4.54.6 shuffles one deck, deals three cards to each player, then turns three cards face-up beside it as the Department decks. §6.2's reshuffle sweeps the Salvage Yard and all three Department decks back into it. The Departments are therefore three face-up market slots fed from the one deck, not decks with their own contents.
  2. A player's Office area is a card grid, not a row. §9 permits a Modifier "adjacent (on any of the nine nearby spots)" — a 3×3 neighbourhood. Appendix A's diagrams show a 2×3 grid: bottom row D/E/F is the Running Track with the Depot as Office at E, top row A/B/C is Secondary Track with a Freighthouse at C. Setup deals only three cards (§4.1), so the grid demonstrably grows in play.
  3. Facility cards are themselves track cards. In the same diagrams the Freighthouse and Depot both have rails drawn across them and trains move onto them. Placing a Facility places track.

Decision — the play area grows by playing track cards. Plain track, turnouts and Facilities are all played from hand into an empty adjacent grid spot and must connect to existing track. One uniform placement rule covers every card with rails on it.

Decision — the Running Track may be extended, moving the Limits outward. §2.1's "the sign may be moved outwards" is given effect: extending the Running Track horizontally pushes that player's Limits out. Growth is uncapped for the prototype. A longer Running Track is also more track to keep clear, so it carries its own collision risk.

Decision — 52-card deck for the prototype. Chosen partly so the prototype can be built from a standard deck. Provisional: likely to need retuning by player count once the game is played.

Category Count Detail
Timetabled Trains 12 One each, numbered 112
Extra Trains 4 X9, X10, X11, X12
Office upgrades 9 Depot ×4, Station ×3, Terminal ×2 — the pyramid Gap 3b requires
Freight Facilities 10 5 types × 2 (Mine Tipple, Produce Shed, Grocer's Warehouse, Oil Refinery, Power Plant)
Modifier Facilities 5
Plain track / turnouts 12 Turnout ×6, straight ×3, run-around ×3 — see below
Total 52

Track mix (decided alongside Gap 8): turnout 6 / straight 3 / run-around 3. Turnout-heavy because turnouts are how Secondary Track branches onward once the Office card's own junction stubs (Gap 8) are used up — a player who cannot draw one cannot develop past the first ring of cards. Run-arounds are commoner than they might otherwise be, which makes the facing-point switching move of §A.5 a normal tool rather than a rare prize.

All twelve Timetabled Trains must be in the deck: §4 starts the Division with no trains running, and §7 creates a scheduled train only when a player draws and plays its card. That fixed 12-card block is 23% of a 52-card deck, which is what makes the composition tight.

Decision — Extra Trains carry high numbers (X9X12), i.e. low seniority. They yield to nearly all scheduled traffic, making an Extra safe filler a player can slot in without upsetting the timetable, rather than a disruption that cuts ahead of everyone. Ties against Timetabled trains 912 remain possible and are Gap 5's problem.

Decision — Red Flag cards are a separate supply, one per player, dealt at setup outside the 52 under the Emergency Toolbox optional rule, and removed from the game when played rather than reshuffled. This keeps the 52-card deck identical whether or not the optional rule is in use, and makes each player's flag a single precious escape.

Card recirculation. Office cards recycle: upgrading Depot → Station sends the Depot to the Salvage Yard, and it returns on the next reshuffle. Only Whistle Posts, Limits, Mainline cards and Division Point cards sit permanently outside the deck as fixed supplies.


4b — Piece counts · DECIDED

Mainline card regions turned out to set the pace of the whole game. §8.2 requires a train to move one region (vertical bar) per Stage, and each Office costs one further Stage (arrive, stop for orders, highball on the next Mainline Phase). With N players there are N+1 Mainline cards, so for 3 players:

Regions per card Stages to cross the Division
1 4 + 3 = 7
2 8 + 3 = 11
3 12 + 3 = 15

Decision — 2 regions per Mainline card. A Day is 12 Stages, so a train crosses the Division in just under a Day, completes its run, and frees its Crew Tray. Three regions would leave trains still on the road when the next Day began, locking trays permanently.

Decision — Crew Trays and engines = player count + 3 (3 players → 6, 4 → 7, 5 → 8). Comfortable early while few trains are scheduled, and a real bottleneck once the timetable fills — which is the arc §7 describes. Note the end state: a full 12-slot timetable launches roughly one train per Stage and each occupies a tray for about a Day, so a saturated Division would want ~12 trays. Anything less is deliberate pressure, and this number is a prime candidate for retuning after play.

Decision — Rolling Stock supply ≈ 62 pieces. Loaded and empty counts are paired because loading swaps a white car for a coloured one (§9.3).

Type Loaded Empty
Coaches (blue) 8 8
Boxcars (brown) 6 6
Hoppers (brown) 6 6
Reefers (brown) 4 4
Tank cars (brown) 4 4
Cabooses (red) 6
Total 62

Fixed supplies, derived from the rules rather than chosen.

Component Count Source
Mainline cards (tarot) N + 1 for N players §4.2, plus one beyond each end Division Point
Division Point cards 2 (East, West) §4.3
Whistle Post cards N + spares §4.1 — "all remaining … are set aside"
Limits cards 2N + spares §4.1; the same card moves outward as the Running Track extends (4a)
Number Boards 12, numbered 112 §2.3 — one per Timetabled Train
Fedora 1 §4.4 — marks the Superintendent
Pocket Watch 1 §4.4 — marks the current Stage
D12 1 §4.3, §4.4, §7

4c — Train card consist criteria · DECIDED

What a train card carries, from §7 and §8.1: its number, its direction (from the card image), the car types it accepts, the maximum consist, and whether a caboose is required — plus the required order, since §8.1 blocks a highball unless the consist is "in correct order listed on the train's card." A train may depart short (§8.1 explicitly permits fewer Rolling Stock than listed); it may not depart out of order.

The four-slot constraint. §A.4 caps a Crew Tray at four Rolling Stock, and §2.2 lists cabooses as Rolling Stock. A caboose therefore consumes one of the four slots, so any train requiring a caboose carries at most three revenue cars. This is easy to get wrong and is baked into the table below.

Decision — six paired classes, odd westbound and even eastbound, arranged so the pairs work as sister trains under the optional rule. Seniority runs passenger-first, matching real practice: low numbers are the varnish, high numbers the drags and locals.

Trains Class Consist
1 / 2 Limited 4 coaches, no caboose
3 / 4 Mail-Express 3 coaches, no caboose
5 / 6 Manifest Freight 3 boxcars or reefers + caboose
7 / 8 Coal Drag 3 hoppers + caboose
9 / 10 Oil Train 3 tank cars + caboose
11 / 12 Way Freight 3 cars of any type + caboose

Order in every case is engine at the front, revenue cars, caboose last where required.

Decision — Extra Trains (X9X12) list flexible criteria: any 3 cars + caboose. §7 lets the player who played the Extra load it "as he chooses, subject to the listed criteria", so keeping the criteria loose is what gives an Extra its purpose — a train tailored to whatever cargo that player actually needs moved, rather than a duplicate of a scheduled train.


Gap 5 — Extra-train seniority ties

Status: DECIDED — Timetabled trains always outrank Extras.

The problem. §8 orders Mainline movement by train number, lowest first, and says to "remove the 'X' from extras to determine their true number." So Extra X7 resolves to 7 and can tie Timetabled Train 7 in the same Mainline Phase. No tiebreak is given. Multiple Extras sharing a number is also possible depending on how many Extra cards exist (Gap 4).

Gap 4a settled the Extras at X9, X10, X11 and X12 — one card each — so Extras never tie each other. The only tie is an Extra against the Timetabled train of the same number.

Decision — the Timetabled train moves first; Extras yield to every scheduled train.

Rationale. This is how it actually worked: extras carried no timetable authority and ran only on train orders, inferior to all regular trains. It also reinforces the Gap 4a choice of high X-numbers, which made Extras deliberately low-seniority filler rather than disruptions. Leaving the tiebreak to the Superintendent was rejected — it would reintroduce a judgment call into a Mainline Phase that Gap 2 made fully automatic.

Ordering rule for implementation. Sort Mainline Phase movement by (number, isExtra) ascending, where isExtra is false before true. Numbers are the train's own for Timetabled trains and the X-number stripped of its "X" for Extras.


Gap 6 — Victory conditions

Status: DECIDED — mode × victory-condition matrix, with shared failure floors.

The problem. §3 says goals are "a specific total Revenue Points or highest Revenue within a specific number of Days" and, separately, Co-Op where "multiple players work to achieve a shared goal." No numbers for either, and no statement of what the Co-Op goal is. Revenue is earned at +1 per load/unload operation and lost at 5 per collision; no other sources are defined, so the scoring range is narrow and target numbers need to be grounded in expected per-Day earnings.

Expected earning rate, used to calibrate every number below. §9.3 requires four separate Laborer-actions to complete one freight load — Green Slot → MEN → AT → WORK → onto the car — for a single Revenue point, so a Facility with 2 Laborers needs two full Stages to score once. §9.2 gives a Porter a point for one action, but passenger work is gated on a train actually standing at the A/D track. Netting out, a developed player earns roughly 58 Revenue per Day, which makes a 5 collision cost about a full Day's work.

Structure

Setup selects a mode and a victory condition independently, plus a length.

Length Target Days
Short 15 10 3
Standard 30 20 5
Campaign 60 45 10

Co-op targets are the same figures multiplied by player count, since Co-op scores a pooled total.

Superseded by Gap 10e. The struck-through figures were set here against an estimate that assumed steady-state earning from Day

  1. Once the card faces were specified, the development ramp made them roughly 1.5× too high. The structure, floors and mode matrix below all stand as decided — only these three numbers moved.

The matrix

Mode First to Revenue target Highest Revenue after N Days
Solitaire Reach the target → win Must reach the target by the end of N Days, else lose. Above it, the final score stands as the result.
Competitive First player to reach the target wins All players' Revenue combined must reach 3 × players × Days, else everyone loses. Otherwise highest individual Revenue wins.
Co-op Pooled Revenue reaches target × players → team wins Pooled Revenue must reach target × players by the end of N Days, else lose. Above it, the final pooled score stands as the result.

Decision — "Highest Revenue" becomes a threshold in Solitaire and Co-op. A comparison between players is meaningless with one player and self-defeating among cooperating ones, so in those modes the timed format is pass/fail against the same target figure: below it you lose regardless of score; above it your score stands and is what players compare between sessions.

Decision — Competitive carries a collision floor: three collisions within a single Day and every player loses. Counted Division-wide across all players and the Superintendent, and the counter resets at the start of each Day. Applies to Competitive only, under both victory conditions; Solitaire and Co-op have no collision limit.

Decision — Competitive timed games also carry a collective Revenue floor of 3 × players × Days — about half the expected output of a functioning Division, so it is comfortably met by a railroad that works and missed by one crippled with wrecks and blocked Subdivisions.

Players Days Floor
3 3 27
3 5 45
4 5 60
4 10 120

Why this matters beyond scoring. The two floors make Competitive play partly cooperative: players race each other inside a railroad they all need to keep functioning. It is the mechanical expression of the game's premise — the railroad depends on you.

Known failure mode, accepted. A player who is clearly losing can deliberately wreck trains to trip the collision floor and deny the leader a win. Because the saboteur loses too, it is mutually assured destruction rather than a free grief, and the per-Day reset means three wrecks must land inside a single Day. Flagged in the rules rather than designed around.


Gap 7 — Terminology errata

Status: DECIDED — all four fixes adopted.

Small wording inconsistencies, settled in one pass:

  1. "Cargo phase" vs "Load/Unload Phase." §5.1 lists the fourth phase as "Cargo phase"; the section heading (§9) and the turn chart both call it "Load / Unload". Pick one.
  2. "the day ends" vs "the Stage ends." §5 says "Once all the Phases for that Stage are complete, the day ends." A Day is twelve Stages (§2.4), so this should almost certainly read "the Stage ends."
  3. "Scrap Yard" vs "Salvage Yard." §2.3 sends completed Extra Train cards to "the Scrap Yard deck"; §2.6 and §6.2 define and use "Salvage Yard". Presumed the same pile under two names.
  4. "turn" vs "Stage." Several passages use "turn" where "Stage" is meant (§4.4 "his shift runs three turns", §8.2 "must move one region every turn", §9 Modifier "only be used on one Facility in a turn"). Worth normalizing so timing rules read unambiguously.

Decision — all four adopted in v0.2.

Original v0.2 Where
"Cargo phase" Load/Unload Phase §5.1 — the outlier against both the §9 heading and the printed turn chart
"the day ends" the Stage ends §5
"Scrap Yard" Salvage Yard §2.3
"turn" (meaning a Stage) Stage §4.4, §8.2, §9

The phase name follows the turn chart because the chart is a printed component players read every Stage; renaming it would mean reprinting it to match a single line of prose.


Gap 8 — First placement into an empty Office Area

Status: DECIDED — Office cards carry junction stubs above and below.

The problem. Gap 4a established that track cards must connect to existing track when placed. But a player begins with exactly three cards in a horizontal row: Limits, Whistle Post, Limits (§4.2). If those three carry only straight-through rails, nothing can ever be placed above or below them — there is no diverging connection to attach to. The Office Area could never leave its opening row, and Appendix A's whole switching game would be unreachable.

Appendix A's diagrams show the Running Track row (D, E, F) carrying turnout geometry that curves up to the Secondary row (A, B, C), so turnouts clearly live in the Running Track. The question is how the first one gets there.

Candidate readings.

  • (a) The first build must extend the Running Track. A player's first placement can only be a card played into the Running Track row, east or west of the Office, which moves the Limits outward (Gap 4a). Once that card is a turnout, Secondary Track can branch from it. Consequence: every player's opening development follows the same forced shape — widen first, then build up.
  • (b) The starting cards carry turnout stubs. The Whistle Post and/or Limits cards are printed with diverging connections, so Secondary Track can be placed immediately. Consequence: no forced opening, but it means the starting cards are a specific printed geometry that has to be designed.
  • (c) Connection is not required for the first card. A player may seed one disconnected card adjacent to their Office and connect it later. Consequence: simplest to implement, but permits orphaned track that trains cannot reach, which is a state the rules never contemplate.

Decision — (b): the Office card is printed with a diverging connection above and below its track. Both Secondary rows are reachable from turn one, so §9's 3×3 Modifier neighbourhood is usable immediately and players have real layout choices from the opening Stage.

        [   ][ ↓ ][   ]
        [Lim][Off][Lim]
        [   ][ ↑ ][   ]

The stubs are plain junctions, not turnouts. §A.1's directional rule — enter from A and you may proceed to B or C; enter from B or C and you may only proceed to A — applies to drawn turnout cards, not to the Office card. This keeps the Office card's Operational Rail status and its A/D track rules (§A.4) from tangling with turnout directionality, which would otherwise interact badly with §A.4's provision that trains may pass through the Office while free A/D tracks remain.

All four Office tiers share identical track geometry — Whistle Post, Depot, Station and Terminal are printed with the same stubs in the same places. This is load-bearing, not cosmetic: an upgrade replaces the card in place (§11.1), so any difference in geometry between tiers would strand the Secondary Track attached to the old card. The tiers differ only in Control Point status, Passenger Facility status, and A/D track count.

Why not (a). Requiring the first build to extend the Running Track needed no new art, but it forced every player through an identical opening — widen, then branch — and made vertical development hostage to drawing a turnout card early.

Why not (c). Permitting a disconnected first card allows orphaned track that no train can reach, a state the rules never contemplate and the engine would have to tolerate indefinitely.

Component consequence. Office cards are geometrically interchangeable. Any card art must place the stubs identically across all four tiers.


Gap 9 — Consist length scales with player count

Status: DECIDED — the make-up round repeats until the consist is full.

The problem. §7 makes up a train by having each player, "starting with the superintendent and working left," place ONE car. Read literally that is a single round, so the number of cars a train receives at make-up equals the number of players.

With the Gap 4c consist specs (4 coaches for a Limited, 3 + caboose for freights), that means:

Players Cars placed at make-up Limited (wants 4) Coal Drag (wants 3 + caboose)
2 2 half empty no caboose possible
3 3 short one coach full only if someone places the caboose
4 4 full full
5+ 5+ over-full — round must stop early over-full

At two players every train leaves permanently short; at five the round overruns the consist and has to be cut off mid-way, which the rules do not describe.

§7 does provide a release valve — "Rolling stock might be added enroute to bring it to its maximum length" — so a short train is playable, and picking up cars along the line is arguably the intended texture. But it is very different at 2 players than at 4, and the rules never acknowledge it.

Candidate readings.

  • (a) One round, as written. Trains at low player counts run short and fill enroute. Simple, faithful, and makes 2-player games a distinctly different experience.
  • (b) Repeat the round until the consist is full or no suitable cars remain in the Division Yard. Trains always leave properly made up regardless of table size; the make-up phase just takes more passes at low player counts.
  • (c) One round, and cap consist specs at the player count. Train cards specify a maximum, and the effective consist is min(spec, players). Predictable, but it makes the printed train cards mean different things at different tables.

Decision — (b): repeat the round. Play continues around the table — Superintendent, then left — until the consist is full or no suitable cars remain in the Division Yard.

4-coach Limited, 2 players
  round 1:  P0 → coach   P1 → coach
  round 2:  P0 → coach   P1 → coach
  full — departs with 4

5 players: round ends mid-way when the consist fills

Rationale. Trains look like trains at every table size, at the cost only of extra passes around a short table. §7's existing requirement that a player "make every effort to find a suitable car" is the natural stopping condition, so no new rule is needed to end the round. The 5+ player over-full case resolves for free: the round simply ends when the consist is full, and no player is left holding a car they cannot place.

Why not (a). Faithful to the literal text, but it makes a 4-coach Limited leave half empty at two players and still leaves the over-full case undefined.

Why not (c). Capping the consist at player count means a printed train card denotes different trains at different tables, which undermines the point of having consist specs on the cards at all.


Gap 10 — Card face specifications

Status: DECIDED. Full catalogue in card-reference.md.

The problem. The rules describe the mechanism of Laborers, Porters, capacities and Modifiers in detail (§9.1–§9.3), and Gap 4a fixed how many cards of each category exist — but no individual card ever received values. Nothing stated how many Laborers a Mine Tipple has, what capacity an Oil Refinery holds, which car types a Produce Shed accepts, or what a Modifier adds. The Modifier row in the §12.1 deck table was blank in its detail column.

This blocked every downstream path identically: the rules engine could not instantiate the Facility structure defined in architecture/game-state.md §5, print-and-play could not draw a card, and no balance work was possible.

10a — Freight facility profiles

Decision. Five types, moderate and varied by industry:

Facility Car Direction Laborers Outbound Inbound Track
Mine Tipple Hopper Outbound 3 3 4
Produce Shed Reefer Outbound 2 2 3
Grocer's Warehouse Boxcar Both 2 2 2 3
Oil Refinery Tank Both 3 2 2 4
Power Plant Hopper Inbound 3 3 4

Rationale. Directions follow the commodity and give §9 all three of its stated cases. Bulk industries get more Laborers and a 4-car track so the types feel distinct when choosing what to build — but the counts stay moderate because Laborers are not the binding constraint (see 10e), so raising them buys little beyond reducing idle time.

10b — Identical pairs

Decision. Both copies of each freight type carry the same values. Small/large variants were considered and rejected: they double the specification work and make balance harder to reason about, for texture the five distinct types already provide.

10c — Passenger facility profiles

Decision. Slot capacity deliberately exceeds Porter count:

Office Porters Green slots Red slots
Whistle Post
Depot 1 2 2
Station 2 3 3
Terminal 3 4 4

Rationale. Only trains 14 carry coaches, so an Office needs to bank boarding passengers between visits and absorb a whole trainload of arrivals. Matching slots to Porters one-for-one would leave a Depot idle whenever a train had not just arrived, and make a 4-coach Limited impossible to work fully. Slot counts mirror the A/D track progression already fixed in Gap 3c.

10d — Modifier cards

Decision. Five cards, mixing capacity and workers:

Card Effect Applies to
Team Track +1 car on the industry track Freight
Loading Dock +1 green Outbound capacity Freight
Storage Shed +1 red Inbound capacity Freight
Extra Platform +1 green and +1 red slot Passenger
Section Gang +1 Laborer or +1 Porter Either

Rationale. §2.5 and §9 say only that Modifiers "increase capacities", which taken literally would leave no way at all to speed up a slow facility. Section Gang is the sole worker-adding card, which keeps that power scarce. Capacity modifiers are stronger than they sound, since banking room rather than worker count is what limits output.

Sub-decision — what a "Freight House" is. §9.3 and Appendix A refer to Freight Houses, but §9's facility list never defines one. It is not a card: it is the collective term for a freight facility that both loads and unloads — under 10a, the Grocer's Warehouse and the Oil Refinery. This reconciles every reference without adding a card type or disturbing Gap 4a's deck composition.

10e — Revenue/Day revalidated, and the Gap 6 targets revised

The binding constraint is Local Operations actions, not workers. A player gets exactly one per Stage — switch, or draw, or work the Freight Agent (§6) — so twelve per Day. Every Revenue point costs roughly one action: stocking a green box, or clearing a red one. Capacity buffers defer that cost but never remove it.

The ceiling is therefore 12 Revenue/Day, reachable only by never switching and never drawing. Realistic mid-game play spends ~4 actions switching and ~23 drawing, leaving 56 for revenue.

The correction: the original estimate ignored the development ramp. Players open with a Whistle Post (not a Passenger Facility) and no freight facilities, and the timetable starts empty so no trains run until someone draws and plays a train card.

Day 1    ~0    no facilities, no trains yet
Day 2    ~2    first facility placed, first train running
Day 3    ~5    developed
Day 4+   ~6    steady state

cumulative:   3 Days ≈ 7     5 Days ≈ 19     10 Days ≈ 49

Decision — the Gap 6 targets are lowered from 15 / 30 / 60 to 10 / 20 / 45. The original figures assumed the steady-state rate applied from Day 1 and were roughly 1.5× too high. This mattered most in Solitaire and Co-op, where the target doubles as a minimum — a Solitaire Standard game needed 30 in 5 Days against a realistic ~19, so it would have failed nearly every time.

Length Target (was) Days Est. cumulative
Short 10 (15) 3 ~7
Standard 20 (30) 5 ~19
Campaign 45 (60) 10 ~49

The Competitive collective floor is unchanged at 3 × players × Days. It was calibrated as about half of expected output — 15 per player over 5 Days against ~19 earned — and that still holds.

Note on Gap 6. Its structure, floors and mode matrix stand as decided; only the three target figures moved, and only because Gap 10 replaced an assumption with real numbers.


Gap 11 — Track card orientation

Status: DECIDED — orientation is chosen when the card is placed.

The problem. Gap 4a fixed the track mix at turnout ×6, straight ×3, run-around ×3. But a track card has an orientation, and nothing says what any of them is.

  • A turnout has handedness: which end is the stem (§A.1's "A"), and which way the leg diverges. A stem-east/diverge-north turnout and a stem-west/diverge-south turnout are different cards.
  • A straight has an axis: east-west along the Running Track, or north-south connecting rows.

Why it is not cosmetic. Card edges must actually meet for a placement to be legal (Gap 4a). An east-west straight placed north of the Office has no south port, so it cannot attach to the Office's junction stub at all — the placement is illegal, not merely awkward.

Taken to its conclusion: if all three straights run east-west, the Office's junction stubs can never be used, and Gap 8's fix is undone. Vertical growth needs cards with north-south ports, and the catalogue currently guarantees none.

The same applies to turnouts. Appendix A's worked examples require turnouts facing more than one way to be performable at all; six identical turnouts would not build the layout the diagrams show.

What the code does meanwhile. TurnoutOrientation and TrackAxis are carried per card in src/engine/state.ts, and turnouts with no stated orientation default to stem-east / diverge-north (DEFAULT_TURNOUT in src/engine/track.ts). Tests cover both axes and several turnout handednesses, so whichever way this is settled the engine already supports it.

Candidate resolutions.

  • (a) Specify a mix. Give the six turnouts named orientations and split the three straights between axes — e.g. 2 east-west, 1 north-south. Concrete, and it makes the draw meaningful: the card you need may not come.
  • (b) Orientation chosen on placement. A track card is generic, and the player picks how to lay it when playing it. Removes the drought risk entirely and matches how model railroaders think, at the cost of making track cards much more flexible — arguably too flexible, since a turnout is a physical object.
  • (c) Rotationally symmetric cards. Each card carries all four ports. Simplest to implement and impossible to be stuck with, but it discards §A.1 entirely, which is one of the game's most characterful rules.

Decision — (b): orientation is chosen when the card is placed. A track card is generic; the player decides how to lay it. §A.1's constraint survives intact — a turnout's two legs still never join each other — only the rotation is free.

Measured, not argued. With orientation fixed at a default, 100 simulated Office Areas grew only sideways and downward, never upward: an east-west straight has no south port, so it could never attach to the Office's north junction stub. Gap 8's fix was silently undone and Appendix A's switching puzzle was unreachable.

before (fixed orientation)        after (chosen on placement)
  row  0: 561 cards                 row  3:   1
  row -1: 324                       row  2:  30
  (nothing above the mainline)      row  1: 193
                                    row  0: 456
                                    row -1: 186
                                    row -2:  17
                                    row -3:   2

Why not (a), a specified mix. It would have to be tuned so no plausible draw leaves a player unable to build — hard to guarantee, and easy to break whenever the deck is retuned.

Why not (c), rotationally symmetric cards. It discards §A.1 entirely, one of the game's most characterful rules.

Implemented. variantsFor() in src/engine/track.ts enumerates the rotations — 2 for a straight, 6 for a turnout, 2 for a run-around — and the chosen index rides the cardPlayed event, so replay reproduces the same layout.

Consequence for print-and-play. Card art must read correctly at any rotation the card allows.


Gap 12 — Balance targets are NOT reachable as specified

Status: OPEN, and the earlier "validated" reading is withdrawn.

What changed

An earlier run reported mean 5.0 Revenue/player/Day and a ~35% win rate, apparently confirming the Gap 10e prediction. That was an artifact of a scoring bug. Unloading was being scored through the same path as loading, so an unload paid a full Revenue point after ONE Laborer action instead of four. End-of-game statistics exposed it by showing that loadAdvanced never fired in 200 games.

With the pipeline corrected, honest numbers for 200 solitaire Standard games:

Observed Gap 10e predicted
Revenue per game 4.6 mean 19
Revenue/player/Day ~0.9 56
Win rate vs target 20 0 / 200
Freight share of gross 21%

Nobody wins. The targets of 10 / 20 / 45 are unreachable at this level of play.

Is that the game or the bot?

Still the bot, at least in part. It spends about 10 Laborer actions per game against roughly 900 available (5.3 facilities × ~2.5 Laborers × 60 Stages). It is leaving almost the entire freight capacity of the railroad unused. Until that gap closes, the targets cannot be judged.

What the correction does establish firmly: a completed freight load costs four Laborer actions plus a stocking action plus the switching to spot a car — far more than the model assumed. The card-reference.md §7 estimate of 56 Revenue/Day was built on that mistake and should be treated as unfounded until re-derived.

Strategy signal — the first real one

Games bucketed by how their Revenue was earned:

Strategy Games Mean Revenue
passenger-only (freight 0%) 94 4.8
passenger-heavy (<33%) 11 8.2
balanced (3366%) 37 7.7
freight-heavy (>66%) 6 5.3
freight-only (100%) 18 1.2

Mixed strategies beat pure ones, and pure freight is much the worst. That is a genuinely good sign for the design — it means the two revenue systems complement rather than substitute. Worth re-checking once the bot improves, since a weak bot could produce this pattern by accident.

The bot was NOT the dominant gap — measured

The obvious suspicion was that the bot simply failed to use its Laborers. Measured over 20 games:

Load/Unload decision points 1496
...where a Laborer action was legal 238 (16%)
Laborer actions the bot took 226

The bot takes 95% of the Laborer actions available to it. The problem is that they are legal only 16% of the time. Attributing the shortfall to bot policy was wrong.

What is actually limiting freight

A train stands at the Office only 18% of Stages. Measured across 20 games (1200 Stages):

Stages with a train at the Office 213 (18%)
Mean trains in play 2.27 of 4 Crew Trays
Stages where a due train was held for want of a crew 140 (12%)
Trains scheduled per game 6.1 of a possible 12

Every freight point needs a car brought in and the loaded car taken out, and both require a train standing at the Office. At 18% of Stages that is roughly 11 opportunities per game, capping freight at perhaps 5 points regardless of how well the player switches.

Two things follow:

  1. Traffic volume, not labour, is the binding constraint on freight. The tunable that matters most is how many trains are scheduled and how fast they turn around — Crew Tray count (players + 3, so only 4 in solitaire) and the 2-region Mainline card are both implicated.
  2. Solitaire with one Office may simply be a thin configuration. It is the MVP target, so this matters: the economy may only come alive with more Offices and a fuller timetable.

Bot improvements made, and what they bought

Before After
Freight share of gross revenue 5% 31%
Laborer actions per game 10.1 13.4
Cars dropped (mostly junk before) 19.0 13.8
Mean net revenue 4.6 4.9

The largest single fix: the bot was dropping whichever car happened to sit at the tray's end, which silted industry tracks up with the wrong commodity — 532 coaches were observed parked on freight sidings across 20 games. §A.3 forces cars off in seated order, so spotting the right car requires re-ordering the consist with the six Moves. That is the game's central switching puzzle and this bot still does not attempt it; it merely declines to drop a car that would do no work.

Next steps

  1. Watch a game. The remaining questions are about whether 18% train presence and a 6-of-12 timetable feel right, which is a judgment call, not a measurement.
  2. Get the bot to schedule all 12 trains (it reaches only 6.1), which should roughly double freight opportunity.
  3. Only then decide whether the targets move or the economy does.

Gap 13 — Deck scaling by player count

Status: OPEN — measured; recommendation below.

The question asked: should the 52-card deck be doubled?

Measured answer: no. 15 games per player count, Standard length:

Players Draws/game Reshuffles Trains scheduled Freight facilities per player
1 38 0.0 8.0 6.2
2 47 0.0 12.0 5.0
3 43 0.0 12.0 3.3
4 40 0.0 12.0 2.5

The deck never depletes. Zero reshuffles at every player count; a solitaire player sees about 74% of it. Deck size is not the constraint, so doubling would not relieve any pressure — and it would actively hurt, by halving the density of Timetabled Train cards. Trains are the scarcest useful card, and they are what drives all traffic.

Trains also cannot meaningfully double: the twelve are unique by number, and their numbers carry seniority (§8). Two Train 5s would be ambiguous. Note the table shows all 12 already get scheduled at 2+ players.

Where there IS real pressure: facilities, at higher player counts. Freight facilities per player falls from 6.2 in solitaire to 2.5 at four players, from a fixed supply of 10. A facility is the only route to freight revenue, so that is a genuine squeeze — and it is a scaling problem, not a deck-size problem.

Recommendation: scale the buildable portion with player count, and leave trains fixed. Add roughly 4 cards per player beyond two — 2 freight facilities, 1 track, 1 Office upgrade — giving 52 at 12 players, 56 at 3, 60 at 4. This keeps train density high in the early game, where traffic needs to get started, while giving each player material to build with.

Not yet decided, because it interacts with Gap 12's variance question: more facilities per player would raise the ceiling on the runaway mode as well as the floor.