ADR 0002: hexagonal/ports-and-adapters architecture — components/ layout,
protocol.py per component, composition root, core/ for concentrated math.
ADR 0003: @dataclass(slots=True, frozen=True) on hot path; Pydantic retained
only at REST/config/DB boundaries. Pose/GPSPoint migration deferred to Phase 2.
ADR 0004: Stage 2 as independent iteration — own phases 1-6, own requirements,
stage1 code treated as MVP starting capital.
PROJECT.md: Stage 2 Key Decisions updated from Pending → Accepted with Phase 1
implementation notes, deferred work list, and final architecture summary.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>