{
  "checkedAt": "2026-10-27T12:39:11.328152+00:00",
  "release": "2bc7950fb3f7e0d9",
  "schemaVersion": 20,
  "model": "atlants-native-world-v1",
  "geometry": "civ3-staggered-v1",
  "automaticChecks": {
    "kernel": 401,
    "javascriptMedia": 17,
    "python": 27,
    "total": 445,
    "fullJavaScriptSuite": 417,
    "additionalLargeSaveTest": 1
  },
  "domScenariosPassed": true,
  "publicChromiumCount": 18,
  "publicChromiumScenarios": [
    {
      "scenario": "browser-city-management",
      "file": "browser-city-management-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:33:42.919Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "kind": "city-management-browser-ui",
        "ordinarySaleFixture": {
          "source": "Unmodified new game with ordinary peaceful research/building commands; no stocks, rules or decisions edited",
          "replayCommands": 90
        },
        "governorApplyExact": true,
        "governorCancelExact": true,
        "saleCancelExact": true,
        "saleExact": true,
        "reloadExact": true,
        "hurryFixtures": {
          "source": "Isolated fixtures: government, gold, population, budget and shield stock set explicitly; supplementary to the separate ordinary-UI government transition check",
          "checks": [
            {
              "governmentId": 3,
              "mode": "gold",
              "goldCost": 54,
              "populationCost": 0,
              "angerTurnsAfterHarvest": 0,
              "reloadExact": true,
              "harvestAndAIMatchKernel": true
            },
            {
              "governmentId": 1,
              "mode": "population",
              "goldCost": 0,
              "populationCost": 1,
              "angerTurnsAfterHarvest": 19,
              "reloadExact": true,
              "harvestAndAIMatchKernel": true
            }
          ]
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "f1656c9e86ad0c03cc875dcf113dc2a3dc13681207c161eb8e6afefb16d73f9e",
      "elapsedSeconds": 13.69
    },
    {
      "scenario": "browser-classic-controls",
      "file": "browser-classic-controls-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:33:51.223Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "checks": {
          "ordinaryClickDoesNotMove": true,
          "waitThenHoldReturnsSameTurn": true,
          "automaticNextUnit": true,
          "holdConsumesMovement": true,
          "savedHold": true,
          "stackContextMenu": true,
          "activateFortifiedUnit": true,
          "keypadEightDirections": true,
          "dragPreviewBeforeRelease": true,
          "dragReleaseOneMove": true,
          "heldDestinationGoTo": true,
          "escapeCancelsHeldGesture": true,
          "busyWorkerDragAndKeypadBlocked": true,
          "centerZoomMinimapArrowsOnlyCamera": true
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalWindowsTimingVerified": false
      },
      "stdoutSha256": "198e693e5209bcb2bab773c11db8e8223d795a46ac756195cef550a75a8e488f",
      "elapsedSeconds": 8.31
    },
    {
      "scenario": "browser-command-pan",
      "file": "browser-command-pan-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:33:55.318Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "buttons": {
          "native32pxSprites": true,
          "noExtraRim": true,
          "normalHoverPressed": true,
          "mouseTooltip": true,
          "keyboardTooltip": true,
          "disabledReasonVisible": true,
          "commandsUnchanged": true
        },
        "pan": {
          "leftDrag": true,
          "middleDrag": true,
          "touchDrag": true,
          "movementModeRetained": true,
          "dragDoesNotIssueCommands": true,
          "gameStateUnchanged": true,
          "minimumGestureThreshold": 6
        },
        "shortClickPreserved": true,
        "contextualCityShortcut": true,
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "1c3f38e5b5c7f3c292d94e6280422091ad60f3c69caf2503da27df1477346c07",
      "elapsedSeconds": 4.04
    },
    {
      "scenario": "browser-conversion",
      "file": "browser-conversion-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:34:05.589Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "newGameSetting": {
          "source": "New-game checkbox and normal founding through UI",
          "disabledPartyExact": true,
          "cityStatusShown": true,
          "reloadExact": true
        },
        "incomingCity": {
          "source": "Prepared secondary Roman city, native population/resistance, fixed capitals, zero-movement Roman worker and seed 1; end turn and AI cause the offer",
          "proposalExact": true,
          "escapeCannotSkip": true,
          "scienceCannotBypass": true,
          "automaticPendingSaveAndReloadExact": true,
          "refusalPreservesCityAndUnits": true,
          "acceptancePreservesPopulationBuildingsAndNationalities": true,
          "formerWorkerLost": true,
          "nativeDefenderCreated": true,
          "acceptedExportAndReloadExact": true
        },
        "outgoingCity": {
          "source": "Prepared Russian secondary city and corresponding native mixed population; ordinary end turn, full AI and receiving command",
          "aiAcceptanceExact": true,
          "oldWorkerLost": true,
          "noHumanReceivingDialog": true,
          "reloadExact": true
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "459f2c7f08dd502b056f71f9beba2cc79800f93d0c3a59e016d761e9cecc9742",
      "elapsedSeconds": 10.32
    },
    {
      "scenario": "browser-culture",
      "file": "browser-culture-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:34:15.391Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "ordinaryGame": {
          "source": "Fresh game, normal founding/production and ten turns through UI; no state mutation",
          "harvests": 10,
          "culture": 10,
          "level": 2,
          "nextThreshold": 100,
          "aiAndEveryTurnExact": true,
          "reloadExact": true
        },
        "boundaryCase": {
          "source": "Prepared equal-culture cities, native Monument, horse road and unfinished worker job; ordinary end-turn commands and AI cause the ownership change",
          "ownershipExact": true,
          "laborReleased": true,
          "resourceAndProductionUpdated": true,
          "foreignWorkInterrupted": true,
          "exportAndReloadExact": true
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "90eb16d352a95b21789f3373843ec54381c6721f2fe384e3bd3deb6d244b878c",
      "elapsedSeconds": 9.76
    },
    {
      "scenario": "browser-drafting",
      "file": "browser-drafting-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:34:27.437Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "ordinary": {
          "source": "Prepared unlocked native city with two Roman nationals; ordinary confirmation/cancel, export/import, reload and next-turn buttons",
          "nativeType88": true,
          "nativeRecruitHitPoints": 5,
          "populationEightToSeven": true,
          "foreignGroupsPreserved": true,
          "cancelUnchanged": true,
          "serialAngerSaved": true,
          "exportReloadAndNextTurnExact": true
        },
        "limits": {
          "source": "Prepared native Fascism city; ordinary two draft confirmations with page reload after each",
          "limitSurvivesReload": true,
          "twoDraftsPerCity": true,
          "angerFortyTurns": true
        },
        "ai": {
          "source": "Prepared unlocked Roman city and visible Russian attacker; ordinary human End Turn and complete AI commands",
          "sameDraftCommand": true,
          "fullAIContinuationExact": true,
          "exportReloadExact": true
        },
        "media": {
          "nativeDraftTypes": 8,
          "actions": 4,
          "directions": 8,
          "palettes": [
            1,
            9
          ]
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "a37c1ef1b50dbb318bbb703ef8cc04ebf165983183089776292f6f140ef55ad8",
      "elapsedSeconds": 12.08
    },
    {
      "scenario": "browser-game",
      "file": "browser-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:34:35.822Z",
        "browser": "156.0.8078.4",
        "url": "https://vm.ya-erm.ru/civilization/",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "profileId": "atlants2-827be8b3f7aab140",
        "schemaVersion": 20,
        "turn": 10,
        "scientificDiscovery": 15,
        "newProduction": 135,
        "ownReloadExact": true,
        "exportImportExact": true,
        "pageErrors": [],
        "failedRequests": [],
        "jsHeapBytes": 18847876,
        "browserProcessRSSBytes": 307818496,
        "memoryCaveat": "RSS includes the browser, libraries, renderer and canvas; JS heap excludes decoded image/GPU storage.",
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "0696b7f7c18e93008cfc8bde88deb934d89d702778392d65c855c3f76aba6e7e",
      "elapsedSeconds": 8.43
    },
    {
      "scenario": "browser-golden-age",
      "file": "browser-golden-age-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:34:47.528Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "cossackCheck": {
          "source": "Explicit known technology, connected horse, 139 shields and one-hit enemy fixture; training, battle, golden age and harvest executed through UI",
          "trainingExact": true,
          "battleExact": true,
          "duration": 30,
          "followingHarvestExact": true,
          "exportAndReloadExact": true,
          "reloadDoesNotReplayAudio": true,
          "audio": {
            "images": {
              "budgetBytes": 67108864,
              "unitBytes": 25625280,
              "otherImageBytes": 44980960,
              "peakUnitBytes": 25625280,
              "residentImages": 50,
              "reconstructedImages": 0,
              "pendingImages": 0,
              "failedImages": 0,
              "loads": 50,
              "evictions": 0,
              "totalLoadMs": 11352
            },
            "audio": {
              "enabled": true,
              "contextSampleRate": 44100,
              "budgetBytes": 16777216,
              "bufferBytes": 1731264,
              "peakBytes": 1731264,
              "buffers": 12,
              "pending": 0,
              "failed": 0,
              "activeSources": 1,
              "scheduled": 12,
              "evictions": 0
            }
          }
        },
        "expirationCheck": {
          "source": "Explicit final-turn counter fixture derived from the actual combat golden age; full 30-harvest sequence separately tested in kernel",
          "bannerHides": true,
          "endedHistory": true,
          "harvestAndReloadExact": true
        },
        "legionaryCheck": {
          "source": "Separate Rome fixture with known technologies 9/33, connected native iron and 29 shields",
          "trainingExact": true,
          "movementExact": true,
          "roadProgress": 0.5,
          "harvestAndReloadExact": true
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "ebefe29cca2a05a6948e63b8ade5c3ce192660eca2c4fab7a50480c7ed44ea6d",
      "elapsedSeconds": 11.72
    },
    {
      "scenario": "browser-government",
      "file": "browser-government-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:34:59.839Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "ordinaryGame": {
          "source": "Fresh game through ordinary UI commands, unmodified technology and government",
          "anarchyTurns": 5,
          "cancelExact": true,
          "eachHarvestAndAIExact": true,
          "reloadDuringAnarchyExact": true,
          "mandatoryChoiceReloadExact": true,
          "escapeCannotSkip": true,
          "returnToChiefdomExact": true
        },
        "monarchyCheck": {
          "source": "Explicit fixture with Monarchy technology 30, four residents, stored food and five shields; revolution, harvests and adoption performed through UI",
          "anarchyTurns": 5,
          "adoptionExact": true,
          "scienceCap": 6,
          "capRedistributionExact": true,
          "hurryingBecomesAvailable": true,
          "reloadExact": true
        },
        "finishedAnarchyChoice": {
          "source": "Isolated elimination fixture from the ordinary completed-anarchy state",
          "canceledByVictory": true,
          "importAndReloadExact": true
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "f9242a4734d5be829682e7a769feb995b28ccd301b7843ae84fe754df35557a4",
      "elapsedSeconds": 12.24
    },
    {
      "scenario": "browser-infrastructure",
      "file": "browser-infrastructure-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:35:11.742Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "rail": {
          "source": "Prepared native connected iron/coal network, Fascism worker and mined plains; Shift-R, six natural turns and partial-job export/reload",
          "localRequirements": true,
          "quoteSixTurns": true,
          "sharedProductionEffect": true,
          "fullAIContinuationExact": true,
          "midJobReloadExact": true
        },
        "fort": {
          "source": "Prepared ordinary own plains; Ctrl-F builds fort, then Ctrl-F upgrades it; four natural turns and export/reload",
          "nativeFortDefense": 75,
          "nativeExtraBarricadeDefense": 75,
          "exactCommandsAndTurns": true,
          "originalEraSprites": true
        },
        "freeMove": {
          "source": "Prepared same-side railroad segment, ordinary G move",
          "movementUnchanged": true,
          "commandStateExact": true
        },
        "stop": {
          "source": "Prepared neutral barricade and cavalry with full native movement; ordinary G move",
          "movementExhausted": true,
          "stateExact": true
        },
        "control": {
          "source": "Prepared wartime cavalry and native zone-control machine gun; ordinary G move",
          "nativeFormula": true,
          "oneHealthLost": true,
          "notificationVisible": true,
          "exactPRNGAndState": true,
          "exportReloadExact": true
        },
        "localResourceRefusalVisible": true,
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "1a09ed7211f31464aaf540667e7855398f7f6babb0dcb323f0b5cdc03200c787",
      "elapsedSeconds": 11.93
    },
    {
      "scenario": "browser-media",
      "file": "browser-media-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:35:22.122Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "browser": "156.0.8078.4",
        "kind": "native-media-and-sound-browser-check",
        "originalRenderingVerified": false,
        "originalAudioVerified": false,
        "gallery": {
          "samples": [
            {
              "id": "land",
              "unitId": 20,
              "eraId": null,
              "directions": 8,
              "palettes": [
                1,
                9
              ]
            },
            {
              "id": "mounted-and-empty-sentinel",
              "unitId": 159,
              "eraId": null,
              "directions": 8,
              "palettes": [
                1,
                9
              ]
            },
            {
              "id": "offset-canvas",
              "unitId": 172,
              "eraId": null,
              "directions": 8,
              "palettes": [
                1,
                9
              ]
            },
            {
              "id": "ship",
              "unitId": 239,
              "eraId": null,
              "directions": 8,
              "palettes": [
                1,
                9
              ]
            },
            {
              "id": "aircraft",
              "unitId": 297,
              "eraId": null,
              "directions": 8,
              "palettes": [
                1,
                9
              ]
            },
            {
              "id": "folder-alias",
              "unitId": 270,
              "eraId": null,
              "directions": 8,
              "palettes": [
                1,
                9
              ]
            },
            {
              "id": "army-ancient",
              "unitId": 319,
              "eraId": 0,
              "directions": 8,
              "palettes": [
                1,
                9
              ]
            },
            {
              "id": "army-medieval",
              "unitId": 319,
              "eraId": 1,
              "directions": 8,
              "palettes": [
                1,
                9
              ]
            },
            {
              "id": "army-industrial",
              "unitId": 319,
              "eraId": 2,
              "directions": 8,
              "palettes": [
                1,
                9
              ]
            },
            {
              "id": "army-modern",
              "unitId": 319,
              "eraId": 3,
              "directions": 8,
              "palettes": [
                1,
                9
              ]
            }
          ],
          "stats": {
            "images": {
              "budgetBytes": 67108864,
              "unitBytes": 40310464,
              "otherImageBytes": 0,
              "peakUnitBytes": 40310464,
              "residentImages": 21,
              "reconstructedImages": 0,
              "pendingImages": 0,
              "failedImages": 0,
              "loads": 21,
              "evictions": 0,
              "totalLoadMs": 200
            },
            "audio": {
              "enabled": true,
              "contextSampleRate": 44100,
              "budgetBytes": 16777216,
              "bufferBytes": 667096,
              "peakBytes": 667096,
              "buffers": 5,
              "pending": 0,
              "failed": 0,
              "activeSources": 5,
              "scheduled": 5,
              "evictions": 0
            }
          },
          "memory": {
            "jsHeapBytes": 7641836,
            "browserRSSBytes": 284233728
          }
        },
        "game": {
          "stats": {
            "images": {
              "budgetBytes": 67108864,
              "unitBytes": 26827200,
              "otherImageBytes": 44980960,
              "peakUnitBytes": 26827200,
              "residentImages": 49,
              "reconstructedImages": 0,
              "pendingImages": 0,
              "failedImages": 0,
              "loads": 49,
              "evictions": 0,
              "totalLoadMs": 7161
            },
            "audio": {
              "enabled": true,
              "contextSampleRate": 44100,
              "budgetBytes": 16777216,
              "bufferBytes": 902608,
              "peakBytes": 902608,
              "buffers": 6,
              "pending": 0,
              "failed": 0,
              "activeSources": 1,
              "scheduled": 11,
              "evictions": 0
            }
          },
          "memory": {
            "jsHeapBytes": 7131860,
            "browserRSSBytes": 311504896
          },
          "outcomeMatchesKernel": true
        },
        "reloadDoesNotRepeatCombatOrAudio": true,
        "pageErrors": [],
        "failedRequests": [],
        "memoryCaveat": "Observed process RSS and JS heap in one controlled browser after catalogue playback and combat; these are not a peak or a target-device benchmark."
      },
      "stdoutSha256": "b6a3f0c703b44b316b4cef29a5fcd4624d997ccd99bfcb9eeb94f89b640064e5",
      "elapsedSeconds": 10.39
    },
    {
      "scenario": "browser-movement",
      "file": "browser-movement-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:35:32.529Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "nativeSpiral": {
          "size": [
            47,
            28
          ],
          "cornerButton": true,
          "neutral": true,
          "orangeHover": true,
          "orangeBlueBlink": true,
          "readyAfterOrders": true,
          "clickEndsRealTurn": true,
          "mandatoryDecisionBlocks": true,
          "reducedMotion": true,
          "originalTimingVerified": false
        },
        "worker": {
          "buttonsBlocked": true,
          "keyboardBlocked": true,
          "mapBlocked": true,
          "saveLoadExact": true,
          "workContinues": true
        },
        "routes": {
          "explicitModeRequired": true,
          "ordinaryClickDoesNotMove": true,
          "gTogglesMode": true,
          "rightClickCancels": true,
          "modeClearedAfterOrder": true,
          "preClickReadOnly": true,
          "selectVersusMoveClear": true,
          "turnCount": true,
          "multiTurnContinuation": true,
          "saveLoadExact": true,
          "eachTurnMatchesKernelAndAI": true,
          "waterReason": true
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "351319e3929b2862a2f5bfeef36593cc675e879ff48c48b79d7a58d2d800338c",
      "elapsedSeconds": 10.38
    },
    {
      "scenario": "browser-party",
      "file": "browser-party-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:36:23.965Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "profileId": "atlants2-827be8b3f7aab140",
        "schemaVersion": 20,
        "kind": "full-new-game-browser-ui",
        "humanChoices": "automated shared policy through buttons, keyboard and canvas; no manual human playtest",
        "originalBehaviorVerified": false,
        "humanCommands": 52,
        "turns": 18,
        "winnerId": "p2",
        "result": {
          "kind": "conquest",
          "winnerId": "p2",
          "turn": 18
        },
        "reloads": [
          {
            "turn": 1,
            "kind": "mixed-production-queue"
          },
          {
            "turn": 3,
            "kind": "road"
          },
          {
            "turn": 11,
            "kind": "combat"
          },
          {
            "turn": 18,
            "kind": "mandatory-production-choice",
            "source": "Unmodified new-game replay with explicit peaceful research/building commands; no stocks, rules or decisions edited",
            "replayCommands": 89
          }
        ],
        "queueChecked": true,
        "productionDecisionReloaded": true,
        "everyHumanCommandMatchesKernel": true,
        "completedExportImportExact": true,
        "completedReloadExact": true,
        "commandSHA256": "b88bfc1afb86983e4a190452f5d4954e98dda75920edc1f99e5d119d0974c399",
        "finalStateSHA256": "cf3102caf4762cf77e0d05defd95ad3834b39c5dc967b95a4a5db4232d822d4b",
        "pageErrors": [],
        "failedRequests": [],
        "captureDecisionCheck": {
          "source": "Replay of normal new-game commands; only human perspective switched to the natural captor",
          "reloadExact": true,
          "escapeCannotSkip": true,
          "keepAndVictoryMatchKernel": true
        },
        "memory": {
          "phase": "finished party, before reload, combat image cache retained",
          "jsHeapBytes": 30238820,
          "browserProcessRSSBytes": 410112000,
          "combatImageRequests": [
            "https://vm.ya-erm.ru/civilization/assets/original/unit-24-attack1-c1-c53c5e84269d.png?v=c53c5e84269d",
            "https://vm.ya-erm.ru/civilization/assets/original/unit-24-death-c1-6598b4ca5135.png?v=6598b4ca5135",
            "https://vm.ya-erm.ru/civilization/assets/original/unit-52-attack1-c9-8d35a44d6b4e.png?v=8d35a44d6b4e",
            "https://vm.ya-erm.ru/civilization/assets/original/unit-52-death-c9-0b37f6017266.png?v=0b37f6017266",
            "https://vm.ya-erm.ru/civilization/assets/original/unit-20-attack1-c9-3f9613146f37.png?v=3f9613146f37",
            "https://vm.ya-erm.ru/civilization/assets/original/unit-20-death-c9-ee2cc0e62963.png?v=ee2cc0e62963"
          ],
          "caveat": "RSS includes browser processes, libraries, canvas and decoded media; JS heap excludes image/GPU allocations. This is one observed run, not a peak or target-device benchmark."
        }
      },
      "stdoutSha256": "c3320a58f111b9111c196270e67ef8e03f07fbd7c5fda98ea4aebb6fb1c10eb6",
      "elapsedSeconds": 51.46
    },
    {
      "scenario": "browser-population",
      "file": "browser-population-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:36:35.100Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "ordinaryGame": {
          "source": "Fresh game; founding and native worker joining through ordinary UI; no state mutation",
          "population": 2,
          "commandExact": true,
          "nativeCompositionShown": true,
          "reloadExact": true
        },
        "assimilation": {
          "source": "Explicit foreign population, Theocracy, food and seed-1 fixture; native rate stays 10%; harvests through UI",
          "rate": 10,
          "firstHarvestExact": true,
          "nationalityOnly": true,
          "culturePausedBeforeAssimilation": true,
          "cultureResumesFollowingHarvest": true,
          "reloadExact": true
        },
        "capture": {
          "source": "Explicit two-capital tactical fixture, extra Roman settler prevents immediate terminal conquest; seed 2 tests quelling on the first protected own harvest with conversions enabled; actual attack and keep command through UI",
          "battleAndCaptureExact": true,
          "romanResidentsAfterCapture": 4,
          "resistanceShown": true,
          "garrisonCapacityShown": true,
          "quellingAndAIExact": true,
          "exportAndReloadExact": true
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "7a95d51b280a92092b5b8097f6ea12cf175b8f0ada584e3c8d9f3b068dc23918",
      "elapsedSeconds": 11.14
    },
    {
      "scenario": "browser-specialists",
      "file": "browser-specialists-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:36:47.635Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "ordinaryGame": {
          "mathLearnedTurn": 12,
          "source": "New game played through ordinary UI, actual research and worker road",
          "taxAssignmentExact": true,
          "reloadExact": true,
          "roadReloaded": true
        },
        "technologyCatalog": {
          "ordinary": 200,
          "special": 36,
          "futureEraDisabled": true,
          "missingIcon197HasNoFailedRequest": true
        },
        "lateProfessionCheck": {
          "source": "Isolated fixture with all normal technology and near-term food stock; not a natural full-tree playthrough",
          "engineerShields": 3,
          "assignmentExact": true,
          "harvestAndAIExact": true,
          "reloadExact": true,
          "unitSwitchRemovesCredit": true
        },
        "freeChoiceCheck": {
          "source": "Isolated prerequisite and research-progress fixture; discovery executed by ordinary end turns",
          "escapeCannotSkip": true,
          "pauseDisabled": true,
          "reloadExact": true,
          "choiceExact": true,
          "remainingResearchDecision": true
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "f875096027976ace557cae6cbbb0763fc56d92db8e58f7d106db10418eeeb328",
      "elapsedSeconds": 12.51
    },
    {
      "scenario": "browser-terrain-work",
      "file": "browser-terrain-work-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:37:00.451Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "mining": {
          "source": "Prepared native Fascism city and plains worker; ordinary work menu, two End Turns and mid-job export/reload",
          "sharedQuote": true,
          "nativeRateFour": true,
          "completionAndAIExact": true,
          "midJobContinuationExact": true,
          "nativeMapImprovement": true
        },
        "irrigation": {
          "source": "Same ordinary city; I shortcut and next turns replace mine with irrigation",
          "exclusiveImprovement": true,
          "fullTurnStateExact": true,
          "exportReloadExact": true
        },
        "forest": {
          "source": "Prepared native forest/plains tile; ordinary clear and plant commands, ten complete human/AI turns and export/reload",
          "baseTerrainPreserved": true,
          "firstHarvestCredited": true,
          "harvestHistoryRetainedAfterPlanting": true,
          "completeTurnsExact": true
        },
        "wetlands": {
          "source": "Prepared valid partly completed wetland work; import, ordinary final End Turn and export",
          "nativeWorkAmount": 72,
          "preparedProgress": 68,
          "noForestReward": true,
          "completeTurnExact": true
        },
        "eligibilityReasonsVisible": true,
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "1523a04bd44ea795c48710212d9fb250cdfccfff5eedd89e8be38f65e3e75c74",
      "elapsedSeconds": 12.89
    },
    {
      "scenario": "browser-war-peace",
      "file": "browser-war-peace-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:37:09.924Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "outgoingPeace": {
          "source": "Prepared one Roman national in Moscow; ordinary peace proposal, AI response and treaty-break buttons",
          "peaceWithoutTurnOrMoves": true,
          "randomStateUnchanged": true,
          "homelandAngerRemoved": true,
          "nationalityPreserved": true,
          "twentyTurnTreaty": true,
          "breachVisible": true,
          "exportReloadExact": true
        },
        "incomingPeace": {
          "source": "Prepared normal AI turn with a peace offer to the already-played human side",
          "pendingSaveReloadExact": true,
          "escapeCannotSkip": true,
          "scienceCannotBypass": true,
          "refusalResumesAIExact": true,
          "acceptanceResumesAIExact": true,
          "naturalNextTurnExact": true,
          "exportReloadExact": true
        },
        "forcedRevolution": {
          "source": "Prepared native strong-weariness government, 90 saved points, an invading unit and exhausted AI units; natural next turn through UI",
          "territoryIncrementExact": true,
          "strongModeRevolutionExact": true,
          "anarchyVisible": true,
          "reloadExact": true
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalBehaviorVerified": false
      },
      "stdoutSha256": "aa7afc571ca58e6baa81d5ab1d2ad42fd8cebc7669413729ac06a2ac2d990db3",
      "elapsedSeconds": 9.44
    },
    {
      "scenario": "browser-world-generator",
      "file": "browser-world-generator-verification.json",
      "report": {
        "checkedAt": "2026-10-27T12:37:29.158Z",
        "url": "https://vm.ya-erm.ru/civilization/",
        "browser": "156.0.8078.4",
        "codeVersion": "./app.mjs?v=2bc7950fb3f7e0d9",
        "schemaVersion": 20,
        "checks": {
          "nativeGeneratorMatchesKernel": true,
          "shortClickDoesNotMove": true,
          "nativeKeypadMovement": true,
          "explicitMouseMovement": true,
          "fourPlayerRoundMatchesKernel": true,
          "exportAndReload": true,
          "additionalNativePalettes": true,
          "hugeMap12800Cells": true,
          "sixteenCivilizations": true,
          "viewportCanvas": {
            "width": 1365,
            "height": 843
          },
          "cancelKeepsExistingParty": true,
          "genuineSchema19WaitAndRoad": true
        },
        "pageErrors": [],
        "failedRequests": [],
        "originalWindowsGeneratorVerified": false
      },
      "stdoutSha256": "ef149d4a9ba025f47f7e89aab2db5bcb8fc1925db301b1b28d1c017c16aa03b9",
      "elapsedSeconds": 19.22
    }
  ],
  "localEvidence": {
    "javascriptSuite": {
      "sha256": "7b1bc5feb272f4cb02f04285cd468dfea895395dfea4bf966d4f4f372bbe7038",
      "tail": [
        "  ---",
        "  duration_ms: 113.168155",
        "  ...",
        "1..417",
        "# tests 417",
        "# suites 0",
        "# pass 417",
        "# fail 0",
        "# cancelled 0",
        "# skipped 0",
        "# todo 0",
        "# duration_ms 86990.065998"
      ]
    },
    "largeSave": {
      "sha256": "7349489c780141229854d44d967908959588e41aee9e0f3e7dcb23d11ed06796",
      "tail": [
        "  ---",
        "  duration_ms: 1016.575639",
        "  ...",
        "1..1",
        "# tests 1",
        "# suites 0",
        "# pass 1",
        "# fail 0",
        "# cancelled 0",
        "# skipped 0",
        "# todo 0",
        "# duration_ms 1022.309741"
      ]
    },
    "domPython": {
      "sha256": "08803f751081d8666e7c1489fa5f25384f337ce1b9cdf51ad965d9eaa33db0de",
      "tail": [
        "PASS: discovery dialog and next-subject decision survive reload without repeating AI",
        "PASS: corrupt import preserves the party, valid import resizes the canvas and saves",
        "PASS: the G order moves onto a friendly stack instead of changing the selected unit",
        "PASS: fortify, war confirmation, saved mandatory capture choice, victory and terminal input lock",
        "PASS: all referenced DOM elements and PNG dimensions exist in the shipped files",
        "CHECK ['/usr/bin/python3', '-m', 'unittest', 'discover', '-s', 'tests', '-p', 'test_*.py']",
        "...........................",
        "----------------------------------------------------------------------",
        "Ran 27 tests in 1.784s",
        "",
        "OK",
        "CHECK ['/usr/bin/python3', '-m', 'py_compile', 'scripts/prepare-atlants.py', 'scripts/civ3_world_media.py']"
      ]
    },
    "worldMatrix": {
      "sha256": "72fc6fb42f21225a4382e2fdc3f13edf83960cb1c6bb17d79a9b77ba7e7f7f4f",
      "tail": [
        "PASS 42027 pangaea arid 4 6",
        "PASS 42027 pangaea wet 4 6",
        "PASS 42027 continents arid 4 6",
        "PASS 42027 continents wet 4 6",
        "PASS 42027 archipelago arid 4 6",
        "PASS 42027 archipelago wet 4 6",
        "PASS 4294967295 pangaea arid 4 6",
        "PASS 4294967295 pangaea wet 4 6",
        "PASS 4294967295 continents arid 4 6",
        "PASS 4294967295 continents wet 4 6",
        "PASS 4294967295 archipelago arid 4 6",
        "PASS 4294967295 archipelago wet 4 6"
      ]
    }
  },
  "originalRulesUnchanged": true,
  "originalNativeTables": 15,
  "originalCityNames": 1032,
  "originalGraphics": 530,
  "nativePaletteCount": 32,
  "originalGeneratorVerified": false,
  "originalWindowsRenderingVerified": false,
  "generatedFullVictoryEstablished": false,
  "limits": [
    "Own generator is deterministic but is not the original Firaxis algorithm.",
    "Resource density and start balancing are an explicit interpretation. Reduced WSIZ spacing is reported.",
    "Naval systems and transports are deferred; island conquest is not yet supported.",
    "Default civilization color collision resolution is deferred.",
    "Browser localStorage quota can be exhausted in a large explored game; export remains available.",
    "Full generated-world victory is not a claim of this verification."
  ],
  "publishedFiles": 1109,
  "identicalCodeDataHtmlCssFiles": 44,
  "legacyAssetUrlsAndHashesPreserved": 32
}
