{
  "schema_version": "paint_crash_provenance.v1",
  "title": "ぐるりんかく",
  "runtime_owner": "DegoDBWeb",
  "public_path": "/samples/paint-crash/",
  "mtool": {
    "source_commit": "c995b6b5673e2220501daa3f0997d0876277be82",
    "plugin_id": "domain.game-content",
    "candidate_id": "paint-crash-content-v1",
    "validation": {
      "ok": true,
      "validator": "app_ai_plugin_packet_validate",
      "schema_version": "ai_plugin_packet_validation.v1",
      "plugin_id": "domain.game-content",
      "candidate_id": "paint-crash-content-v1",
      "errors": [],
      "mutation_performed": false
    },
    "source_sha256": {
      "mtool/plugins/ai/domain.game-content/plugin.json": "214a93912c3563d66f07045f29150d61dff867a5e7e922062ae20b2099fb9939",
      "mtool/plugins/ai/domain.game-content/schemas/game-content-candidate.schema.json": "2f4d94d5f53867213392963a9a1b3bf6eb984c4061c6873f0022d30e49db49f8",
      "mtool/scripts/validate_ai_plugin_packet.php": "02701d3b17dfa498ac4d19201a9a356d943d95369da46826e242f7e9f02809f8",
      "mtool/app/ai_plugin_packet.php": "597e8530838563ad31beccfe5f1c12be9a429154735cd716e573023932dee1b4",
      "sample/tutorials/sample49-ai-plugin-maze-race/README.md": "6d1b5da721a30ea25a4d7e0c159e50a648ba80a2a1d4b1efab1c1674cb1f79bd",
      "sample/tutorials/sample51-height-map-threejs-view/README.md": "5a61612740532ad6966b444dba4af92e55e59da3bbc20b4e6f68c7c1e97d747f",
      "sample/tutorials/sample56-api-hunter-bear-cover-demo/README.md": "ff81dd8becb795cf12967cd24d9d2960a49c6b664a51e8617230bcb2e6f6c15f"
    }
  },
  "consumed_content": [
    "maps[0].width",
    "maps[0].height",
    "characters[].id",
    "characters[].name",
    "characters[].base_status.hp",
    "characters[].base_status.speed"
  ],
  "application_owned": [
    "paint scoring",
    "collision",
    "AI",
    "rendering",
    "input",
    "room server",
    "session handling"
  ],
  "output_kind": "Web-project-assembled game; not an Mtool-generated complete game",
  "assets": "Original procedural WebGL/Canvas/CSS graphics, synthesized sound effects and original loop BGM; no external image or audio assets",
  "rendering": "Three.js WebGL 3D with a Canvas 2D fallback; game rules remain planar",
  "dependencies": [
    {
      "package": "three",
      "version": "0.185.1",
      "license": "MIT",
      "upstream": "https://github.com/mrdoob/three.js",
      "reference_commit": "c995b6b5673e2220501daa3f0997d0876277be82",
      "reference_path": "sample/tutorials/sample51-height-map-threejs-view/vendor/three",
      "sha256": {
        "three.module.js": "bbf5ed13fe4373f5bd38b14ea8e62e9f157327da5638edc6d3863e08b167c9c7",
        "three.core.js": "3718df126d69c125362a03340913204470d8c50238605150e57f808840fb7759",
        "LICENSE": "8b378ebe60e2fe500158cb0ac71cb5e8b7d92953c2abcc63a0eb90499653b5bc"
      },
      "note": "Unmodified third-party library reused from the reviewed sample; not Mtool-generated game code.",
      "public_path": "vendor/three/"
    }
  ],
  "source_sha256": {
    "src/engine.mjs": "81fe07fd0b5ae68becf3d89ecf854d8e5f70614bfbf9cf9522593e9f8e5cbb20",
    "src/camera.mjs": "5dfc01533555c390ca2723cac0547f6c000e5e5a021ca005eaca49b06fd9b733",
    "src/paint-surface.mjs": "cfdb8b83e7e28d410a395cc121cfe1fded1c1ff517284b7a5186bcfe489a5633",
    "src/surface-textures.mjs": "1a0deeab2d5600d45c5eaa3b0579f5465d15a05a5a474a1b45261b21763591d8",
    "src/renderer.mjs": "081bb6398d3dfb8a0219d8d18a2ace0bf62530add7bc340534353c26672e329a",
    "src/renderer-3d.mjs": "d3ef6586b8ff3223443f2b05dd17a22ce2f8a072b51a9fedc0f71f21f186045e",
    "src/sound.mjs": "0f61d4b06cb5454ff2d3a8a0df6c9d7ac1b605bee10d5e95e032a57edb462dfa",
    "src/app.mjs": "53217249a51ac275cf57d6f98df8b80cd8403fe5115e2b883fbc5644cc1cb1a0",
    "src/index.html": "b6d93f28aab672064952ac6ef71e7b6173d68ead2dfe2dd5dcc75e40bf10c362",
    "src/game.css": "3eb321857e57c90936361942d550d57a9bfb5488e4cac6450a37a0a56585731f",
    "src/cover.svg": "17e59e27ec69e987d0e0508ef5679e6cc2ee05db8be85e7c352d497a1a7d6205",
    "server.mjs": "aa8a10de7f7032bfb1fe582ec30eb25c78c139ba6124e36e8b995ada0b233986",
    "inputs/source.json": "6d4212975645d64ffe9158cfe2142d6943caf95d2e5fe9075d9ec7d585dadb5a",
    "inputs/candidate.json": "326a7f678a6f0785cb3bb760060ea0662864c3c2dc840bce13f108968dd76c5f",
    "inputs/task.json": "ee90aee0d61dab41f779574b55b318dbf0f8654bcd199c598921d6ca6fb00f1a",
    "inputs/rules.json": "399a52ccd42864058f65d8e38d14428775a880d4aaeb011308ed5ce75f084ba2",
    "mtool-validation.json": "f9aab0b1beb0b29c560fd83f4cece8ffa421c1a6bb915e8f593c0b618d2d440a",
    "assets/three/three.module.js": "bbf5ed13fe4373f5bd38b14ea8e62e9f157327da5638edc6d3863e08b167c9c7",
    "assets/three/three.core.js": "3718df126d69c125362a03340913204470d8c50238605150e57f808840fb7759",
    "assets/three/LICENSE": "8b378ebe60e2fe500158cb0ac71cb5e8b7d92953c2abcc63a0eb90499653b5bc",
    "assets/three/origin.json": "213580c7ab98608cc8f58edc1bd85031deea63842a2c0661d571722643411399"
  }
}
