{ "$schema": "https://json-schema.org/draft/2020-12/schema", "name": "SESSIONS_REPLACE", "description": "User sessions have been replaced. Sent when sessions are updated across devices.", "scope": "presence", "dispatchedBy": ["gateway"], "payload": { "type": "array", "items": { "type": "object", "properties": { "session_id": { "type": "string", "description": "Session identifier ('all' for aggregated status, or specific session ID)" }, "status": { "type": "string", "enum": ["online", "offline", "idle", "dnd", "invisible"], "description": "Current status of the session" }, "mobile": { "type": "boolean", "description": "Whether this session is from a mobile device" }, "afk": { "type": "boolean", "description": "Whether this session is AFK" } }, "required": ["session_id", "status", "mobile", "afk"] }, "description": "Array of session status entries. Includes an 'all' entry with aggregated status plus individual session entries." } }