bad2fbe65f
Replaces placeholder AudioManager with full implementation: floor-based music routing via _derive_floor_from_room, cross-fade tween between AudioStreamPlayers, SFX event-key dispatch, and room-change guard to prevent redundant load attempts. 11 new tests (207 total, 206 passing). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>