# FreeDMR 2 Architecture Notes This directory contains the distilled FreeDMR 2 design notes. The older notes in `docs/codex-notes.md`, `docs/freedmr-2-architecture-decisions.md`, and the test/API docs remain source material and engineering history. FreeDMR 2 is not a blind rewrite of packet behaviour. The protected asset is the FreeDMR operating model: DMR packet semantics, dial-a-TG, TG/DMR-ID-centric routing, loop control, source quench, mesh behaviour, RF-side tolerance, data forwarding, and practical amateur-radio interoperability. Recommended reading order: 1. `00-glossary.md` 2. `01-system-model.md` 3. `02-state-model.md` 4. `03-subscription-model.md` 5. `04-packet-and-stream-model.md` 6. `05-data-packet-policy.md` 7. `06-mesh-model.md` 8. `07-reporting-model.md` 9. `08-api-control-model.md` 10. `09-security-model.md` 11. `10-runtime-and-concurrency.md` 12. `13-worker-process-scaling.md` 13. `11-testing-and-release-gates.md` 14. `12-migration-plan.md` Architecture Decision Records live in `adr/`. They record proposed FreeDMR 2 decisions separately from implementation work. Current FreeDMR 1.x remains live until FreeDMR 2 is tested. Compatibility adapters are allowed where useful, but old HBLink object layout, dashboard socket assumptions, and legacy `BRIDGES` structure should not define the FreeDMR 2 core. FreeDMR 2 keeps Twisted initially but is designed for eventual worker-process scaling. Non-packet-path workers such as reporting/global export move first; packet-plane routing workers are a later stage after state ownership and message-boundary tests are proven.