{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://tteop.dev/schemas/conformance-report-v0.1.schema.json",
  "title": "TTEOP Conformance Report v0.1-draft",
  "description": "Machine-readable conformance report produced by the TTEOP conformance runner.",
  "type": "object",
  "additionalProperties": false,
  "required": ["report_version", "timestamp", "protocol_version", "metric_spec_version", "conformance_class", "overall_result", "tests"],
  "properties": {
    "report_version": { "const": "tteop-conformance/0.1-draft" },
    "timestamp": { "type": "string", "format": "date-time" },
    "protocol_version": { "type": "string" },
    "metric_spec_version": { "type": "string" },
    "conformance_runner_version": { "type": "string" },
    "implementation_under_test": {
      "type": "object",
      "additionalProperties": false,
      "required": ["name"],
      "properties": {
        "name": { "type": "string" },
        "version": { "type": "string" },
        "organization": { "type": "string" }
      }
    },
    "conformance_class": {
      "enum": ["producer", "consumer", "adapter", "metric-engine", "privacy-profile", "full-platform"]
    },
    "privacy_profile_tested": {
      "enum": ["public-pseudonymous", "private-managed-cohort", "enterprise-isolated", "all"]
    },
    "overall_result": { "enum": ["pass", "fail", "partial"] },
    "tests": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["test_id", "requirement_id", "result"],
        "properties": {
          "test_id": { "type": "string" },
          "requirement_id": { "type": "string" },
          "description": { "type": "string" },
          "result": { "enum": ["pass", "fail", "skip"] },
          "error_message": { "type": ["string", "null"] },
          "fixture_id": { "type": ["string", "null"] }
        }
      }
    },
    "summary": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "total": { "type": "integer" },
        "passed": { "type": "integer" },
        "failed": { "type": "integer" },
        "skipped": { "type": "integer" }
      }
    },
    "allowed_claims": {
      "type": "array",
      "items": { "type": "string" }
    },
    "prohibited_claims": {
      "type": "array",
      "items": { "type": "string" }
    }
  }
}
