{
  "schema_version": 1,
  "kind": "print_calibration_proof",
  "proof_type": "print_calibration_proof_v1",
  "job_id": "lps_20260513_142430_ab3439732589",
  "created_at": "2026-05-13T14:24:37Z",
  "units": "mm",
  "status": "passed",
  "passed": true,
  "page": {
    "preset": "us_letter",
    "width_mm": 215.9,
    "height_mm": 279.4,
    "width_pt": 612,
    "height_pt": 792
  },
  "png": {
    "dpi": 600,
    "width_px": 5100,
    "height_px": 6600,
    "mode": "RGB"
  },
  "scale_bars": [
    {
      "id": "horizontal-100mm",
      "start_mm": [
        35.0,
        55.0
      ],
      "end_mm": [
        135.0,
        55.0
      ],
      "expected_length_mm": 100.0
    },
    {
      "id": "vertical-100mm",
      "start_mm": [
        35.0,
        70.0
      ],
      "end_mm": [
        35.0,
        170.0
      ],
      "expected_length_mm": 100.0
    }
  ],
  "registration_marks": [
    {
      "id": "A",
      "center_mm": [
        18.0,
        18.0
      ]
    },
    {
      "id": "B",
      "center_mm": [
        197.9,
        18.0
      ]
    },
    {
      "id": "C",
      "center_mm": [
        18.0,
        261.4
      ]
    }
  ],
  "artifacts": {
    "pdf_path": "jobs/lps_20260513_142430_ab3439732589/calibration/print-calibration-letter-600dpi.pdf",
    "png_path": "jobs/lps_20260513_142430_ab3439732589/calibration/print-calibration-letter-600dpi.png"
  },
  "hashes": {
    "pdf_sha256": "59a5ffd7b8efa15ad33ec3b75df3f615ed096633d46500db0be7be41cf73fa8e",
    "png_sha256": "1c6f2c3c91354bdbf15d264092068b2638274ef429305f1c8455dbcd8e3d2ae2"
  },
  "checks": [
    {
      "name": "pdf_exists",
      "passed": true,
      "message": "PDF calibration proof exists.",
      "details": {}
    },
    {
      "name": "png_exists",
      "passed": true,
      "message": "PNG calibration proof exists.",
      "details": {}
    },
    {
      "name": "artifact_hashes",
      "passed": true,
      "message": "PDF and PNG hashes exist.",
      "details": {}
    },
    {
      "name": "png_dimensions_match",
      "passed": true,
      "message": "PNG is exactly 5100 x 6600 px.",
      "details": {
        "actual": [
          5100,
          6600
        ],
        "expected": [
          5100,
          6600
        ]
      }
    },
    {
      "name": "png_mode_matches",
      "passed": true,
      "message": "PNG is RGB.",
      "details": {
        "actual": "RGB",
        "expected": "RGB"
      }
    },
    {
      "name": "png_dpi_matches",
      "passed": true,
      "message": "PNG DPI metadata is 600 DPI.",
      "details": {
        "actual": [
          599.9988,
          599.9988
        ],
        "expected": [
          600,
          600
        ]
      }
    },
    {
      "name": "page_size_matches",
      "passed": true,
      "message": "PDF MediaBox is 612 x 792 pt.",
      "details": {}
    },
    {
      "name": "scale_bar_coordinates_match",
      "passed": true,
      "message": "Both scale bars are exactly 100 mm in canonical coordinates.",
      "details": {}
    },
    {
      "name": "registration_mark_coordinates_match",
      "passed": true,
      "message": "Three asymmetric registration marks are present.",
      "details": {}
    }
  ],
  "manual_measurement": {
    "required": true,
    "status": "pending_owner_measurement",
    "instructions": "Print at 100% actual size, then measure both 100 mm bars."
  },
  "warnings": [
    "This proof validates software geometry only. Printer driver scaling must be checked manually."
  ]
}
