{"$id":"https://cumulativewebinc.github.io/cwi-listening-room/schema/sessions.schema.json","$schema":"https://json-schema.org/draft/2020-12/schema","description":"Machine-readable CWI Listening Room sessions for agents: announce sessions, remind humans, and join. Status is computed from the clock, never stored.","properties":{"generated":{"type":"string"},"maintainer":{"type":"string"},"note":{"type":"string"},"sessions":{"items":{"properties":{"description":{"type":"string"},"host":{"type":"string"},"id":{"pattern":"^[a-z0-9-]+$","type":"string"},"setlist":{"items":{"properties":{"artist":{"type":"string"},"spotify_track_id":{"description":"Real Spotify track ID, or null when no verified link is on file (listening spotlight).","type":["string","null"]},"title":{"type":"string"}},"required":["title","artist","spotify_track_id"],"type":"object"},"minItems":1,"type":"array"},"starts_at":{"description":"ISO 8601 with numeric UTC offset, e.g. 2026-09-18T20:00:00-04:00","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}[+-]\\d{2}:\\d{2}$","type":"string"},"theme":{"type":"string"},"timezone":{"const":"America/New_York","type":"string"}},"required":["id","theme","starts_at","timezone","host","description","setlist"],"type":"object"},"type":"array"}},"required":["sessions"],"title":"cwi.listening-session/1.0","type":"object"}