{
  "fixtures": [
    {
      "encoded_image_payload_preserved": true,
      "format": "jpeg",
      "mime": "image/jpeg",
      "scrubbed": {
        "bytes": 885,
        "encoded_image_payload_sha256": "66251cbd43d4c9b00d587726081fe78198316df2b5f245699d993e5eb47be905",
        "expected_residual_counts": {
          "comment_segment": 0,
          "exif_app1": 0,
          "xmp_app1": 0
        },
        "metadata_evidence_count": 0,
        "metadata_evidence_counts": {
          "comment_segment": 0,
          "exif_app1": 0,
          "xmp_app1": 0
        },
        "path": "/quality/metadata-scrub/synthetic-jpeg-scrubbed.jpg",
        "residual_counts_match_expected": true,
        "sha256": "66251cbd43d4c9b00d587726081fe78198316df2b5f245699d993e5eb47be905"
      },
      "source": {
        "bytes": 1605,
        "encoded_image_payload_sha256": "66251cbd43d4c9b00d587726081fe78198316df2b5f245699d993e5eb47be905",
        "metadata_evidence_count": 3,
        "metadata_evidence_counts": {
          "comment_segment": 1,
          "exif_app1": 1,
          "xmp_app1": 1
        },
        "path": "/quality/metadata-scrub/synthetic-jpeg-source.jpg",
        "sha256": "ac0ecd9e491dc07f7bb82480d736a741d212e845d4bd60f7443006691d713300"
      }
    },
    {
      "encoded_image_payload_preserved": true,
      "format": "png",
      "mime": "image/png",
      "scrubbed": {
        "bytes": 656,
        "encoded_image_payload_sha256": "157e4b09668ff2148e67d619c2227901066afe5c670c176c5f7e0c815edcd717",
        "expected_residual_counts": {
          "comment_text_chunk": 0,
          "exif_chunk": 0,
          "xmp_itxt_chunk": 0
        },
        "metadata_evidence_count": 0,
        "metadata_evidence_counts": {
          "comment_text_chunk": 0,
          "exif_chunk": 0,
          "xmp_itxt_chunk": 0
        },
        "path": "/quality/metadata-scrub/synthetic-png-scrubbed.png",
        "residual_counts_match_expected": true,
        "sha256": "c3911f24d0c3565ae2605414b062ca0e63ba5b60963c0bf518bdeb93cd2f973f"
      },
      "source": {
        "bytes": 1395,
        "encoded_image_payload_sha256": "157e4b09668ff2148e67d619c2227901066afe5c670c176c5f7e0c815edcd717",
        "metadata_evidence_count": 3,
        "metadata_evidence_counts": {
          "comment_text_chunk": 1,
          "exif_chunk": 1,
          "xmp_itxt_chunk": 1
        },
        "path": "/quality/metadata-scrub/synthetic-png-source.png",
        "sha256": "3d35d29f979aec15e81a8af228fe83873e04b90f4d3a9e43826403129828781a"
      }
    },
    {
      "encoded_image_payload_preserved": true,
      "format": "webp",
      "mime": "image/webp",
      "scrubbed": {
        "bytes": 56,
        "encoded_image_payload_sha256": "25746c27aedbe380143a97bc7caf843f1595856553f493f428f3fb1117c22de4",
        "expected_residual_counts": {
          "exif_chunk": 0,
          "vp8x_exif_flag": 0,
          "vp8x_xmp_flag": 0,
          "xmp_chunk": 0
        },
        "metadata_evidence_count": 0,
        "metadata_evidence_counts": {
          "exif_chunk": 0,
          "vp8x_exif_flag": 0,
          "vp8x_xmp_flag": 0,
          "xmp_chunk": 0
        },
        "path": "/quality/metadata-scrub/synthetic-webp-scrubbed.webp",
        "residual_counts_match_expected": true,
        "sha256": "c3c646737d576b936569ec79a40545e367c001d1eaaa44fb788e5d52f18d7ee4"
      },
      "source": {
        "bytes": 728,
        "encoded_image_payload_sha256": "25746c27aedbe380143a97bc7caf843f1595856553f493f428f3fb1117c22de4",
        "metadata_evidence_count": 4,
        "metadata_evidence_counts": {
          "exif_chunk": 1,
          "vp8x_exif_flag": 1,
          "vp8x_xmp_flag": 1,
          "xmp_chunk": 1
        },
        "path": "/quality/metadata-scrub/synthetic-webp-source.webp",
        "sha256": "662dd2cefbf3df644abfeec856ff3bd35fc9bc62ac2f861acf20e0074ba6bd36"
      }
    }
  ],
  "generator": {
    "external_media_used": false,
    "path": "scripts/generate-metadata-scrub-reference.py",
    "sha256": "4a013375f53e5d67ba892c71bc6a40c82d738dfd7cc2eaa1fc3bce4d2b6d67d8"
  },
  "license": {
    "rights_holder": "IMAGEEE",
    "scope": "Synthetic source fixtures, scrubbed fixtures, and their deterministic recipe.",
    "spdx_id": "CC0-1.0",
    "third_party_source_media": false,
    "url": "https://creativecommons.org/publicdomain/zero/1.0/"
  },
  "limitations": [
    "This static reference does not exercise the IMAGEEE upload, job, decoder, orientation, encoder, or download path.",
    "It proves removal only for the declared synthetic container carriers, not every metadata convention or malformed file.",
    "The encoded payload equality in this reference is not a promise that the live EXIF tool preserves encoded bytes; that tool re-encodes images.",
    "ICC color profiles, visible pixels, filenames, sidecar files, and platform copies are outside this reference.",
    "Critical workflows should keep originals and inspect a representative output with an independent metadata viewer."
  ],
  "methodology": {
    "encoded_image_payload_sha256": "SHA-256 of the format-specific encoded image payload or the JPEG file projected after removal of the declared metadata segments; it is not a decoded-pixel hash.",
    "fixture_count": 3,
    "formats": [
      "jpeg",
      "png",
      "webp"
    ],
    "operation": "container_metadata_carrier_removal_without_decode_or_reencode",
    "residual_count_rule": "Every declared synthetic EXIF, XMP, comment carrier and WebP metadata flag must have an observed scrubbed count of zero."
  },
  "production_runtime_claim": false,
  "proof_layer": "static_container_reference",
  "recipe": {
    "dimensions": {
      "height": 12,
      "width": 16
    },
    "pixel_formula": {
      "blue": "((x+y)*11) mod 256",
      "green": "(y*23 + x*5) mod 256",
      "red": "(x*17 + y*3) mod 256"
    },
    "scrub_operation": "Remove the declared EXIF, XMP, and comment carriers at the container level; preserve encoded image payload bytes exactly.",
    "synthetic_comment": "IMAGEEE SYNTHETIC METADATA SCRUB PROOF V1",
    "synthetic_exif": {
      "DateTimeOriginal": "2000:01:02 03:04:05",
      "GPSLatitude": [
        [
          1,
          1
        ],
        [
          2,
          1
        ],
        [
          3,
          1
        ]
      ],
      "GPSLatitudeRef": "N",
      "GPSLongitude": [
        [
          4,
          1
        ],
        [
          5,
          1
        ],
        [
          6,
          1
        ]
      ],
      "GPSLongitudeRef": "E",
      "Make": "IMAGEEE SYNTHETIC",
      "Model": "METADATA PROOF V1",
      "Orientation": 1,
      "Software": "generate-metadata-scrub-reference.py"
    },
    "synthetic_xmp_label": "METADATA SCRUB PROOF V1"
  },
  "reference_date": "2026-07-31",
  "reference_id": "imageee-metadata-scrub-proof-v1",
  "schema_version": 1
}
