{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:orbiplex:schema:room-inference-assertion:v1",
  "title": "Room inference assertion v1",
  "description": "Signed, minimally disclosed declaration XOR contribution, bound to one exact Room message. Signature establishes peer-attested authenticity only. Semantic validation enforces scope, signature, 24 KiB signing-payload budget and bounded posture validity.",
  "x-dia-workflow": "project",
  "x-dia-status": "accepted",
  "x-dia-basis": ["doc/project/40-proposals/090-inference-execution-provenance-and-non-local-disclosure.md"],
  "type": "object",
  "additionalProperties": false,
  "required": ["schema", "room/id", "subject", "message/ref", "message/seq-no", "content/type", "content/digest", "signer/ref", "signature"],
  "oneOf": [{"required": ["posture"], "not": {"required": ["contribution"]}}, {"required": ["contribution"], "not": {"required": ["posture"]}}],
  "properties": {
    "schema": {"const": "room-inference-assertion.v1"},
    "room/id": {"$ref": "room.v1.schema.json#/$defs/room_id"},
    "subject": {"$ref": "room.v1.schema.json#/$defs/subject"},
    "message/ref": {"$ref": "room-live-message.v2.schema.json#/properties/message~1ref"},
    "message/seq-no": {"type": "integer", "minimum": 0},
    "content/type": {"$ref": "room-live-message.v2.schema.json#/properties/content~1type"},
    "content/digest": {"$ref": "inference-provenance-common.v1.schema.json#/$defs/digest"},
    "posture": {
      "allOf": [{"$ref": "inference-execution-posture.v1.schema.json"}],
      "required": ["valid/until"],
      "properties": {
        "provider/refs": {"maxItems": 0},
        "provider/disclosure": {"enum": ["withheld", "unknown"]},
        "extensions": {"maxProperties": 0}
      }
    },
    "contribution": {"$ref": "room-contribution-inference.v1.schema.json"},
    "signer/ref": {"$ref": "inference-provenance-common.v1.schema.json#/$defs/ref"},
    "signature": {
      "type": "object", "additionalProperties": false, "required": ["alg", "value"],
      "properties": {"alg": {"const": "ed25519"}, "value": {"type": "string", "minLength": 1, "maxLength": 128}}
    }
  }
}
