- Replace the fixed level-1 tether radius (5120 px) with a configurable
`anchorMinDistance`/`anchorMaxDistance` band (default 3500–4990), capped by
the tether range, so gate distance from its planet varies per gate while
staying strictly < 5000 px.
- Generate candidate positions on 8 discrete radius steps spanning the band;
a seeded preferred step orders them and clearance/gap pressure only pushes
the gate outward from its preference.
- Update the tether check in `dev/jumps.test.mjs` to assert the gate sits
within the anchor band rather than merely under the tether radius, and use
the band max for facing-side calculations.
- Update `dev/tether-rules.audit.mjs` Rule 1 to verify < 5000 px and report
the distribution of gate→anchor distances across the band.
- Refresh comments in `data/gates.json`, `docs/PROJECT_NOTES.md`, and
`SystemGenerator.js` to describe the new band-based placement.
- Introduce the oac-system-complete visual comm that fires on the
'systemComplete' trigger when a system's jumpgate research unlocks,
arming before the generic researchComplete sign-off so the FIFO plays
specific -> generic.
- Support an optional audioPool list of speech clips in CommsModel; the
hub picks one at random per arm so only the chosen clip is fetched and
cached, with validation that audio comms need a clip or pool.
- Wire GameScene to trigger systemComplete on activateGates when the
system nav chart is complete.
- Update comms tests for the new comm, pool normalization/asset rolling,
roster counts, and add a tether-rules audit script plus station shop
video references and lava assets.