33a9e8f053
Replaces the Phase 1 stubs with working moq-lite-03 audio publish/subscribe loops: - hang-publish: opens a broadcast under <relay>/<broadcast>, publishes a hang Catalog with one Opus / Container::Legacy audio rendition, and pumps Opus-encoded sine-wave frames in groups of 5 (matching Amethyst's NestMoqLiteBroadcaster default) for --duration seconds. - hang-listen: connects to the same broadcast, reads the catalog, picks the first Opus audio rendition with container.kind=legacy, decodes each Opus packet, and writes Float32 little-endian PCM to --output-pcm (or stdout with `-`). Both use moq-native 0.13 with the quinn + aws-lc-rs features and explicitly install the rustls aws-lc-rs crypto provider in main() since rustls 0.23 no longer auto-installs. Verified Rust↔Rust interop end-to-end: 3-second 440 Hz publish → 2.7 s of decoded PCM, RMS 0.35 (matching half-amplitude sine), 880 zero-crossings/sec (matches 440 Hz exactly). Phase 2.B (JVM Opus encoder/decoder) and 2.C (I1 amethyst-speaker → hang-listen) are next. https://claude.ai/code/session_01ERJPUYfdLPwZ99pr5EcEcV