neon-sprawl/docs/plans
VinPropane a7453eb82f NEO-24: unify prototype target radius at 6 m, overlap rings at origin
All prototype targets now share `PrototypeTargetRegistry.SharedLockRadius`
(= 6 m). Anchors moved to alpha `(-3, 0.5, -3)` and beta `(3, 0, 3)` so
the two 6 m rings overlap ~3.5 m wide centered at origin, letting Tab
flip between targets without locomotion. Spawn `(-5, -5)` keeps alpha
in range (~2.83 m) and beta out (~11.31 m) so the existing soft-lock
denial QA path at spawn still holds.

`prototype_target_constants.gd` mirrors the shared radius + new anchors.
The range-aware Tab picker now **skips the currently-locked id** so Tab
always expresses a swap intent — if the only in-range target is already
locked, the fallback picks the next cycle id and the server denies
(preserves NEO-23's "Tab = visible denial when no swap possible" rule).

Tests:
- Server: new `PlayerTargetStateReaderTests.ComputeValidity_AtOrigin_…`
  asserts both targets report `Ok` at origin. Existing boundary test
  rewritten for the new alpha anchor.
- Client: new `test_tab_from_locked_alpha_at_origin_swaps_to_beta_when_both_in_range`
  and `test_tab_when_only_current_lock_is_in_range_falls_back_to_cycle_for_denial`.
  Existing in-range/out-of-range positions updated for the new layout.

Server 59/59 and client 95/95 suites pass.

Plan Decision 7, review follow-up #4, manual QA section 5 (new "Tab-flip
at origin" overlap sanity), and README updated. Per-target radii will
return with real combat design (E5.M1) — this is a prototype stub.
2026-04-21 23:37:42 -04:00
..
E1M3-prototype-backlog.md chore: address E1.M3 docs review (Slice 3 anchor, Linear pointers) 2026-04-17 20:48:53 -04:00
NEO-5-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-6-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-7-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-8-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-9-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-10-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-11-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-12-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-13-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-14-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-15-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-16-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-17-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-18-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-19-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-20-implementation-plan.md chore: point docs and rules at Linear NEO issue ids 2026-04-13 13:15:32 -04:00
NEO-22-implementation-plan.md NEO-22: Unit-test WASD locomotion pure helpers 2026-04-17 20:16:25 -04:00
NEO-23-implementation-plan.md NEO-23: add targeting HTTP API (TargetState v1, select intent) 2026-04-17 21:06:59 -04:00
NEO-24-implementation-plan.md NEO-24: unify prototype target radius at 6 m, overlap rings at origin 2026-04-21 23:37:42 -04:00
NEON-29-implementation-plan.md NEON-29: Fix nav column steer ping-pong — path lookahead + air bee-line 2026-04-12 18:03:47 -04:00
internal-content-authoring.md chore: Epic 2 E2.M1 stub, content CI validation, doc follow-ups 2026-04-03 21:27:52 -04:00