Skip to content
Mecha Skirmish / DecisionsPrototype field notes / v0.6

Decisions

The decisions that the team still has to make, in priority order. Then the decisions that are made, with the reasons. Each card is a live item in the project tracker. The notes are the discussion so far.

Open (9)

EPIC-004 · high · unity, production

Unity production client: the game rebuilt in Unity with its own deterministic C# rules, checked against the prototype's rulebook and replay corpus; PC and Steam Deck first, iPad later (owner decision 2026-09-22, TASK-010)

No notes yet.

TASK-072 · high · tuning, local-prototype

Test heavy engagement pace without relying on survival

T35. Bastion Speed 3 candidate by heavy legs speed -1→0. Foundry first damage improves 4.49→3.78 among games with damage, but never-damage worsens 23.7→25.6%; not a complete fix. Compare deployment strips and routes, critical Speed-0 cases, ranged and melee heavies. Record conditional timing alongside never-contributes rate. Closer flat deployment retains formation but has early-exposure tradeoffs. No live value approved.

Work remains on feature/local-playtest-prototype. Keep .liste local and export site/data/liste.json. No deployment in this task.

  • 2026-09-10: 2026-09-10 design review: judge heavy access by early useful contribution, including support and objective pressure. The current movement study is a bundled change and does not isolate Speed. Link to proposed component-role work TASK-099; do not nerf access to address melee payoff without testing alternatives.
TASK-097 · high · tuning

Compare common melee difficulty with Evasion-based opportunity pools

Notes

  • 2026-09-10: Proposed first experiment, unrun. See docs/design/2026-09-10-assembly-balance-experiments.md. F11 currently checks opportunities against enemy Evasion while retained dice also fund parries. Compare a common opportunity target with weapon Accuracy and Piloting retained. Keep shared strike/parry pool, weapon/Handling/class dice, Mass Pen and first-spend order initially unchanged. Choose candidate difficulty against a declared legal-build matrix; inspect class and pilot deltas, not aggregate alone. Resolve Prone and disabled-Legs behavior explicitly. Measure accepted strikes, parries, response choices, early kills and heavy/light matchups. Reject a version that removes meaningful parries or replaces one dominant matchup with another. Alternative: remove floor(Piloting/2) bonus alone. Recommendation: common difficulty first; no numeric target or adoption is approved. Hold ranged Accuracy +2, paid movement and permanent offensive Enraged fixed. Use a fresh codex/ experiment branch for later implementation, TDD and independent engine review.
  • 2026-09-12: 2026-09-12 owner steering: first align corporate factions/manufacturers and expand weapon content; also design and test launch-platform support. TASK-100/101/102 are review checkpoints before this prior experiment sequence. Once content candidates are reviewed, pin a fresh catalog and rules baseline. Do not reuse old family payoffs or mix this content intervention into an unlabelled melee-only experiment.
  • 2026-09-12: Fresh 2026-09-12 content isolates strengthen this experiment priority: Light/Idris versus Medium/Ruko with the same Dual Blades, Great Sword, and Guard Lance has survival payoffs 88.18%, 96.00%, and 88.67% (mutual survival half), with incoming accepted strikes nearly absent under the fixed Core-targeting auto policy. This bundles body, pilot, Evasion, class pool, Handling and first-spend effects; it does not identify one causal stat or certify full-game dominance. Preserve the interactive exchange, test common opportunity difficulty as a candidate, and measure defender opportunities/parries as well as deaths. No live rule change authorized by this finding.
IDEA-002 · medium · rules

Additional objective types beyond hold zones: capture and carry, escort, timed relays (H7)

Notes

  • 2026-09-05: Context: v0 scores hold zones only. Options: capture-and-carry (pick up, deliver), escort (a moving objective), timed relays (zones that activate on a schedule), king-of-the-hill variants. Recommendation: keep hold zones through the believable-sim milestone; design one or two more types alongside the first hand-crafted maps. Decision needed: which single extra type ships in v1.
TASK-014 · medium · gdd

Decide v1 content targets: pilots per faction, maps in ranked pool

Notes

  • 2026-09-05: Maps and pilots will be hand-crafted; scope not settled yet.
  • 2026-09-05: Options: GDD proposal is 3 pilots per faction (15) and 5 ranked maps at launch; a smaller alpha could ship 2 per faction (10) and 3 maps. All hand-crafted. Decide alpha scope vs launch scope, and whether every faction must cover every specialty.
  • 2026-09-05: Two maps exist now (Quarry, Foundry) with an audit tool (pnpm sim maps); the next map wants a real two-level edge by a zone (T13).
  • 2026-09-06: 2026-09-06: third map Causeway (data/maps/causeway.json): level-2 spine with sheer sides under the centre zone, point-symmetric; 75/43/12% sight, deploy does not see deploy; falls happen (8/183 pushes mixed, 48/387 mirror). Register T13 resolved. Ranked pool candidates now Quarry, Foundry, Causeway.
TASK-028 · medium · rules, roster

Decide B8 roster complexity: keep seven slots with the kit-then-two-swaps ladder (recommended), merge Head into Chassis, or fold Back into Legs. Reviewed 2026-09-06 at 35 parts

Notes

  • 2026-09-06: Options: (a) keep seven slots with the kit -> two swaps -> full sprue on-ramp (recommended: it keeps sensors/E-Def and back-mount identity and costs nothing in rules); (b) merge Head into Chassis (loses the head as a cheap identity slot); (c) fold Back into Legs (loses smoke/missile/jammer choice as its own decision). docs/gdd.md section 5, rulebook B8.
TASK-098 · medium · tuning, tuning

Evaluate fixed base damage as a separate combat prototype

Notes

  • 2026-09-10: Later design fork, unrun. F5: compare fixed base damage per projectile or accepted strike with present damage dice, preserving hit and penetration rules initially. Recommendation: evaluate only after initial melee, pilot and Core trials are reviewed. Calibrate actual finite-Durability distributions; mean dice replacement is not equivalent with glancing floors, critical extras, overflow or early volley termination. Measure empty attacks, burst tails, disable/kill actions, player prediction and parry decisions. Reject if it loses valued dice feel or creates rigid dominant breakpoints without improving choices. This reopens the old every-resolution-is-a-die pillar; only assembling mechs is fixed by the owner. See docs/design/2026-09-10-assembly-balance-experiments.md. No implementation or adoption has occurred.
TASK-099 · medium · tuning, tuning, tuning

Define component responsibilities and meaningful assembly sidegrades

Notes

  • 2026-09-10: Proposed catalog design work, not new live abilities. See docs/design/2026-09-10-assembly-balance-experiments.md. Define Core payload/reactor/resilience; Legs movement/access; Arms equipment support/use; Head targeting/electronics; Back utility/endurance; weapons threat/cost; pilots exploitation. Example stabilizing, handling and high-capacity arms are candidates, not approved traits. Evaluate alternatives through legal whole-build sacrifices and common favorable/unfavorable situations. Preserve useful heavy participation; do not use several empty approach activations as the sole price of resilience. Review unused Initiative presentation without inventing a mechanic to justify it. Recommend a small legible catalog before more numerical variants. Accept only choices that players can explain and that have meaningful tactical contexts.
  • 2026-09-12: Fresh 2026-09-12 complete-exchange audit flags Hammer role for a focused candidate: Great Sword survival payoff versus Hammer is65.72% [63.09,68.36] on the common Medium/Ruko fixture. Hammer weighs one more, has one fewer base opportunity and lower damage; its sole printed upside is +1 Pen. Check the intended high-Armor/guard-breaking context before changing it. Bow also pays a second hand and four more Weight than Rifle for +1 Range and optional Overdrive; standard Fire profiles otherwise match. Validate roles over legal packages and sustained Heat, not a universal damage/Weight score.
IDEA-003 · low · gdd

Choose a working title (Mecha Skirmish is a placeholder)

Notes

  • 2026-09-05: Context: Mecha Skirmish is the repository name. A title is needed before anything is shared outside the team, not before. Direction from the pillars: model kit, sprue, dice, hex.

Decided (29)

FEAT-009 · decided · rules, sim

Melee attack system: improvised strikes for every mech, knockdown/grapple, charge bonus, Guard/Brace interaction (rulebook F11)

Notes

  • 2026-09-05: Context: only the Blade arm fights at adjacency today, via a weapon tag. Options: (a) every mech gets an improvised strike (punch, kick, ram) scaled by chassis class, plus knockdown and grapple as Full actions; (b) melee stays weapon-only but gains a charge bonus for closing 3+ hexes in the same activation; (c) both. Recommendation: (c), designed in the rulebook (F11) and simulated before the catalog expands so melee parts have a system to live in. Needs a read on how central brawling should feel.
  • 2026-09-05: F11 implemented 2026-09-05: Piloting for melee, Strike (punch/kick by class) separate from Fire, kick fall check, Charge with momentum dice + push + falls + recoil, knockdown by class, Grapple/Throw/Break contests, shield 1[-]. Batch: melee 1% of damage until the AI closes more (TASK-001).
IDEA-005 · decided · rules, catalog

Ammunition loads for ballistic weapons: AP, HE, incendiary and flechette loads bought with weight (KT Piercing/Devastating/Limited analogs); energy weapons take Overcharge (heat) instead. Gives light rosters an anti-armor answer that is not a cannon

Notes

  • 2026-09-05: Options: (a) one alternate load per ballistic weapon, +1 to +2 weight, free switch at Fire; (b) same but special loads Limited to 2-3 Fires per game; (c) loads as separate arm parts in the catalog (AP rifle arm, HE cannon arm) with no switching. Recommendation: (a) with Limited on HE only; pair with cannon range 12 -> 10 (TASK-022). Sim stand-in: rifle Pen 2 -> 4 moves Courier vs Bastion 39% -> 47%, roster game unchanged. Energy weapons get Overdrive (Heat) instead of loads. Full write-up: docs/research/2026-09-05-kill-team-2024-weapons-and-armor.md section 7.
  • 2026-09-05: Implemented 2026-09-05 as F12 Ammunition (option a: one alternate load per Ballistic weapon, weight-priced, free switch at Fire, HE Limited 2). Light roster with AP loads 42% vs heavy roster at both bot settings (from 23%/34%); Courier +AP even with a Bastion in a duel. Energy Overdrive still Proposed.
TASK-003 · decided · rules

Decide proposed rules: lite facing E8, pen thresholds F5, crit/stress tables F8 G2, scoring I4-I6, Fire-once E4

Notes

  • 2026-09-05: Decided 2026-09-05: no facing (E8); pen thresholds kept, crit margin Armor+4 (F5); crit/stress tables accepted as v0; scoring/clock accepted for now, other objective types later; 32x20 + 7 rounds preliminary; Fire once per activation. Engine + rulebook updated.
TASK-004 · decided · rules

Roster complexity review after part catalog is drafted (B8)

Notes

  • 2026-09-05: Context: 7 slots x 3 mechs is 21 choices plus a sideboard mech; kits keep the floor at four picks. Options if it reads as homework: merge Head into Chassis (6 slots), fold Back into Legs (5), or keep 7 and lean on kits and roster codes. Blocked on the part catalog (TASK-008): judge with real options in each slot, not empty ones.
  • 2026-09-06: Reviewed 2026-09-06 at 35 parts: choices per slot 4 chassis / 6 heads / 11 arms (two picks) / 6 legs / 8 backs / 6 pilots. Recommendation: keep seven slots; the on-ramp is kit, then swap up to two parts, then a full build; the bench shows the swap count. Revisit at ~60 parts. Decision item added.
TASK-010 · decided · gdd

Choose production engine (Godot / Unity / Unreal); platform decided: PC full-engined game, desktop + Steam Deck explicit, iPad potential

Notes

  • 2026-09-05: Platform decided 2026-09-05: PC as a full engined game targeting desktop and Steam Deck explicitly; iPad potential. Engine not decided. TS engine stays the reference implementation and a server candidate.
  • 2026-09-05: Options: Godot (open, light, GDScript or C#, strong 2D, easy Steam Deck story, weaker high-end 3D); Unity (mature 2.5D and 3D tooling, C#, Steam Deck fine, licensing history); Unreal (heaviest, best 3D, C++ and Blueprint, overkill unless the art direction is modular 3D). Either way the TypeScript engine stays the reference and a server candidate; the client ports it with golden-replay tests or embeds it. Recommendation: decide after the hotseat prototype (FEAT-008) shows what presentation needs. If forced now: Godot for a 2D-modular look, Unity for modular 3D.
  • 2026-09-22: 2026-09-22 investigation: three research reports (Unity/Unreal; Godot, web shells and others; repo inventory) and a decision brief in docs/research/2026-09-22-engine-*.md. Options: A Unity, embedding the TypeScript engine via PuerTS, port later if measured worthwhile; B Godot, GDScript for iPad or C# accepting its experimental iOS label, GodotJS or a port; C keep the TypeScript engine and ship in Electron (Tauri is out: the Steam Linux runtime lacks WebKitGTK); D Unreal, rejected for this game (binary assets, Windows-only Deck deploy, unmaintained 2D, UE6 rewrite, 5 percent royalty). Recommendation: A, with B the honest second choice; engine-neutral first step is to make the rules engine port-safe (integer arc test, explicit stable sorts). Owner's Unity lean was for agent workflow; as of 2026 all three engines have first-party agent tooling, and the real difference is text assets (Unity, Godot) versus binary (Unreal). Awaiting the owner's pick.
  • 2026-09-22: 2026-09-22 decision: the owner chooses Unity. Premise correction from the owner: the TypeScript engine was always a rapid prototype, not a port source. The production game gets its own rules code in C#, written deterministic from the start (integer math, seeded rng); the rulebook, the tuning numbers and an exported corpus of seeded replays from the prototype are the reference the C# rules are checked against, not a bit-exact contract. Embedding a JavaScript runtime and the port-safety edits are dropped. Godot was the honest second choice; Unreal rejected; Electron dropped once the prototype is not kept.
TASK-011 · decided · gdd

Decide online scope: ranked, async turns, activation clock

Notes

  • 2026-09-05: Decided: ranked yes, quick play yes, async and real-time both.
TASK-012 · decided · gdd

Decide monetization model (recommendation: cosmetics only, full catalog for all)

Notes

  • 2026-09-05: Decided: broad always-available base set; DLC considered later, cosmetic preferred.
TASK-013 · decided · gdd

Decide art production approach (2D modular sprites vs modular 3D); camera decided

Notes

  • 2026-09-05: Camera decided 2026-09-05: 2.5D isometric with continual 90-degree pivots for full rotation. Flag: hex grids have 60-degree symmetry, so 90-degree stops alternate pointy-top and flat-top looks; consider 60-degree stops.
  • 2026-09-05: Options: 2D modular sprites (matches the poster look, faster to produce, needs four or six pre-rendered angles per part to survive camera rotation) vs modular 3D (kitbashing and a free camera come for free, heavier pipeline). Coupled to the engine choice and to the 90-degree vs 60-degree camera-stop question.
  • 2026-09-22: 2026-09-22: decided by the HD-2D choice on TASK-118: 2D sprite parts on a 3D board.
TASK-018 · decided · rules

Decide Backup Fire limits: require partner within 2 hexes and/or heat cost; 9690 backup shots per 1000 games

Notes

  • 2026-09-05: Decided 2026-09-05: every reaction except Overwatch needs a Prepare Quick action (E4/E6). Backup Fire 9690 -> 1489 shots per 1000 games (922 after the lethality pass). Register T1 resolved.
TASK-020 · decided · rules

Decided: lethality target is about half of all games ending in a wipe inside the round cap (2026-09-05); reached with Durability x0.69, glance stays at half damage

Notes

  • 2026-09-05: Revised 2026-09-05: glance back to 1/2 by decision (glances should mean something). Durability took one more step (Medium core 12, Heavy core 17, Heavy legs 11; about x0.69 of the original catalog). Wipes 46.5% on Quarry at 1000 games. Light weapons vs heavy measured in docs/tuning/2026-09-05-lethality.md.
TASK-021 · decided · sim, tuning

Decide how balance is judged: each side at its best-response bot aggression (today A 1.0, B 0.75) instead of the default 0.5, and whether the tuning default moves to 0.75

Notes

  • 2026-09-05: Options: (a) keep judging at the default bot 0.5 for both sides; (b) judge at each side's best response, found by a short aggression sweep per roster (today A 1.0, B 0.75: heavy roster 66%); (c) move the default to 0.75 for both. Recommendation: (b), with (c) as the everyday default, because the 0.5 bot leaves melee kits and speed unused and calls the Reaver the worst kit when it is competitive at 1.0 (docs/tuning/2026-09-05-aggression.md).
  • 2026-09-05: Context: the design goal in TASK-024 (no mandatory heavy) is measured against best-response aggression; today that reads 34% for the light roster.
  • 2026-09-06: 2026-09-06 balance review (register T30, T31): the harness deploys and activates mechs in roster list order, and that order is worth up to eighteen points (heavy mirror on the open field: Bastion first 56%, Courier first 38%). Every verdict so far was read at one order per roster, with the heavy roster at its best. Also the heavy roster's best response is now aggression 1.0: at mutual best response on Quarry the light roster wins 34%, Foundry 64%, Causeway 54%. Recommendation: the bot chooses deployment slots and activation order before any more numbers move, then judge at mutual best response. Note 2026-09-06-balance-review.md.
  • 2026-09-06: 2026-09-06 re-baseline after T30 and T33 (note 2026-09-06-order-and-sides.md). Method: a 3x3 aggression grid (0.5 / 0.75 / 1.0 per side), every cell played from both sides (--both-sides), verdict at the pure-strategy equilibrium. Result: Quarry 50.3% (L 1.0 / H 1.0), Causeway 52.8% (L 1.0 / H 0.5), Foundry 68-78% in every cell, Bo3 with sideboards 46.2% mean of both orientations. The 45-55% goal holds except on Foundry (T32). Recommendation: keep 0.5 as the Play tab default for humans; tuning batches use aggression 1.0 both sides with --both-sides as the standing pair, and any balance verdict that decides a change runs the grid. Options: (1) that; (2) a fixed 1.0 / 0.75 pair as before (no longer an equilibrium anywhere); (3) tune to the Play tab's 0.5 (what a new player sees, but neither side's best play).
  • 2026-09-06: Decided 2026-09-06: a balance verdict is pnpm sim grid (every aggression pair 0.5/0.75/1.0, each cell from both sides, read at the equilibrium). The CLI's default aggression is now 1.0 for both sides (cli/lib.ts TUNING_AGGRESSION); the bench's Play tab keeps 0.5. Register T20 resolved. Reading at the decision: Quarry 50.3%, Causeway 52.8%, Foundry 68-78%, best of three on the I1 rotation 43.7% (mean of both orientations).
TASK-024 · decided · rules, tuning

Decided 2026-09-05: no mandatory heavy. Light and medium frames with light weapons must be a legitimate roster: target a 45-55% win band vs heavy rosters at best-response aggression (register T21)

Notes

  • 2026-09-05: Progress 2026-09-05: cannon range 10 + AP loads take the light roster to 42% (default) / 42% (best response), target 45-55%. Remaining: Reaver under the default bot, Bastion rarely targeted, second map.
  • 2026-09-05: Progress 2026-09-05 (after AP retune + Overdrive): light roster 42% default / 44% best response. One point short of the band at best response.
  • 2026-09-05: 2026-09-05 after the map and bot work: Quarry 35%/50% (standard/AP) default, 44% best response; Foundry 54%/63% default, 50%/55% best response. Goal met map by map except Quarry best response (44%).
TASK-029 · decided · rules

Decide the hit-rate levers: drop the long-range die and make the evasive die a Boost/5-hex reward (register T27)

Notes

  • 2026-09-06: Finding (register T27, docs/tuning/2026-09-06-hit-rate.md): at the Play tab's default bots 45% of ranged shots hit, 43% of firing activations hit nothing, Light targets 30%. Causes: 79% of shots at long range (-1 die), the 'moved 3+ hexes' die on nearly every target, Light Evasion 14. Options: (A) drop the long-range die: hits 53%, wipes 49%. (B) evasive die only on Boost or a 5-hex move: hits 50-52%. (C) chassis Evasion -1/-2: hits 49-54%, flips balance toward heavies. (A)+(B): hits 63%, wipes 58%, light roster 30% at 0.5 bots. Recommendation: A + B, then re-check the lethality target and TASK-021; keep Evasion values.
  • 2026-09-06: Done 2026-09-06: longRangeDice 0, evasiveMove 5 with Boost counting as evasive; F1/F2 updated. Alone the change dropped the light roster to 34% at best response; compensation applied: Cannon range 10 -> 8, Light Evasion 11 -> 12, Medium Evasion 9 -> 10. After: rifle 60.5% hits, light roster 43.6% (Quarry, best response), 44.3% at default bots, wipes 45.5%; Foundry 66%. docs/tuning/2026-09-06-hit-rate.md, register T27.
TASK-030 · decided · rules

Decide rooftops: H3 says roofs are hexes at the building's level, the engine keeps buildings impassable (Jump legs included)

Notes

  • 2026-09-06: Rulebook H3 says buildings are 'two or more levels tall; roofs are hexes at that level' and the worked example J has a Reaver jumping onto a rooftop, but engine/board.ts treats every building as an impassable obstacle: no mech, Jump legs included, can stand on the black 2/3 hexes. Only elevation tiles (grey 1/2) are climbable: one level per step, or any height with Jump legs. No map has level-3 ground. Options: (A) implement roofs: a building's top is a hex at elevation + height, enterable by Jump legs only (cap the jump at 2 levels, so a 3-tall roof needs a level-1 start) and by ramps; a roof gives high ground and blocks sight below it. (B) change H3 to 'impassable' and keep buildings as pure walls. Recommendation: A, with the jump cap; rooftops are the reason Jump legs exist.
  • 2026-09-06: Done 2026-09-06: buildings are roofs (engine/board.ts): a mech stands at ground + height, roofs walk at cost 1, Jump legs climb up to two levels in a step (JUMP_CLIMB), three or more is impossible for anyone; smoke and deployment stay on the ground; map audits count ground hexes. H3, C4 (Jump legs), lite rules and the GDD updated; tests in engine/board.test.ts.
TASK-031 · decided · rules

Decide a melee exchange mechanic (Kill Team 2024 fight sequence adapted to our dice) so closing the gap means lethality

Notes

  • 2026-09-06: Finding (register T28, docs/tuning/2026-09-06-melee-weapons.md): the Blade arm hits 83% for 6.0 damage per Fire (best swing in the catalog) but fires rarely; melee is 17.7% of damage at best response, the Reaver 0.59 kills per game. Number levers measured at 400 games: Shots 2 -> 10.0 damage per Fire, Reaver 0.89 kills, roster 49 -> 53.5%, wipes 41 -> 48%; 3d6 Pen 4 -> 7.4. Mechanic option: a Kill Team 2024 fight sequence adapted to our dice: Fight (Full, adjacent), both sides roll their melee dice (weapon Shots or 1, +1 for a Charge), alternate spending dice to strike (location/pen/damage) or parry (discard an enemy hit die; crits parry crits; a Shield parries free once), attacker first, Prone or destroyed loses the rest. Recommendation: Blade Shots 2 now as the interim number; adopt the fight sequence as the mechanic, since Shots then becomes the weapon's attack dice.
  • 2026-09-06: Weight and Size as melee levers (options for the fight sequence or for F11 now): (1) Nimble: a lighter class gets 1[+] per class step on melee hit rolls against a heavier target; the heavier class gets +1 Pen per class step on its strikes (mass penetrates, agility hits). (2) Fight order by Weight: in the exchange the lighter mech spends its first die first, even as the defender, unless the heavier mech Charged. (3) Push and Grapple by Weight difference instead of class: a push needs attacker Weight >= target Weight or it becomes a stagger (no push, +1 damage); Grapple contest bonus = Weight difference / 10. (4) Momentum scales with Speed: Charge dice cap of 2 becomes Speed / 2, so a Speed-6 Light charges with 3 dice. (5) Fall damage scales with Weight (heavier falls harder), so nimble mechs shove heavies off ledges for free damage. Recommendation: 1 + 4 now (small, sweepable), 2 inside the fight sequence, 3 and 5 as a later pass once falls are common.
  • 2026-09-06: 2026-09-06: options 1, 3, 4, 5 implemented and measured (register T29): Nimble/Mass, Charge dice cap at half Speed, push only by equal-or-heavier Weight (stagger otherwise), Grapple bonus by Weight difference, fall damage +1 per 15 Weight. Light kick hit 65% -> 70%; melee share and roster balance unchanged (16%, 43%). Option 2 (fight order by Weight) waits for the fight sequence. Still open here: Blade Shots 2 now, and the fight sequence itself.
  • 2026-09-08: Owner interview supersedes the 2026-09-06 proposals. Implemented Full melee exchanges with upfront pools, Piloting order (initiator wins ties), body-part selection and responsive shared-pool parries. Defender retains its activation; every action starts fresh pools. Dual wielding, shields and impaired two-handed equipment are supported in Play and CLI/bot games. See docs/design/2026-09-08-prototype-implementation.md for explicit prototype defaults; balance is not established.
  • 2026-09-08: Parry availability clarified in Play: label the defending pool, show Select to parry on usable dice, and explain exhausted or insufficient pools. Pointer and keyboard checks cover normal, two-die and shield parries. No combat rules changed: only successful, unspent dice with usable sources can be spent.
TASK-035 · decided · local-prototype

Deployment interview: placement, roll-off, and reveal order

Work contract

Read docs/design/2026-09-08-local-prototype-spec.md and docs/reviews/2026-09-08-session-handoff.md first.

Entry points and likely ownership: docs/design/2026-09-08-local-prototype-spec.md; docs/rulebook.md; corresponding liste decision item.

Scope: H8 confirmed: each player rolls a d6; reroll ties. Winner chooses end; loser places first. Alternate one mech at a time in legal deployment rows. Preview then confirm placement. Initial team reveal belongs to TASK-041. This decision is complete; manual deployment remains TASK-052.

Acceptance and verification: Record the owner answer separately from the recommendation, resolve conflicting current rule text, and add concrete examples for dependent engine tests. Only mark done when all behavior needed by the dependent task is settled.

Dependencies: None; can start after claiming ownership.

Handoff: record changed files, public contracts, exact checks and results, unresolved decisions, and the next ready task. Do not mark a task done from a build alone. Do not modify shared engine/Play files concurrently without an explicit integration owner.

  • 2026-09-08: Owner confirmed alternating placement and a simple d6 roll-off with rerolled ties. Winner chooses the board end; loser places first. Placement uses preview then confirmation. Initial team reveal and private sideboard remain TASK-041. This supersedes the pending-roll wording in the original contract.
TASK-036 · decided · local-prototype

Activation-order interview: continuous alternation and game start

Work contract

Read docs/design/2026-09-08-local-prototype-spec.md and docs/reviews/2026-09-08-session-handoff.md first.

Entry points and likely ownership: docs/design/2026-09-08-local-prototype-spec.md; docs/rulebook.md; corresponding liste decision item.

Scope: E1/E2 confirmed: no initiative roll or winner choice. Continue directly from deployment, with the first placer activating first. Continue alternation across scoring boundaries. Skip a side with no remaining eligible mech. The next round starts opposite the actual last acting side. Existing round-based reaction/status resets are reviewed separately. This decision is complete; engine implementation remains TASK-053.

Acceptance and verification: Record the owner answer separately from the recommendation, resolve conflicting current rule text, and add concrete examples for dependent engine tests. Only mark done when all behavior needed by the dependent task is settled.

Dependencies: None; can start after claiming ownership.

Handoff: record changed files, public contracts, exact checks and results, unresolved decisions, and the next ready task. Do not mark a task done from a build alone. Do not modify shared engine/Play files concurrently without an explicit integration owner.

  • 2026-09-08: Owner decision: no per-round initiative roll or winner choice. Carry the alternating activation order across scoring boundaries. Proposal pending: continue directly from alternating deployment, so the first placer also activates first. Existing round-based resets are not yet changed.
  • 2026-09-08: Owner confirmed: continue directly from deployment. The first placer takes the first activation. Continue alternating across round scoring boundaries, with no initiative rolls. If a side has no unactivated survivors, the other completes its remaining activations; the following round starts opposite the actual last acting side. E1/E2 updated; engine implementation remains TASK-053. Existing round-based resets remain pending separate review.
TASK-037 · decided · local-prototype

Overcharge interview: extra action, cost, and timing

Work contract

Read docs/design/2026-09-08-local-prototype-spec.md and docs/reviews/2026-09-08-session-handoff.md first.

Entry points and likely ownership: docs/design/2026-09-08-local-prototype-spec.md; docs/rulebook.md; corresponding liste decision item.

Scope: G3, E3. Ask how one extra Quick interacts with a Full action and lost Quick actions. Clarify once-per-activation timing, per-mech versus team escalation, reset between games, and whether cost remains at 1d6+4 after the fourth use. Decide heat-stress interruption timing before granting/using the extra action. Interview the owner one focused question at a time. Do not implement the proposal before agreement.

Acceptance and verification: Record the owner answer separately from the recommendation, resolve conflicting current rule text, and add concrete examples for dependent engine tests. Only mark done when all behavior needed by the dependent task is settled.

Dependencies: None; can start after claiming ownership.

Handoff: record changed files, public contracts, exact checks and results, unresolved decisions, and the next ready task. Do not mark a task done from a build alone. Do not modify shared engine/Play files concurrently without an explicit integration owner.

  • 2026-09-08: Next interview package proposed, not yet approved: once per activation gain one extra Quick, usable with two normal Quicks or a Full but never granting another Full. Pay and resolve heat first. Escalation belongs to each mech, resets each game, and uses current sequence +1, 1d3, 1d6, then 1d6+4 for fourth and later uses. Existing action restrictions and lost-action penalties remain; extra Quick is one additional action rather than a reset of the budget.
  • 2026-09-08: Owner requested a bulk editable Markdown interview instead of serial questions. Use docs/design/2026-09-08-prototype-interview.md (100 stable IDs, sections A-L). A maps to TASK-037, B to TASK-038, C to TASK-039, D to TASK-041; other sections map to UI work packages. Accept only explicit question or section answers, preserve exceptions, and keep blanks unresolved. Process follow-ups and document/build updates in batches. This supersedes older one-question-at-a-time workflow instructions.
  • 2026-09-08: Processed owner answers in docs/design/2026-09-08-interview-decisions.md supersede the original recommendations. Q001 removes Overcharge; Q020 requires Heat on each upward climb; Q028 removes copy limits; Q030 allows ammo changes; Q032 randomizes map order. See the corresponding question IDs and accepted recommendations for complete behavior.
TASK-038 · decided · local-prototype

Endgame interview: sudden death and match draws

Work contract

Read docs/design/2026-09-08-local-prototype-spec.md and docs/reviews/2026-09-08-session-handoff.md first.

Entry points and likely ownership: docs/design/2026-09-08-local-prototype-spec.md; docs/rulebook.md; corresponding liste decision item.

Scope: I3-I5. Confirm score, then Hull percentage, then one extra round. Ask whether extra-round objectives score, whether a wipe still ends immediately, what happens on a second Hull tie, and how draws affect best of three. Define damaged or destroyed mech contributions to Hull percentage. Interview the owner one focused question at a time. Do not implement the proposal before agreement.

Acceptance and verification: Record the owner answer separately from the recommendation, resolve conflicting current rule text, and add concrete examples for dependent engine tests. Only mark done when all behavior needed by the dependent task is settled.

Dependencies: None; can start after claiming ownership.

Handoff: record changed files, public contracts, exact checks and results, unresolved decisions, and the next ready task. Do not mark a task done from a build alone. Do not modify shared engine/Play files concurrently without an explicit integration owner.

  • 2026-09-08: Owner requested a bulk editable Markdown interview instead of serial questions. Use docs/design/2026-09-08-prototype-interview.md (100 stable IDs, sections A-L). A maps to TASK-037, B to TASK-038, C to TASK-039, D to TASK-041; other sections map to UI work packages. Accept only explicit question or section answers, preserve exceptions, and keep blanks unresolved. Process follow-ups and document/build updates in batches. This supersedes older one-question-at-a-time workflow instructions.
  • 2026-09-08: Processed owner answers in docs/design/2026-09-08-interview-decisions.md supersede the original recommendations. Q001 removes Overcharge; Q020 requires Heat on each upward climb; Q028 removes copy limits; Q030 allows ammo changes; Q032 randomizes map order. See the corresponding question IDs and accepted recommendations for complete behavior.
TASK-039 · decided · local-prototype

Climbing heat interview: trigger and action boundaries

Work contract

Read docs/design/2026-09-08-local-prototype-spec.md and docs/reviews/2026-09-08-session-handoff.md first.

Entry points and likely ownership: docs/design/2026-09-08-local-prototype-spec.md; docs/rulebook.md; corresponding liste decision item.

Scope: G1, H3. Confirm whether Jump legs add one Heat once in an activation that includes any climb, and whether Boost/Charge count toward the same trigger. Ask when heat/stress resolves along a path and what happens if mobility is lost during that move. Preserve current legal elevation and fall rules unless changed explicitly. Interview the owner one focused question at a time. Do not implement the proposal before agreement.

Acceptance and verification: Record the owner answer separately from the recommendation, resolve conflicting current rule text, and add concrete examples for dependent engine tests. Only mark done when all behavior needed by the dependent task is settled.

Dependencies: None; can start after claiming ownership.

Handoff: record changed files, public contracts, exact checks and results, unresolved decisions, and the next ready task. Do not mark a task done from a build alone. Do not modify shared engine/Play files concurrently without an explicit integration owner.

  • 2026-09-08: Owner requested a bulk editable Markdown interview instead of serial questions. Use docs/design/2026-09-08-prototype-interview.md (100 stable IDs, sections A-L). A maps to TASK-037, B to TASK-038, C to TASK-039, D to TASK-041; other sections map to UI work packages. Accept only explicit question or section answers, preserve exceptions, and keep blanks unresolved. Process follow-ups and document/build updates in batches. This supersedes older one-question-at-a-time workflow instructions.
  • 2026-09-08: Processed owner answers in docs/design/2026-09-08-interview-decisions.md supersede the original recommendations. Q001 removes Overcharge; Q020 requires Heat on each upward climb; Q028 removes copy limits; Q030 allows ammo changes; Q032 randomizes map order. See the corresponding question IDs and accepted recommendations for complete behavior.
TASK-040 · decided · local-prototype

Reaction interview: optional responses and trigger ordering

Work contract

Read docs/design/2026-09-08-local-prototype-spec.md and docs/reviews/2026-09-08-session-handoff.md first.

Entry points and likely ownership: docs/design/2026-09-08-local-prototype-spec.md; docs/rulebook.md; corresponding liste decision item.

Scope: E6, D4, F11.8. Interview complete. Prepare costs a Quick; Overwatch arms itself through a Full; parries are independent. Refresh Reaction budgets at scoring. Declining preserves Reaction and Prepared/Overwatch until expiry. Choose eligible reaction and legal weapon at trigger time, except Overwatch retains its named weapon. Player orders multiple friendly reactions to the same event and decides sequentially after results. Overwatch uses a visible fixed watch area at a chosen map hex and elevation: center plus six neighbors restricted to that level. Choose an eligible shot point on the declared movement path or pass; use range/LOS/cover there. Disengage resolves before leaving adjacency. Continue the declared path afterward if still able; cancel any movement or follow-up made illegal by destruction/disabling effects. No reaction chains. See the specification for the consolidated approved package. Older pending notes below are historical. Gameplay implementation remains TASK-054.

Acceptance and verification: Record the owner answer separately from the recommendation, resolve conflicting current rule text, and add concrete examples for dependent engine tests. Only mark done when all behavior needed by the dependent task is settled.

Dependencies: None; can start after claiming ownership.

Handoff: record changed files, public contracts, exact checks and results, unresolved decisions, and the next ready task. Do not mark a task done from a build alone. Do not modify shared engine/Play files concurrently without an explicit integration owner.

  • 2026-09-08: Owner confirmed: refresh each mech’s once-per-round Reaction after all surviving mechs have activated, alongside scoring and before the next activation. Keep continuous activation order. This does not grant Prepared or Overwatch. Other reaction interview questions remain open; do not mark this task done.
  • 2026-09-08: Owner confirmed: retain the Prepare Quick action requirement for reactions other than Overwatch. Overwatch arms itself through its Full action. Melee parries need no Prepare and spend no once-per-round Reaction. Next interview point: whether declining preserves the Reaction and Prepared/Overwatch for a later eligible trigger until normal expiry. This is not yet an owner decision; other TASK-040 questions remain open.
  • 2026-09-08: Owner confirmed: declining an eligible reaction spends no Reaction and preserves Prepared or Overwatch until normal expiry, including a later eligible Overwatch opportunity. E5/E6 and the specification now agree. Remaining interview topics include ordering multiple eligible reactors, response weapon selection, and continuation after reactions. Keep this task open.
  • 2026-09-08: Owner confirmed: when multiple friendly mechs can react to the same event, their player chooses the order and decides one at a time after seeing each result. Recheck eligibility after each reaction. Each reacting mech spends its own Reaction. Do not require committing all responses before the first result. Weapon selection and continuation timing remain interview questions.
  • 2026-09-08: Owner confirmed: Prepare does not reserve a reaction type or weapon. Choose the eligible reaction and legal weapon when the trigger happens. Overwatch remains tied to the weapon selected when it was set. Next interview topic: whether Overwatch checks a moving enemy along its path or only at its destination. Current E5/E6 specify move end; a path-interruption proposal is not yet approved. Keep this decision task open.
  • 2026-09-08: Owner approved path-based Overwatch: an enemy crossing the firing lane can be shot even if it ends behind cover. Pause movement at the eligible hex and resolve shot range, LOS, and cover there. E5/E6 updated; engine implementation remains pending. Still interview whether declining at an early eligible hex permits a later shot during that same move, and how interrupted movement resumes.
  • 2026-09-08: Owner accepted the completed reaction package: fixed seven-hex watch area centered on a chosen map hex at one elevation, not on the mech; visible to both players; enemy movement into/within offers a legal named-weapon shot at a chosen point along the declared path. Disengage before leaving adjacency, Overwatch at the selected hex, continue declared movement if able, and no reaction chains. This supersedes earlier unrestricted path/endpoint proposals and closes the interview. Radius is a provisional tuning value. Engine implementation is still TASK-054.
TASK-041 · decided · local-prototype

Match setup interview: roster lock and local hidden sideboarding

Work contract

Read docs/design/2026-09-08-local-prototype-spec.md and docs/reviews/2026-09-08-session-handoff.md first.

Entry points and likely ownership: docs/design/2026-09-08-local-prototype-spec.md; docs/rulebook.md; corresponding liste decision item.

Scope: B1, B3-B5, I1-I2. Four mechs, three deployed, one reserve are approved. Written B5 applies part-copy and pilot uniqueness limits to all four; Team Cap applies to the deployed three. Confirm initial three selection/reveal, pilot assignments locked during a match, one swap or stand pat between games, fixed map order, and local handoff behavior. Preserve roster pilot reassignment before locking. Optional timed play needs a separate decision and is not silently added. Interview the owner one focused question at a time. Do not implement the proposal before agreement.

Acceptance and verification: Record the owner answer separately from the recommendation, resolve conflicting current rule text, and add concrete examples for dependent engine tests. Only mark done when all behavior needed by the dependent task is settled.

Dependencies: None; can start after claiming ownership.

Handoff: record changed files, public contracts, exact checks and results, unresolved decisions, and the next ready task. Do not mark a task done from a build alone. Do not modify shared engine/Play files concurrently without an explicit integration owner.

  • 2026-09-08: Owner requested a bulk editable Markdown interview instead of serial questions. Use docs/design/2026-09-08-prototype-interview.md (100 stable IDs, sections A-L). A maps to TASK-037, B to TASK-038, C to TASK-039, D to TASK-041; other sections map to UI work packages. Accept only explicit question or section answers, preserve exceptions, and keep blanks unresolved. Process follow-ups and document/build updates in batches. This supersedes older one-question-at-a-time workflow instructions.
  • 2026-09-08: Processed owner answers in docs/design/2026-09-08-interview-decisions.md supersede the original recommendations. Q001 removes Overcharge; Q020 requires Heat on each upward climb; Q028 removes copy limits; Q030 allows ammo changes; Q032 randomizes map order. See the corresponding question IDs and accepted recommendations for complete behavior.
TASK-071 · decided · tuning, local-prototype

Test ranged reliability and useful anti-armor choices

T34 and T6/T11 follow-up. Foundry cannon Fires remove no body durability 66.0% of the time, mostly misses/cover. Compare Cannon Acc -1→0, movement penalty, and general Gunnery +1 separately; test normal Pulse body damage plus Heat and legal anti-armor options. Existing sensitivity: Gunnery +1 lowers empty ranged Fires 38.2→33.1%; core Armor 7→6 alone barely changes them. Measure whole firing actions, rerun aggression grids and mirrors before selecting values. No blanket armor nerf approved. See audit for exact commands.

Work remains on feature/local-playtest-prototype. Keep .liste local and export site/data/liste.json. No deployment in this task.

Isolated evidence update — 2026-09-09

Owner requested non-bot metrics and raised multi-shot firing. Follow the isolated audit before any further bot balance verdict. Matched-budget Rifle 1×2d6→2×1d6 and Cannon 1×3d6→3×1d6 reduce zero-damage actions substantially, while reducing concentrated part destruction and kills. Recommended next prototype: controlled burst options with unchanged raw budgets, preserving/testing single-shot finishing and deciding Aimed Shot eligibility. Do not simply multiply full-damage shots. Include Heat, legal weapon/arm weight, damage, reliability, part destruction and kill chance. No live tuning change is yet selected. Sato/Targeting-head Lance builds are a high opening-output control; account for pilot uniqueness and sustained Heat costs. TASK-075 retains all commands and evidence; T38/T42 record findings.

Implemented local prototype — 2026-09-09

Owner authorized split fire and lower empty-action rates. Implemented all ranged profiles as small-die volleys, +2 ranged Accuracy, whole-volley Full aiming, and AP role fixes. Holdout evidence: 6.36 million fresh Fire trials plus persistent lethality sequences. See docs/tuning/2026-09-09-burst-prototype.md. This completes the local prototype change; human validation of aimed-Core and focus-fire effects continues in TASK-082.

TASK-076 · decided · tuning, local-prototype

Give independent arm bodies meaningful tradeoffs

T39. Utility/Conduit, Impact/Braced and Braced/Field have equal-weight strict body-stat upgrades once held weapons are chosen independently. Review all arm capacity, handling, size, protection and weight tradeoffs. Decide manufacturer roles, then test equivalent weapon fits and incoming part destruction with the isolated lab. Do not use legacy defaultEquipment as compensation. Keep every hard build limit and meaningful melee handling distinction.

Work remains on feature/local-playtest-prototype. Keep .liste local and export site/data/liste.json. No deployment in this task.

Implemented local prototype — 2026-09-09

Implemented Conduit capacity 7, Braced capacity 10, Field durability 9. Repeatable same-Size/same-category Pareto check confirms zero remaining numeric dominance pairs and legal stock kits. Report docs/tuning/2026-09-09-body-part-audit.md; detector tests reconstruct all four original defects. This is not proof of equal context-dependent power.

TASK-077 · decided · tuning, local-prototype

Resolve unavailable pilot ability synergies

T41. Sato has no other Ninesuns or Marksman partner, while duplicate pilots are forbidden, so Deadeye cannot activate with the current catalog. Ruko and Marrow can share Hollow; do not claim all abilities are unreachable. Audit every current pilot against D3. Options: expand compatible identities, revise faction/specialty assignments, or make signature abilities unconditional and give synergy another role. Preserve the existing rule until the owner selects a direction; update rulebook, assembly guidance and activation tests together when implementing.

Work remains on feature/local-playtest-prototype. Keep .liste local and export site/data/liste.json. No deployment in this task.

  • 2026-09-10: 2026-09-10 review: D3 plus current six-pilot catalog leaves Vex, Ilse, Sato and Q unable to activate abilities; only Ruko and Marrow share a qualifying faction. Bonds are separate. Proposed isolated comparison: always-active signature abilities versus current teammate requirement. Alternatives: expand compatible pilots or revise affiliations. Recommendation: test always-active abilities for this small catalog. Record useful triggers, support/control choices and roster diversity, not only damage or win rate. Keep the live condition unchanged until trial review. See docs/design/2026-09-10-assembly-balance-experiments.md. The dependency below sequences review after TASK-097; it does not adopt that candidate into this trial. The prior feature/local-playtest-prototype branch note is historical; future experiments use a fresh codex/ branch from the recorded current baseline.
  • 2026-09-12: 2026-09-12: User explicitly requests more pilots. Implement 15 total, three per faction, keeping all six original cards unchanged. This supplies same-faction ability partners for every existing pilot before other balance trials.
  • 2026-09-12: User reordered content work ahead of the balance trials on 2026-09-12. Fifteen pilots now supply legal same-faction partners for every ability. Original six cards preserved; faction trios, specialties and cross-faction bonds are covered by tests.
  • 2026-09-12: Implemented 15 pilots, three per faction, preserving the original six. Tests prove legal faction trios, Specialty access, reciprocal bonds and reserve exclusion. Full verification: 606 unit tests and 52 browser checks passed; independent engine review accepted.
TASK-078 · decided · tuning, local-prototype

Repair weak armor-piercing ammunition roles

T40. Flak AP against braced Bastion/hard drops mean damage 3.08→2.31 and raises zero-damage Fires 7.9→15.1%. Cannon AP adds three weight while six-cell damage falls 3.66→3.48. Autocannon/Rotary AP are useful controls and must not be swept into a universal change. Compare damage floors, Pen, shot count and load weight under identical legal fixtures; report rare kills, rounded glances and target protection separately. Keep limited HE a distinct option. Recommendations remain pending a role decision.

Work remains on feature/local-playtest-prototype. Keep .liste local and export site/data/liste.json. No deployment in this task.

Implemented local prototype — 2026-09-09

Implemented Flak AP retaining 1d3+1 damage and Cannon AP 3×1d6, with carried load weight unchanged. Measured all 20 ranged profiles with 10,000 trials per context against baseline. AP now pays weight/capacity for higher Pen; Flak AP short-range strength is recorded for playtesting. See burst-prototype report for costs, role outcomes and limits.

TASK-107 · decided · rules, balance

Run isolated and combined balance experiments from the content reassessment

Notes

  • 2026-09-12: Owner authorizes implementing and measuring all six recommendations separately and combined. Freeze baseline e116261. Remain on codex/corporations-launch-platform-weapons per current-branch preference. Experimental parameters/catalog clones only; keep playable defaults, ranged Accuracy+2, current movement, offensive Enraged and Cooling Tender unchanged. Predeclare candidates, fresh training/selection/confirmation seeds and acceptance limits before outcomes. Use full engine resolution, both sides/first sides, per-map mirrors, complete exchanges, legal-build frontiers, paid AI forms, explicit Momentum semantics, pilot stat/ability ablations, Core+2/+4 and Hammer dice+1. Independently review engine changes and final evidence; no push/deployment or default adoption in this study. Human counterplay cannot be claimed from bot runs.
  • 2026-09-14: 2026-09-14 study outcome. All seven phases are sealed at frozen source hash 5267032f. Confirmation ran 16 fresh seed blocks 230000 to 230015, 16,128 games, each arm on its own trained aggression policy. The preregistered metric is roster payoff spread, smaller is more even. Full record: docs/tuning/2026-09-12-balance-experiment-results.md. Register rows T69 to T72.

CONFIRMED: tn10, the common melee opportunity target number 10. Paired spread -9.64 pp [-14.41, -3.99], excluding zero in the smaller-is-better direction. The screen predicted -8.33 pp, so direction and size replicate on fresh seeds. It buys evenness with defence, not lethality: parries +3.029 [+2.696, +3.389], shield parries +0.435 [+0.358, +0.511], melee starts +0.262 [+0.180, +0.346], heat added -0.357 [-0.565, -0.153]. Wipes, part disables and First Side are flat. The compression is a reordering, not a squeeze: light-duelists falls 7.73 pp from the top, new-ranged rises 7.81 pp to become the new top, transformers rises 3.47 pp from the floor.

NOT CONFIRMED: tn11+hammer2+blade-cap4+core-plus2@paid-forms. Paired spread +2.17 pp [-1.48, +5.82]. The interval includes zero and the point estimate is on the wrong side. Its screen estimate was -1.74 pp on two blocks, with an interval that already covered zero, so the sign flipped between selection and confirmation. Its secondary effects are large and real: wipes -9.02 pp [-10.75, -7.18], no-death +1.90 pp [+1.41, +2.36], proactive attacks +1.862 [+1.738, +1.998], rounds +0.180 [+0.143, +0.217], heat added +4.613 [+4.370, +4.852], form changes 0 to 0.357 [+0.351, +0.364]. Its largest roster move, heavy-anchor -10.85 pp, is interior and invisible to the spread metric. At confirmation resolution it would fail the screen's own mirror guard.

Control spread is 57.99 pp at confirmation against 50.00 pp at the screen with the same seven rosters. The screen figure came from two blocks at eight games per cell and was never a stable baseline. No spread level anywhere in the study carries an interval, and no per-roster interval exists in any report.

  • 2026-09-14: 2026-09-14 turn-order fairness and per-family results.

Turn order is a roster-by-map effect concentrated in mirrors, not a map constant. The opening diagnostic, 8 blocks, gave control first-mover share by map as Quarry 58.68 pp, Foundry 44.10 pp, Causeway 39.24 pp on 288 games each, all excluding even. On confirmation's 16 fresh blocks with trained policies those map effects vanish: 49.9 pp, 48.0 pp, 52.2 pp, all covering even. Pooled over mirrors only, Quarry first-mover and Foundry second-mover persist attenuated, 64.3 to 54.9 pp and 44.2 to 42.9 pp, while Causeway does not replicate. Light-duelists on Quarry gives the first mover 0.88 in both designs. tn10 is even on every map. The combination is not: First Side +1.79 pp [+0.24, +3.16] overall, +4.80 pp [+3.18, +6.36] on Causeway, and three mirror cells swept 64 to 0 by turn order. The First Side levels come from a supplement outside the frozen source closure. It is descriptive and did not influence selection.

  1. Melee opportunity target number. Isolates, 256 blocks: control's threshold is the defender's Evasion, which is 11 for every exchange package, so tn11 is bit-identical to control there. The dose moves dice, not deaths, and no exchange lethality interval excludes zero. The class panel closes the 22.8 pp light-versus-heavy death gap by killing Heavies less, not Lights more. Whole game: tn10 confirmed.
  2. Hammer melee dice 1 to 2. Isolates: the Hammer was 13th of 15 packages on damage dealt and last of 15 on net kill differential under control; hammer2 moves it to 9th and 10th. On its 30 changed exchange cells it dies 7.85 pp less often and its opponent 6.71 pp more often. Whole game: screened at 53.47 pp on two blocks, never confirmed alone, and entered confirmation only inside the failed combination.
  3. Duelist arm Capacity. No isolate evidence in either direction. blade-cap4 and blade-cap5 are bit-identical to control in all 1,266 of their cells, because every fixture build already fits inside Capacity 4. Screened at 50.69 pp and 50.00 pp on two blocks. Only the Light Duelists roster needed refits, Team Weight 97 to 96 to 95. Inconclusive.
  4. Core Durability. Isolates repeated panel, 256 blocks: plus two lengthens time-to-kill by +0.406 [+0.387, +0.426] activations and time-to-disarm by +0.122 [+0.098, +0.147] on the conditional scale, a ratio of about 3.3. Plus four roughly doubles both. The 16-activation cap almost never binds; attacker death is the real competing outcome, 30 to 79 percent in every melee cell against the Courier. Never confirmed alone.
  5. Momentum, paid forms, prospective melee threat. Melee Momentum never fired in any whole game of any phase, although the rule was on and a Momentum pilot was on every board. It fired in one isolate cell and in the pilot panel, 117 dice in 12,288 games, with every payoff interval covering zero. The counter measures the melee variant only; the ranged Momentum bonus is applied in every arm and never counted. Paid forms reach 0.357 form changes per game inside the combination, yet the transformers roster never changed form in control or tn10 while setting the floor of the metric in every arm. Prospective threat screened 9.03 pp worse and is in no confirmed candidate.
  6. Pilots. Eight blocks against one fixed opponent at fixed aggression 0.5. These are controlled diagnostics, not rankings. Every Yutani subset containing the Pace pilot is indistinguishable from the full trio on payoff; every subset without him is clearly below it. Pace and Deadeye have no counters at all. FSU's stat result is confounded by the only live Bond on the board. Eight of the 128 contexts are byte-identical to another context, because pilot Initiative never reaches combat.
  • 2026-09-14: Decision for the owner: what to do with the study's one confirmed candidate. The study adopts nothing. TASK-107 stays open until the owner decides.

Options: A. Adopt tn10 as the playable default common melee opportunity target number. It is the only candidate supported on the preregistered metric, confirmed on fresh seeds at -9.64 pp [-14.41, -3.99]. B. Adopt nothing yet and run a second study first. tn10 evens the roster field through defence and reordering, not through melee lethality, so it does not by itself meet the design goal that closing distance should mean lethality. C. Adopt the combination tn11+hammer2+blade-cap4+core-plus2@paid-forms. The evidence rejects this. It did not confirm, its spread moved the wrong way, and it would fail the screen's own mirror guard at confirmation resolution. D. Test Core +2 standalone in a confirmation-grade design, if fewer wipes and longer games are wanted. The isolates point at it. The whole-game evidence cannot attribute it. E. Confirm Hammer +1 die alone, if Hammer viability is a goal. It is real in isolation and unconfirmed in whole games. F. Drop Capacity from the next study unless a fixture that actually exercises it exists. G. Treat turn order as a roster-by-map problem in mirrors. A follow-up mirror study needs at least 64 games per cell and intervals on the level. A design lever such as the second player choosing the deployment side in mirrors is an owner decision, not a study result.

Recommendation: take A with the caveat from B. Send tn10 to the separate playable-default decision, and record beside it that it does not make closing distance more lethal. Reject C outright. Queue D, E and F for study-02, and G as a separate mirror study. Fix the study-02 tooling before any further rule test: instrument Pace, Deadeye and ranged Momentum; add per-roster and per-assignment intervals; replace the ceiling-bound mirror guard with a First Side share and an interval; label duplicate contexts.

BUG-017 stays open. TASK-082's human playtest requirement is untouched. TASK-099's Bow-role work is not closed by this study.

  • 2026-09-14: Correction to the 2026-09-14 per-family note above, after the final independent review. Both figures were transcription errors carried over from the data reviews. The results report and register rows T68 and T72 now carry the corrected numbers.

Family 3, Duelist arm Capacity: blade-cap4 and blade-cap5 are bit-identical to control in all 327 of their cells, not 1,266. The 327 are 240 exchange, 6 sensitivity, 36 class and 45 repeated, per condition. Read the earlier note with 327 in place of 1,266. Nothing else in that line changes; the axis is still inert in every cell.

Family 6, Pilots: 52 of the 128 contexts are byte-identical to another context, not eight. The 128 labelled contexts reduce to 76 distinct game sets, in 40 singletons, 32 pairs, 2 groups of four and 2 groups of eight, which is where the 4,992 re-simulated games come from. Most of the pairs are the legitimate Momentum-off and Momentum-on twins. The figure eight belongs to a different unit: 8 of the 64 pilot-configuration cells duplicate another cell across factions, which is the cross-faction collapse caused by pilot Initiative never reaching combat.

  • 2026-09-15: 2026-09-15 decision: the owner adopts tn10, a common melee opportunity target number of 10, as the playable default (option A). Implemented as a separate change per protocol line 644: DEFAULT_RULES, rulebook F11, GDD, README, tuning note, register T69 resolved. The combination is not adopted. Other options stay open on this item.
  • 2026-09-15: 2026-09-15: tn10 adopted as the playable default. Rulebook F11.1 now reads target number 10, plus the current Evasion of the opponent, minus its printed Evasion; the shield threshold of 8 (F11.6) is unchanged, and section K carries the adoption entry. Engine default meleeOpportunityTarget moves from undefined (opponent's Evasion) to 10. Register T69 resolved 2026-09-15 with the confirmation spread 57.99 to 48.35 pp, paired -9.64 pp [-14.41, -3.99] on 16 blocks; T65 tense updated. Adoption note: docs/tuning/2026-09-15-adopt-tn10.md. Caveats: the change evens the field through defence and reordering, not melee lethality, and the bot's melee valuation does not model the target number (TASK-108).
  • 2026-09-15: 2026-09-15: study 01 closed. Adopted from its findings: tn10 (3943cae), weight-based Initiative (1a8563f, via TASK-110), weapon skills (1a8563f, via TASK-111). Not adopted: the combination, Core +2 standalone, Hammer +1 die standalone, capacity. Next balance targets recorded on T73: the light duelist build and the melee approach. Tooling gaps on TASK-108.
TASK-110 · decided · rules, balance

Decide the turn-order rule after study 01: revisit E2 (TASK-036) with the finding that the same side opens every round at 3v3 and turn order sweeps mirror cells (register T71)

Notes

  • 2026-09-15: Evidence: E2 starts each round opposite the last actor, so at 3v3 (six activations) the same side opens every round until a mech dies. Study 01 confirmation: control mirror cells swept by turn order, light-duelists on Quarry 0.88 for the first mover in two independent designs, heavy-anchor on Causeway strongly second-mover; pooled over all games it reads even, so the effect hides outside mirrors. Pilot Initiative (D1) currently reaches nothing in combat. Owner raised a D&D-style initiative system on 2026-09-15.
  • 2026-09-15: Options. A: roll initiative each round with d6 plus pilot Initiative, the winner chooses to activate first or second, then alternate; restores the visible initiative die A1 promises, uses D1, breaks the every-round lock, keeps alternation. B: full D&D per-mech initiative, rolled once, descending order; allows orders like A A B A B B, the alpha-strike case alternation exists to prevent, and a fixed order means the same mech always reacts last; likely widens the first-strike edge. C: keep E2 but alternate the round opener strictly; no dice, removes the lock only. Recommendation: implement A, B and C as opt-in rules and measure all three from both sides with the study tooling (mirror sweep count, First Side share with intervals, spread) before locking; expected A. Any adoption updates E1, E2, A1 text, the engine default, the bench Play tab, and the register.
  • 2026-09-15: 2026-09-15 owner: try B and C in the simulator. B is balanced off mech Weight so heavier mechs act later. Spec: opt-in rule activationOrder with 'initiative' (B: each mech rolls d20 plus pilot Initiative minus Weight divided by 10 rounded down, once per game, act in descending order, ties to the lighter mech), 'initiative-round' (same, rerolled each round), and 'alternate-opener' (C: the round opener alternates strictly). Measured from both sides on the legacy pair and in mirrors with the first placer fixed, plus a count of rounds where one side acts three times before the other acts once.
  • 2026-09-15: 2026-09-15: Measured. Full note: docs/tuning/2026-09-15-turn-order.md. Four values of the opt-in rule activationOrder, 12 legacy-pair grids and 36 mirrors at n=1000 per cell, uncommitted tree on 3943cae. alternate, today's E2: mirrors swing up to 20 points; heavy mirror 69.5 on Quarry and 40.9 on Causeway. alternate-opener: heavy mirror even at 48.1, 50.3 and 47.3; light mirrors not fixed, legacy light Foundry 39.0 and light melee Causeway 56.8; the light-versus-heavy pair gains a Foundry equilibrium at 60.8. initiative: even in every mirror from 49.0 to 52.0, but about half a sweep round per game, and on Causeway the first mover wins 67.5 in the light-versus-heavy pair. initiative-round: mostly even, with one 62.8 outlier that the side-A tie-break likely explains. Recommendation: the evenness comes from initiative deciding the first mover, and the sweeps come from dropping alternation. The untested hybrid, roll initiative, winner activates first, then alternate, keeps the first and drops the second. Caveats: the light duelists mirror used three light:targeting-head:blade-arm:blade-arm:sprint-legs:bare-back builds because the study roster's weapons were not expressible on the CLI, the alternate-opener sweep counts are under investigation, and differences under about 3 points are noise. Register T71 stays open for the owner's decision.
  • 2026-09-15: Correction: the sim-runner reran the legacy light mirror on Causeway under alternate-opener. It reads 49.6 / 49.6 / 0.00 sweeps / 5.3 rounds, not the initiative row's numbers. So alternate-opener leaves the legacy light mirror even on Quarry at 46.8 and on Causeway at 49.6, and it fails only on Foundry at 39.0. The tuning note is corrected.
  • 2026-09-15: Correction: the first sim-runner report's tables were scrambled in several rows and are superseded. A machine-captured rerun that passed its own consistency checks replaces both tables in docs/tuning/2026-09-15-turn-order.md. Revised reading: alternate swings mirrors up to 20 points, heavy mirror 69.5 Quarry, 40.9 Causeway, 59.8 Foundry, light melee 61.4 Causeway. alternate-opener does not fix fairness, it moves it: heavy Causeway 62.8, legacy light Foundry 39.0. initiative and initiative-round read even in all nine mirror cells, 47.8 to 54.3, at the cost of about half a sweep round and about one run of three per game against 0.01 to 0.66 today. The light-versus-heavy pair under initiative reads 53.3 Quarry and 49.5 Causeway against 47.0 and 50.3 today. Sweep rounds are 0 by construction under both alternating rules, proven in engine/activation-order.test.ts, so runs of three is the metric that separates them. The light melee mirror ran at n=500, the legacy mirrors at n=1000. The earlier 56.8 Causeway figure for light melee under alternate-opener is withdrawn; it reads 55.6.
  • 2026-09-15: 2026-09-15 decision: the owner adopts weight-based initiative rolled once per game as the activation order (the 'initiative' experiment). Each mech rolls d20 plus pilot Initiative minus Weight divided by 10 rounded down at game start; mechs act in descending order every round; ties go to the lighter mech, then higher pilot Initiative, then a visible die instead of side A. Same-side runs are part of the design and stated in the rule. Replaces E2's continuous alternation.
  • 2026-09-15: 2026-09-15: Adoption landed in the docs. E2 rewritten to the weight-based Initiative roll (d20 + pilot Initiative - Weight/10 rounded down, once at game start, descending order held all game, ties lighter mech then higher pilot Initiative then a d6); A4, A5, E1, D1 and H8 updated; Decision log entry added; GDD combat-design bullet added; README, lite-rules and stats-guide corrected; adoption note docs/tuning/2026-09-15-adopt-initiative.md written; register T71 resolved with mirrors moving from a 40.9-69.5 band under alternate to 49.1-54.3 under initiative. Rulebook HTML regeneration is the publisher's.
TASK-119 · decided · gdd, unity

Decide the camera under HD-2D: the locked 2.5D camera rotates in 90-degree steps, but HD-2D sprites face the camera, so a full rotation shows one facing from every angle. Options: fixed camera; limited swing (about 30 degrees each way); sprites with 2 or 4 facings and 90-degree stops. Raised 2026-09-22 with the HD-2D decision

Notes

  • 2026-09-22: 2026-09-22 owner decision: the camera keeps its full rotation in 90-degree stops (E2 lock stands). Consequence: HD-2D sprites must carry several facings and swap as the camera turns. Four facings (front, back, left, right, or the diagonal set) per part so a mech assembled from parts stays consistent at every stop; the facing is picked from the angle between the camera and the mech, with a small hysteresis so it does not flicker at the boundaries. Art cost: every part is drawn from four sides; the shared-skeleton Sprite Swap handles the part swap per facing. The 32x20 board's short ends are the deploy zones, so all four stops are equally likely to be the player's view.

The decision log of the rulebook also lists the rule decisions. The open decisions section of the GDD lists the product decisions.