Jesse's ruling on TODO #117: accept the leak in Co-op; otherwise, save only at the end of the game. `/api/save` answers 403 SAVE_AFTER_FINISH to a Competitive seat while the game runs, and serves a Co-op or one-seat game at any time. The Save replay button says why and stays disabled until the end. Pinned in the HTTP suite; documented in rules.md §6.4. Also corrects the 0.8.3 changelog entry: 0.8.2's notes did name the Second Section card going into the deck; what was missing was the save check after it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FrCWubm9GAftYCm2hWdKwK
166 lines
10 KiB
Markdown
166 lines
10 KiB
Markdown
# Station Master — Mainline Deck
|
||
|
||
**Version 0.8.6** · 2026-09-29
|
||
|
||
**Scope:** the tarot-sized Mainline cards placed between Offices — how the deck is dealt, what a
|
||
card does to a train crossing it, and the Home Deck cards played onto one.
|
||
|
||
> **The card table in this document is GENERATED from `src/engine/content.ts`** and checked by a
|
||
> test, so it cannot disagree with the game. `npm run build:cards` rebuilds it; do not edit it by
|
||
> hand. The prose explains how the deck is used; the table is the record of what is in it.
|
||
|
||
## How Mainline cards work
|
||
|
||
At setup the game lays one Mainline card between each neighbouring pair of Offices and one beyond
|
||
each end Office, between it and a Division Point — so a game with *N* players uses **N + 1** cards.
|
||
They are **dealt from a finite deck without replacement**, so no Division can hold
|
||
two of a card printed once. The two Division Points are the fixed ends of the Division and are not
|
||
in the deck: `buildDivision` lays them itself.
|
||
|
||
A card does not belong to either neighbouring Office. It is shared Division.
|
||
|
||
### Crossing time is REGIONS, not mph
|
||
|
||
A card is divided into **regions**, and a train advances **one region per Stage**. Crossing time is
|
||
therefore `regions − startRegion`, and nothing else. **The printed mph is scenery.**
|
||
|
||
This is the part most likely to be remembered wrong. The printed mph does not set
|
||
the cost and a Slow train added a Stage to *every* card. It does not. Four things move a train's
|
||
start region and nothing else does:
|
||
|
||
1. **The card's own back region.** The Uncontrolled Siding and the Interchange print a back region
|
||
that is not part of the road, so a train running through begins past it.
|
||
2. **A card that prints a Fast and a Slow start — and only Hilly does.** A fast train starts one
|
||
region along and crosses in 1 Stage; a slow one takes 2. **No other card reads a train's
|
||
Fast/Slow rating at all.**
|
||
3. **The permanent Heavy Grade modifiers**, each moving a train one region up the hill.
|
||
4. **Occupancy**: arriving to find the card occupied can put a train in the siding, a region behind.
|
||
|
||
No crossing ever takes less than one Stage.
|
||
|
||
### Traffic
|
||
|
||
Only **Double Track** lets two trains stand on one card, so a following train is not held behind a
|
||
slower one. Every other card holds one train at a time. The **Uncontrolled Siding** is not a passing
|
||
card: arriving to find a train already there puts you in the siding a region behind it — you do not
|
||
run into it, and it costs you the extra Stage instead.
|
||
|
||
Whether a following train may enter an occupied card at all is the Superintendent's ruling (§8.1,
|
||
Rules §4.5). Getting it wrong is what causes collisions.
|
||
|
||
## The deck
|
||
|
||
Ten drawable cards — Plains twice, the other eight once each — plus the two Division Point cards,
|
||
which are not drawn.
|
||
|
||
| Card | Copies |
|
||
| --- | ---: |
|
||
| Plains | 2 |
|
||
| Curves | 1 |
|
||
| Hilly | 1 |
|
||
| Heavy Grade | 1 |
|
||
| Double Track | 1 |
|
||
| Uncontrolled Siding | 1 |
|
||
| Tunnel | 1 |
|
||
| Trestle | 1 |
|
||
| Interchange | 1 |
|
||
| East / West Division Point | 1 each, not dealt |
|
||
|
||
The PDF art labels the Interchange "Yard". This reference uses **Interchange** throughout, to keep
|
||
it apart from the Division Yard, the Classification Yard, the Yard Office and the Small Yard — five
|
||
different things.
|
||
|
||
**Region counts and entry points per card are in the table under § The deck.**
|
||
|
||
<!-- BEGIN CARDS: mainline -->
|
||
| Card | Regions | Default entry | Fast / slow entry | Trains may pass | Extra may start |
|
||
| --- | ---: | ---: | --- | :---: | :---: |
|
||
| Plains | 1 | 0 | — | — | — |
|
||
| Curves | 2 | 0 | — | — | — |
|
||
| Hilly | 2 | 0 | 1 / 0 | — | — |
|
||
| Heavy Grade | 3 | 0 | — | — | — |
|
||
| Double Track | 1 | 0 | — | yes | — |
|
||
| Uncontrolled Siding | 2 | 1 | — | — | — |
|
||
| Tunnel | 2 | 0 | — | — | — |
|
||
| Trestle | 1 | 0 | — | — | — |
|
||
| Interchange | 2 | 1 | — | — | yes |
|
||
|
||
The Mainline deck is 10 cards; the two Division Points are the fixed ends of
|
||
the Division and are not dealt. What each card does, in the words the game uses on screen:
|
||
|
||
- **Plains** — 1 region — one Stage each. · 1 Stage for every train. · One train at a time — anything following has to wait for it to clear.
|
||
- **Curves** — 2 regions — one Stage each. · 2 Stages for every train. · One train at a time — anything following has to wait for it to clear.
|
||
- **Hilly** — 2 regions — one Stage each. · This card reads the train's FAST/SLOW rating: a fast train starts further along and crosses in 1 Stage, a slow one in 2 Stages. No other card cares which it is. · One train at a time — anything following has to wait for it to clear.
|
||
- **Heavy Grade** — 3 regions — one Stage each. · A grade, climbing eastward. 3 Stages to climb it and 3 Stages to run down, before help. Helpers start an UPHILL train a region further on; Brakeman does the same DOWNHILL and Airbrakes another again, and Airbrakes cannot be played without Brakeman. Never less than one Stage. · One train at a time — anything following has to wait for it to clear.
|
||
- **Double Track** — 1 region — one Stage each. · 1 Stage for every train. · TRAINS MAY PASS — two trains may stand on this card at once, so a following train is not held behind a slower one.
|
||
- **Uncontrolled Siding** — 2 regions — one Stage each. · A train with the card to itself starts past the back region and is across in 1 Stage. · UNCONTROLLED SIDING — arrive to find a train already here and you take the siding, a region behind it. You are not in the same place, so you do not run into it; it costs you the extra Stage instead. · One train at a time — anything following has to wait for it to clear.
|
||
- **Tunnel** — 2 regions — one Stage each. · 2 Stages for every train. · One train at a time — anything following has to wait for it to clear.
|
||
- **Trestle** — 1 region — one Stage each. · 1 Stage for every train. · One train at a time — anything following has to wait for it to clear.
|
||
- **Interchange** — 2 regions — one Stage each. · A train with the card to itself starts past the back region and is across in 1 Stage. · An Extra beginning its run here starts in the back region and takes the extra Stage. · One train at a time — anything following has to wait for it to clear. · This is the one Mainline card with a yard, so an Extra Train may be made up and started here. Its printed car-sorting is NOT implemented — a consist is re-ordered at a Small Yard in a district.
|
||
<!-- END CARDS: mainline -->
|
||
|
||
## The Interchange, and what it does NOT do
|
||
|
||
The Interchange prints a car-sorting capability. **It is not implemented, and never has been.** The
|
||
one thing the card's `sortsCars` flag actually gates is that an **Extra Train may be made up and
|
||
started here** — it is the Mainline card with a yard, which is why §7 allows it. An Extra
|
||
starting here begins in the back region and takes the extra Stage.
|
||
|
||
Re-ordering a consist is done at a **Small Yard** in an Office Area, for one switching Move. See
|
||
Rules §4.3.
|
||
|
||
## Heavy Grade modifiers
|
||
|
||
Home Office cards, played onto a Mainline card during a player's Draw option.
|
||
|
||
| Card | Placement and effect |
|
||
| --- | --- |
|
||
| Brakeman | Heavy Grade only. A **downhill** train starts one region further on. |
|
||
| Airbrakes | Heavy Grade only, and **Brakeman must already be on that card**. A downhill train starts one region further again. |
|
||
| Helpers | Heavy Grade only. An **uphill** train starts one region further on. |
|
||
| Realignment | Only onto an **unoccupied** Mainline card, and only these four conversions: Plains → Double Track, Curves → Plains, Uncontrolled Siding → Double Track, Trestle → Uncontrolled Siding. |
|
||
|
||
A Heavy Grade is 3 regions, so it is 3 Stages to climb and 3 to run down before help. Modifiers
|
||
never reduce a crossing below one Stage.
|
||
|
||
> **A Realignment can be a card with no legal target.** Only four of the nine Mainline types convert
|
||
> at all — Plains, Curves, Uncontrolled Siding and Trestle — so a Division dealt Heavy Grade, Tunnel
|
||
> and Double Track has nowhere to play one. A card already converted cannot be converted again, and
|
||
> a card with a train on it is refused while the train is there. The card says which four it can
|
||
> convert when you look at it in hand.
|
||
|
||
### ABS Signals — an Enhancement, but it lives out here
|
||
|
||
**ABS Signals is dealt from the Home Office deck as an Enhancement, and it is the one Enhancement
|
||
that is not played into a district.** It goes onto a **Mainline card — any of them**, not only a
|
||
grade — and takes no square in anybody's Office Area.
|
||
|
||
What it does: trains on that card **will not rear-end each other**. A following train is held short
|
||
of the one ahead instead of running into it, so the Superintendent has no §8.1 judgment to make and
|
||
no collision is scored. It is the only thing besides a Red Flag that prevents a rear-end collision
|
||
out on the Mainline, and unlike a Red Flag it stays on the card for the rest of the game.
|
||
|
||
On the board a card carrying it draws a **signal mast with a lit lamp** at its top-right corner; the
|
||
three grade helpers draw as **BRK**, **AIR** and **HLP** beside the card's name. Realignment draws
|
||
nothing, because a realigned card simply becomes the card it was converted into.
|
||
|
||
## Heavy Grade orientation is settled, not missing
|
||
|
||
Heavy Grade orientation is **rolled from the seed**, not chosen by a player. **This is a decision,
|
||
not a gap.**
|
||
|
||
The card prints "(Up)" and "Player sets orientation", which assumes the card has an owner. This one
|
||
does not: the Division is laid `DP · Mainline · Office · Mainline · … · DP`, so a Heavy Grade always
|
||
sits **between two districts**, or beyond an end Division Point beside one — never inside a single
|
||
player's district.
|
||
|
||
Orientation is not cosmetic. Brakeman and Airbrakes help a train running **downhill**, Helpers helps
|
||
one running **uphill**, and odd-numbered trains run west while even run east. Turning the card
|
||
around decides which modifiers are worth anything and which direction of traffic is favoured, for
|
||
the whole game. Handing that to one of two neighbours advantages them over the other, and neither
|
||
has a fair claim to it.
|
||
|
||
So the orientation is **rolled from the game's seed**. That is deterministic, roughly even
|
||
(51/49 east/west), identical in solitaire and multiplayer, and keeps setup non-interactive: the game
|
||
has no setup phase, so asking would mean interrupting play before the first Local Operations.
|