{
  "$id": "https://assetshopenterprise.com/proof-object-v1.schema.json",
  "title": "Proof Object v1",
  "description": "A single enterprise claim that carries its own derivation. A release receipt proves a tree existed; a Proof Object proves one number. contradictedBy and unresolved are required: an implementation that omits disagreement rather than recording it does not conform.",
  "type": "object",
  "required": [
    "claim",
    "category",
    "inputs",
    "method",
    "derivation",
    "contradictedBy",
    "unresolved",
    "notClaimed",
    "reproduce",
    "integritySha256"
  ],
  "properties": {
    "claim": {
      "type": "object",
      "required": [
        "value",
        "unit",
        "label"
      ]
    },
    "category": {
      "enum": [
        "OBSERVED",
        "DERIVED",
        "INFERRED",
        "ASSUMED",
        "SCENARIO",
        "RECOMMENDATION",
        "DECISION",
        "ACTION",
        "OUTCOME",
        "SYNTHETIC",
        "MODELED"
      ]
    },
    "inputs": {
      "type": "array",
      "minItems": 1
    },
    "method": {
      "type": "object",
      "required": [
        "name",
        "version",
        "determinism"
      ]
    },
    "derivation": {
      "type": "array",
      "description": "ordered by claim ranking order, strongest tier first"
    },
    "contradictedBy": {
      "type": "array",
      "description": "required. may be empty, may not be absent"
    },
    "unresolved": {
      "type": "object",
      "required": [
        "count"
      ]
    },
    "notClaimed": {
      "type": "array",
      "minItems": 1
    },
    "reproduce": {
      "type": "object",
      "required": [
        "command",
        "requiresVendor"
      ]
    },
    "integritySha256": {
      "type": "string"
    }
  }
}
