{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Trailstate Receipt Player v0.6.0",
  "type": "object",
  "required": [
    "format",
    "route",
    "trust_score",
    "conflict_events",
    "status"
  ],
  "properties": {
    "format": {
      "const": "trailstate-0.6.0"
    },
    "route": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "trust_score": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "conflict_events": {
      "type": "integer",
      "minimum": 0
    },
    "status": {
      "type": "string",
      "enum": [
        "clean",
        "validated",
        "repaired",
        "contested",
        "unresolved"
      ]
    },
    "topic": {
      "type": "string"
    },
    "conflict_token": {
      "type": "string"
    },
    "why_token": {
      "type": "string"
    },
    "source_count": {
      "type": "integer",
      "minimum": 0
    },
    "sites": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional compact source-domain tokens supplied by AI system."
    },
    "conflict_sources": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional compact conflict source-domain tokens supplied by AI system."
    },
    "bridge": {
      "type": "string",
      "description": "Optional GGTruth/canonical bridge slug or URL"
    },
    "why": {
      "type": "string",
      "description": "Optional compact trust-basis token, e.g. clean-route or repaired-by-validation."
    },
    "claim": {
      "type": "string",
      "description": "Short answer or claim being validated."
    },
    "note": {
      "type": "string",
      "description": "Short human-readable provenance note."
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Source domains used or visited by AI."
    },
    "conflicts": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Conflicting or opposing source domains."
    },
    "observed": {
      "type": "boolean",
      "description": "Whether a receipt has been passively observed by Trailstate."
    },
    "observed_count": {
      "type": "integer",
      "minimum": 0
    },
    "receipt_hash": {
      "type": "string"
    },
    "route_health": {
      "type": "string",
      "enum": [
        "green",
        "yellow",
        "orange",
        "red",
        "unknown"
      ]
    }
  }
}