979 lines
52 KiB
Markdown
979 lines
52 KiB
Markdown
# 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`](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.5–4.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 1–12 |
|
||
| 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 (X9–X12), 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 9–12 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 1–12 | §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 (X9–X12) 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 **5–8 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](#10e--revenueday-revalidated-and-the-gap-6-targets-revised).** 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`](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 1–4 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 ~2–3 drawing, leaving 5–6 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 | 5–6 |
|
||
| 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 5–6 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 (33–66%) | 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 1–2 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.
|