In Meridian's R3m scenario, mines block the strait. No plan can satisfy all four commitments. A conventional system would either fail silently — returning no result — or rank by a weighted score that hides which commitment was traded away and why.
ASSAY does neither. It turns infeasibility into an argument surface the commander weighs: here is what each sacrifice costs, here is what it buys, and here is the tie_break convention that ordered same-tier alternatives — because encoding a civil-harm-vs-force-protection ranking is exactly the value judgement ASSAY-DEC-19 forbids.
The three least-worst candidates
The relaxation service generates R3m-responsive candidates that enter the mined water, scores each through the existing SPEC-07 scorer (reused, never re-implemented), keeps only the inclusion-minimal sacrifice sets, and ranks them least-worst first by ordinal tier cost — musts last, never dropped.
Route transits the mined channel with reduced capacity. The prefer-tier sacrifice trades tonnage for clearance — the cheapest relaxation in the commander's priority order.
Route holds capacity but accepts reduced clearance. A should-tier sacrifice — more costly than C4, but preserving the logistics commitment the force needs.
Route narrowing through the strait. The must-tier sacrifice — ranked last, never dropped. The commander sees it because silence on a must-sacrifice is more dangerous than showing it (G4).
Illustrative widget, fixture data. The cards show the three inclusion-minimal candidates the relaxation service produces for Meridian R3m. The ranking, sacrifice tags, and tier labels follow the real s3Cards component's rendering. Frozen as shipped on 2026-07-13.
Least-worst, never silence
Three design constraints, each load-bearing. Inclusion-minimal: a strict-superset sacrifice (e.g. {C2, C4}) is silent waste and is dropped — the commander does not need to see dominated options. Least-worst first: prefer-tier sacrifices before should-tier, should-tier before must — no weights (DEC-19), just the ordinal priority the commitment itself declares. Never empty: the report always contains at least one candidate (G4), and the must-sacrifice is always present, never hidden behind a ranking threshold.
Sources & trace
- Relaxation service — src/relax.ts · src/tiers.ts
- Cards component — src/components/s3Cards.ts
- Research note — 04-relaxation.md (the lexicographic goal-programming decision)
- No-weight rule — ASSAY-DEC-19 in the decision register
- Fixtures — R3m (mined-water scenario) in the Meridian vignette