{
  "schemaVersion": "1.0",
  "provider": "https://fileformat.co",
  "license": "CC0-1.0",
  "formatCount": 29,
  "totalSampleFiles": 87,
  "manifests": [
    {
      "slug": "aab",
      "extension": ".aab",
      "samples": [
        {
          "id": "aab-minimal",
          "filename": "minimal-base.aab",
          "variant": "minimal",
          "title": "Android App Bundle Unsigned Container Fixture (.aab)",
          "description": "UNSIGNED container-structure fixture: real ZIP with BundleConfig.pb, base/manifest/AndroidManifest.xml and dex\\n039 header stub. NOT a Play-signed publishable bundle.",
          "localPath": "/fixtures/v1/aab/minimal-base.aab",
          "cdnUrl": "https://fileformat.co/fixtures/v1/aab/minimal-base.aab",
          "sizeBytes": 450,
          "sha256": "2564e236b066e8187c9c16be9d3e13332ce02e5d69a7171cf91372d96ebf16f8",
          "expectValid": true
        },
        {
          "id": "aab-realistic",
          "filename": "release-module.aab",
          "variant": "realistic",
          "title": "Multi-Resource AAB Unsigned Container Fixture",
          "description": "UNSIGNED fixture adding base/resources.pb alongside BundleConfig.pb and classes.dex to distinguish .aab from legacy .apk.",
          "localPath": "/fixtures/v1/aab/release-module.aab",
          "cdnUrl": "https://fileformat.co/fixtures/v1/aab/release-module.aab",
          "sizeBytes": 572,
          "sha256": "875c6a215d912e50d0274d36512ef9c5b9564b5c10f1822e631636234fe3016d",
          "expectValid": true
        },
        {
          "id": "aab-edge-case",
          "filename": "truncated-bundle.aab",
          "variant": "edge-case",
          "title": "Truncated Android App Bundle",
          "description": "AAB archive truncated inside the ZIP Central Directory — zipfile must raise.",
          "localPath": "/fixtures/v1/aab/truncated-bundle.aab",
          "cdnUrl": "https://fileformat.co/fixtures/v1/aab/truncated-bundle.aab",
          "sizeBytes": 436,
          "sha256": "af8a9755a801d6c9890cbf897fe1cc1314cfc39a5769e1d56d8418fc8a63883c",
          "expectValid": false,
          "edgeCaseTag": "Truncated Central Directory"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "arrow",
      "extension": ".arrow",
      "samples": [
        {
          "id": "arrow-minimal",
          "filename": "minimal-ipc.arrow",
          "variant": "minimal",
          "title": "Minimal Apache Arrow IPC Random-Access File",
          "description": "Real Arrow IPC file-format output from pyarrow RecordBatchFileWriter with ARROW1 magic + FlatBuffers footer.",
          "localPath": "/fixtures/v1/arrow/minimal-ipc.arrow",
          "cdnUrl": "https://fileformat.co/fixtures/v1/arrow/minimal-ipc.arrow",
          "sizeBytes": 666,
          "sha256": "b86279b7e38e81af141b12db151638fa780d57567b64de10e4a4e1c1610e6b64",
          "expectValid": true
        },
        {
          "id": "arrow-realistic",
          "filename": "record-batch.arrow",
          "variant": "realistic",
          "title": "Arrow IPC RecordBatch Buffer",
          "description": "pyarrow-written 100-row IPC file with int64/float64/string columns in a single record batch.",
          "localPath": "/fixtures/v1/arrow/record-batch.arrow",
          "cdnUrl": "https://fileformat.co/fixtures/v1/arrow/record-batch.arrow",
          "sizeBytes": 3402,
          "sha256": "469652943f52989ed6b08a1ebea08fe5755d9fed2be0a6e9d4ee8f22a8775121",
          "expectValid": true
        },
        {
          "id": "arrow-edge-case",
          "filename": "missing-footer.arrow",
          "variant": "edge-case",
          "title": "Truncated Arrow File (Missing ARROW1 Tail)",
          "description": "Arrow IPC file-format bytes truncated inside the FlatBuffers footer — RecordBatchFileReader must raise.",
          "localPath": "/fixtures/v1/arrow/missing-footer.arrow",
          "cdnUrl": "https://fileformat.co/fixtures/v1/arrow/missing-footer.arrow",
          "sizeBytes": 650,
          "sha256": "2c7855bd0e3ae0dc6aad8260b0c03c8c3aeed62adcd2c5211a7fd6ab98bd6e5d",
          "expectValid": false,
          "edgeCaseTag": "Missing ARROW1 Footer"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "avif",
      "extension": ".avif",
      "samples": [
        {
          "id": "avif-minimal",
          "filename": "minimal-128x128.avif",
          "variant": "minimal",
          "title": "Minimal AVIF Still Image (128×128)",
          "description": "Real AVIF encoded by libavif via pillow-avif: ftyp avif, decodable AV1 primary item.",
          "localPath": "/fixtures/v1/avif/minimal-128x128.avif",
          "cdnUrl": "https://fileformat.co/fixtures/v1/avif/minimal-128x128.avif",
          "sizeBytes": 2446,
          "sha256": "c1d62b9cfb1ac1ef878cabf2033ef0bd25067ff3fcc032aa0dc5c2c833687918",
          "expectValid": true
        },
        {
          "id": "avif-realistic",
          "filename": "photo-640x480.avif",
          "variant": "realistic",
          "title": "640×480 AVIF Photo Fixture",
          "description": "Real AV1 Image File Format still encoded by libavif at 640×480.",
          "localPath": "/fixtures/v1/avif/photo-640x480.avif",
          "cdnUrl": "https://fileformat.co/fixtures/v1/avif/photo-640x480.avif",
          "sizeBytes": 40636,
          "sha256": "66e43e004db1ebc43bcf2b7e3f44198d43d83ec0d828b064a69e5ffa1254667e",
          "expectValid": true
        },
        {
          "id": "avif-edge-case",
          "filename": "truncated-box.avif",
          "variant": "edge-case",
          "title": "Truncated AVIF Payload Box",
          "description": "Real AVIF truncated inside the mdat payload — libavif decoder must raise.",
          "localPath": "/fixtures/v1/avif/truncated-box.avif",
          "cdnUrl": "https://fileformat.co/fixtures/v1/avif/truncated-box.avif",
          "sizeBytes": 2414,
          "sha256": "8fc0516c40d536a757998b236c6d6d96a4b5a36874d8b17c72a64829251e0ae4",
          "expectValid": false,
          "edgeCaseTag": "Truncated ISOBMFF Box"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "avro",
      "extension": ".avro",
      "samples": [
        {
          "id": "avro-minimal",
          "filename": "minimal-null.avro",
          "variant": "minimal",
          "title": "Minimal Uncompressed Avro Object Container",
          "description": "Real Avro OCF from fastavro with embedded record schema, null codec, and 16-byte sync markers.",
          "localPath": "/fixtures/v1/avro/minimal-null.avro",
          "cdnUrl": "https://fileformat.co/fixtures/v1/avro/minimal-null.avro",
          "sizeBytes": 198,
          "sha256": "8f5420609b6bb63e55d37521ce5163e81467a3ec798784bf5857e3c4131acdfd",
          "expectValid": true
        },
        {
          "id": "avro-realistic",
          "filename": "events-deflate.avro",
          "variant": "realistic",
          "title": "Deflate-Compressed Avro Event Batch",
          "description": "fastavro-written OCF with deflate-compressed block of 10 UserEvent records.",
          "localPath": "/fixtures/v1/avro/events-deflate.avro",
          "cdnUrl": "https://fileformat.co/fixtures/v1/avro/events-deflate.avro",
          "sizeBytes": 241,
          "sha256": "bc90476179aca51aae52611b266a87a02d16fd5392fa551554874ce3218f341a",
          "expectValid": true
        },
        {
          "id": "avro-edge-case",
          "filename": "corrupted-sync-marker.avro",
          "variant": "edge-case",
          "title": "Truncated Avro Sync Marker",
          "description": "Avro block cut off mid-sync-marker — fastavro reader must raise on block-boundary failure.",
          "localPath": "/fixtures/v1/avro/corrupted-sync-marker.avro",
          "cdnUrl": "https://fileformat.co/fixtures/v1/avro/corrupted-sync-marker.avro",
          "sizeBytes": 186,
          "sha256": "6534e49af5871a7f976a650fb164f50be0a9231d34ec2a6e46600354ca5da803",
          "expectValid": false,
          "edgeCaseTag": "Broken 16B Sync Marker"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "csv",
      "extension": ".csv",
      "samples": [
        {
          "id": "csv-minimal",
          "filename": "minimal-rfc4180.csv",
          "variant": "minimal",
          "title": "Minimal RFC 4180 UTF-8 CSV",
          "description": "Clean 2-row comma-separated table with LF line endings and no BOM.",
          "localPath": "/fixtures/v1/csv/minimal-rfc4180.csv",
          "cdnUrl": "https://fileformat.co/fixtures/v1/csv/minimal-rfc4180.csv",
          "sizeBytes": 89,
          "sha256": "05718c2daf0ae301a68f435f20cbb9feb8f079fae27efc908a41c41a86daba62",
          "expectValid": true
        },
        {
          "id": "csv-realistic",
          "filename": "orders-unicode-quoted.csv",
          "variant": "realistic",
          "title": "Quoted Commas & CJK Unicode CSV",
          "description": "Realistic UTF-8 CSV containing quoted commas, whitespace padding, and Japanese characters.",
          "localPath": "/fixtures/v1/csv/orders-unicode-quoted.csv",
          "cdnUrl": "https://fileformat.co/fixtures/v1/csv/orders-unicode-quoted.csv",
          "sizeBytes": 230,
          "sha256": "8dcc3d4302a7e62ad485797bc492f9d5217e8a919469109eed8af219eb4e1354",
          "expectValid": true
        },
        {
          "id": "csv-edge-case",
          "filename": "utf8-bom-multiline-escaped.csv",
          "variant": "edge-case",
          "title": "UTF-8 BOM + Multiline CRLF Quoted Cell + Escaped Quotes",
          "description": "Classic parser breaker: starts with `EF BB BF` BOM, uses `\\r\\n` inside quoted cells, doubled `\"\"` escapes, and ZWJ emoji.",
          "localPath": "/fixtures/v1/csv/utf8-bom-multiline-escaped.csv",
          "cdnUrl": "https://fileformat.co/fixtures/v1/csv/utf8-bom-multiline-escaped.csv",
          "sizeBytes": 158,
          "sha256": "1550b6c3787e1ad84d709a50341f88dbd2b5ae5a96e5e620e3459a82d0392a5f",
          "expectValid": true,
          "edgeCaseTag": "UTF-8 BOM + Multiline Quotes"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "duckdb",
      "extension": ".duckdb",
      "samples": [
        {
          "id": "duckdb-minimal",
          "filename": "minimal-v64.duckdb",
          "variant": "minimal",
          "title": "Minimal DuckDB Database File",
          "description": "Real single-table DuckDB database produced by duckdb.connect() — includes valid checksum preamble and DUCK magic.",
          "localPath": "/fixtures/v1/duckdb/minimal-v64.duckdb",
          "cdnUrl": "https://fileformat.co/fixtures/v1/duckdb/minimal-v64.duckdb",
          "sizeBytes": 536576,
          "sha256": "465f054e7e501c946c263070389322a8f1f96195ab9bb115a1e80d34401298f5",
          "expectValid": true
        },
        {
          "id": "duckdb-realistic",
          "filename": "analytics-store.duckdb",
          "variant": "realistic",
          "title": "Multi-Table DuckDB Analytics Store",
          "description": "Real DuckDB database with two tables, primary keys, and a secondary index.",
          "localPath": "/fixtures/v1/duckdb/analytics-store.duckdb",
          "cdnUrl": "https://fileformat.co/fixtures/v1/duckdb/analytics-store.duckdb",
          "sizeBytes": 1585152,
          "sha256": "92b98fd5e4954d171d464a36c6cfe175d15e12d09f8492382ed11458fdeb8278",
          "expectValid": true
        },
        {
          "id": "duckdb-edge-case",
          "filename": "truncated-header.duckdb",
          "variant": "edge-case",
          "title": "Truncated 20-Byte DuckDB Header",
          "description": "First 20 bytes of a real DuckDB file — duckdb.connect() must raise 'not a valid DuckDB database file'.",
          "localPath": "/fixtures/v1/duckdb/truncated-header.duckdb",
          "cdnUrl": "https://fileformat.co/fixtures/v1/duckdb/truncated-header.duckdb",
          "sizeBytes": 20,
          "sha256": "b9fb1ef9dc5827bddb7c61b93433aea5cdbcb75d63941f72704906f6ddeb45b8",
          "expectValid": false,
          "edgeCaseTag": "Unaligned 20B Truncation"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "feather",
      "extension": ".feather",
      "samples": [
        {
          "id": "feather-minimal",
          "filename": "minimal-v2.feather",
          "variant": "minimal",
          "title": "Minimal Feather v2 DataFrame",
          "description": "Feather v2 file written by pyarrow.feather — a 2-column float64 frame on the Arrow IPC file spec.",
          "localPath": "/fixtures/v1/feather/minimal-v2.feather",
          "cdnUrl": "https://fileformat.co/fixtures/v1/feather/minimal-v2.feather",
          "sizeBytes": 698,
          "sha256": "a7b7e3734e10f27781a826cecf82630049d2b74468dea4744a47c433f88ddc4a",
          "expectValid": true
        },
        {
          "id": "feather-realistic",
          "filename": "dataframe-metrics.feather",
          "variant": "realistic",
          "title": "Feather v2 Telemetry DataFrame",
          "description": "120-row Feather v2 frame with timestamp/string/float64 columns for pandas / Polars / R interchange tests.",
          "localPath": "/fixtures/v1/feather/dataframe-metrics.feather",
          "cdnUrl": "https://fileformat.co/fixtures/v1/feather/dataframe-metrics.feather",
          "sizeBytes": 2314,
          "sha256": "9c926ae0f0b8243b5c925b4148d223a0087992617977aa1f8a24537e9ee400ca",
          "expectValid": true
        },
        {
          "id": "feather-edge-case",
          "filename": "truncated-tail.feather",
          "variant": "edge-case",
          "title": "Truncated Feather v2 Footer",
          "description": "Feather file missing footer bytes and trailing ARROW1 signature — pyarrow read must raise.",
          "localPath": "/fixtures/v1/feather/truncated-tail.feather",
          "cdnUrl": "https://fileformat.co/fixtures/v1/feather/truncated-tail.feather",
          "sizeBytes": 682,
          "sha256": "d3a2f23f36b2b0ae8ebfbffd7606ce33280de61a137e55e3ce62bce679e6ed70",
          "expectValid": false,
          "edgeCaseTag": "Truncated Footer"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "gguf",
      "extension": ".gguf",
      "samples": [
        {
          "id": "gguf-minimal",
          "filename": "minimal-llama.gguf",
          "variant": "minimal",
          "title": "Minimal GGUF v3 Llama Fixture",
          "description": "Compact GGUF v3 binary with Llama architecture KV metadata, 8-token vocabulary array, and 2 aligned tensors (F16 & Q8_0).",
          "localPath": "/fixtures/v1/gguf/minimal-llama.gguf",
          "cdnUrl": "https://fileformat.co/fixtures/v1/gguf/minimal-llama.gguf",
          "sizeBytes": 1120,
          "sha256": "2ec356e162053c781631412e0ef64fe4672618855458afc781eff05dbda10a5d",
          "expectValid": true
        },
        {
          "id": "gguf-realistic",
          "filename": "llama3-tiny.gguf",
          "variant": "realistic",
          "title": "Realistic Multi-Quantization Llama GGUF v3",
          "description": "Rich GGUF v3 model fixture with RoPE/GQA hyperparameters, multilingual/emoji tokenizer table, and F32/F16/Q8_0/Q4_K tensor descriptors.",
          "localPath": "/fixtures/v1/gguf/llama3-tiny.gguf",
          "cdnUrl": "https://fileformat.co/fixtures/v1/gguf/llama3-tiny.gguf",
          "sizeBytes": 6368,
          "sha256": "1e9c572f8666905c15ab3bd03689a613980af4547600b7eeccde39a387424044",
          "expectValid": true
        },
        {
          "id": "gguf-edge-case",
          "filename": "truncated-metadata.gguf",
          "variant": "edge-case",
          "title": "Truncated GGUF v3 Header (EOF Mid-KV)",
          "description": "Negative test fixture claiming 6 tensors and 14 KV entries but truncated at 112 bytes to verify parser bounds checking.",
          "localPath": "/fixtures/v1/gguf/truncated-metadata.gguf",
          "cdnUrl": "https://fileformat.co/fixtures/v1/gguf/truncated-metadata.gguf",
          "sizeBytes": 112,
          "sha256": "81fec5725175f7820eaebf9d3ddcc53edb19595f60f24e73a29ef13731e032c9",
          "expectValid": false,
          "edgeCaseTag": "Truncated EOF"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "glb",
      "extension": ".glb",
      "samples": [
        {
          "id": "glb-minimal",
          "filename": "minimal-triangle.glb",
          "variant": "minimal",
          "title": "Minimal glTF 2.0 Binary Scene (Single Triangle)",
          "description": "4-byte aligned binary glTF 2.0 (`67 6C 54 46`) with JSON scene graph chunk and 36-byte float32 vertex BIN chunk.",
          "localPath": "/fixtures/v1/glb/minimal-triangle.glb",
          "cdnUrl": "https://fileformat.co/fixtures/v1/glb/minimal-triangle.glb",
          "sizeBytes": 316,
          "sha256": "f9316dd27503e6edb7ab6cd653e6c920cd996cdd186c9cf0e829407a68ee5d8b",
          "expectValid": true
        },
        {
          "id": "glb-realistic",
          "filename": "pbr-scene-rig.glb",
          "variant": "realistic",
          "title": "Multi-Node PBR Scene Graph GLB",
          "description": "glTF 2.0 binary asset with CameraRig, KeyLight, ChassisMesh nodes and PBR material definition.",
          "localPath": "/fixtures/v1/glb/pbr-scene-rig.glb",
          "cdnUrl": "https://fileformat.co/fixtures/v1/glb/pbr-scene-rig.glb",
          "sizeBytes": 508,
          "sha256": "6d0c78f35cee7254d016f06a0fcc812b412655abf063a8ce98aafb1fcbe7b7e9",
          "expectValid": true
        },
        {
          "id": "glb-edge-case",
          "filename": "truncated-bin-chunk.glb",
          "variant": "edge-case",
          "title": "Truncated GLB Binary Geometry Chunk",
          "description": "GLB header `total_length` exceeds actual EOF by 16 bytes.",
          "localPath": "/fixtures/v1/glb/truncated-bin-chunk.glb",
          "cdnUrl": "https://fileformat.co/fixtures/v1/glb/truncated-bin-chunk.glb",
          "sizeBytes": 300,
          "sha256": "68a6984ac6eb610b64917f6a23ad957e2f5a6c692e2a2ccc0605d531d9302e65",
          "expectValid": false,
          "edgeCaseTag": "Truncated BIN Chunk"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "har",
      "extension": ".har",
      "samples": [
        {
          "id": "har-minimal",
          "filename": "minimal.har",
          "variant": "minimal",
          "title": "Minimal Clean HTTP/2 HAR 1.2 Capture",
          "description": "Sanitized single-entry HAR 1.2 JSON capture with timing metrics and zero sensitive headers.",
          "localPath": "/fixtures/v1/har/minimal.har",
          "cdnUrl": "https://fileformat.co/fixtures/v1/har/minimal.har",
          "sizeBytes": 1642,
          "sha256": "be133a81b716a13a5d522aadc458e221ba61a151794f62ca0747f8457040a3ec",
          "expectValid": true
        },
        {
          "id": "har-realistic",
          "filename": "api-trace.har",
          "variant": "realistic",
          "title": "5-Entry REST API Waterfall HAR Trace",
          "description": "Multi-entry HAR 1.2 waterfall: session GET, inference POST with postData.params, job poll, metrics GET, cache DELETE — distinct bytes from minimal.har.",
          "localPath": "/fixtures/v1/har/api-trace.har",
          "cdnUrl": "https://fileformat.co/fixtures/v1/har/api-trace.har",
          "sizeBytes": 7212,
          "sha256": "cc221c9784a6a58ffc8b3a3a15659372cc8d7bfb1fe530b3ff5983a9f681c972",
          "expectValid": true
        },
        {
          "id": "har-edge-case",
          "filename": "edge-case-auth-leak.har",
          "variant": "edge-case",
          "title": "HAR with Benign Canary Bearer Token, Cookie, Query & Response Secrets",
          "description": "Designed to test HAR credential scrubbers: inert BENIGN_CANARY tokens in headers, cookies, query params AND the JSON response body (access_token/refresh_token).",
          "localPath": "/fixtures/v1/har/edge-case-auth-leak.har",
          "cdnUrl": "https://fileformat.co/fixtures/v1/har/edge-case-auth-leak.har",
          "sizeBytes": 2170,
          "sha256": "d39ab47406fe2557509be31ef0eff1c5d38ad506abcfa2043c3bca836931c290",
          "expectValid": true,
          "edgeCaseTag": "Canary Auth & Cookie Leak"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "heic",
      "extension": ".heic",
      "samples": [
        {
          "id": "heic-minimal",
          "filename": "minimal-64x64.heic",
          "variant": "minimal",
          "title": "Minimal HEIC Image (64×64, HEVC Main Profile)",
          "description": "Real HEIC encoded by libheif via pillow-heif: ftyp heic, decodable HEVC primary item.",
          "localPath": "/fixtures/v1/heic/minimal-64x64.heic",
          "cdnUrl": "https://fileformat.co/fixtures/v1/heic/minimal-64x64.heic",
          "sizeBytes": 1192,
          "sha256": "a391bd763c27113162242a0e7fbe0bacbe60be3c2e1458b1f0c65d9396b4554c",
          "expectValid": true
        },
        {
          "id": "heic-realistic",
          "filename": "photo-1024x768.heic",
          "variant": "realistic",
          "title": "1024×768 HEIC Photo Fixture",
          "description": "Real HEIF/HEVC still image encoded by libheif at 1024×768 for decoder validation.",
          "localPath": "/fixtures/v1/heic/photo-1024x768.heic",
          "cdnUrl": "https://fileformat.co/fixtures/v1/heic/photo-1024x768.heic",
          "sizeBytes": 183476,
          "sha256": "833313fb74d55f1505032f5cb002d32d727eeae891a646e52311910875cc15c6",
          "expectValid": true
        },
        {
          "id": "heic-edge-case",
          "filename": "truncated-mdat.heic",
          "variant": "edge-case",
          "title": "Truncated HEIC mdat Box",
          "description": "Real HEIC bytes truncated inside the HEVC payload — libheif decoder must raise.",
          "localPath": "/fixtures/v1/heic/truncated-mdat.heic",
          "cdnUrl": "https://fileformat.co/fixtures/v1/heic/truncated-mdat.heic",
          "sizeBytes": 1160,
          "sha256": "f5de0f071b251c113f04832efea09a58ec1fc9908ac083c2f1da96bd7ab46eb8",
          "expectValid": false,
          "edgeCaseTag": "Truncated mdat Box"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "ipa",
      "extension": ".ipa",
      "samples": [
        {
          "id": "ipa-minimal",
          "filename": "minimal-app.ipa",
          "variant": "minimal",
          "title": "iOS Unsigned Container Fixture (.ipa)",
          "description": "UNSIGNED container-structure fixture: real ZIP with Payload/DemoApp.app/Info.plist (binary plist via plistlib) and a Mach-O arm64 header stub. NOT a signed installable app.",
          "localPath": "/fixtures/v1/ipa/minimal-app.ipa",
          "cdnUrl": "https://fileformat.co/fixtures/v1/ipa/minimal-app.ipa",
          "sizeBytes": 694,
          "sha256": "85778c5134a0d4c6235923fcfd82c823b35e2e9577a5fd61f7c8b5226000d479",
          "expectValid": true
        },
        {
          "id": "ipa-realistic",
          "filename": "observatory-ios-bundle.ipa",
          "variant": "realistic",
          "title": "iOS Unsigned Container Fixture with PkgInfo",
          "description": "UNSIGNED container-structure fixture: binary-plist Info.plist + PkgInfo + Mach-O stub for mobile CI artifact scanner tests. NOT a signed installable app.",
          "localPath": "/fixtures/v1/ipa/observatory-ios-bundle.ipa",
          "cdnUrl": "https://fileformat.co/fixtures/v1/ipa/observatory-ios-bundle.ipa",
          "sizeBytes": 777,
          "sha256": "53e13f6ea9bf56efe9c454706fa93e38d45bd77fa86d033b9cba843202a66348",
          "expectValid": true
        },
        {
          "id": "ipa-edge-case",
          "filename": "truncated-eocd.ipa",
          "variant": "edge-case",
          "title": "Truncated IPA Missing ZIP EOCD Trailer",
          "description": "Interrupted-upload fixture: ZIP container missing the EOCD record — zipfile must raise.",
          "localPath": "/fixtures/v1/ipa/truncated-eocd.ipa",
          "cdnUrl": "https://fileformat.co/fixtures/v1/ipa/truncated-eocd.ipa",
          "sizeBytes": 678,
          "sha256": "c4abf5147786a39819f7c469079e22f72bfa617f2d9a7d10641c99c41a7c0717",
          "expectValid": false,
          "edgeCaseTag": "Missing ZIP EOCD"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "jpg",
      "extension": ".jpg",
      "samples": [
        {
          "id": "jpg-minimal",
          "filename": "minimal-8x8-jfif.jpg",
          "variant": "minimal",
          "title": "Minimal JFIF Baseline JPEG (8×8)",
          "description": "Real baseline JPEG encoded by Pillow: FF D8 SOI, JFIF APP0, Huffman-compressed 8×8 RGB pixels, FF D9 EOI.",
          "localPath": "/fixtures/v1/jpg/minimal-8x8-jfif.jpg",
          "cdnUrl": "https://fileformat.co/fixtures/v1/jpg/minimal-8x8-jfif.jpg",
          "sizeBytes": 644,
          "sha256": "72ad937c3cc136955b18dfa3209c4a86e6a6c739eab2e9d1d05fb3b75c051d62",
          "expectValid": true
        },
        {
          "id": "jpg-realistic",
          "filename": "photo-1080p-exif.jpg",
          "variant": "realistic",
          "title": "1920×1080 JPEG with Standard Orientation=1 EXIF",
          "description": "Real Pillow-encoded 1080p JPEG carrying an APP1 Exif TIFF directory with Orientation=1.",
          "localPath": "/fixtures/v1/jpg/photo-1080p-exif.jpg",
          "cdnUrl": "https://fileformat.co/fixtures/v1/jpg/photo-1080p-exif.jpg",
          "sizeBytes": 523936,
          "sha256": "0810b6422b4ef7f11b623036c6870f20cb7e75fadbdcc05f12b7c13b35825ba6",
          "expectValid": true
        },
        {
          "id": "jpg-edge-case",
          "filename": "exif-orientation-6-null-island-gps.jpg",
          "variant": "edge-case",
          "title": "EXIF Orientation=6 (90° CW Rotation Trap) + Benign (0,0) GPS Tag",
          "description": "Fully decodable JPEG whose EXIF IFD declares Orientation=6 and a GPSInfo IFD at Null Island — tests pipelines that strip tags without rotating pixels.",
          "localPath": "/fixtures/v1/jpg/exif-orientation-6-null-island-gps.jpg",
          "cdnUrl": "https://fileformat.co/fixtures/v1/jpg/exif-orientation-6-null-island-gps.jpg",
          "sizeBytes": 551116,
          "sha256": "9e84120c7d4e36e75154329a088f3226aaca6e96aa28a43fcff7b4cfd421ebaf",
          "expectValid": true,
          "edgeCaseTag": "EXIF Orientation=6 + GPS"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "jsonl",
      "extension": ".jsonl",
      "samples": [
        {
          "id": "jsonl-minimal",
          "filename": "minimal-sft.jsonl",
          "variant": "minimal",
          "title": "Minimal UTF-8 SFT Dataset (.jsonl)",
          "description": "3-line UTF-8 JSON Lines fine-tuning dataset with LF delimiters.",
          "localPath": "/fixtures/v1/jsonl/minimal-sft.jsonl",
          "cdnUrl": "https://fileformat.co/fixtures/v1/jsonl/minimal-sft.jsonl",
          "sizeBytes": 308,
          "sha256": "85b7b589f6426c997e2e17ca60dc35cf0285c8408f1141b39ef574a13de69918",
          "expectValid": true
        },
        {
          "id": "jsonl-realistic",
          "filename": "multilingual-rag-chunks.jsonl",
          "variant": "realistic",
          "title": "Multilingual RAG Corpus Chunks (.jsonl)",
          "description": "10-line JSONL stream featuring CJK/Japanese text, ZWJ emoji sequences, nested arrays, and nullable fields.",
          "localPath": "/fixtures/v1/jsonl/multilingual-rag-chunks.jsonl",
          "cdnUrl": "https://fileformat.co/fixtures/v1/jsonl/multilingual-rag-chunks.jsonl",
          "sizeBytes": 2575,
          "sha256": "20fb244b631707aecb497b1c320f5fde5504679044c7e799326c686bcac6d0a5",
          "expectValid": true
        },
        {
          "id": "jsonl-edge-case",
          "filename": "bom-bigint-malformed.jsonl",
          "variant": "edge-case",
          "title": "UTF-8 BOM + 64-Bit BigInt + Malformed Tail",
          "description": "Starts with EF BB BF BOM, contains 9007199254740993 (> JS Number.MAX_SAFE_INTEGER), and ends with a truncated JSON record.",
          "localPath": "/fixtures/v1/jsonl/bom-bigint-malformed.jsonl",
          "cdnUrl": "https://fileformat.co/fixtures/v1/jsonl/bom-bigint-malformed.jsonl",
          "sizeBytes": 210,
          "sha256": "7b279351978bf216b68fca66051d03953d625b0555450c3f8c59051e0b8f0568",
          "expectValid": false,
          "edgeCaseTag": "UTF-8 BOM + BigInt + Malformed Line"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "npy",
      "extension": ".npy",
      "samples": [
        {
          "id": "npy-minimal",
          "filename": "minimal-f32-4x8.npy",
          "variant": "minimal",
          "title": "Minimal NumPy Float32 (4x8)",
          "description": "Real np.save output: '<f4' descriptor, C-contiguous order, 32 IEEE-754 float32 elements.",
          "localPath": "/fixtures/v1/npy/minimal-f32-4x8.npy",
          "cdnUrl": "https://fileformat.co/fixtures/v1/npy/minimal-f32-4x8.npy",
          "sizeBytes": 256,
          "sha256": "fd4257fe798868b27cf704172e1220473164dad2866b833f7e8fd58060fad063",
          "expectValid": true
        },
        {
          "id": "npy-realistic",
          "filename": "embeddings-f64-8x16.npy",
          "variant": "realistic",
          "title": "Float64 Matrix NumPy (8x16)",
          "description": "Double-precision '<f8' dense embedding matrix written by np.save.",
          "localPath": "/fixtures/v1/npy/embeddings-f64-8x16.npy",
          "cdnUrl": "https://fileformat.co/fixtures/v1/npy/embeddings-f64-8x16.npy",
          "sizeBytes": 1152,
          "sha256": "d4d9449ca4484124d49b8a4d6aab51baf502d3a7b15f26441a38acb20ec4f81f",
          "expectValid": true
        },
        {
          "id": "npy-edge-case",
          "filename": "fortran-nan-truncated.npy",
          "variant": "edge-case",
          "title": "Fortran-Order NaN/Inf Truncated .npy",
          "description": "Real np.save Fortran-order header declaring (32, 32) f4 with payload truncated after 6 floats — np.load must raise.",
          "localPath": "/fixtures/v1/npy/fortran-nan-truncated.npy",
          "cdnUrl": "https://fileformat.co/fixtures/v1/npy/fortran-nan-truncated.npy",
          "sizeBytes": 152,
          "sha256": "2fcb431d32fa5281d8f1e465105e015b209fcb619761b0407fa19adaaa4b35db",
          "expectValid": false,
          "edgeCaseTag": "Fortran Order + NaN/Inf + Truncated"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "npz",
      "extension": ".npz",
      "samples": [
        {
          "id": "npz-minimal",
          "filename": "minimal-weights.npz",
          "variant": "minimal",
          "title": "Minimal Uncompressed NumPy .npz Archive",
          "description": "Real np.savez output containing weights.npy (4x8 float32) and bias.npy (8 float32).",
          "localPath": "/fixtures/v1/npz/minimal-weights.npz",
          "cdnUrl": "https://fileformat.co/fixtures/v1/npz/minimal-weights.npz",
          "sizeBytes": 668,
          "sha256": "5df985f2575c4c4a1f58f21970bd74830b277688976534283c269be2ccfb2637",
          "expectValid": true
        },
        {
          "id": "npz-realistic",
          "filename": "checkpoint-deflated.npz",
          "variant": "realistic",
          "title": "Deflated Multi-Dtype .npz Checkpoint",
          "description": "Real np.savez_compressed bundle with float32, float64, and int32 arrays.",
          "localPath": "/fixtures/v1/npz/checkpoint-deflated.npz",
          "cdnUrl": "https://fileformat.co/fixtures/v1/npz/checkpoint-deflated.npz",
          "sizeBytes": 1151,
          "sha256": "1da30aadf475322bd6b9df64d90d6fda4f4e600251c6c542bcca7c2a0d8a39ca",
          "expectValid": true
        },
        {
          "id": "npz-edge-case",
          "filename": "truncated-eocd.npz",
          "variant": "edge-case",
          "title": "Truncated EOCD .npz Archive",
          "description": "Valid PK local headers but missing complete EOCD — np.load on the archive must raise.",
          "localPath": "/fixtures/v1/npz/truncated-eocd.npz",
          "cdnUrl": "https://fileformat.co/fixtures/v1/npz/truncated-eocd.npz",
          "sizeBytes": 654,
          "sha256": "3d8d77b9c97b839f497301ec2cbfb8fd34e7c19ae6e0f7ddee51c864c7eb05f5",
          "expectValid": false,
          "edgeCaseTag": "Truncated ZIP EOCD"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "onnx",
      "extension": ".onnx",
      "samples": [
        {
          "id": "onnx-minimal",
          "filename": "minimal-linear.onnx",
          "variant": "minimal",
          "title": "Minimal ONNX IR v9 Linear+ReLU Graph",
          "description": "Real ONNX ModelProto (ir_version=9, opset=21) verified by onnx.checker.check_model — MatMul + Relu.",
          "localPath": "/fixtures/v1/onnx/minimal-linear.onnx",
          "cdnUrl": "https://fileformat.co/fixtures/v1/onnx/minimal-linear.onnx",
          "sizeBytes": 319,
          "sha256": "aa4e82d69b4579c1a7bfbf12228776f121238825abb64a45e937d4e1299a33fb",
          "expectValid": true
        },
        {
          "id": "onnx-realistic",
          "filename": "mlp-classifier.onnx",
          "variant": "realistic",
          "title": "Realistic MLP Classifier ONNX Graph",
          "description": "onnx.helper-built MLP with float32 TensorProto initializers, Gelu activation — passes onnx.checker.",
          "localPath": "/fixtures/v1/onnx/mlp-classifier.onnx",
          "cdnUrl": "https://fileformat.co/fixtures/v1/onnx/mlp-classifier.onnx",
          "sizeBytes": 702,
          "sha256": "bc52092748c786119aa203b36f61a706a5f40a426b9626ed0469552d9566ff4e",
          "expectValid": true
        },
        {
          "id": "onnx-edge-case",
          "filename": "truncated-protobuf.onnx",
          "variant": "edge-case",
          "title": "Truncated ONNX Protobuf Stream",
          "description": "ModelProto wire frame truncated mid-GraphProto — ModelProto.ParseFromString must raise DecodeError.",
          "localPath": "/fixtures/v1/onnx/truncated-protobuf.onnx",
          "cdnUrl": "https://fileformat.co/fixtures/v1/onnx/truncated-protobuf.onnx",
          "sizeBytes": 56,
          "sha256": "d4db86720670b6fb423cba89dae6fd0d3dc7a92624f836148e6fc29a590b06f4",
          "expectValid": false,
          "edgeCaseTag": "Truncated Protobuf Frame"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "orc",
      "extension": ".orc",
      "samples": [
        {
          "id": "orc-minimal",
          "filename": "minimal-stripe.orc",
          "variant": "minimal",
          "title": "Minimal Apache ORC Stripe File",
          "description": "Real ORC file written by pyarrow.orc: ORC magic, single stripe, Footer + PostScript trailer.",
          "localPath": "/fixtures/v1/orc/minimal-stripe.orc",
          "cdnUrl": "https://fileformat.co/fixtures/v1/orc/minimal-stripe.orc",
          "sizeBytes": 344,
          "sha256": "09713ef2158b8196359189b71dc332a3e57f8203547a2926a4bd3d0407f1ce0e",
          "expectValid": true
        },
        {
          "id": "orc-realistic",
          "filename": "warehouse-stripe.orc",
          "variant": "realistic",
          "title": "ORC Columnar Stripe Fixture",
          "description": "200-row ORC file from pyarrow.orc for Hive/Trino/Spark reader identification tests.",
          "localPath": "/fixtures/v1/orc/warehouse-stripe.orc",
          "cdnUrl": "https://fileformat.co/fixtures/v1/orc/warehouse-stripe.orc",
          "sizeBytes": 2915,
          "sha256": "53afde4eadd2f23134d25a33b5b7418de973fc6996d3aeb39a20f2095b5e066c",
          "expectValid": true
        },
        {
          "id": "orc-edge-case",
          "filename": "truncated-postscript.orc",
          "variant": "edge-case",
          "title": "Truncated ORC PostScript Trailer",
          "description": "ORC file missing the trailing PostScript tail — pyarrow ORCFile must raise.",
          "localPath": "/fixtures/v1/orc/truncated-postscript.orc",
          "cdnUrl": "https://fileformat.co/fixtures/v1/orc/truncated-postscript.orc",
          "sizeBytes": 339,
          "sha256": "8dd70b083ac96f1241bf50e890d1e5126bbd49910ad9cb927a00111ba693a2da",
          "expectValid": false,
          "edgeCaseTag": "Truncated PostScript"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "parquet",
      "extension": ".parquet",
      "samples": [
        {
          "id": "parquet-minimal",
          "filename": "minimal-snappy.parquet",
          "variant": "minimal",
          "title": "Minimal Snappy Columnar Parquet (3 Rows)",
          "description": "Real Parquet file written by pyarrow with Snappy compression: 3 rows × user_id INT64, latency_ms DOUBLE, service UTF8.",
          "localPath": "/fixtures/v1/parquet/minimal-snappy.parquet",
          "cdnUrl": "https://fileformat.co/fixtures/v1/parquet/minimal-snappy.parquet",
          "sizeBytes": 1131,
          "sha256": "8b84a4eb04fdad847b748c47f6132f1a61f5b1de219178e86fea93aca5ac90f5",
          "expectValid": true
        },
        {
          "id": "parquet-realistic",
          "filename": "events-zstd-decimal.parquet",
          "variant": "realistic",
          "title": "Zstd Analytical Table with Decimal & Timestamp",
          "description": "pyarrow-written 250-row Parquet with ZSTD codec, DECIMAL(12,2) and TIMESTAMP_MICROS logical types.",
          "localPath": "/fixtures/v1/parquet/events-zstd-decimal.parquet",
          "cdnUrl": "https://fileformat.co/fixtures/v1/parquet/events-zstd-decimal.parquet",
          "sizeBytes": 3158,
          "sha256": "1b9a434953963317ee622358bccb62cce53d74422b0b8331f063f237ff8b123b",
          "expectValid": true
        },
        {
          "id": "parquet-edge-case",
          "filename": "truncated-footer.parquet",
          "variant": "edge-case",
          "title": "Interrupted Upload / Missing Trailing PAR1 Footer",
          "description": "Real Parquet bytes truncated before the footer length and trailing PAR1 magic — pyarrow must raise.",
          "localPath": "/fixtures/v1/parquet/truncated-footer.parquet",
          "cdnUrl": "https://fileformat.co/fixtures/v1/parquet/truncated-footer.parquet",
          "sizeBytes": 1121,
          "sha256": "042078532f4fd53caf059416a0dd17b81c8620cf769ad5c88dafc7a1d8f30491",
          "expectValid": false,
          "edgeCaseTag": "Truncated Footer EOF"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "pcap",
      "extension": ".pcap",
      "samples": [
        {
          "id": "pcap-minimal",
          "filename": "minimal-ethernet.pcap",
          "variant": "minimal",
          "title": "Minimal libpcap Capture (1 Ethernet Frame)",
          "description": "24-byte little-endian microsecond PCAP v2.4 header (`D4 C3 B2 A1`) plus one 42-byte Ethernet frame.",
          "localPath": "/fixtures/v1/pcap/minimal-ethernet.pcap",
          "cdnUrl": "https://fileformat.co/fixtures/v1/pcap/minimal-ethernet.pcap",
          "sizeBytes": 82,
          "sha256": "8e6bf3f1ae8790e789ba3972cec94620b890fed7d3f6b9212467fcd5cedf3e48",
          "expectValid": true
        },
        {
          "id": "pcap-realistic",
          "filename": "three-frames-capture.pcap",
          "variant": "realistic",
          "title": "Multi-Packet Ethernet PCAP Trace",
          "description": "Three sequential packet records with incrementing microsecond timestamps.",
          "localPath": "/fixtures/v1/pcap/three-frames-capture.pcap",
          "cdnUrl": "https://fileformat.co/fixtures/v1/pcap/three-frames-capture.pcap",
          "sizeBytes": 198,
          "sha256": "289189333aa50832b63f984ebcbd5f8d9a71316a5e9864e07781e193478711c8",
          "expectValid": true
        },
        {
          "id": "pcap-edge-case",
          "filename": "snaplen-truncated-packet.pcap",
          "variant": "edge-case",
          "title": "Truncated Packet Payload at EOF",
          "description": "Packet record `incl_len` exceeds remaining bytes at EOF—tests packet parser bounds checks.",
          "localPath": "/fixtures/v1/pcap/snaplen-truncated-packet.pcap",
          "cdnUrl": "https://fileformat.co/fixtures/v1/pcap/snaplen-truncated-packet.pcap",
          "sizeBytes": 72,
          "sha256": "a5ce5c7570b15f92fc0a3896b4254af5f94891bd5a7528c7847319864b0175d0",
          "expectValid": false,
          "edgeCaseTag": "Truncated Packet Frame"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "pdf",
      "extension": ".pdf",
      "samples": [
        {
          "id": "pdf-minimal",
          "filename": "minimal-1page.pdf",
          "variant": "minimal",
          "title": "Minimal Valid 1-Page PDF",
          "description": "Real single-page PDF generated by reportlab and parseable by pypdf.",
          "localPath": "/fixtures/v1/pdf/minimal-1page.pdf",
          "cdnUrl": "https://fileformat.co/fixtures/v1/pdf/minimal-1page.pdf",
          "sizeBytes": 1376,
          "sha256": "3d510c3e24ce7b489b9861769c0643c75e13c5364754a752186baaf68546a0d7",
          "expectValid": true
        },
        {
          "id": "pdf-realistic",
          "filename": "rag-two-column-financial-table.pdf",
          "variant": "realistic",
          "title": "Two-Column Financial Table PDF (AI RAG Parser Fixture)",
          "description": "Real 2-page reportlab PDF with financial Table cells, heading hierarchy and rule lines for RAG extractor benchmarking.",
          "localPath": "/fixtures/v1/pdf/rag-two-column-financial-table.pdf",
          "cdnUrl": "https://fileformat.co/fixtures/v1/pdf/rag-two-column-financial-table.pdf",
          "sizeBytes": 2945,
          "sha256": "d547e41d47d805961980567b9776216f65f3744ea2906789dfa6bb629c40569a",
          "expectValid": true
        },
        {
          "id": "pdf-edge-case",
          "filename": "benign-js-dictionary-canary.pdf",
          "variant": "edge-case",
          "title": "PDF Containing Benign `/JavaScript` Dictionary Marker",
          "description": "Real reportlab PDF with an inert /JavaScript name tree added via pypdf (FILEFORMAT_CO_BENIGN_TEST_MARKER) for security scanner verification.",
          "localPath": "/fixtures/v1/pdf/benign-js-dictionary-canary.pdf",
          "cdnUrl": "https://fileformat.co/fixtures/v1/pdf/benign-js-dictionary-canary.pdf",
          "sizeBytes": 1091,
          "sha256": "dc38f4be9c4ba992b60254dab44878c1c111e7d7bd06169e6a3836a48850cfc3",
          "expectValid": true,
          "edgeCaseTag": "Benign /JavaScript Canary"
        }
      ],
      "generatedAt": "2026-11-14T16:31:19Z"
    },
    {
      "slug": "png",
      "extension": ".png",
      "samples": [
        {
          "id": "png-minimal",
          "filename": "minimal-2x2-rgba.png",
          "variant": "minimal",
          "title": "Minimal Valid 2×2 RGBA PNG",
          "description": "Real 8-bit RGBA PNG encoded by Pillow with valid CRC32 checksums on every chunk.",
          "localPath": "/fixtures/v1/png/minimal-2x2-rgba.png",
          "cdnUrl": "https://fileformat.co/fixtures/v1/png/minimal-2x2-rgba.png",
          "sizeBytes": 83,
          "sha256": "275f56b84188ce563dfa9364ba7d2b3dfec7beb5d62de11bddcafb0390e85752",
          "expectValid": true
        },
        {
          "id": "png-realistic",
          "filename": "ai-prompt-metadata.png",
          "variant": "realistic",
          "title": "PNG with Embedded Stable Diffusion `parameters` tEXt Chunk",
          "description": "16×16 RGBA PNG from Pillow containing AI generation prompt metadata inside a standard tEXt chunk.",
          "localPath": "/fixtures/v1/png/ai-prompt-metadata.png",
          "cdnUrl": "https://fileformat.co/fixtures/v1/png/ai-prompt-metadata.png",
          "sizeBytes": 305,
          "sha256": "1c159eb8d483c4379933d83bac5ba8581b50e5651f9877c059e999cc102840de",
          "expectValid": true
        },
        {
          "id": "png-edge-case",
          "filename": "truncated-idat.png",
          "variant": "edge-case",
          "title": "Truncated PNG Mid-IDAT Stream",
          "description": "Real Pillow PNG truncated inside the compressed IDAT payload — decode must fail (missing IEND alone would still decode).",
          "localPath": "/fixtures/v1/png/truncated-idat.png",
          "cdnUrl": "https://fileformat.co/fixtures/v1/png/truncated-idat.png",
          "sizeBytes": 47,
          "sha256": "ac4cc6aeb4c37baeee650f26c1651411aaade073ecee5db776d40defcac6e53a",
          "expectValid": false,
          "edgeCaseTag": "Truncated IDAT Payload"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "pt",
      "extension": ".pt",
      "samples": [
        {
          "id": "pt-minimal",
          "filename": "minimal-checkpoint.pt",
          "variant": "minimal",
          "title": "Minimal PyTorch ZIP Checkpoint",
          "description": "Real torch.save state dict (2 tensors) — loads cleanly via torch.load(weights_only=True).",
          "localPath": "/fixtures/v1/pt/minimal-checkpoint.pt",
          "cdnUrl": "https://fileformat.co/fixtures/v1/pt/minimal-checkpoint.pt",
          "sizeBytes": 1829,
          "sha256": "64f990b860de211afe49a1c8c9627cf4da92d75f69a29a2cb85c06927c62720c",
          "expectValid": true
        },
        {
          "id": "pt-realistic",
          "filename": "transformer-state-dict.pt",
          "variant": "realistic",
          "title": "Multi-Tensor PyTorch State Dict (.pt)",
          "description": "Real torch.save transformer weight dict with q_proj/v_proj/down_proj tensors.",
          "localPath": "/fixtures/v1/pt/transformer-state-dict.pt",
          "cdnUrl": "https://fileformat.co/fixtures/v1/pt/transformer-state-dict.pt",
          "sizeBytes": 2657,
          "sha256": "b927171a147cb843af3458e867b7972bca05a77969fd0d47f01f62fd32ef3c27",
          "expectValid": true
        },
        {
          "id": "pt-edge-case",
          "filename": "benign-pickle-canary.pt",
          "variant": "edge-case",
          "title": "PyTorch Pickle Security Audit Canary",
          "description": "Real torch.save archive containing an inert FILEFORMAT_CO_BENIGN_TEST_MARKER string — still loads with weights_only=True.",
          "localPath": "/fixtures/v1/pt/benign-pickle-canary.pt",
          "cdnUrl": "https://fileformat.co/fixtures/v1/pt/benign-pickle-canary.pt",
          "sizeBytes": 1641,
          "sha256": "06de6e85a3acdeaf03bfb30aac49b6d7e697bf8d63d6c6f7882228a5bde0dff7",
          "expectValid": true,
          "edgeCaseTag": "Benign Pickle Canary"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "safetensors",
      "extension": ".safetensors",
      "samples": [
        {
          "id": "safetensors-minimal",
          "filename": "minimal-bf16.safetensors",
          "variant": "minimal",
          "title": "Minimal BF16/F16/F32 SafeTensors",
          "description": "Real safetensors.torch output with __metadata__ and 3 tensors across BF16, F16, and F32 dtypes.",
          "localPath": "/fixtures/v1/safetensors/minimal-bf16.safetensors",
          "cdnUrl": "https://fileformat.co/fixtures/v1/safetensors/minimal-bf16.safetensors",
          "sizeBytes": 432,
          "sha256": "0d9894b505b77ec0d719fa112eead1695c8a2be9e1820c81267dfe1a64a2214b",
          "expectValid": true
        },
        {
          "id": "safetensors-realistic",
          "filename": "weights-bf16.safetensors",
          "variant": "realistic",
          "title": "Realistic Transformer Layer SafeTensors",
          "description": "Multi-layer transformer weight shard written by safetensors.torch with exact contiguous data_offsets.",
          "localPath": "/fixtures/v1/safetensors/weights-bf16.safetensors",
          "cdnUrl": "https://fileformat.co/fixtures/v1/safetensors/weights-bf16.safetensors",
          "sizeBytes": 3560,
          "sha256": "7594cbd039f2978e74012d1e761368a7d18f2f6efe6038e11a869f6d1c5a6b7f",
          "expectValid": true
        },
        {
          "id": "safetensors-edge-case",
          "filename": "unaligned-truncated.safetensors",
          "variant": "edge-case",
          "title": "Unaligned Offsets & Truncated Tensor Payload",
          "description": "Negative fixture with non-zero starting data_offsets [3, 8195] and truncated 24-byte body — safetensors must raise.",
          "localPath": "/fixtures/v1/safetensors/unaligned-truncated.safetensors",
          "cdnUrl": "https://fileformat.co/fixtures/v1/safetensors/unaligned-truncated.safetensors",
          "sizeBytes": 138,
          "sha256": "70d504e4e3dc7cc38bf0d72fe83b78badaf96f16be32402100c1450a9bb2e004",
          "expectValid": false,
          "edgeCaseTag": "Unaligned + Truncated EOF"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "sqlite",
      "extension": ".sqlite",
      "samples": [
        {
          "id": "sqlite-minimal",
          "filename": "minimal-users.sqlite",
          "variant": "minimal",
          "title": "Minimal SQLite 3 Database (4KB Single Page)",
          "description": "Valid 4096-byte single-page SQLite 3 database with a `users` table and two UTF-8 rows.",
          "localPath": "/fixtures/v1/sqlite/minimal-users.sqlite",
          "cdnUrl": "https://fileformat.co/fixtures/v1/sqlite/minimal-users.sqlite",
          "sizeBytes": 12288,
          "sha256": "dee45e02f67ee69f23295ad0de07601253ad41c8da4dfb9cb173e5ebb3b71e50",
          "expectValid": true
        },
        {
          "id": "sqlite-realistic",
          "filename": "app-telemetry-schema.sqlite",
          "variant": "realistic",
          "title": "Multi-Page SQLite Schema (42 Tables + Overflow DDL)",
          "description": "SQLite 3 database whose sqlite_schema B-tree spans interior (0x05) pages across 42 tables plus a ~6KB CHECK-constraint DDL stored on an overflow-page chain.",
          "localPath": "/fixtures/v1/sqlite/app-telemetry-schema.sqlite",
          "cdnUrl": "https://fileformat.co/fixtures/v1/sqlite/app-telemetry-schema.sqlite",
          "sizeBytes": 188416,
          "sha256": "0ea395a85610cdf41278eff1b123008b580dfd0d5732e96eb419eab56e8e4bc1",
          "expectValid": true
        },
        {
          "id": "sqlite-edge-case",
          "filename": "truncated-half-page.sqlite",
          "variant": "edge-case",
          "title": "Truncated SQLite Page 1 (2048B of 4096B)",
          "description": "Valid 100-byte SQLite header whose first B-tree page is truncated mid-page.",
          "localPath": "/fixtures/v1/sqlite/truncated-half-page.sqlite",
          "cdnUrl": "https://fileformat.co/fixtures/v1/sqlite/truncated-half-page.sqlite",
          "sizeBytes": 2048,
          "sha256": "3f7627faa065ed6cd65c4fcccd2cbb8493f9d7330fadd9a68b4ca6fccb0e041c",
          "expectValid": false,
          "edgeCaseTag": "Partial B-Tree Page"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "usdz",
      "extension": ".usdz",
      "samples": [
        {
          "id": "usdz-minimal",
          "filename": "minimal-64b-aligned.usdz",
          "variant": "minimal",
          "title": "64-Byte Aligned Zero-Compression USDZ (PXR-USDC)",
          "description": "Apple VisionOS / QuickLook compliant uncompressed ZIP with 64-byte mmap alignment and `PXR-USDC` Crate root layer.",
          "localPath": "/fixtures/v1/usdz/minimal-64b-aligned.usdz",
          "cdnUrl": "https://fileformat.co/fixtures/v1/usdz/minimal-64b-aligned.usdz",
          "sizeBytes": 206,
          "sha256": "84ed4c279742f4c9aa8557034806427c40d29fb91d3415def454b5371035f3bf",
          "expectValid": true
        },
        {
          "id": "usdz-realistic",
          "filename": "spatial-stage-textured.usdz",
          "variant": "realistic",
          "title": "Multi-Asset USDZ Stage + Embedded PNG Texture",
          "description": "64-byte aligned USDZ archive bundling both a `PXR-USDC` binary stage and an uncompressed RGBA PNG texture.",
          "localPath": "/fixtures/v1/usdz/spatial-stage-textured.usdz",
          "cdnUrl": "https://fileformat.co/fixtures/v1/usdz/spatial-stage-textured.usdz",
          "sizeBytes": 483,
          "sha256": "30477e3f8aaf315b7f84c5950a266a44d86d615dd8ad087d49825eb2b6a35f1e",
          "expectValid": true
        },
        {
          "id": "usdz-edge-case",
          "filename": "unaligned-violation.usdz",
          "variant": "edge-case",
          "title": "Misaligned USDZ Entry (Fails 64-Byte mmap Requirement)",
          "description": "Valid ZIP containing `scene.usdc`, but entry data starts at non-64B-aligned offset—catches subtle USDZ packager bugs.",
          "localPath": "/fixtures/v1/usdz/unaligned-violation.usdz",
          "cdnUrl": "https://fileformat.co/fixtures/v1/usdz/unaligned-violation.usdz",
          "sizeBytes": 182,
          "sha256": "1b5d09db530a3b47b91227c552a243fc0a0debb7e2e757ad2d6988a07e86cdae",
          "expectValid": false,
          "edgeCaseTag": "64-Byte Alignment Violation"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "wasm",
      "extension": ".wasm",
      "samples": [
        {
          "id": "wasm-minimal",
          "filename": "minimal-add.wasm",
          "variant": "minimal",
          "title": "Minimal Instantiable WebAssembly Module (`add` Export)",
          "description": "41-byte valid WASM v1 binary exporting `add(i32, i32) -> i32`, directly instantiable via `WebAssembly.instantiate()`.",
          "localPath": "/fixtures/v1/wasm/minimal-add.wasm",
          "cdnUrl": "https://fileformat.co/fixtures/v1/wasm/minimal-add.wasm",
          "sizeBytes": 41,
          "sha256": "f61fd62f57c41269c3c23f360eeaf1090b1db9c38651106674d48bc65dba88ba",
          "expectValid": true
        },
        {
          "id": "wasm-realistic",
          "filename": "env-import-memory.wasm",
          "variant": "realistic",
          "title": "WASM Module with Host Import (`env.log`) & Linear Memory",
          "description": "Contains Type, Import, Function, Memory, Export, and Code sections for symbol scanner tests.",
          "localPath": "/fixtures/v1/wasm/env-import-memory.wasm",
          "cdnUrl": "https://fileformat.co/fixtures/v1/wasm/env-import-memory.wasm",
          "sizeBytes": 80,
          "sha256": "f6462abef751b355d056c266a6e5d376afb018bd445477af9d9df333fa0f4f47",
          "expectValid": true
        },
        {
          "id": "wasm-edge-case",
          "filename": "truncated-code-section.wasm",
          "variant": "edge-case",
          "title": "Truncated WASM Code Section",
          "description": "WASM binary whose Code section LEB128 byte length exceeds remaining file bytes.",
          "localPath": "/fixtures/v1/wasm/truncated-code-section.wasm",
          "cdnUrl": "https://fileformat.co/fixtures/v1/wasm/truncated-code-section.wasm",
          "sizeBytes": 75,
          "sha256": "a43778279d60ece37b28759e01fc505e73e18e6274db914e148bd8bfdd8b295d",
          "expectValid": false,
          "edgeCaseTag": "Truncated Code Section"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "webp",
      "extension": ".webp",
      "samples": [
        {
          "id": "webp-minimal",
          "filename": "minimal-vp8x.webp",
          "variant": "minimal",
          "title": "Minimal RIFF WebP (64×64 Lossless)",
          "description": "Real WebP encoded by libwebp via Pillow — RIFF/WEBP container with decodable VP8L/VP8 payload.",
          "localPath": "/fixtures/v1/webp/minimal-vp8x.webp",
          "cdnUrl": "https://fileformat.co/fixtures/v1/webp/minimal-vp8x.webp",
          "sizeBytes": 58,
          "sha256": "297ca327517d16217664fbb2ab4e878a676db57b3050a92b5ab929259266ffde",
          "expectValid": true
        },
        {
          "id": "webp-realistic",
          "filename": "og-banner-1200x630.webp",
          "variant": "realistic",
          "title": "1200×630 WebP Social Card",
          "description": "Real 1200×630 lossy WebP from Pillow at quality 85 for OpenGraph-dimension checks.",
          "localPath": "/fixtures/v1/webp/og-banner-1200x630.webp",
          "cdnUrl": "https://fileformat.co/fixtures/v1/webp/og-banner-1200x630.webp",
          "sizeBytes": 60664,
          "sha256": "1cf094696041edb5cd955bf546811c69b1e8cdd5092cdfd765300849e2ceee2d",
          "expectValid": true
        },
        {
          "id": "webp-edge-case",
          "filename": "truncated-riff.webp",
          "variant": "edge-case",
          "title": "Truncated RIFF WebP Stream",
          "description": "WebP truncated inside the image payload — declared RIFF size exceeds available bytes, Pillow must raise.",
          "localPath": "/fixtures/v1/webp/truncated-riff.webp",
          "cdnUrl": "https://fileformat.co/fixtures/v1/webp/truncated-riff.webp",
          "sizeBytes": 50,
          "sha256": "6b6b3468c2e38c48255de9164388e169324215d8fe802e113b1b109f631deee3",
          "expectValid": false,
          "edgeCaseTag": "RIFF Size Mismatch"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    },
    {
      "slug": "xlsx",
      "extension": ".xlsx",
      "samples": [
        {
          "id": "xlsx-minimal",
          "filename": "minimal-sheet.xlsx",
          "variant": "minimal",
          "title": "Minimal Valid OOXML Workbook (.xlsx)",
          "description": "Real single-cell workbook written by openpyxl with Content_Types, rels, workbook.xml and sheet1.xml.",
          "localPath": "/fixtures/v1/xlsx/minimal-sheet.xlsx",
          "cdnUrl": "https://fileformat.co/fixtures/v1/xlsx/minimal-sheet.xlsx",
          "sizeBytes": 4843,
          "sha256": "872a54723dd14451428342c5f097a0c3c7d5097a7d7fb28a86905e0df685a9f7",
          "expectValid": true
        },
        {
          "id": "xlsx-realistic",
          "filename": "quarterly-revenue.xlsx",
          "variant": "realistic",
          "title": "Financial Metrics OOXML Spreadsheet",
          "description": "Real openpyxl workbook: 4 quarterly revenue rows with USD floats for tabular import tests.",
          "localPath": "/fixtures/v1/xlsx/quarterly-revenue.xlsx",
          "cdnUrl": "https://fileformat.co/fixtures/v1/xlsx/quarterly-revenue.xlsx",
          "sizeBytes": 5037,
          "sha256": "d5ab69cbec81720b5a6399b0d77de88308017bad09e0b3919b15c0e4cf8afe3e",
          "expectValid": true
        },
        {
          "id": "xlsx-edge-case",
          "filename": "spoofed-gateway-error.xlsx",
          "variant": "edge-case",
          "title": "Spoofed HTML 502 Error Saved as `.xlsx`",
          "description": "Real-world debugging classic: filename ends .xlsx but bytes are an HTML gateway error page — openpyxl must raise.",
          "localPath": "/fixtures/v1/xlsx/spoofed-gateway-error.xlsx",
          "cdnUrl": "https://fileformat.co/fixtures/v1/xlsx/spoofed-gateway-error.xlsx",
          "sizeBytes": 203,
          "sha256": "22cceb2a5564d2877e94960a59b434289c9f4aa0c56e346c0aa9ce8bf361cceb",
          "expectValid": false,
          "edgeCaseTag": "HTML Spoofed as .xlsx"
        }
      ],
      "generatedAt": "2026-11-14T16:09:03Z"
    }
  ]
}