Decision — a Reach is a distance in tiles
Taken 2026-09-09. Binding. The owner put the question and delegated the
answer, as with 01-decision-turn-model.md. This document records the
evidence, the decision, what it changes, and what it does not, so that neither
half is re-litigated from memory.
The decision. Every Reach in 12-economy.md §13 is a number of tiles of
open ground. The supply fill stays a cost-limited Dijkstra expansion, and it
converts a Reach to a cost budget by multiplying by the foot entry cost of
Plains — 4 in 01-game-rules.md's movement-cost table. EC-1675 states it;
EC-1680 spends it; EC-1590's Town 8 / City 12 / Metropolis 18, the Railhead's
+8 and EC-1600's Depot 10 keep the numbers they always had.
The question
EC-1600 gives an emplaced Depot Reach 10. EC-1590 gives a city Reach 8, 12 or
18 by class. EC-1680 spends a Reach as a movement-cost budget over the
terrain table, evaluated for a canonical foot class (EC-1580).
The cheapest land tile in the game costs 4 for foot. So "Reach 10" is either ten tiles or two and a half, and the two readings differ by a factor of four in every direction on the map.
The evidence
Measured, on the shipped generator, before the change — every seat's own fill, two seeds per size:
| capital | Reach | Supplied radius | Extended radius | nearest neutral city | Isolated tiles to cross | EC-1740 cost |
|---|---|---|---|---|---|---|
| Town | 8 | 2 tiles | 3 tiles | 14 tiles | 11 | 100% of maxStrength — fatal |
| City | 12 | 3 tiles | 4 tiles | 14 tiles | 10 | 75% |
| Metropolis | 18 | 4–8 tiles | 6–13 tiles | 8–14 tiles | 0–5 | 0–30% |
A seat's entire supply network on a Standard map was 24 tiles out of
7,488 — 13 Supplied and 11 Extended. On every shipped size, no city
lay within Reach 10 of any capital. A Town-capital seat could not reach a
single city alive: 11 tiles of Isolated ground at an infantry's two tiles a
turn is six isolated turns, and EC-1740's schedule (5, 15, 30, 50, 75, 100
cumulative) kills a unit in six.
That is the observable signature the project had already recorded and
attributed elsewhere: on a 200-turn Standard game, 116 SupplyCut against
111 UnitLost, 100 units built, and zero combat — essentially every unit
built died of isolation. Eight successive changes to the Constraint Floor's
movement policy were measured and reverted against it, because no rule about
when a unit turns back can change a subtraction.
Two requirements in §13 already read Reach as tiles, and both are arithmetically false under the cost reading:
- EC-1670's rationale: "eight Depots at Reach 10 is eighty tiles of chain past the last integrated city". Spent as cost, eight Depots reach sixteen tiles on the best ground in the game.
- EC-2210: "The fill MUST be bounded per source at
O(reach²)tiles". A disc of radiusreachholdsO(reach²)tiles; a cost budgetreachholdsO((reach / 4)²).
Nothing but the mechanism of EC-1680 read Reach as cost, and the mechanism never stated a magnitude. The document's other radius — the Academy's "Chebyshev 12" (EC-470) — is stated in tiles, at a comparable magnitude.
And the design intent is explicit in the section's own preamble: supply is "the brake that makes distance cost something", and EC-1590's rationale describes an offensive tempo tied to a governing tempo — "you cannot leapfrog: taking the next city forward does not extend your network until you have spent thirteen turns and an administrator making it yours". That presupposes a player who can take the next city forward. A 24-tile network on a 7,488-tile map is not a brake; it is an off switch.
Why the conversion, and not one of the alternatives
Restate the numbers as costs (Town 32, City 48, Metropolis 72, Depot 40). Equivalent in behaviour, and rejected: it leaves every figure in §13 four times larger than the geography it describes, so a reader divides by a constant to picture the map, and EC-1670's and EC-2210's sentences still need rewriting to be true. The numbers 8, 12, 18 and 10 are the geography; the cost is an implementation unit.
Make the fill a Chebyshev radius. Rejected outright: it deletes EC-1580's
canonical foot class, EC-1700's water discounts, and the whole of "the
question supply answers is is there a road home". Terrain would stop
mattering to supply, which is the mechanic's only purpose.
Leave it and treat the AI's failure as an AI problem. Rejected on the measurement: it is arithmetic in two rules documents, and no ninth movement rule can fix it.
The conversion constant is named as the foot entry cost of Plains rather
than as the literal 4, because 01-game-rules.md owns the cost table and
12-economy.md owns Reach. In the core it is OPEN_GROUND_STEP in
economy/supply.ts, a constant rather than a lookup into the loaded terrain
set: a mod that repriced Plains would otherwise silently redraw every supply
envelope in the game, and a set with no tile named Plains would have nothing to
read. A test asserts the shipped set's open ground still costs it, so a
divergence fails rather than drifts.
What it changes
The geography, measured after the change:
| capital | Reach | Supplied radius | Extended radius | Isolated tiles to the nearest city | EC-1740 cost |
|---|---|---|---|---|---|
| Town | 8 | 8–13 tiles | 12–21 tiles | 0–2 | 0–5% |
| Metropolis | 18 | 20–26 tiles | 20–39 tiles | 0 | 0 |
A Standard seat's network goes from 24 tiles to 283–626. The first ring of neutral cities is reachable with at most one isolated turn, holding it still requires Integration 50 or a Depot, and the Depot chain of EC-1660 and EC-1670 becomes the instrument its rationale describes — ten tiles a hop, eighty tiles in eight.
Rough ground still shortens the envelope, in proportion to what it costs to cross: a Town's eight open tiles is two tiles of marsh. That is the brake, applied to the geography its authors wrote.
Every state hash in the project moved that could. Measured rather than
assumed: 18 of the 33 corpus games re-emitted and 15 are byte-identical
— the unmoved fifteen are the idle and victory-track games, whose units stand
on or beside their own cities and were Supplied under either reading. Both
committed containers moved (reference-game.elc
23203b39e11fcb4a → bde4bbed93e19821, first-finish.elc
96309774477791f3 → c621568d3dd7da33), their logs and initial.bin untouched;
the two CLI pins follow them. The AR-960 reference hash did not move — the
determinism fixture is the harness's own mini-engine and never runs a fill.
What it does not change
- No requirement's number. EC-1590, EC-1600, EC-1630 and the Railhead trait keep their figures; EC-1675 states their unit.
- The Extended multiplier,
3/2, is a separate authored decision and is untouched. - The anchoring rule and its eight-round cap (EC-1660), the blocking rule (EC-1690), the water discounts (EC-1700), and the Integration-50 gate.
- The city spacing GR-1490 produces. The generator was never wrong; it was set against the Reach this document states, which is now the Reach the fill spends.
What is still open after it
RulesVersionis unbumped. AR-880 makes any rules-observable change bump it, and this is the most rules-observable change the project has made. No re-emission in the project's history has ever bumped either version axis, and starting them is a metadata decision with its own standing item; this ruling does not settle it, and the containers carry1.0.0as before.- The Duel tier now has almost no supply mechanic: a Metropolis capital reaching 20 tiles covers most of a 40×28 map. That may be correct for a tier whose whole point is one theatre, and if it is not, the lever is the tier's city classes rather than Reach.
- AI-560's Depot chain is still unbuilt. It is now worth building for the reason its own requirement gives, rather than as a workaround for an arithmetic hole.