Per-camera audio presence state. Written by the stream-source reader
task and by startup_wake::warm_one; read by CameraProvider::subscribe
to decide whether to wait for an audio track’s SDP params before
returning a subscription to the RTSP server.
HA add-on glue: parse Supervisor’s options.json + an optional TOML
overlay into a single bairelay crate::config::Config, validate,
and emit. Exposed via the bairelay render-hassio-config subcommand.
MQTT-side event-loop helpers extracted from main.rs so the per-
event branch table can be unit-tested without spinning up a real
broker + rumqttc::EventLoop.
Pure-logic helpers extracted from main.rs so each step of the
bring-up / teardown pipeline is unit-testable without a real
broker, orchestrator, or signal-handler wiring.