{
  "schemaVersion": 1,
  "contractId": "workload-result-v2-proposal-v1",
  "status": "proposal-validation-only",
  "workloadCatalog": {
    "catalogId": "workload-catalog-v2-proposal",
    "file": {
      "path": "catalog/workloads.v2.proposed.json",
      "sha256": "d1e014cc7d6db799e1a04618b8961a3a5e6ead66e5a1fcdcf1e2301c87c66ac9",
      "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/catalog/workloads.v2.proposed.json"
    }
  },
  "workloadContract": {
    "contractId": "v2-workload-contract-v1",
    "file": {
      "path": "benchmarks/v2/shared/workload-contract.js",
      "sha256": "c2c816ec5177a190999b9a030bc992519935301684f1bb884281440e08a43155",
      "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/benchmarks/v2/shared/workload-contract.js"
    }
  },
  "resultContract": {
    "contractId": "workload-result-v2-proposal-v1",
    "file": {
      "path": "schemas/workload-result-v2-proposal.schema.json",
      "sha256": "64fa72510b1e775c8d4b968ad4aacfd9b0e1ae3cf199156b958476857cd8d39a",
      "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/schemas/workload-result-v2-proposal.schema.json"
    }
  },
  "source": {
    "repository": "https://github.com/PaulKinlan/wasm-vs-js",
    "commit": "9b476e3954165f899b7788fba03b6f05cb82a44f"
  },
  "workload": {
    "entryId": "game.dom-tactics-grid.v1",
    "benchmarkSlug": "game-dom-tactics-grid",
    "variant": {
      "id": "js-controlled",
      "target": "javascript",
      "track": "controlled",
      "algorithmFamilyId": "game-dom-tactics-grid-controlled-v1"
    }
  },
  "provenance": {
    "sources": [
      {
        "role": "javascript-authored",
        "path": "benchmarks/v2/game-family/engine.js",
        "sha256": "ede0f172e52434a81579f7a22a42b1f794981df2aa6c0749a897d3b117dc3d6a",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/benchmarks/v2/game-family/engine.js"
      },
      {
        "role": "shared-support",
        "path": "benchmarks/v2/game-family/fixtures.js",
        "sha256": "7081a0a7895ce9a5deffb911c212de5b10aa0084200e454a6b7aad619b946af0",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/benchmarks/v2/game-family/fixtures.js"
      },
      {
        "role": "wasm-authored",
        "path": "benchmarks/v2/game-family/game-family.c",
        "sha256": "4714f2fac3d40bd71aa89e73a8263f03e50239c7e2b760d8b4f932434742e32e",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/benchmarks/v2/game-family/game-family.c"
      },
      {
        "role": "shared-support",
        "path": "benchmarks/v2/game-family/implementation-contract.v1.json",
        "sha256": "f110c3fd642fe61ef8bb899cf5e6f53adabff529a2d60bf00a43cbbfa72304f7",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/benchmarks/v2/game-family/implementation-contract.v1.json"
      },
      {
        "role": "shared-support",
        "path": "scripts/build-game-family.ts",
        "sha256": "6c15e87ee363f5cf13e34485760ae47096f0ab0bec8ef1526d2e00786b1e1819",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/scripts/build-game-family.ts"
      },
      {
        "role": "shared-support",
        "path": "benchmarks/v2/shared/workload-contract.js",
        "sha256": "c2c816ec5177a190999b9a030bc992519935301684f1bb884281440e08a43155",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/benchmarks/v2/shared/workload-contract.js"
      },
      {
        "role": "shared-support",
        "path": "benchmarks/v2/shared/provenance-contract.js",
        "sha256": "767262a28f8a88a86acd0de3456d17be9184554ea270ac9f30a2df279a1aac29",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/benchmarks/v2/shared/provenance-contract.js"
      },
      {
        "role": "shared-support",
        "path": "catalog/workloads.v2.proposed.json",
        "sha256": "d1e014cc7d6db799e1a04618b8961a3a5e6ead66e5a1fcdcf1e2301c87c66ac9",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/catalog/workloads.v2.proposed.json"
      },
      {
        "role": "shared-support",
        "path": "schemas/workload-result-v2-proposal.schema.json",
        "sha256": "64fa72510b1e775c8d4b968ad4aacfd9b0e1ae3cf199156b958476857cd8d39a",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/schemas/workload-result-v2-proposal.schema.json"
      },
      {
        "role": "shared-support",
        "path": "deno.json",
        "sha256": "1fb796ab0a517cac5b34d6b0225dc1316f7dae952460c45fec46acbe9d71ec5b",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/deno.json"
      },
      {
        "role": "shared-support",
        "path": "deno.lock",
        "sha256": "e468ccbdd168f790d69e2d180a264a52602ca8a06fe9f7a84fca2ca717c123b2",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/deno.lock"
      }
    ],
    "generator": {
      "path": "scripts/build-game-family.ts",
      "sha256": "6c15e87ee363f5cf13e34485760ae47096f0ab0bec8ef1526d2e00786b1e1819",
      "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/scripts/build-game-family.ts"
    },
    "reference": {
      "path": "benchmarks/v2/game-family/engine.js",
      "sha256": "ede0f172e52434a81579f7a22a42b1f794981df2aa6c0749a897d3b117dc3d6a",
      "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/benchmarks/v2/game-family/engine.js"
    },
    "oracle": {
      "path": "public/artifacts/game-v2-controlled-family/output-manifest.json",
      "sha256": "8191907c367a69230e57fff3724035eade207d6f22958fd5e3bd08f93f348e6a",
      "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/public/artifacts/game-v2-controlled-family/output-manifest.json"
    },
    "manifests": {
      "fixture": {
        "path": "public/artifacts/game-v2-controlled-family/fixture-manifest.json",
        "sha256": "8d47ad23d9ce48bad81c174788a330523e28ff4bb222e4df3d9929d95eb5c8f3",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/public/artifacts/game-v2-controlled-family/fixture-manifest.json"
      },
      "input": {
        "path": "public/artifacts/game-v2-controlled-family/input-manifest.json",
        "sha256": "a79b77ed8b3589cecf31849a89b2875ef86a831b6fcadb3b501034972ba42fee",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/public/artifacts/game-v2-controlled-family/input-manifest.json"
      },
      "output": {
        "path": "public/artifacts/game-v2-controlled-family/output-manifest.json",
        "sha256": "8191907c367a69230e57fff3724035eade207d6f22958fd5e3bd08f93f348e6a",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/public/artifacts/game-v2-controlled-family/output-manifest.json"
      }
    },
    "build": {
      "recipe": {
        "path": "scripts/build-game-family.ts",
        "sha256": "6c15e87ee363f5cf13e34485760ae47096f0ab0bec8ef1526d2e00786b1e1819",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/scripts/build-game-family.ts"
      },
      "cwd": ".",
      "command": [
        "deno",
        "run",
        "--allow-read=.",
        "--allow-write=public/artifacts/game-v2-controlled-family,public/evidence/v2-proposals/games",
        "--allow-run=git,clang,wasm-ld",
        "scripts/build-game-family.ts",
        "--source-commit=9b476e3954165f899b7788fba03b6f05cb82a44f"
      ],
      "locks": [
        {
          "path": "deno.lock",
          "sha256": "e468ccbdd168f790d69e2d180a264a52602ca8a06fe9f7a84fca2ca717c123b2",
          "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/deno.lock"
        }
      ],
      "toolchain": [
        {
          "name": "deno",
          "version": "2.9.0"
        },
        {
          "name": "clang",
          "version": "clang version 22.1.8"
        },
        {
          "name": "wasm-ld",
          "version": "LLD 22.1.8"
        }
      ],
      "flags": {
        "compiler": [
          "--target=wasm32-unknown-unknown",
          "-O3",
          "-nostdlib",
          "-ffreestanding",
          "-fno-builtin"
        ],
        "linker": [
          "--no-entry",
          "--export-memory",
          "--initial-memory=4194304",
          "--max-memory=4194304",
          "--stack-first"
        ],
        "runtime": [
          "fixed initial=max linear memory",
          "integer-only controlled reducers",
          "JavaScript host copies input and decodes output only"
        ]
      },
      "environment": [
        {
          "name": "GAME_EVIDENCE_STATUS",
          "value": "proposal-validation-only"
        }
      ]
    },
    "artifacts": [
      {
        "id": "game-dom-tactics-grid-js-controlled",
        "path": "benchmarks/v2/game-family/engine.js",
        "sha256": "ede0f172e52434a81579f7a22a42b1f794981df2aa6c0749a897d3b117dc3d6a",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/benchmarks/v2/game-family/engine.js",
        "mediaType": "text/javascript"
      },
      {
        "id": "game-dom-tactics-grid-fixture",
        "path": "public/artifacts/game-v2-controlled-family/game-dom-tactics-grid-v1.bin",
        "sha256": "93ea1b049be33d4a2d1fcf08d58e433181195b24c03e36326bfecd328c3a5262",
        "immutableUrl": "https://github.com/PaulKinlan/wasm-vs-js/blob/9b476e3954165f899b7788fba03b6f05cb82a44f/public/artifacts/game-v2-controlled-family/game-dom-tactics-grid-v1.bin",
        "mediaType": "application/octet-stream"
      }
    ]
  },
  "semanticCoverage": {
    "inputParameterIds": [
      "columns",
      "rows",
      "units",
      "actions",
      "turns",
      "connectivity"
    ],
    "oracleCheckIds": [
      "complete-output",
      "structural-invariants",
      "work-counters"
    ],
    "workCounterIds": [
      "actions",
      "turns",
      "path-nodes-expanded",
      "line-of-sight-tests",
      "state-updates",
      "dom-mutations",
      "transferred-bytes",
      "boundary-crossings"
    ],
    "phaseIds": [
      "load",
      "initialize",
      "transfer",
      "compute",
      "validation",
      "render",
      "end-to-end"
    ],
    "missingCellIds": [
      "implementation-and-results"
    ]
  },
  "collisionGuards": {
    "workloadVariantKey": "game.dom-tactics-grid.v1/js-controlled",
    "algorithmIdentityKey": "game-dom-tactics-grid-controlled-v1",
    "resourcePaths": [
      "benchmarks/v2/game-family/engine.js",
      "benchmarks/v2/game-family/fixtures.js",
      "benchmarks/v2/game-family/game-family.c",
      "benchmarks/v2/game-family/implementation-contract.v1.json",
      "benchmarks/v2/shared/provenance-contract.js",
      "benchmarks/v2/shared/workload-contract.js",
      "catalog/workloads.v2.proposed.json",
      "deno.json",
      "deno.lock",
      "public/artifacts/game-v2-controlled-family/fixture-manifest.json",
      "public/artifacts/game-v2-controlled-family/game-dom-tactics-grid-v1.bin",
      "public/artifacts/game-v2-controlled-family/input-manifest.json",
      "public/artifacts/game-v2-controlled-family/output-manifest.json",
      "schemas/workload-result-v2-proposal.schema.json",
      "scripts/build-game-family.ts"
    ],
    "artifactIds": [
      "game-dom-tactics-grid-js-controlled",
      "game-dom-tactics-grid-fixture"
    ]
  },
  "correctness": {
    "status": "passed",
    "oracleCheckIds": [
      "complete-output",
      "structural-invariants",
      "work-counters"
    ],
    "outputManifestSha256": "8191907c367a69230e57fff3724035eade207d6f22958fd5e3bd08f93f348e6a"
  },
  "performanceClaims": []
}
