Home Blog

The ORBAT stops being coloured dots

14 June 2026

At a glance — ORBAT assets gain typed NATO-style symbols, an intel-confidence wash, a threat’s see-it-vs-hit-it rings, and lightweight descriptive detail — and every one of them stays honest-floor display-only: nothing touches the route.

The enriched ORBAT authoring panel — kind, icon, confidence, strength, notes, and red dual-range tuners

The problem

Spec 004 gave us a working ORBAT: add, tune, duplicate, remove and commit blue/red/green assets. But every asset rendered as the same allegiance-coloured dot with a single extent ring. You couldn’t tell a hospital from a SAM site, a high-confidence sighting from a rumour, or where a threat could see you versus where it could hit you. The picture had the right sides but none of the texture an intelligence officer actually reasons with.

Options

The strategy

Additive, schema-first, and display-only. Every new field is authored in the LinkML schema (Principle I) and regenerated — a PlatformKind enum and kind/symbol/confidence/strength/ notes on Asset; detection_range_m/engagement_range_m/threat_type on RedParams; a GreenCategory enum + category on GreenParams; role on BlueParams. The app imports the generated types and never re-lists them.

Symbols are TextLayer glyphs from a hand-written SYMBOLS lookup (the documented UI carve-out), drawn over the allegiance-coloured marker — no icon atlas, no new runtime dependency, no build step. Intel confidence becomes marker opacity (high→full, medium→0.6, low→0.35). Red’s reach splits into a faint outer detection ring and a bold inner engagement ring, with the model enforcing engagement ≤ detection. And because spec-004 drafts already live in users’ browsers, a pure, idempotent normalize() migrates them on load — a red asset’s old single extent_m becomes its detection range, with an engagement ring seeded inside it.

Crucially, nothing crosses the honest floor (NF9): not one enriched attribute is read by the kernel or any plan. An e2e test re-asserts that tuning any of them leaves the committed plan ids byte-for-byte identical.

The results

Screenshots

The enriched authoring panel — kind, icon override, confidence, strength, notes; red shows detection + engagement (the single extent is gone for red); green/blue keep their single extent:

The enriched ORBAT panel with all the new per-row controls

The map reads like a recognised picture — typed allegiance symbols in place of plain dots:

Typed ORBAT symbols on the Solway map