{ "schema": "sots-standalone-status/1", "generated": "2026-09-08T17:37:38Z", "binary": "/home/alex/sots-engine-e3/build-host/src/app/sots_turn", "reference": { "input": "turn1-state.sav", "oracle": "turn2-state.sav", "baselineDiverging": 209, "divergingAfterTurn": 158, "closed": 51, "regressed": 0, "byteMatch": false, "subsystems": { "/Sim/players": 82, "/Sim/systems": 34, "/Sim/turnstats": 24, "/Sim/SvSctOb": 8, "/Sim/DesignIDs[]": 1, "/Sim/FleetIDs[]": 1, "/Sim/ModCount": 1, "/Sim/NMnx": 1, "/Sim/NumFlts": 1, "/Sim/RNG": 1, "/Sim/ShipIDs[]": 1, "/Sim/cmbtid": 1, "/Sim/fleets": 1, "/Summary/Checksum": 1 } }, "phases": { "total": 44, "verified": 0, "implemented": 4, "partial": 6, "blocked": 6, "stub": 28, "modelled": 16, "committed": 10 }, "tailPhases": { "total": 37, "verified": 0, "implemented": 1, "partial": 2, "blocked": 2, "stub": 32, "modelled": 5, "committed": 3 }, "rng": { "wordsModelled": 16, "wordsPerTurnUnattributed": "18-20 (lane Z, in flight)" }, "pairs": [ { "input": "turn1-state.sav", "oracle": "turn2-state.sav", "note": "real End Turn", "exit": 0, "stdout": [ "load: /home/alex/sots-re/verify/results/saves/turn1-state.sav", " 591376 inflated bytes, 0 error(s), 0 warning(s)", " turn 1, frame 1, modCount 0, 8 player(s), 28 system(s), 6 fleet(s)", "roundtrip (untouched): byte-identical (591376 bytes)", "", "phases", " turn drivers (the milestone's denominator): 16 of 44 modelled, 10 committed", " verified 0 implemented 4 partial 6 blocked 6 stub 28", " post-combat tail (written to the autosave, tracked separately): 5 of 37 modelled", " verified 0 implemented 1 partial 2 blocked 2 stub 32", "", "this run", " leaves written 53", " leaves NOT written by a blocked phase 72", " generator words consumed 16 (state loaded, left untouched)", " generator words NOT accounted (never netted off the above):", " - encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled", " - the research-allocation draw is downstream of the budget, which is blocked on the per-system money output (0 or 1 word)", " - a successful raid roll may draw one further word to pick its target; no roll succeeded on any measured turn, so the cost of a success is 0 or 1 and undetermined", " ! the generator advanced during this run but the save keeps its original state (--commit-rng to write it)", " ! the modelled words are a LOWER BOUND on the turn's cost, so a committed generator is short by the unaccounted sites below and its drawn VALUES are not the game's", "", "wrote /tmp/tmpex18kut6/post-turn1-state.sav (65208 bytes gzipped, 591664 inflated)", "metric -> /tmp/tmpex18kut6/metric-turn1-state.sav.json" ], "coverage": { "input": true, "oracle": true, "ours": true }, "roots": { "input": "64b836b966299d9b72fc02244ed31e31", "oracle": "4bed514f853332b9fa35b388c3aa5558", "ours": "d77168aa0a5bd1b8890d8c0f994aed3f" }, "baselineDiverging": 209, "divergingAfterTurn": 158, "closed": 51, "regressed": 0, "closedPaths": [ "/Sim/Frame", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/EPid", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ETS", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/Eid", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/NVE", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ltis", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/EPid", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ETS", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/Eid", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/NVE", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ltis", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/EFlags", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/EPid", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ETS", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/Eid", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/NVE", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ltis", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ntdev", "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/EFlags", "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/EPid", "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ETS", "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/Eid", "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/NVE", "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ltis", "/Sim/systems/Sys[400 \"Markab\"]/EFlags", "/Sim/systems/Sys[400 \"Markab\"]/EPid", "/Sim/systems/Sys[400 \"Markab\"]/ETS", "/Sim/systems/Sys[400 \"Markab\"]/Eid", "/Sim/systems/Sys[400 \"Markab\"]/NVE", "/Sim/systems/Sys[400 \"Markab\"]/ltis", "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/EFlags", "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/EPid", "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ETS", "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/Eid", "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/NVE", "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ltis", "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/EFlags", "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/EPid", "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ETS", "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/Eid", "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/NVE", "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ltis", "/Sim/systems/Sys[64 \"Hyperion\"]/EFlags", "/Sim/systems/Sys[64 \"Hyperion\"]/EPid", "/Sim/systems/Sys[64 \"Hyperion\"]/ETS", "/Sim/systems/Sys[64 \"Hyperion\"]/Eid", "/Sim/systems/Sys[64 \"Hyperion\"]/NVE", "/Sim/systems/Sys[64 \"Hyperion\"]/ltis", "/Summary/Turn" ], "regressedPaths": [], "remainingSample": [ "/Sim/DesignIDs[]: removed [], added [18, 1712] (41 -> 43 entries)", "/Sim/FleetIDs[]: removed [], added [1744] (6 -> 7 entries)", "/Sim/ModCount: 2 -> 12", "/Sim/NMnx: 106 -> 109", "/Sim/NumFlts: 6 -> 7", "/Sim/RNG/.: '' -> ''", "/Sim/ShipIDs[]: removed [], added [1728] (15 -> 16 entries)", "/Sim/SvSctOb/EncObj[3]/CDiff: -1 -> 0", "/Sim/SvSctOb/EncObj[5]/Hives/.: only-in-A", "/Sim/SvSctOb/EncObj[5]/Hives/.[0]: only-in-B", "/Sim/SvSctOb/EncObj[5]/Hives/.[1]: only-in-B", "/Sim/SvSctOb/EncObj[5]/Hives/.[2]: only-in-B", "/Sim/SvSctOb/EncObj[6]/did: only-in-B", "/Sim/SvSctOb/EncObj[6]/didc: 0 -> 1", "/Sim/SvSctOb/EncObj[6]/ini: False -> True", "/Sim/cmbtid: 1 -> 2", "/Sim/fleets/Flt[1744 \"Alpha Fleet\"]: only-in-B", "/Sim/players/Player[16 \"re\"]/BnkEl: -1590613 -> -1594593", "/Sim/players/Player[16 \"re\"]/BnkPr: -787353 -> -789323", "/Sim/players/Player[16 \"re\"]/Events/EvNxID: 0 -> 2", "/Sim/players/Player[16 \"re\"]/Events/Events/.: only-in-A", "/Sim/players/Player[16 \"re\"]/Events/Events/.[0]: only-in-B", "/Sim/players/Player[16 \"re\"]/Events/Events/.[EvTurn=2]: only-in-B", "/Sim/players/Player[16 \"re\"]/Sav: 50000 -> 289688", "/Sim/players/Player[16 \"re\"]/Status: 0 -> 4", "/Sim/players/Player[32 \"Fane Lao\"]/BnkEl: -1811273 -> -1815833", "/Sim/players/Player[32 \"Fane Lao\"]/BnkPr: -896580 -> -898837", "/Sim/players/Player[32 \"Fane Lao\"]/Events/EvNxID: 0 -> 2", "/Sim/players/Player[32 \"Fane Lao\"]/Events/Events/.: only-in-A", "/Sim/players/Player[32 \"Fane Lao\"]/Events/Events/.[0]: only-in-B", "/Sim/players/Player[32 \"Fane Lao\"]/Events/Events/.[EvTurn=2]: only-in-B", "/Sim/players/Player[32 \"Fane Lao\"]/FNG/FNGNum: 0 -> 1", "/Sim/players/Player[32 \"Fane Lao\"]/Maint: 0 -> 500", "/Sim/players/Player[32 \"Fane Lao\"]/NumDes: 5 -> 6", "/Sim/players/Player[32 \"Fane Lao\"]/PvSav: 50000 -> 38100", "/Sim/players/Player[32 \"Fane Lao\"]/ResRate: 0.25 -> 0.800000011920929 [1.34218e+07 ulp]", "/Sim/players/Player[32 \"Fane Lao\"]/ResTNm: '' -> 'IND_Waldo'", "/Sim/players/Player[32 \"Fane Lao\"]/Sav: 50000 -> 92651", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[0]: 0 -> 1", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[3]: only-in-B" ], "byteMatch": false, "standalone": { "schema": "sots-standalone-metric/1", "input": "/home/alex/sots-re/verify/results/saves/turn1-state.sav", "output": "/tmp/tmpex18kut6/post-turn1-state.sav", "spine": { "total": 44, "verified": 0, "implemented": 4, "partial": 6, "blocked": 6, "stub": 28, "modelled": 16, "committed": 10 }, "tail": { "total": 37, "verified": 0, "implemented": 1, "partial": 2, "blocked": 2, "stub": 32, "modelled": 5, "committed": 3 }, "run": { "leafWrites": 53, "blockedLeafWrites": 72, "rngWords": 16, "rngLoaded": true, "rngCommitted": false, "rngUnaccounted": [ "encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled", "the research-allocation draw is downstream of the budget, which is blocked on the per-system money output (0 or 1 word)", "a successful raid roll may draw one further word to pick its target; no roll succeeded on any measured turn, so the cost of a success is 0 or 1 and undetermined" ] }, "phases": [ { "driver": "host turn sequence (outside the two turn drivers)", "id": "H00", "name": "BeginProcessTurn", "status": "implemented", "ran": 1, "writes": 1, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S00", "name": "SnapshotPreviousTurn", "status": "partial", "ran": 1, "writes": 1, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S01", "name": "SystemPrePassMoraleAndAbandon", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S02", "name": "TradeManagerTurn", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S03", "name": "RegisterTradeSystems", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S04", "name": "RebuildAllianceMasks", "status": "implemented", "ran": 8, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S05", "name": "BuildShipActionTypeSets", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S06", "name": "ShipActionsExceptType2", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S07", "name": "NodeSpaceTravel", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S08", "name": "FleetMovement", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S09", "name": "ShipActionsType2", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S10", "name": "ShipUpkeep", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S11", "name": "SystemTurn", "status": "partial", "ran": 28, "writes": 3, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S12", "name": "TradeSliderFinalisation", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S13", "name": "PlayerTurn", "status": "partial", "ran": 8, "writes": 0, "blockedWrites": 7, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P01", "name": "ComputeBudget", "status": "blocked", "ran": 8, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P02", "name": "ApplyNetToSavings", "status": "blocked", "ran": 0, "writes": 0, "blockedWrites": 3, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P03", "name": "RecordBudgetDerivedFields", "status": "blocked", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P04", "name": "ProcessSpecialProjectsSpend", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P05", "name": "ProcessResearch", "status": "blocked", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P06", "name": "ResearchRefund", "status": "blocked", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P07", "name": "ClearTimedResearchAccumulators", "status": "partial", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P08", "name": "DecayRebellionOutputModifier", "status": "implemented", "ran": 2, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P09", "name": "AccumulateTimedResearchBonuses", "status": "implemented", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P10", "name": "ConsumeResearchRollPending", "status": "partial", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P11", "name": "PostNoResearchEvent", "status": "blocked", "ran": 4, "writes": 0, "blockedWrites": 4, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P12", "name": "PruneRaidTargets", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S14", "name": "ProcessMissions", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S15", "name": "ProcessStations", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S16", "name": "ProcessDefenceSats", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S17", "name": "ShipStatCacheRefresh", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S18", "name": "ShipActionsForceValidate", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S19", "name": "ProcessAid", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S20", "name": "ProcessSpecialProjectsServer", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S21", "name": "ProcessSurrenders", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S22", "name": "AdvanceAIRebellion", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S23", "name": "ScriptHookTurnStart", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S24", "name": "SensorUpdate", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S25", "name": "ScriptHookPostSensor", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S26", "name": "RefreshPlayerViews", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S27", "name": "RecomputePlayerReports", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S28", "name": "GrantMetSpeciesTechs", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S29", "name": "SystemObservedStamp", "status": "implemented", "ran": 28, "writes": 8, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S30", "name": "BuildTeamPartition", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S31", "name": "EncounterDetectionAndStatusRestore", "status": "partial", "ran": 8, "writes": 0, "blockedWrites": 2, "rng": 16 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T00", "name": "IncrementModCount", "status": "implemented", "ran": 1, "writes": 1, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T01", "name": "ValidateEncounterResultArity", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T02", "name": "ResolveFirstContact", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T03", "name": "AnnounceEncounterSightings", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T04", "name": "TallyBattlesFought", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T05", "name": "UpdateDiplomacyStatsFromCombat", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T06", "name": "ApplyEncounterResults", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T07", "name": "ClearEncounters", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T08", "name": "ScriptHookCombatDone", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T09", "name": "AdvanceAIRebellionPostCombat", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T10", "name": "NodeSpaceTravelSecondPass", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T11", "name": "DecayNodeLines", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T12", "name": "DrainColonyLossQueue", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T13", "name": "UpdateTreasuryMorale", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T14", "name": "UpdateForeignFleetMorale", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T15", "name": "ProcessBankruptcy", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T16", "name": "ResolveArrivedColonizers", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T17", "name": "RebuildPlayerViewTree", "status": "partial", "ran": 28, "writes": 32, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T18", "name": "PostFleetWarnings", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T19", "name": "DrainInfraTerraformQueue", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T20", "name": "ScriptHooksTurnEnd", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T21", "name": "UpdateSurveyAndSystemStats", "status": "partial", "ran": 28, "writes": 6, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T22", "name": "TradeSliderFinalisationSecondPass", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T23", "name": "TradeManagerEndOfTurnHooks", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T24", "name": "RecomputeMaintenanceAndResearchBonus", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T25", "name": "SensorUpdateSecondPass", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T26", "name": "ScriptHookPostSensorTail", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T27", "name": "RefreshPlayerViewsSecondPass", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T28", "name": "UpdateNodeLineSightingMasks", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T29", "name": "AbortInvisibleInterceptOrders", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T30", "name": "RebuildCommunicationMasks", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T31", "name": "UpdateBankruptcyLimits", "status": "blocked", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T32", "name": "PostIncomingFleetWarnings", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T33", "name": "ShipManagerEndOfTurnHooks", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T34", "name": "RecordObservedDesigns", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T35", "name": "RebuildPlayerReports", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T36", "name": "FinalizeTurnRecords", "status": "blocked", "ran": 8, "writes": 0, "blockedWrites": 56, "rng": 0 }, { "driver": "host turn sequence (outside the two turn drivers)", "id": "H01", "name": "SaveWriterInvariants", "status": "implemented", "ran": 1, "writes": 1, "blockedWrites": 0, "rng": 0 } ] } }, { "input": "turn2-state.sav", "oracle": "turn3-state.sav", "note": "real End Turn", "exit": 0, "stdout": [ "load: /home/alex/sots-re/verify/results/saves/turn2-state.sav", " 603360 inflated bytes, 0 error(s), 0 warning(s)", " turn 2, frame 2, modCount 12, 8 player(s), 28 system(s), 7 fleet(s)", "roundtrip (untouched): byte-identical (603360 bytes)", "", "phases", " turn drivers (the milestone's denominator): 16 of 44 modelled, 10 committed", " verified 0 implemented 4 partial 6 blocked 6 stub 28", " post-combat tail (written to the autosave, tracked separately): 5 of 37 modelled", " verified 0 implemented 1 partial 2 blocked 2 stub 32", "", "this run", " leaves written 23", " leaves NOT written by a blocked phase 66", " generator words consumed 16 (state loaded, left untouched)", " generator words NOT accounted (never netted off the above):", " - encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled", " - the research-allocation draw is downstream of the budget, which is blocked on the per-system money output (0 or 1 word)", " - a successful raid roll may draw one further word to pick its target; no roll succeeded on any measured turn, so the cost of a success is 0 or 1 and undetermined", " ! the generator advanced during this run but the save keeps its original state (--commit-rng to write it)", " ! the modelled words are a LOWER BOUND on the turn's cost, so a committed generator is short by the unaccounted sites below and its drawn VALUES are not the game's", "", "wrote /tmp/tmpex18kut6/post-turn2-state.sav (66882 bytes gzipped, 603360 inflated)", "metric -> /tmp/tmpex18kut6/metric-turn2-state.sav.json" ], "coverage": { "input": true, "oracle": true, "ours": true }, "roots": { "input": "4bed514f853332b9fa35b388c3aa5558", "oracle": "e9c161e311f8ef8fad6f1aa1903dcf3f", "ours": "987447a85f9fcded1afd868fca112ef6" }, "baselineDiverging": 108, "divergingAfterTurn": 87, "closed": 21, "regressed": 0, "closedPaths": [ "/Sim/Frame", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ETS", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ltis", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ETS", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ltis", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ETS", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ltis", "/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ntdev", "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ETS", "/Sim/systems/Sys[336 \"Kaa\u2019Vaalu\"]/ltis", "/Sim/systems/Sys[400 \"Markab\"]/ETS", "/Sim/systems/Sys[400 \"Markab\"]/ltis", "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ETS", "/Sim/systems/Sys[448 \"Kea\u2019Pono\"]/ltis", "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ETS", "/Sim/systems/Sys[480 \"Ko'Rorkor\"]/ltis", "/Sim/systems/Sys[64 \"Hyperion\"]/ETS", "/Sim/systems/Sys[64 \"Hyperion\"]/ltis", "/Summary/Turn" ], "regressedPaths": [], "remainingSample": [ "/Sim/FleetIDs[]: removed [1744], added [34, 1776] (7 -> 8 entries)", "/Sim/ModCount: 14 -> 24", "/Sim/NMnx: 109 -> 111", "/Sim/NumFlts: 7 -> 8", "/Sim/RNG/.: '' -> ''", "/Sim/ShipIDs[]: removed [], added [1760] (16 -> 17 entries)", "/Sim/SvSctOb/EncObj[5]/Hives/.[1]/NextQ: 31 -> 32", "/Sim/SvSctOb/EncObj[5]/Hives/.[2]/NextQ: 29 -> 30", "/Sim/cmbtid: 2 -> 3", "/Sim/fleets/Flt[1744 \"Alpha Fleet\"]: only-in-A", "/Sim/fleets/Flt[1776 \"Gamma Fleet\"]: only-in-B", "/Sim/fleets/Flt[34 \"Beta Fleet\"]: only-in-B", "/Sim/players/Player[16 \"re\"]/BnkEl: -1594593 -> -1598566", "/Sim/players/Player[16 \"re\"]/BnkPr: -789323 -> -791290", "/Sim/players/Player[16 \"re\"]/Events/EvNxID: 2 -> 3", "/Sim/players/Player[16 \"re\"]/Events/Events/.[0]: 1 -> 2", "/Sim/players/Player[16 \"re\"]/Events/Events/.[EvTurn=3]: only-in-B", "/Sim/players/Player[16 \"re\"]/PvSav: 50000 -> 289688", "/Sim/players/Player[16 \"re\"]/Sav: 289688 -> 532369", "/Sim/players/Player[32 \"Fane Lao\"]/BnkEl: -1815833 -> -1820206", "/Sim/players/Player[32 \"Fane Lao\"]/BnkPr: -898837 -> -901002", "/Sim/players/Player[32 \"Fane Lao\"]/Events/EvNxID: 2 -> 4", "/Sim/players/Player[32 \"Fane Lao\"]/Events/Events/.[0]: 1 -> 2", "/Sim/players/Player[32 \"Fane Lao\"]/Events/Events/.[EvTurn=3]: only-in-B", "/Sim/players/Player[32 \"Fane Lao\"]/FNG/FNGNum: 1 -> 3", "/Sim/players/Player[32 \"Fane Lao\"]/Maint: 500 -> 1000", "/Sim/players/Player[32 \"Fane Lao\"]/PvSav: 38100 -> 80751", "/Sim/players/Player[32 \"Fane Lao\"]/Sav: 92651 -> 135486", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[0]: 1 -> 2", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[3]: 1 -> 2", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/sri[0]: 1 -> 2", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/sri[3]: 1 -> 2", "/Sim/players/Player[32 \"Fane Lao\"]/TechTree/TResDone[106]: 2879 -> 5768", "/Sim/players/Player[32 \"Fane Lao\"]/TechTree/Tbd[106]: 1 -> 2", "/Sim/players/Player[32 \"Fane Lao\"]/lboid: 1 -> 2", "/Sim/players/Player[32 \"Fane Lao\"]/odes/.[1]/otnL: 2 -> 3", "/Sim/players/Player[496 \"Singularity\"]/dipstats/.[1]/lastally: 2 -> 3", "/Sim/players/Player[512 \"Singularity\"]/dipstats/.[1]/lastally: 2 -> 3", "/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[1]/lastnap: 2 -> 3", "/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[2]/lastnap: 2 -> 3" ], "byteMatch": false, "standalone": { "schema": "sots-standalone-metric/1", "input": "/home/alex/sots-re/verify/results/saves/turn2-state.sav", "output": "/tmp/tmpex18kut6/post-turn2-state.sav", "spine": { "total": 44, "verified": 0, "implemented": 4, "partial": 6, "blocked": 6, "stub": 28, "modelled": 16, "committed": 10 }, "tail": { "total": 37, "verified": 0, "implemented": 1, "partial": 2, "blocked": 2, "stub": 32, "modelled": 5, "committed": 3 }, "run": { "leafWrites": 23, "blockedLeafWrites": 66, "rngWords": 16, "rngLoaded": true, "rngCommitted": false, "rngUnaccounted": [ "encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled", "the research-allocation draw is downstream of the budget, which is blocked on the per-system money output (0 or 1 word)", "a successful raid roll may draw one further word to pick its target; no roll succeeded on any measured turn, so the cost of a success is 0 or 1 and undetermined" ] }, "phases": [ { "driver": "host turn sequence (outside the two turn drivers)", "id": "H00", "name": "BeginProcessTurn", "status": "implemented", "ran": 1, "writes": 1, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S00", "name": "SnapshotPreviousTurn", "status": "partial", "ran": 1, "writes": 1, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S01", "name": "SystemPrePassMoraleAndAbandon", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S02", "name": "TradeManagerTurn", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S03", "name": "RegisterTradeSystems", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S04", "name": "RebuildAllianceMasks", "status": "implemented", "ran": 8, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S05", "name": "BuildShipActionTypeSets", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S06", "name": "ShipActionsExceptType2", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S07", "name": "NodeSpaceTravel", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S08", "name": "FleetMovement", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S09", "name": "ShipActionsType2", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S10", "name": "ShipUpkeep", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S11", "name": "SystemTurn", "status": "partial", "ran": 28, "writes": 3, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S12", "name": "TradeSliderFinalisation", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S13", "name": "PlayerTurn", "status": "partial", "ran": 8, "writes": 0, "blockedWrites": 4, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P01", "name": "ComputeBudget", "status": "blocked", "ran": 8, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P02", "name": "ApplyNetToSavings", "status": "blocked", "ran": 0, "writes": 0, "blockedWrites": 3, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P03", "name": "RecordBudgetDerivedFields", "status": "blocked", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P04", "name": "ProcessSpecialProjectsSpend", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P05", "name": "ProcessResearch", "status": "blocked", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P06", "name": "ResearchRefund", "status": "blocked", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P07", "name": "ClearTimedResearchAccumulators", "status": "partial", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P08", "name": "DecayRebellionOutputModifier", "status": "implemented", "ran": 2, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P09", "name": "AccumulateTimedResearchBonuses", "status": "implemented", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P10", "name": "ConsumeResearchRollPending", "status": "partial", "ran": 2, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P11", "name": "PostNoResearchEvent", "status": "blocked", "ran": 1, "writes": 0, "blockedWrites": 1, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P12", "name": "PruneRaidTargets", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S14", "name": "ProcessMissions", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S15", "name": "ProcessStations", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S16", "name": "ProcessDefenceSats", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S17", "name": "ShipStatCacheRefresh", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S18", "name": "ShipActionsForceValidate", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S19", "name": "ProcessAid", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S20", "name": "ProcessSpecialProjectsServer", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S21", "name": "ProcessSurrenders", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S22", "name": "AdvanceAIRebellion", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S23", "name": "ScriptHookTurnStart", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S24", "name": "SensorUpdate", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S25", "name": "ScriptHookPostSensor", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S26", "name": "RefreshPlayerViews", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S27", "name": "RecomputePlayerReports", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S28", "name": "GrantMetSpeciesTechs", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S29", "name": "SystemObservedStamp", "status": "implemented", "ran": 28, "writes": 8, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S30", "name": "BuildTeamPartition", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S31", "name": "EncounterDetectionAndStatusRestore", "status": "partial", "ran": 8, "writes": 0, "blockedWrites": 2, "rng": 16 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T00", "name": "IncrementModCount", "status": "implemented", "ran": 1, "writes": 1, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T01", "name": "ValidateEncounterResultArity", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T02", "name": "ResolveFirstContact", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T03", "name": "AnnounceEncounterSightings", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T04", "name": "TallyBattlesFought", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T05", "name": "UpdateDiplomacyStatsFromCombat", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T06", "name": "ApplyEncounterResults", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T07", "name": "ClearEncounters", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T08", "name": "ScriptHookCombatDone", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T09", "name": "AdvanceAIRebellionPostCombat", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T10", "name": "NodeSpaceTravelSecondPass", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T11", "name": "DecayNodeLines", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T12", "name": "DrainColonyLossQueue", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T13", "name": "UpdateTreasuryMorale", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T14", "name": "UpdateForeignFleetMorale", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T15", "name": "ProcessBankruptcy", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T16", "name": "ResolveArrivedColonizers", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T17", "name": "RebuildPlayerViewTree", "status": "partial", "ran": 28, "writes": 8, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T18", "name": "PostFleetWarnings", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T19", "name": "DrainInfraTerraformQueue", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T20", "name": "ScriptHooksTurnEnd", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T21", "name": "UpdateSurveyAndSystemStats", "status": "partial", "ran": 28, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T22", "name": "TradeSliderFinalisationSecondPass", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T23", "name": "TradeManagerEndOfTurnHooks", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T24", "name": "RecomputeMaintenanceAndResearchBonus", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T25", "name": "SensorUpdateSecondPass", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T26", "name": "ScriptHookPostSensorTail", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T27", "name": "RefreshPlayerViewsSecondPass", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T28", "name": "UpdateNodeLineSightingMasks", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T29", "name": "AbortInvisibleInterceptOrders", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T30", "name": "RebuildCommunicationMasks", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T31", "name": "UpdateBankruptcyLimits", "status": "blocked", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T32", "name": "PostIncomingFleetWarnings", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T33", "name": "ShipManagerEndOfTurnHooks", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T34", "name": "RecordObservedDesigns", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T35", "name": "RebuildPlayerReports", "status": "stub", "ran": 0, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::OnAllCombatDone_Tail", "id": "T36", "name": "FinalizeTurnRecords", "status": "blocked", "ran": 8, "writes": 0, "blockedWrites": 56, "rng": 0 }, { "driver": "host turn sequence (outside the two turn drivers)", "id": "H01", "name": "SaveWriterInvariants", "status": "implemented", "ran": 1, "writes": 1, "blockedWrites": 0, "rng": 0 } ] } } ] }