{
  "type": "object",
  "additionalProperties": false,
  "required": ["subject_kind", "subject_id", "source_version", "template_id", "severity", "artifact_ref", "channel_ref"],
  "properties": {
    "subject_kind": { "type": "string", "enum": ["run", "ticket", "session", "report"] },
    "subject_id": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
    "source_version": { "type": "integer", "minimum": 0 },
    "template_id": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
    "severity": { "type": "string", "enum": ["info", "warning", "error"] },
    "artifact_ref": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" },
    "channel_ref": { "type": "string", "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" }
  }
}
