{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://marvelpbx.invalid/schemas/cem/1.0/communication.call.ended.schema.json",
  "title": "communication.call.ended payload 1.0",
  "type": "object",
  "additionalProperties": false,
  "required": ["direction", "status", "started_at", "answered_at", "ended_at", "duration_seconds", "queue_id", "agent_extension", "recording_expected"],
  "properties": {
    "direction": {"enum": ["inbound", "outbound", "internal"]},
    "status": {"enum": ["completed", "missed", "failed", "abandoned"]},
    "started_at": {"type": "string", "format": "date-time"},
    "answered_at": {"type": ["string", "null"], "format": "date-time"},
    "ended_at": {"type": "string", "format": "date-time"},
    "duration_seconds": {"type": "integer", "minimum": 0},
    "queue_id": {"type": ["string", "null"]},
    "agent_extension": {"type": ["string", "null"]},
    "recording_expected": {"type": "boolean"}
  }
}
