{
  "schema_version": "1.0.0",
  "folio_id": "X.01",
  "slug": "x01",
  "title": "Zero-Build WebGL2 GLB Inspector & Byte-Level 2-Manifold Geometry Verifier",
  "generator_script": "skills/toolchain/x01/make_x01.py",
  "generator_script_sha256": "42fe4125a09bd0b2e48b1a0f2b69d32d47161a57e4912a6146844c9593d0e78e",
  "parameters": {
    "length_mm": 40.0,
    "width_mm": 30.0,
    "height_mm": 20.0
  },
  "tool_versions": {
    "python": "3.x-stdlib",
    "uga_kernel": "1.0.0"
  },
  "license": "CC0-1.0 / CC-BY-4.0",
  "boundary_en": "Every file on this page is an educational artifact generated by the script beside it. Nothing here is certified as load-bearing, printable, safe, or fit for any purpose. The verifier checks geometry, not fitness.",
  "boundary_es": "Cada archivo en esta página es un artefacto educativo generado por el script que lo acompaña. Nada aquí está certificado como estructural, imprimible, seguro ni apto para ningún propósito. El verificador comprueba la geometría, no la aptitud.",
  "expected_geometry": {
    "analytical_volume": 24000.0,
    "signed_mesh_volume": 24000.0,
    "euler_characteristic": 2,
    "vertices": 14,
    "edges": 36,
    "faces": 24,
    "bbox_min": [
      -20.0,
      -15.0,
      -10.0
    ],
    "bbox_max": [
      20.0,
      15.0,
      10.0
    ]
  },
  "files": [
    {
      "filename": "x01_artifact.glb",
      "format": "GLB (glTF 2.0 Binary)",
      "bytes": 2716,
      "sha256": "d6f215d636e10768cd6f0ba18289574d0788fd4dc81de9518a10baa91bd107a3"
    },
    {
      "filename": "x01_artifact.step",
      "format": "STEP AP242 (ISO 10303-242)",
      "bytes": 10356,
      "sha256": "852fab1bc757d186ebc2e486acafe859b079044fad724f3c0c0c39c1d6363521"
    },
    {
      "filename": "x01_artifact.3mf",
      "format": "3MF Core 1.2.3",
      "bytes": 1677,
      "sha256": "8ff0dc0e706f88df73a56df4cb5669258cc9b4296fe4d043acf0116d0c57613b"
    }
  ],
  "fuzz_fixtures": [
    {
      "file": "fuzz/fuzz_01_truncated_header.glb",
      "defect": "Truncated 8-byte header (< 20 bytes)"
    },
    {
      "file": "fuzz/fuzz_02_chunk_oob.glb",
      "defect": "JSON chunk length (999999) exceeds file length"
    },
    {
      "file": "fuzz/fuzz_03_index_oob.glb",
      "defect": "Triangle index 9999 exceeds vertex count 14"
    },
    {
      "file": "fuzz/fuzz_04_non_manifold.glb",
      "defect": "Single flipped triangle normal breaks half-edge manifoldness"
    }
  ]
}
