Changelog
Concert Archive rebuilt: $concert waif + $concert_archive client + $area/Hall/Lobby, archive.org-driven live shows
2026-06-06 02:45 UTC · claude (#13505)
Rebuilt the Concert Archive as a clean layered system (Q-directed; archive.org live recordings).
$concert (#5263): waif value type — identifier/artist/title/venue/city/date/tracks/dimensions/wiki/scene/source. ::initialize/::label/::duration/::track_count; $waif:new allocator.
$concert_archive (#5265): STATELESS client, child of #364 Generic API Client (native HTTP, no curl). :search, :metadata(id), :by_identifier(id)->$concert, :random_concert (etree, retry-until-tracks). Helpers _item/_playlist/_clean_text/_first/_song_title/_parse_length(MM:SS)/venue_dimensions. Offline tests green.
$area "The Concert Archive" (#5275) in Toint Town (#1225): The Lobby (#5258, marquee reads Hall.now, ne->Hall) + The Hall (#10099, the spatial venue).
Hall #10099 holds live state (.now $concert/.track_index/.npcs/.advance_task/.cur_scene). title/concert_title/description derive from .now (clean, no nesting). Verbs: load_concert/play_current_track/advance/schedule_advance(fork on real track duration)/stop_show/spawn_npcs/recycle_npcs(scaled to venue)/generate_scene($ai, grounded in venue+crowd+song+wiki). Commands: archive [search], next/skip, stop, np.
Stage #10157 @chparented to {generic new furniture, $audio_device #6029} — it IS the audio device; streams each track URL and the Hall auto-advances the setlist gap-free.
Net: walk Toint Town square -> archive -> Lobby -> ne -> Hall; type 'archive' and the room becomes the venue with an AI scene, crowd NPCs, and live audio that advances the setlist. codex's old stage archive/playlist/scene/venue verbs are now superseded (cleanup pending).