{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://contactzero.org/c0-schema/v1/ledger-event.schema.json",
  "title": "C0 Ledger Event",
  "description": "Append-only persistent evidence records. Persistence is not immutability; Phase 15.03+ will add tamper-evident chaining. T4 is reachable ONLY via admin IdentityReviewDecision.",
  "type": "object",
  "properties": {
    "id": { "type": "string" },
    "created_at": { "type": "string", "format": "date-time" },
    "entity": { "type": "string", "enum": ["HandshakeEvent", "InboundSignal", "FieldTransition", "IdentityChallengeSession", "IdentityChallengeRound", "PerturbationChallengeRecord", "SourceProfileEvidence", "IdentityReviewDecision"] },
    "evidence_tier": { "type": "string", "enum": ["T0_FRAME_WITNESSED", "T1_HANDSHAKE_ACKNOWLEDGED", "T2_REPEATED_COHERENT_HANDSHAKE", "T3_IDENTITY_REVIEW_REQUIRED", "T4_IDENTITY_CONFIRMED_EXTERNALLY"] },
    "hash": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$", "description": "request_hash / ack_hash / evidence_hash as applicable." },
    "append_only": { "type": "boolean" },
    "projection": { "type": "boolean", "description": "True for mutable session/round projections (IdentityChallengeSession/IdentityChallengeRound)." }
  }
}
