{ "schema": "sots-standalone-status/1", "generated": "2026-09-08T22:06:02Z", "binary": "/srv/re-lab/build/eng-ref/build-host/src/app/sots_turn", "engineArgs": [], "reference": { "input": "turn2-state.sav", "oracle": "turn3-state.sav", "baselineDiverging": 108, "divergingAfterTurn": 63, "closed": 45, "regressed": 0, "byteMatch": false, "subsystems": { "/Sim/systems": 24, "/Sim/players": 20, "/Sim/turnstats": 8, "/Sim/fleets": 3, "/Sim/FleetIDs[]": 1, "/Sim/ModCount": 1, "/Sim/NMnx": 1, "/Sim/NumFlts": 1, "/Sim/RNG": 1, "/Sim/ShipIDs[]": 1, "/Sim/cmbtid": 1, "/Summary/Checksum": 1 } }, "phases": { "total": 44, "verified": 0, "implemented": 4, "partial": 8, "blocked": 4, "stub": 28, "modelled": 16, "committed": 12 }, "tailPhases": { "total": 37, "verified": 0, "implemented": 1, "partial": 4, "blocked": 1, "stub": 31, "modelled": 6, "committed": 5 }, "rng": { "wordsModelled": 16, "wordsPerTurnUnattributed": "18-20 (lane Z, in flight)" }, "pairs": [ { "input": "turn2-state.sav", "oracle": "turn3-state.sav", "note": "real End Turn (canonical reference)", "engineArgs": [], "exit": 0, "stdout": [ "load: /srv/re-lab/build/sre5/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)", "data: no root given (--data DIR / $SOTS_DATA_DIR); the tail's ship census stays unmodelled", "", "phases", " turn drivers (the milestone's denominator): 16 of 44 modelled, 12 committed", " verified 0 implemented 4 partial 8 blocked 4 stub 28", " post-combat tail (written to the autosave, tracked separately): 6 of 37 modelled", " verified 0 implemented 1 partial 4 blocked 1 stub 31", "", "this run", " leaves written 57", " 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", " - two draws are downstream of the budget's research allocation -- ProcessResearch's completion Chance and the tech-effect callback's own roll (0 or 1 word each). The allocation needs ComputeBudget's per-system money, which is ComputeOutput with the system's OWN rate sliders; the max-income form of that money is now modelled and self-checked (see T31), but it is NOT the one this path takes", " - 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/tmpf0cd3n4p/post-turn2-state.sav (66882 bytes gzipped, 603360 inflated)", "metric -> /tmp/tmpf0cd3n4p/metric-turn2-state.sav.json" ], "coverage": { "input": true, "oracle": true, "ours": true }, "roots": { "input": "4bed514f853332b9fa35b388c3aa5558", "oracle": "e9c161e311f8ef8fad6f1aa1903dcf3f", "ours": "abe565b26e6b52ac8ee006e34fc1a984" }, "baselineDiverging": 108, "divergingAfterTurn": 63, "closed": 45, "regressed": 0, "closedPaths": [ "/Sim/Frame", "/Sim/SvSctOb/EncObj[5]/Hives/.[1]/NextQ", "/Sim/SvSctOb/EncObj[5]/Hives/.[2]/NextQ", "/Sim/players/Player[16 \"re\"]/BnkEl", "/Sim/players/Player[16 \"re\"]/PvSav", "/Sim/players/Player[16 \"re\"]/Sav", "/Sim/players/Player[32 \"Fane Lao\"]/BnkEl", "/Sim/players/Player[496 \"Singularity\"]/dipstats/.[1]/lastally", "/Sim/players/Player[512 \"Singularity\"]/dipstats/.[1]/lastally", "/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[1]/lastnap", "/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[2]/lastnap", "/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[3]/lastnap", "/Sim/players/Player[544 \"Peacekeeper Enforcer\"]/dipstats/.[1]/lastnap", "/Sim/players/Player[544 \"Peacekeeper Enforcer\"]/dipstats/.[2]/lastnap", "/Sim/players/Player[544 \"Peacekeeper Enforcer\"]/dipstats/.[3]/lastnap", "/Sim/players/Player[560 \"Von Neumann\"]/dipstats/.[1]/lastnap", "/Sim/players/Player[560 \"Von Neumann\"]/dipstats/.[2]/lastnap", "/Sim/players/Player[560 \"Von Neumann\"]/dipstats/.[3]/lastnap", "/Sim/players/Player[576 \"Independent Colony\"]/PvSav", "/Sim/players/Player[576 \"Independent Colony\"]/Sav", "/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.[1]/lastnap", "/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.[2]/lastnap", "/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.[3]/lastnap", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/ETS", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/Pop2/PopG/PopC", "/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\"]/Pop2/PopG/PopC", "/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/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\"]/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[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: 92651 -> 80751", "/Sim/players/Player[32 \"Fane Lao\"]/Sav: 142379 -> 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/systems/Sys[112 \"Gamma Cephei\"]/PvPop2/PopG/PopC: 500000000 -> 520000000", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/RepCur: 336360.0 -> 336840.0 [15360 ulp]", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/RepMax: 336360.0 -> 336840.0 [15360 ulp]", "/Sim/systems/Sys[112 \"Gamma Cephei\"]/TShn: 2 -> 3", "/Sim/systems/Sys[224 \"Spica\"]/TShn: 2 -> 3", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/DefF: 1744 -> 1776", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/Flt: 1744 -> 1776", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/PvPop2/PopG/PopC: 500000000 -> 520000000", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/RepCur: 370000.0 -> 370520.0 [16640 ulp]", "/Sim/systems/Sys[288 \"Ke'Dolarra\"]/RepMax: 370000.0 -> 370520.0 [16640 ulp]" ], "byteMatch": false, "standalone": { "schema": "sots-standalone-metric/1", "input": "/srv/re-lab/build/sre5/verify/results/saves/turn2-state.sav", "output": "/tmp/tmpf0cd3n4p/post-turn2-state.sav", "spine": { "total": 44, "verified": 0, "implemented": 4, "partial": 8, "blocked": 4, "stub": 28, "modelled": 16, "committed": 12 }, "tail": { "total": 37, "verified": 0, "implemented": 1, "partial": 4, "blocked": 1, "stub": 31, "modelled": 6, "committed": 5 }, "run": { "leafWrites": 57, "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", "two draws are downstream of the budget's research allocation -- ProcessResearch's completion Chance and the tech-effect callback's own roll (0 or 1 word each). The allocation needs ComputeBudget's per-system money, which is ComputeOutput with the system's OWN rate sliders; the max-income form of that money is now modelled and self-checked (see T31), but it is NOT the one this path takes", "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": "host turn sequence (outside the two turn drivers)", "id": "H03", "name": "ScriptHookTurnBegin", "status": "partial", "ran": 2, "writes": 7, "blockedWrites": 0, "rng": 0 }, { "driver": "host turn sequence (outside the two turn drivers)", "id": "H02", "name": "StampTreatyTurns", "status": "implemented", "ran": 14, "writes": 14, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S00", "name": "SnapshotPreviousTurn", "status": "partial", "ran": 9, "writes": 4, "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": 5, "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": 3, "blockedWrites": 7, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P01", "name": "ComputeBudget", "status": "partial", "ran": 8, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P02", "name": "ApplyNetToSavings", "status": "partial", "ran": 0, "writes": 3, "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": 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": 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": "partial", "ran": 1, "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": "partial", "ran": 8, "writes": 2, "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": "turn1-state.sav", "oracle": "turn2-state.sav", "note": "real End Turn (secondary; 4 leaves non-deterministic in the original)", "engineArgs": [], "exit": 0, "stdout": [ "load: /srv/re-lab/build/sre5/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)", "data: no root given (--data DIR / $SOTS_DATA_DIR); the tail's ship census stays unmodelled", "", "phases", " turn drivers (the milestone's denominator): 16 of 44 modelled, 12 committed", " verified 0 implemented 4 partial 8 blocked 4 stub 28", " post-combat tail (written to the autosave, tracked separately): 6 of 37 modelled", " verified 0 implemented 1 partial 4 blocked 1 stub 31", "", "this run", " leaves written 93", " leaves NOT written by a blocked phase 96", " 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", " - two draws are downstream of the budget's research allocation -- ProcessResearch's completion Chance and the tech-effect callback's own roll (0 or 1 word each). The allocation needs ComputeBudget's per-system money, which is ComputeOutput with the system's OWN rate sliders; the max-income form of that money is now modelled and self-checked (see T31), but it is NOT the one this path takes", " - 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/tmpf0cd3n4p/post-turn1-state.sav (65980 bytes gzipped, 595192 inflated)", "metric -> /tmp/tmpf0cd3n4p/metric-turn1-state.sav.json" ], "coverage": { "input": true, "oracle": true, "ours": true }, "roots": { "input": "64b836b966299d9b72fc02244ed31e31", "oracle": "4bed514f853332b9fa35b388c3aa5558", "ours": "9f767c16c83cfa6c653b51a3bd027659" }, "baselineDiverging": 209, "divergingAfterTurn": 124, "closed": 85, "regressed": 0, "closedPaths": [ "/Sim/Frame", "/Sim/SvSctOb/EncObj[3]/CDiff", "/Sim/SvSctOb/EncObj[6]/ini", "/Sim/players/Player[16 \"re\"]/BnkEl", "/Sim/players/Player[16 \"re\"]/Sav", "/Sim/players/Player[32 \"Fane Lao\"]/BnkEl", "/Sim/players/Player[496 \"Singularity\"]/dipstats/.", "/Sim/players/Player[496 \"Singularity\"]/dipstats/.[0]", "/Sim/players/Player[496 \"Singularity\"]/dipstats/.[1]", "/Sim/players/Player[512 \"Singularity\"]/dipstats/.", "/Sim/players/Player[512 \"Singularity\"]/dipstats/.[0]", "/Sim/players/Player[512 \"Singularity\"]/dipstats/.[1]", "/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.", "/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[0]", "/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[1]", "/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[2]", "/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[3]", "/Sim/players/Player[544 \"Peacekeeper Enforcer\"]/dipstats/.", "/Sim/players/Player[544 \"Peacekeeper Enforcer\"]/dipstats/.[0]", "/Sim/players/Player[544 \"Peacekeeper Enforcer\"]/dipstats/.[1]", "/Sim/players/Player[544 \"Peacekeeper Enforcer\"]/dipstats/.[2]", "/Sim/players/Player[544 \"Peacekeeper Enforcer\"]/dipstats/.[3]", "/Sim/players/Player[560 \"Von Neumann\"]/dipstats/.", "/Sim/players/Player[560 \"Von Neumann\"]/dipstats/.[0]", "/Sim/players/Player[560 \"Von Neumann\"]/dipstats/.[1]", "/Sim/players/Player[560 \"Von Neumann\"]/dipstats/.[2]", "/Sim/players/Player[560 \"Von Neumann\"]/dipstats/.[3]", "/Sim/players/Player[576 \"Independent Colony\"]/Sav", "/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.", "/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.[0]", "/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.[1]", "/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.[2]", "/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.[3]", "/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\"]/Pop2/PopG/PopC", "/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\"]/Pop2/PopG/PopC", "/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[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/cmbtid: 1 -> 2", "/Sim/fleets/Flt[1744 \"Alpha Fleet\"]: only-in-B", "/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\"]/Status: 0 -> 4", "/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: 298113 -> 92651", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[0]: 0 -> 1", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[3]: only-in-B", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srbd: 0 -> 1", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/src: only-in-B", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srd: only-in-B", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/sri[0]: 0 -> 1", "/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/sri[3]: only-in-B" ], "byteMatch": false, "standalone": { "schema": "sots-standalone-metric/1", "input": "/srv/re-lab/build/sre5/verify/results/saves/turn1-state.sav", "output": "/tmp/tmpf0cd3n4p/post-turn1-state.sav", "spine": { "total": 44, "verified": 0, "implemented": 4, "partial": 8, "blocked": 4, "stub": 28, "modelled": 16, "committed": 12 }, "tail": { "total": 37, "verified": 0, "implemented": 1, "partial": 4, "blocked": 1, "stub": 31, "modelled": 6, "committed": 5 }, "run": { "leafWrites": 93, "blockedLeafWrites": 96, "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", "two draws are downstream of the budget's research allocation -- ProcessResearch's completion Chance and the tech-effect callback's own roll (0 or 1 word each). The allocation needs ComputeBudget's per-system money, which is ComputeOutput with the system's OWN rate sliders; the max-income form of that money is now modelled and self-checked (see T31), but it is NOT the one this path takes", "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": "host turn sequence (outside the two turn drivers)", "id": "H03", "name": "ScriptHookTurnBegin", "status": "partial", "ran": 2, "writes": 1, "blockedWrites": 0, "rng": 0 }, { "driver": "host turn sequence (outside the two turn drivers)", "id": "H02", "name": "StampTreatyTurns", "status": "implemented", "ran": 14, "writes": 28, "blockedWrites": 0, "rng": 0 }, { "driver": "StrategyServer::ProcessTurn", "id": "S00", "name": "SnapshotPreviousTurn", "status": "partial", "ran": 9, "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": 5, "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": 3, "blockedWrites": 19, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P01", "name": "ComputeBudget", "status": "partial", "ran": 8, "writes": 0, "blockedWrites": 0, "rng": 0 }, { "driver": "ServerPlayer::ProcessTurn", "id": "P02", "name": "ApplyNetToSavings", "status": "partial", "ran": 0, "writes": 3, "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": 16, "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": "partial", "ran": 1, "writes": 1, "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": "partial", "ran": 8, "writes": 2, "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 } ] } } ] }