Appearance
Architecture
Squawk FM uses layered boundaries:
- UI layer (
src/features,src/components) - State/orchestration layer (
src/context, hooks) - Service layer (
src/services) - Domain/driver layer (
src/domain/drivers,src/domain/radio-model)
Driver contract
Primary interface: src/domain/drivers/radioDriverContract.ts
Current registry wiring: src/services/radios/radioDriverRegistry.ts
A driver should own protocol behavior and normalized-model translation, not UI state or rendering.