{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:orbiplex:schema:inference-provenance-common:v1",
  "title": "Inference Provenance Common Definitions v1",
  "$defs": {
    "ref": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[^\\s\\u0000-\\u001f\\u007f]+$" },
    "digest": { "type": "string", "pattern": "^sha256:[A-Za-z0-9_-]{43}$" },
    "provider-ref": { "type": "string", "pattern": "^inference-provider:[a-z0-9](?:[a-z0-9._-]{0,61}[a-z0-9])?(?::[A-Za-z0-9](?:[A-Za-z0-9._/-]{0,125}[A-Za-z0-9])?)?$" },
    "provider-disclosure": { "enum": ["complete", "partial", "withheld", "unknown"] },
    "evidence-basis": {
      "anyOf": [
        { "enum": ["host-enforced-no-egress", "host-observed-egress", "host-selected-profile", "adapter-declared", "provider-declared", "peer-attested", "derived", "unknown"] },
        { "type": "string", "minLength": 21, "maxLength": 192, "pattern": "^inference-evidence:[A-Za-z0-9._/-]+:[A-Za-z0-9._/-]+$" }
      ]
    },
    "evidence-requirement": {
      "anyOf": [
        { "enum": ["host-enforced-no-egress", "host-observed-egress", "host-selected-profile", "adapter-declared", "provider-declared", "peer-attested"] },
        { "type": "string", "minLength": 21, "maxLength": 192, "pattern": "^inference-evidence:[A-Za-z0-9._/-]+:[A-Za-z0-9._/-]+$" }
      ]
    },
    "extensions": {
      "type": "object", "maxProperties": 64,
      "propertyNames": { "minLength": 3, "maxLength": 192, "pattern": "^[A-Za-z0-9._:-]+/[A-Za-z0-9._:/-]+$" }
    }
  }
}
