ADR 0001: Headless Rust and universal domain
Date: 2026-09-11 · Status: accepted · Implementation: see current implementation for delivered scope and remaining work.
Context
The platform needs virtual audio, automated control, physical observations, and evaluation under one model. Binding actors directly to XDJ-AZ operations would make simulation and comparison dependent on one device.
Decision
Use a headless Rust runtime assembled by boothd. Keep dj-domain independent of device brands and I/O. Use an engine-owned command/event boundary, with capability-aware virtual and physical adapters. Keep AI computation outside timing-critical execution.
Consequences
Typed contracts and explicit ownership enable common actor behavior. Hardware parity must be measured per capability. Audio callback discipline and asynchronous physical results require deliberate design; Rust alone does not guarantee real-time performance.