{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "GoPDFConverter PDF and Word fidelity challenge result",
  "type": "object",
  "required": ["run_id", "direction", "fixture", "mode", "status", "source_pages"],
  "properties": {
    "run_id": { "type": "string", "description": "Stable identifier for the measured production run." },
    "direction": { "enum": ["Word to PDF", "PDF to Word"] },
    "fixture": { "type": "string" },
    "mode": { "type": "string" },
    "status": { "enum": ["completed", "honest refusal"] },
    "source_pages": { "type": "integer", "minimum": 1 },
    "output_pages": { "description": "Integer for completed runs; blank for an explicit refusal." },
    "markers_found": { "description": "Exact fixture markers found in the searchable output layer." },
    "markers_expected": { "type": "integer", "minimum": 0 },
    "output_bytes": { "description": "Output size in bytes; blank for an explicit refusal." },
    "output_sha256": { "type": "string" },
    "content_checks_passed": { "type": "integer", "minimum": 0 },
    "content_checks_total": { "type": "integer", "minimum": 0 },
    "structure_checks_passed": { "type": "integer", "minimum": 0 },
    "structure_checks_total": { "type": "integer", "minimum": 0 },
    "layout_checks_passed": { "type": "integer", "minimum": 0 },
    "layout_checks_total": { "type": "integer", "minimum": 0 },
    "visual_checks_passed": { "type": "integer", "minimum": 0 },
    "visual_checks_total": { "type": "integer", "minimum": 0 },
    "safety_checks_passed": { "type": "integer", "minimum": 0 },
    "safety_checks_total": { "type": "integer", "minimum": 0 },
    "behavior_checks_passed": { "type": "integer", "minimum": 0 },
    "behavior_checks_total": { "type": "integer", "minimum": 0 }
  }
}
