{
  "checkedAt": "2026-10-28T10:49:48.405655+00:00",
  "release": {
    "version": "a83e70e6e4962739",
    "semver": "0.18.0",
    "publishedAt": "2026-10-28T10:49:48+00:00"
  },
  "scope": "Stage5.2 conventional air combat, AA, native presentation; route focus/click interruption, cargo context selection and hover preview",
  "javascript": {
    "coreFullSuiteTests": 890,
    "coreFullSuiteModules": 69,
    "coreSuiteCodeVersion": "6e2541189879bd2e",
    "finalAdditionalPresentationTests": 3,
    "totalVerifiedTests": 893,
    "finalChange": "Only initial air-loading position and post-interception visual HP; kernel unchanged",
    "independentServiceExclusion": "image-upload.test.mjs is outside the game kernel. The sandbox run could not listen; escalated run passed all4 assertions but its direct Node process did not exit and was stopped. No service files changed."
  },
  "pythonTests": 22,
  "dom": "passed on final build",
  "localBrowserScenarios": 25,
  "localBrowserResults": [
    {
      "name": "context-cargo",
      "exitCode": 0,
      "log": "/tmp/civ3-0180-local-browser-context-cargo.log"
    },
    {
      "name": "air-combat",
      "exitCode": 0,
      "log": "/tmp/civ3-0180-local-browser-air-combat.log"
    },
    {
      "name": "air-missions",
      "exitCode": 0,
      "seconds": 14.62,
      "log": "/tmp/civ3-0180-baseline-local-browser-air-missions.log"
    },
    {
      "name": "transport-network",
      "exitCode": 0,
      "seconds": 7.56,
      "log": "/tmp/civ3-0180-baseline-local-browser-transport-network.log"
    },
    {
      "name": "bombardment",
      "exitCode": 0,
      "seconds": 7.29,
      "log": "/tmp/civ3-0180-baseline-local-browser-bombardment.log"
    },
    {
      "name": "naval",
      "exitCode": 0,
      "seconds": 11.87,
      "log": "/tmp/civ3-0180-baseline-local-browser-naval.log"
    },
    {
      "name": "worker-rate",
      "exitCode": 0,
      "seconds": 7.38,
      "log": "/tmp/civ3-0180-baseline-local-browser-worker-rate.log"
    },
    {
      "name": "civilopedia",
      "exitCode": 0,
      "seconds": 2.99,
      "log": "/tmp/civ3-0180-baseline-local-browser-civilopedia.log"
    },
    {
      "name": "city-refinements",
      "exitCode": 0,
      "seconds": 5.62,
      "log": "/tmp/civ3-0180-baseline-local-browser-city-refinements.log"
    },
    {
      "name": "worker-orders",
      "exitCode": 0,
      "seconds": 6.13,
      "log": "/tmp/civ3-0180-baseline-local-browser-worker-orders.log"
    },
    {
      "name": "preferences",
      "exitCode": 0,
      "seconds": 4.76,
      "log": "/tmp/civ3-0180-baseline-local-browser-preferences.log"
    },
    {
      "name": "hud-economy",
      "exitCode": 0,
      "seconds": 3.83,
      "log": "/tmp/civ3-0180-remaining-local-browser-hud-economy.log"
    },
    {
      "name": "modal-backdrop",
      "exitCode": 0,
      "seconds": 5.8,
      "log": "/tmp/civ3-0180-remaining-local-browser-modal-backdrop.log"
    },
    {
      "name": "technology-tree",
      "exitCode": 0,
      "seconds": 13.25,
      "log": "/tmp/civ3-0180-remaining-local-browser-technology-tree.log"
    },
    {
      "name": "native-orders",
      "exitCode": 0,
      "seconds": 5.73,
      "log": "/tmp/civ3-0180-remaining-local-browser-native-orders.log"
    },
    {
      "name": "native-music",
      "exitCode": 0,
      "seconds": 6.86,
      "log": "/tmp/civ3-0180-remaining-local-browser-native-music.log"
    },
    {
      "name": "readiness",
      "exitCode": 0,
      "seconds": 6.18,
      "log": "/tmp/civ3-0180-remaining-local-browser-readiness.log"
    },
    {
      "name": "pollution",
      "exitCode": 0,
      "seconds": 8.93,
      "log": "/tmp/civ3-0180-remaining-local-browser-pollution.log"
    },
    {
      "name": "native-city",
      "exitCode": 0,
      "seconds": 6.77,
      "log": "/tmp/civ3-0180-remaining-local-browser-native-city.log"
    },
    {
      "name": "terrain-work",
      "exitCode": 0,
      "seconds": 16.83,
      "log": "/tmp/civ3-0180-last-local-browser-terrain-work.log"
    },
    {
      "name": "automation",
      "exitCode": 0,
      "log": "/tmp/civ3-0180-local-browser-automation.log"
    },
    {
      "name": "classic-controls",
      "exitCode": 0,
      "seconds": 9.68,
      "log": "/tmp/civ3-0180-last-local-browser-classic-controls.log"
    },
    {
      "name": "party",
      "exitCode": 0,
      "seconds": 56.03,
      "log": "/tmp/civ3-0180-last-local-browser-party.log"
    },
    {
      "name": "interturn-performance",
      "exitCode": 0,
      "seconds": 12.39,
      "log": "/tmp/civ3-0180-last-local-browser-interturn-performance.log"
    },
    {
      "name": "ui-polish",
      "exitCode": 0,
      "seconds": 6.04,
      "log": "/tmp/civ3-0180-last-local-browser-ui-polish.log"
    }
  ],
  "finalBrowserResults": [
    {
      "name": "air-combat",
      "exitCode": 0,
      "seconds": 20.55,
      "log": "/tmp/civ3-0180-local-browser-air-combat.log"
    },
    {
      "name": "air-missions",
      "exitCode": 0,
      "seconds": 14.43,
      "log": "/tmp/civ3-0180-local-browser-air-missions.log"
    },
    {
      "name": "bombardment",
      "exitCode": 0,
      "seconds": 7.76,
      "log": "/tmp/civ3-0180-local-browser-bombardment.log"
    },
    {
      "name": "context-cargo",
      "exitCode": 0,
      "seconds": 5.32,
      "log": "/tmp/civ3-0180-local-browser-context-cargo.log"
    }
  ],
  "nativeEvidence": {
    "airCombatMachineCases": 732,
    "airCombatSignatures": 8,
    "priorAirMachineCases": 505,
    "priorAirSignatures": 18,
    "commandGlyphMachineCases": 67,
    "commandGlyphSignatures": 11,
    "fullWindowsRuntimeVerified": false
  },
  "catalog": {
    "productionUnitIds": 213,
    "supportedBuildings": 19,
    "airTypes": 25,
    "imagesAndAtlases": 1503,
    "wavClips": 958
  },
  "saveSchema": 36,
  "genuineSchema35Migration": "only schema and air-model metadata; carrier cargo and recon preserved",
  "publicStatus": "passed",
  "limitations": [
    "Full stage5.2 and MVP remain incomplete; airfields, air transports/drops and other documented exceptions remain open.",
    "Native PRNG and full Windows visual sequence not reproduced."
  ],
  "publicBrowserResults": [
    {
      "name": "context-cargo",
      "exitCode": 0,
      "seconds": 6.67,
      "log": "/tmp/civ3-0180-public-full-public-browser-context-cargo.log"
    },
    {
      "name": "air-combat",
      "exitCode": 0,
      "seconds": 16.94,
      "log": "/tmp/civ3-0180-public-full-public-browser-air-combat.log"
    },
    {
      "name": "air-missions",
      "exitCode": 0,
      "seconds": 12.88,
      "log": "/tmp/civ3-0180-public-full-public-browser-air-missions.log"
    },
    {
      "name": "transport-network",
      "exitCode": 0,
      "seconds": 7.81,
      "log": "/tmp/civ3-0180-public-full-public-browser-transport-network.log"
    },
    {
      "name": "bombardment",
      "exitCode": 0,
      "seconds": 7.8,
      "log": "/tmp/civ3-0180-public-full-public-browser-bombardment.log"
    },
    {
      "name": "naval",
      "exitCode": 0,
      "seconds": 10.96,
      "log": "/tmp/civ3-0180-public-full-public-browser-naval.log"
    },
    {
      "name": "worker-rate",
      "exitCode": 0,
      "seconds": 6.91,
      "log": "/tmp/civ3-0180-public-full-public-browser-worker-rate.log"
    },
    {
      "name": "civilopedia",
      "exitCode": 0,
      "seconds": 3.41,
      "log": "/tmp/civ3-0180-public-full-public-browser-civilopedia.log"
    },
    {
      "name": "city-refinements",
      "exitCode": 0,
      "seconds": 5.43,
      "log": "/tmp/civ3-0180-public-full-public-browser-city-refinements.log"
    },
    {
      "name": "worker-orders",
      "exitCode": 0,
      "seconds": 5.65,
      "log": "/tmp/civ3-0180-public-full-public-browser-worker-orders.log"
    },
    {
      "name": "preferences",
      "exitCode": 0,
      "seconds": 4.6,
      "log": "/tmp/civ3-0180-public-full-public-browser-preferences.log"
    },
    {
      "name": "hud-economy",
      "exitCode": 0,
      "seconds": 3.38,
      "log": "/tmp/civ3-0180-public-full-public-browser-hud-economy.log"
    },
    {
      "name": "modal-backdrop",
      "exitCode": 0,
      "seconds": 4.88,
      "log": "/tmp/civ3-0180-public-full-public-browser-modal-backdrop.log"
    },
    {
      "name": "technology-tree",
      "exitCode": 0,
      "seconds": 11.78,
      "log": "/tmp/civ3-0180-public-full-public-browser-technology-tree.log"
    },
    {
      "name": "native-orders",
      "exitCode": 0,
      "seconds": 5.61,
      "log": "/tmp/civ3-0180-public-full-public-browser-native-orders.log"
    },
    {
      "name": "native-music",
      "exitCode": 0,
      "seconds": 5.86,
      "log": "/tmp/civ3-0180-public-full-public-browser-native-music.log"
    },
    {
      "name": "readiness",
      "exitCode": 0,
      "seconds": 7.41,
      "log": "/tmp/civ3-0180-public-full-public-browser-readiness.log"
    },
    {
      "name": "pollution",
      "exitCode": 0,
      "seconds": 9.04,
      "log": "/tmp/civ3-0180-public-full-public-browser-pollution.log"
    },
    {
      "name": "native-city",
      "exitCode": 0,
      "seconds": 6.79,
      "log": "/tmp/civ3-0180-public-full-public-browser-native-city.log"
    },
    {
      "name": "terrain-work",
      "exitCode": 0,
      "seconds": 15.25,
      "log": "/tmp/civ3-0180-public-full-public-browser-terrain-work.log"
    },
    {
      "name": "automation",
      "exitCode": 0,
      "seconds": 11.73,
      "log": "/tmp/civ3-0180-public-full-public-browser-automation.log"
    },
    {
      "name": "classic-controls",
      "exitCode": 0,
      "seconds": 10.16,
      "log": "/tmp/civ3-0180-public-full-public-browser-classic-controls.log"
    },
    {
      "name": "party",
      "exitCode": 0,
      "seconds": 55.28,
      "log": "/tmp/civ3-0180-public-full-public-browser-party.log"
    },
    {
      "name": "interturn-performance",
      "exitCode": 0,
      "seconds": 11.38,
      "log": "/tmp/civ3-0180-public-full-public-browser-interturn-performance.log"
    },
    {
      "name": "ui-polish",
      "exitCode": 0,
      "seconds": 6.31,
      "log": "/tmp/civ3-0180-public-full-public-browser-ui-polish.log"
    }
  ],
  "byteAudit": "published-0180-byte-audit.json",
  "fullParty": {
    "humanCommands": 53,
    "turns": 18,
    "winnerId": "p2",
    "completedExportImportExact": true,
    "completedReloadExact": true,
    "codeVersion": "./app.mjs?v=a83e70e6e4962739"
  }
}
