{
    "anomaly_states": [
        "none",
        "hash_discontinuity",
        "clock_conflict",
        "undeclared_transformation",
        "substitution",
        "deletion",
        "withholding"
    ],
    "event_fields": [
        "event_id",
        "evidence_id",
        "evidence_class",
        "source_system",
        "acquisition_method",
        "acquired_at",
        "clock_source",
        "previous_hash",
        "current_hash",
        "custodian_before",
        "custodian_after",
        "transformation",
        "redaction",
        "reason_for_access",
        "receipt_lineage",
        "verification_result",
        "anomaly_state"
    ],
    "release": "R51",
    "rules": [
        "Every event references a declared evidence object, never a person identifier.",
        "Event identifiers are unique and acquisition order is nondecreasing.",
        "The previous hash must match the preceding custody hash for the same evidence object unless the event explicitly records an unresolved anomaly.",
        "A clean result is prohibited while any custody anomaly remains unresolved."
    ],
    "schema": "antichrist.cx.oversight-chain-of-custody-protocol.v1",
    "verification_results": [
        "verified",
        "unverified",
        "failed"
    ]
}
