{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/GameCult/Ghostlight/schemas/event-record.schema.json", "title": "Ghostlight Event Record", "description": "Observable event distilled from an accepted responder output, with visibility scope and hidden intent explicitly separated from participant-local appraisal.", "type": "object", "required": [ "schema_version", "event_id", "review_status", "scene_loop_id", "turn_id", "source_responder_output_ref", "actor_agent_id", "observable_action", "spoken_text", "visible_object_refs", "visibility_scope", "affected_participant_ids", "public_state_changes", "hidden_intent_handling", "review" ], "properties": { "schema_version": { "const": "ghostlight.event_record.v0" }, "event_id": { "type": "string", "minLength": 1 }, "review_status": { "type": "string" }, "scene_loop_id": { "type": "string", "minLength": 1 }, "turn_id": { "type": "string", "minLength": 1 }, "source_responder_output_ref": { "type": "string", "minLength": 1 }, "actor_agent_id": { "type": "string", "minLength": 1 }, "observable_action": { "type": "string", "minLength": 1 }, "spoken_text": { "type": "string" }, "visible_object_refs": { "type": "array", "items": { "type": "string" } }, "visibility_scope": { "enum": ["public_room", "participant_local", "camera_mediated", "partial_sightline", "coordinator_only"] }, "affected_participant_ids": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } }, "public_state_changes": { "type": "array" }, "hidden_intent_handling": { "type": "string", "minLength": 1 }, "review": { "type": "object" } } }