Ancients Wargame — Core Rulebook v3. The canonical, version-controlled rules (served in-game at /rulebook.html). Edit this file to change the rules; where the code and the rulebook differ, the rulebook wins.

ANCIENTS WARGAME

Core Rulebook — v3.17

A Cohesion-First Tabletop Wargame of Ancient Battle

Playtest edition — all design decisions to date, consolidated

Compiled 3 June 2026 (v3) · last revised 1 August 2026 (v3.17). Version history in §14.

Designer's Note

This edition consolidates every settled mechanic into one playable whole. The design is now considered ready to test rather than to debate: from here, questions are answered with figures on a table, not in the abstract.

The system models ancient battle as a contest of cohesion — armies are defeated when their formations lose order, not when casualties are tallied. Four axes drive every combat, each mapping to a different real-world thing:

“Battles are decided by overlap and pressure. Cohesion creates advantage; fragmentation invites collapse.”

Contents

1. Design Philosophy

2. Components & Scale

Base. The standard miniature mounting (e.g. four figures on a stand). The Base is the unit at which combat is resolved. All Bases share the same frontage, but each carries a depth — measured in Bases: a depth-D Base is D Bases stacked in one hex (a compact deep formation). Depth buys staying power (a deep Base absorbs more before breaking and counts as more when it does, §6, §12.1), a scoped combat bonus (§9.7), and prices manoeuvre (§5.5). A lone Base is depth 1.

Block. A contiguous group of Bases of the same troop type, touching flank to flank — a single rank (depth lives on each Base, not in ranks behind). The Block is the manoeuvre unit and the level at which cohesion is tracked. Blocks exist mechanically only to generate overlaps; fragmentation removes them.

Base-width (BW). The unit of measurement for the whole game — one Base frontage. Measuring in BW keeps the game independent of figure scale and ties distance to the same frontage the overlap rules use.

Default distances (tunable in playtest): foot move 2 BW; light foot and skirmishers 3 BW; cavalry 4 BW. Missile range is per weapon (§10): javelin 2 BW, bow 4 BW, sling 5 BW (a generic missile is 3 BW) — every range is ≥ 2 so a shooter always out-ranges melee.

Spatial substrate. These rules are geometry-agnostic, but the digital playtest and reference substrate is a hex grid with edge-facing (v3.17): each Base occupies one hex (one BW) and faces an edge, which gives it a true forward — it can march straight ahead — and a mirror-symmetric split of its six faces into one front · two oblique-front · two flank · one rear, with distance measured in hexes. The frontal arc (front + both obliques) is the penalty-free zone; the flanks and the single rear face are where position tells. The spatial model is specified separately (edge-facing replaced the earlier vertex-facing, which replaced a square grid); nothing in these rules assumes a particular grid.

3. Units: Quality, Weight & Type

Every Block has a quality class, a weight rating, a troop type, and possibly one or more special rules.

3.1 Quality (training) — dice

Quality is expressed entirely as dice: Elite rolls two and keeps the best, Regular rolls one, Levy rolls two and keeps the worst. There is no quality modifier table. This same keep-best/keep-worst rule serves both the movement test and combat — only the type of die differs by context.

Quality Dice kept
Elite best of two
Regular one
Levy worst of two

Which die

Because keep-best/keep-worst feeds on the dice's tails and the averaging die has thin tails, quality reads as reliability rather than raw power: an Elite lands 4–5 most of the time and rarely whiffs, a Levy rarely spikes, a Regular is the most variable. (The retired alternatives — a d4 tier, a no-dice mode, and a flat quality table — are not used.)

3.2 Weight (mass & equipment) — a relative ladder

Weight is a number from 1 (lightest) to 5 (heaviest), assigned per era on the army list. It is relative: a hoplite is a 3 whether it faces lighter Persians or the heavier phalanx, and context decides whether that is an advantage. Weight drives the combat result-shift (Section 9.4) and the terrain cost (Section 8). Because the combat shift is capped at 2, the 1–5 ladder is effectively only 0/+1/+2 in melee (Cataphract-5 vs Skirmisher-1 is the same +2 as Hoplite-3 vs Skirmisher-1); the full range only bites in the terrain formula.

3.3 Troop Types

Default weight ratings, articulation (reform class, §6.2), and special rules (tunable per army list):

Type Weight Articulation Special rules
Heavy Infantry 4 Drilled Steady spears (if spear-armed)
Medium Infantry 3 Trained
Light Infantry 2 Trained
Skirmishers 1 Trained Evade
Warband 3 Inarticulate Shock (it is simply shock infantry)
Pike 4 Massed Steady spears; deep melee support (§9.7)
Cavalry (shock horse) 4 Trained Shock
Cataphract / Knight 5 Trained Shock
Light Cavalry 2 Trained Light-horse (no shock; optional pursuit)
Chariot 4 Trained Shock

Articulation sets how a type re-cuts its formation (reform, §6.2): drilled at half cost and easier tests, trained at full cost, massed at double cost and harder tests, inarticulate not at all. Quality then sets whether the re-cut comes off (the execution test).

General rules, army-specific abilities. The rules above are the general system; individual armies customise their troops through the abilities on the army list — bow / sling / javelin / missile (§10), shock / evade / steadySpears / lightHorse (§11), and massedVolley (§9.7/§10). The same "Medium Infantry" can be a melee-shy Persian sparabara archer block (bow, massedVolley) in one list and a close-order spear line in another — the type sets the defaults, the army list tunes the unit. See docs/design/army-lists.md.

4. Sequence of Play

Players alternate whole-army turns (IGOUGO), each running in four phases — but the phases are not all one-sided:

  1. Move — the active player only moves Blocks (movement test, difficult-move and terrain costs, chaining; charges move into contact).

  2. Shoot — both sides' missile troops fire.

  3. Combat — every melee on the table is resolved; the active player chooses the order.

  4. Recovery — the active player's uncommitted Bases recover Fatigue (Section 6.1).

Phase symmetry. Both players act in the Shoot and Combat phases; only the active player moves and recovers. So a locked melee or a shooting exchange is fought on each player's turn — static fights grind at double rate per round. Ordering matters in Combat: a push-back in one fight can strip an overlap before the next resolves, so the active player sequences combats to engineer cascades — a deliberate initiative advantage.

5. Movement

The movement test. Every voluntary move requires a movement test: roll your quality dice and equal or beat the Block's average Fatigue (Section 6), or the move does not happen. The first move each turn is free of Fatigue cost — it is not penalised — but it is still tested, so a fatigued Block can fail to move even on its first attempt.

5.1 Difficult moves

A difficult move — changing formation, interpenetrating friends, or crossing difficult terrain — costs Fatigue, applied after the move. Simple advances on open ground are free. Re-facing the body in place (the ±60° pivot of the hex substrate) is free by default; its Fatigue cost is a tuning knob, in case free pivoting makes formations too protean.

Forward and sidestep (v3.17). With edge facing a Block may step straight ahead through its front face, or slide one hex through either oblique-front face without turning — dressing the line, sidestepping to cover a gap. It may not step backward or through a flank; giving ground is a combat result (§9.6), not a move.

5.2 Extra moves (chaining)

5.3 Charges & shock

A charge is a move ending in contact. A Shock unit (Section 11) generates shock only when it makes contact on a chained second move, the first having been a full move — so shock is an extra move, paid for and tested like any other, and a charge can fail to connect.

5.4 The two movement costs are independent

They do not interact except that both drain Fatigue — so rushing through bad ground is prohibitive (a rushed second move into heavy woods can cost +3 in a single tile).

5.5 Wheeling a line

A normal move keeps a formation's footprint; the in-place pivot only re-faces it (flipping a line to a column). To swing a block to a new facing while it keeps its shape, wheel it — an atomic 60° turn about a chosen flank unit.

5.6 Column march (follow-the-leader)

A column moves by following its lead unit. The leader makes a normal move; every other unit then advances along the leader's exact path, each taking the position and facing the unit ahead of it had — the file slides forward like a snake, bending through any turn the leader made. A column covers a full move's distance and can turn corners at no frontage penalty (unlike a wheel), but it presents a one-unit front and is horribly exposed in contact. Travel in column; fight in line.

6. Fatigue & Cohesion

Fatigue is tracked per hex, and depth is measured in Bases (§2): a depth-D Base is D Bases stacked in one hex. Each hex's Fatigue is the total over its D ranks — a fresh depth-D hex holds D (each rank at 1). A Block's true size is Σ depth (its Bases counted with their depth), and its cohesion is the plain average per Base — total Fatigue ÷ Σ depth — which the Block breaks past when it exceeds 6 (Section 12). Equivalently, a Block absorbs 6 × Σ depth total Fatigue before it goes: the depth-3 + depth-2 + depth-1 block is 6 Bases, absorbs 36, and its loss counts as 6 Bases (§12.1).

The state table reads a Base's per-rank Fatigue (its hex total ÷ its depth — the tiredness of a single rank):

Fatigue (per Base) State Meaning
1–2 Fresh Fully ordered
3–4 Pressed Disordered but functional
5–6 Shaken On the brink
over 6 Broken Formation lost; the Block breaks and routs (on the Σ-depth-weighted average)

6.1 Recovery

Recovery runs at the end of the active player's turn, per Base.

6.2 Splitting & merging

In the Move phase a player may freely split a Block into smaller legal Blocks, or merge adjacent legal Blocks (same type, contiguous, same orientation, unengaged for a merge). Splitting is free — coming apart into legal sub-Blocks in good order costs nothing. Only merging costs Fatigue, paid at the seam: each Base that ends up on the join — adjacent to a Base of a formerly-separate Block — takes +1 Fatigue, once, however many such neighbours it has.

Splitting from an engaged Block (v3.13). A Block in contact may still split, provided the peeled Bases are not themselves in a direct melee — a 1-to-1 front-edge engagement (§9.1). Bases that are merely overlapping (lapping an enemy but not the paired combatant), adjacent on a flank, or free at the rear can peel off while the Bases actually fighting stay put. So a partly-engaged line can detach its uncommitted wing or overlaps to send them elsewhere; only the men in the melee itself are locked. (Merging still requires both Blocks unengaged.)

Reform — trading frontage for depth (widen & deepen). Because depth is a Base stat (§6), not ranks on the table, split and merge only change frontage; depth is managed by reforming. In the Move phase a Block not in contact redistributes its Bases between frontage and depth, conserving manpower — frontage × depth is preserved, the same men in a new formation. This is the only way to change a unit's depth once battle is joined.

6.3 Density — the three orders (v3.14)

Depth (§6) is one formation axis — ranks front-to-back; density is the orthogonal one — how tightly the rank is packed, the tacticians' three intervals. It is the receive-vs-manoeuvre dial, a per-Base state:

Density does three things, all tunable:

Changing order. A Block shifts density one step (open↔fighting↔close) in the Move phase while not in contact, at a structural cost of density.changeFatigue per rank (dressing or opening the ranks). The change ends the Block's move — it halts to form up. Only drilled, shield-bearing types can shift at all (density.formsClose: heavy foot, pike, medium foot, cavalry, cataphract); light foot are fixed open (dispersed by nature) and the warband is fixed fighting (it neither locks shields nor skirmishes). So bracing to receive is a drill the phalanx and legion have and the horde does not. (Config: density.missileOrderMod, density.meleeMod, density.changeFatigue, density.formsClose.)

7. The Combat Axes — Overview

Before the detailed combat rules, the four axes in one place. A combat is resolved base by base; for each engaged pair:

8. Terrain

Terrain has two independent properties: Going (footing) and Elevation (flat or hill), both on the 1–5 scale.

8.1 Going & movement cost

Going values: open 5, light woods 4, heavy woods 3, rough ground 2, swamp 1. The Fatigue cost to move through terrain is the unit's weight minus the Going value, minimum 0.

Terrain (Going) Knight (5) Hoplite/Roman (3) Skirmisher (1)
Open (5) 0 0 0
Light woods (4) 1 0 0
Heavy woods (3) 2 0 0
Rough (2) 3 1 0
Swamp (1) 4 2 0

Open ground is free for all; skirmishers pay nothing anywhere; heavy troops pay steeply in bad ground. No “impassable” rule is needed — the escalating cost is the deterrent (a knight breaks crossing a forest in ~3 tiles). Reserve a flat Impassable flag only for true obstacles (cliffs, deep water).

8.2 Weight-cap in combat

A Base's effective combat weight is capped at the lowest Going value any of its Bases touch. A knight in heavy woods fights as weight 3; in swamp as weight 1 (equal to skirmishers). Per-base: only Bases actually in the terrain are reduced. Skirmishers (weight 1) are never reduced. The same threshold — weight greater than Going — governs both the move cost and this cap.

8.3 Hills (Elevation)

A hill is firm footing, so it does not cap combat weight.

9. Combat Resolution

Base by base. Each engaged pair of opposing Bases fights its own combat. There is no attacker/defender: the outcome is symmetric, and which Base charged in matters only for shock.

9.1 The combat sequence

For each engaged pair, in order:

  1. Effective weight. Cap each Base's weight at the lowest Going value it occupies (8.2).

  2. Roll quality dice. Each Base rolls its quality dice and keeps one result (3.1).

  3. Add positional modifiers to each kept result: overlaps (9.2), flank/rear (9.3), high ground (8.3), and shock if it applies (11).

  4. Compare totals to get the raw difference.

  5. Apply the weight result-shift (9.4): the difference in effective weight (in the heavier Base's favour, capped at 2) tips the totals — it decides a close result and is part of the winner's output.

  6. The loser absorbs the winner's output (v3.14). The lower final total loses. The margin the loser must allocate is the winner's final total minus the lower of the two raw quality rolls — the winner's kept die + its positional modifiers (9.2–9.3, 11) + its weight shift, less the smaller of the two Bases' raw dice (the floor both shared before position and weight), never below 1. So the loser takes the winner's earned output above the common floor, not a bare totals-difference. This is what makes a fight resolve: it settles decisively each round instead of trading a single point a turn and stalemating (the failure the old raw-margin model produced once give-ground got cheap). The loser allocates the margin (9.5); then check breaks.

9.2 Overlaps — the keystone

Each Base has one front hex and two oblique-front hexes (edge facing, §2). In the Combat phase each engaged Base fights one enemy straight ahead, across its front hex; any enemy that bears on it from an oblique-front — and is not itself fighting someone straight ahead — laps it, +1 to that enemy's side in the fight. A lap is read from the lapper: a Base with an enemy on its own front is fighting, not leaning. Net your side's laps against the enemy's.

Everybody counts (v3.17). Where two Bases of the same side have the same enemy straight ahead, one of them fights it 1-to-1 and the other laps it — no Base in contact is wasted.

There is no cap on overlaps. A Base overhung from both oblique-fronts is lapped twice; a Base taken in flank or rear — whose frontal arc is empty of a fight — can be lapped from both obliques at once. Overlap stacks with flank/rear (§9.3): position compounds, and an enveloped Base collapses rather than grinds.

This is why cohesion wins: a solid Block laps the ends of a fragmented enemy, and push-back strips overlaps, cascading disadvantage into the next combat resolved — which is why combat order (Section 4) is a skill.

9.3 Flank & rear

Which faces these are is the geometry's business (§2): under edge facing a Base has two flank faces and one rear face, and its whole frontal arc — front plus both oblique-fronts — is penalty-free. An enemy that comes round onto an oblique-front has not turned your flank; it has only overhung you, and its bite is the overlap (§9.2). Turning a flank means reaching a true flank or rear face.

Every enemy in contact tells (no free-riding, no cap). A Base is struck in flank or rear by every enemy whose front edge bears on that edge — not merely its paired opponent. Light cavalry that swings onto an exposed flank bites the fight already joined: its penalty is added to that fight without a separate roll of its own (it shares the result rather than fighting a second combat). So no attacker in contact is wasted and none is capped — a Base fronted by one enemy and flanked by another takes both, an enveloped Base takes the sum of every exposed edge. A formation attacked from several sides does not fight each attacker in turn on equal terms; it comes apart.

“A formation that is struck in flank or rear is no longer a formation.”

9.4 Weight result-shift

Weight is deterministic, not lucky: it is applied after the dice as a shift to the margin in favour of the heavier Base, equal to the difference in effective weight, capped at 2. A Light that ties a Heavy on the dice still slides to a loss. (This subsumes the old troop-type combat factors: 'light foot weak in melee' and 'mounted ride down loose foot' are simply weight differences.)

9.5 Outcome — fatigue or ground

The margin of loss is a number of points. The losing Base's owner allocates each point, freely mixed, as either Fatigue or push-back:

The give-ground pairing cap (v3.16). A recoil launders a loss only if it is paid for by Fatigue taken: you may give ground for at most as many points as you also absorb as Fatigue. So a defeat can never be shed wholly as ground — at best half goes to recoil and half sticks (margin 1 → 1 Fatigue and 0 back; 2 → 1 and 1; 3 → 2 and 1; 4 → 2 and 2). This is what makes a fight resolve: a unit run down to its break line can no longer trade a single point a turn forever — the un-launderable half is Fatigue it must take, so a beaten formation eventually breaks instead of laundering every loss as ground and grinding on for the whole game. Knob pushback.fatiguePerGround (default 1 = one Fatigue absorbed per hex of ground; higher → less laundering; 0 → the old shed-it-all behaviour). This cap replaced the give-ground grind that made real-scale battles run past 60 turns.

The give-ground move cap (v3.9). On top of the pairing cap, a Base sheds ground only up to its own move allowance — a heavy line (move 2) launders at most 2 hexes of recoil, cavalry (move 4) more; recoil is limited by whichever cap is smaller. Margin past the cap is forced Fatigue, even with open ground behind. So lose by a little and you shed roughly half of it near-free; lose by a lot and the overflow past the caps is Fatigue you cannot dodge. It falls straight out of the move rates (config pushback.capHexes; null = the unit's move allowance). A Base that cannot retreat at all (terrain, friends, table edge) is pinned — every push-back point against it is forced to Fatigue.

Fall back rather than break — the default (v3.9). When a loss would push a Block over its break line (§12), the losing player's default is self-preservation: hold each point as Fatigue until the next would break, then give ground instead (up to the caps), so a unit yields ground rather than shatter where it stands. But the pairing cap (v3.16) means fall-back is no longer a free escape: a unit can only launder half a loss, so a small defeat at the break line (a margin of 1 is never laundable) is Fatigue it must take — it falls back and still breaks. Break therefore means beaten and out of room to shed it — cut off the retreat, or beat it by enough that the un-launderable half tips it over. The player may override the default — a deliberate last stand, holding to Fatigue and breaking to anchor a position. (The standing hold-vs-give-ground order a general sets in advance — disposition — belongs to the command layer and is specified there, not here.)

Variance note: there is no cap on the number of points (the margin). Combat variance is controlled instead by the choice of combat die (§3.1) — the averaging die keeps a positionally-neutral fight tight, so a big margin reflects earned position, not a lucky tail, while a flank charge stays fully decisive. (The give-ground cap above limits how much of a margin can be shed as ground, not the margin itself.)

9.6 Push-back, recoil & splitting

Backward movement is never a legal Block move, so a push-back is always a split. Unlike a voluntary split (free, §6.2), a recoil is disorder the enemy imposes, so it pays a recoil seam (defined below): the pushed Base detaches and the seam is always paid — even for a uniform whole-Block push — unless the Block was a single Base (nothing to fragment) or the Base is a Skirmisher using evade (§11.2), which is exempt. There is no free retreat.

9.7 Depth support (melee) & the massed-volley trade-off

Depth is not just cohesion (§6) — it also feeds the fight, but how depends on the troops, and a unit gets one or the other, never both:

This is the historical distinction between a hoplite/pike phalanx (depth = staying power and shove) and a Persian archer block (depth = weight of fire). It is an army-list property: massedVolley is assigned per unit, so the same Medium-Infantry type can be either. (Depth now helps through the cohesion reservoir (§6) AND this bounded support — the flat rank support v2's §9.7 deleted returns as an explicit, tunable stat, ending the old rulebook-vs-engine drift.)

10. Missile Combat

Missile fire (range by weapon, §2) rolls the firer's quality die against the target's flat protection — it no longer reads melee weight (v3.14). Only the firer rolls; the target defends on a fixed number built from armour + shield + order, not on weight:

shot        = quality die (firer) + weapon power + volley + situation
protection  = armour + shield (front arc only) + order (density, §6.3)
Fatigue     = max(0, shot − protection)     — on the target, never below 0

The loss is never all-or-nothing: because the firer rolls a die, a good roll always bleeds even a shielded heavy — slow attrition, a Persian archer-line wearing a hoplite phalanx over many turns (Carrhae writ small) — while a soft target takes the full brunt. There is no push-back and no return fire in the exchange; the only result is Fatigue on the target, and a Base shot at cannot recover that turn (the competition default; §6.1).

Weapons differ in range and effect (v3.14). Not range alone: the sling out-ranges the bow and hits with concussion, the bow is the steady mainstay, the javelin is short but heavy (all tunable, missile.weaponPower + distances.missileRangeByWeapon).

Weapon Range (BW) Power
Sling 5 +3
Bow 4 +2
Javelin 2 +3

Protection is decoupled from weight (v3.14). Missile-vulnerability tracks armour, shield-coverage and formation order — not mass. So a warband (heavy in melee but unarmoured) is soft to arrows while a cataphract (armoured horse) is near arrow-proof, though both are 'heavy'. Protection has three parts, tunable per troop type (missile.protection):

Situation (v3.14). A shot bearing on the target's flank negates its shield; from the rear, its shield and its order. Close range (within missile.pointBlankRange) adds +1; at the edge of range, −1. (Enfilade down a file's depth, a spent javelin quiver, and the unshielded-right asymmetry are noted for a later pass — not yet modelled.)

Massed volley (fire in depth). A shooter with the massedVolley ability (§9.7) that stands depth 2 or more adds +1 to its volley — the depth of a Persian-style archer block turned into weight of fire. There is no separate rear-rank Base to feed the shot and no front-rank-only restriction: depth is a stat, so a deep massedVolley Base simply fires the boosted shot. A massedVolley unit forgoes melee depth support in exchange (§9.7). Weapon range, the volley bonus, and the depth at which it triggers are all playtest knobs.

11. Special Rules

The exceptions to the core. Each is a single trigger → effect.

11.1 Shock

11.2 Skirmisher evade

When a Skirmisher would take Fatigue or be pushed back, it falls back instead — trading ground for cohesion, so it never accumulates melee Fatigue. But it can be caught (charged by faster troops, or pinned so it cannot fall back the full distance), in which case the evade fails and it takes the full result including the weight shift; and it cannot hold ground or objectives.

11.3 Steady spears

A formed, spear-armed Heavy Infantry Base (at least one same-Block neighbour) negates a frontal cavalry charge's shock and gains +1 against mounted. Spear walls stop horses.

11.4 Light cavalry

Light Cavalry do not gain shock and may choose whether to pursue (rather than being forced to). They create flanks, harass rears, and chase routers.

11.5 Massed volley

An army-list ability for deep missile formations (the Persian sparabara / archer block). The unit turns depth into fire (a boosted volley when it stands 2+ deep) and draws no melee depth support — full rule in §9.7 and §10.

11.6 Pursuit (v3.11)

Rout's mirror, and where the killing is done: ancient casualties were light in the fighting and catastrophic in the pursuit. A live unit that is not engaged with a live enemy but has an enemy router within catch-reach pursues automatically — the blood is up. At the start of its owner's turn (after its own routers flee, §12) each such unit resolves pursuit:

Rally is deferred to the command layer (§12). This generalises the older automatic shock-pursuit (§11.1).

11.7 Impetuous (v3.12)

An army-list ability for troops that cannot patiently hold — the Gallic / warband charge. At its owner's turn-start an impetuous unit not already in contact must pass a control test (its quality die ≥ impetuous.restraintTarget, default 5, so restraint is the exception) or it surges: it advances one move straight at the nearest enemy. It does not keep chaining moves and exhaust itself closing — one move per turn, no tempo — unless that move leaves the enemy within one further move's reach, in which case it takes the extra charge move into contact, paying the chained-move tempo (§5.2) and delivering shock (§11.1) if it is a shock unit. Impetuosity is hard-baked — no order can restrain it; it is the engine's, not the general's, and it is why a general-less battle still moves: the impetuous make the running while the disciplined hold.

12. Collapse, Break & Rout

Break. A Block breaks the instant its average Base Fatigue — total Fatigue ÷ Σ depth — exceeds 6 (§6). The Block dissolves and its Bases rout — they do not leave the board (§"Rout" below, v3.10); each becomes a fleeing Base that streams away by rule on its owner's turn.

Fall back rather than break (v3.9). A Block does not shatter where it stands if it can still give way. By default a losing unit sheds a break-inducing loss as ground rather than Fatigue (up to its move-allowance cap, §9.5) — so a break happens only when the unit is beaten and cannot recoil: pinned against terrain, friends, or the table edge, or hit by a margin that overwhelms even a full cap of ground. A commander may choose a last stand — holding to Fatigue and breaking — to anchor a position, but that is now a decision, not the automatic result. This is what makes envelopment, not frontal shoving, the way to destroy a formation: cut off the retreat and the fall-back valve closes.

Break is by that average only — there is no per-Base ceiling. A contact Base shoved to high Fatigue inside an otherwise-fresh Block averages down and survives; a Base only breaks on its own Fatigue when it is alone (a single-Base Block, or a loose Base dislocated by push-back, §9.6). A deep dislodged Base endures — its Fatigue rose slowly, diluted across its depth — while a thin one, already near 6, shatters at once.

Rout — routers stay on the board and flee by rule (v3.10). Routed Bases cannot act, form Blocks, merge, or provide overlaps or support, but they are not removed — they remain on the field and flee automatically, because ancient battles were decided in the rout and pursuit, not the fighting. On its owner's turn each routed Base flees a full flee move (moveDistance + panicBonus), in two phases: first directly away from the nearest enemy (blind panic), then, once no enemy is within regroup range, toward its home edge (the line of retreat, derived from its side's deployment).

12.1 Army break & collapse contagion

13. Playtest Parameters (Deferred)

These are empirical balance knobs, set with figures on the table rather than reasoned abstractly. Starting points only:

14. What Changed from v1

Judgment calls flagged for playtest: shock is written as a flat modifier for speed (it may instead be an extra die per the Evaluation); default weight ratings are starting points only.

14.1 What changed from v2 to v3 (design-review ledger — consolidated 3 June 2026)

14.2 What changed from v3 to v3.1 (rules-pass reconciliation — 5 July 2026)

A pass to bring the rulebook back in step with the implementation (the engine had moved ahead) and to add the sparabara/deep-archer case surfaced by the army lists and the factor-fidelity review (docs/design/factor-fidelity-review.md):

14.3 What changed from v3.1 to v3.2 (follow-up ruling — 5–6 July 2026)

A small pass that settles the last-standing deferred combat knob and adds balance-neutral flavour/telemetry. No new mechanics:

14.4 What changed from v3.2 to v3.3 (massed-volley fix — 6 July 2026)

A correctness fix to the massed volley (§10), found in playtest:

14.5 What changed from v3.3 to v3.4 (combat gang model — 7 July 2026)

A combat-adjudication change to §9.2/§9.3, found in playtest: a light-cavalry unit that had manoeuvred onto an end hoplite's flank contributed nothing — the fight read as an equal frontal duel — and, worse, the flanker (and any surplus unit in contact) simply did not fight at all. The old model paired combatants strictly 1-to-1, honoured flank/rear only from that one paired opponent, and capped overlap at 0/1. That made position wash out and reduced fights to grinds.

14.6 What changed from v3.4 to v3.5 (seam economy — split free, merge flat — 8 July 2026)

A tuning change to the split/merge seam (§6.2), motivated by the same instinct that removed the push-back double-charge (v3.1, §9.5): breaking a formation should be cheap, and the cost should sit on re-forming order, not on losing it.

14.7 What changed from v3.5 to v3.6 (recovery = no rest while acting — 8 July 2026)

A §6.1 gap fix. The recovery rule denied rest only for moving, being in combat, or being shot at — it was silent on firing and on rear-rank participation, so a Base that shot this turn, a massed-volley rear rank feeding the front's volley, and a rear rank lending §9.7 melee depth support all still recovered. That reads as "acting while resting," which is wrong.

14.8 What changed from v3.6 to v3.7 (depth becomes a Base stat — 18 July 2026)

The largest structural change since the hex substrate. Depth stops being geometric — Bases physically stacked in files behind the front — and becomes a per-Base stat measured in Bases: a depth-D Base is D Bases stacked in one hex. Frontage stays geometric (a Block is still a rank of side-by-side Bases, so overlaps/flank are unchanged), collapsing the spatial model from two axes to one. This closes two long-standing issues: the "what is the real mechanism behind smoothing / the donor should be the base behind" playtester objection, and the rulebook-vs-engine drift where a depth-support bonus was smuggled in as geometry (it is now an explicit, honest stat).

14.9 What changed from v3.7.1 to v3.8 (reform by articulation — 20 July 2026)

Reform (§6.2) stops being uniform. Two orthogonal axes gate a re-cut, each riding on machinery the system already has:

14.10 What changed from v3.8 to v3.9 (push-back economy — give-ground cap & fall-back-not-break — 20 July 2026)

The push-back economy was previously uncapped: a loser could shed its entire margin as recoil on open ground and take zero Fatigue, so a defeat's size barely mattered. Two always-on rules fix that (§9.5, §9.6, §12):

14.11 What changed from v3.9 to v3.10 (routers stay on the board — rout in place — 20 July 2026)

The largest change to the endgame: a broken Block was deleted — its Bases vanished — which threw away the phase where ancient battles were actually decided (casualties were light in the fighting, catastrophic in the rout: Sabin, Krentz). Now broken Bases rout in place (§12) and flee by rule, per the simulation-not-game north star.

14.12 What changed from v3.10 to v3.11 (pursuit — the chase after fleeing troops — 20 July 2026)

The pursuit half of #10 (§11.6). With routers now on the board (§14.11), the pursuit runs them down — the phase where ancient battles' casualties were actually inflicted.

14.13 What changed from v3.11 to v3.12 (impetuous — the warband charge — 21 July 2026)

The first "prototype in the executor, promote to the rulebook" graduation (command-architecture.md §4), and the first hard Layer-0 characteristic added for command mode.

14.14 What changed from v3.12 to v3.13 (split from an engaged block — 22 July 2026)

14.15 What changed from v3.13 to v3.14 (combat resolves + depth-shove curve — 26 July 2026)

Two combat-model changes, both validated on the canonical-battle distributions (Leuctra, Gauls-Romans, Greek-Persian, Clash — ~100 games each) rather than argued. Together they make combat decisive without inverting who should win.

14.16 What changed from v3.14 to v3.15 (missilery rewritten + density states — 26 July 2026)

The two Layer-1 mechanics that completed the tactical model before command mode — grounded in the sources and rulesets ([[ancients-simulation-not-game]]), built and validated on the sim.

14.17 What changed from v3.15 to v3.16 (give-ground pairing + army-morale weighting — 28 July 2026)

Two mechanics settled from a Leuctra distribution read (the deep-oblique battle, run 100× at real scale). The v3.15 sim had Leuctra grinding past 60 turns and, worse, inverted — the deep hammer destroyed the Spartiate elite + Cleombrotus and kept its refused wing wholly intact, yet was ruled the loser (raw-headcount army-break counted the loss of one depth-12 base as catastrophic). These two changes fix both, validated as a distribution, not curve-fit ([[ancients-distribution-not-curvefit]]).

14.18 What changed from v3.16 to v3.17 (edge facing — a unit faces an EDGE — 1 August 2026)

The spatial substrate changes: a Base now faces an edge, not a vertex (§2; full geometry in docs/spatial-model-edge.md). Vertex facing gave straight, collinear ranks but had no single forward — a unit could never march straight, only staircase — so an envelopment could not be driven. Edge facing buys a true forward and a straight march. The accepted cost is a sawtooth line: two edge-facing ranks mesh cleanly head-on (both sit on the same grid, so their staggers are congruent) but stop nesting after a wheel, and gaps and glancing contacts appear. This is the third substrate (square → vertex hex → edge hex); the combat maths, fatigue, depth-as-a-stat, break and recovery are untouched — only the geometry moved.