sots-re/verify/results/standalone/status.json
2026-09-08 13:43:31 -04:00

1988 lines
61 KiB
JSON

{
"schema": "sots-standalone-status/1",
"generated": "2026-09-08T17:43:31Z",
"binary": "/home/alex/sots-engine/build-host/src/app/sots_turn",
"reference": {
"input": "turn1-state.sav",
"oracle": "turn2-state.sav",
"baselineDiverging": 209,
"divergingAfterTurn": 204,
"closed": 5,
"regressed": 0,
"byteMatch": false,
"subsystems": {
"/Sim/players": 82,
"/Sim/systems": 80,
"/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": 2,
"partial": 6,
"blocked": 6,
"stub": 30,
"modelled": 14,
"committed": 8
},
"tailPhases": {
"total": 37,
"verified": 0,
"implemented": 1,
"partial": 0,
"blocked": 2,
"stub": 34,
"modelled": 3,
"committed": 1
},
"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): 14 of 44 modelled, 8 committed",
" verified 0 implemented 2 partial 6 blocked 6 stub 30",
" post-combat tail (written to the autosave, tracked separately): 3 of 37 modelled",
" verified 0 implemented 1 partial 0 blocked 2 stub 34",
"",
"this run",
" leaves written 7",
" leaves NOT written by a blocked phase 64",
" 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/tmpvupbr_eq/post-turn1-state.sav (65145 bytes gzipped, 591376 inflated)",
"metric -> /tmp/tmpvupbr_eq/metric-turn1-state.sav.json"
],
"coverage": {
"input": true,
"oracle": true,
"ours": true
},
"roots": {
"input": "64b836b966299d9b72fc02244ed31e31",
"oracle": "4bed514f853332b9fa35b388c3aa5558",
"ours": "1acc372b1d410b966ab544dffbe43cb5"
},
"baselineDiverging": 209,
"divergingAfterTurn": 204,
"closed": 5,
"regressed": 0,
"closedPaths": [
"/Sim/Frame",
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev",
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev",
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ntdev",
"/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/.: '<raw 2503 B 9e6887688129a8f6>' -> '<raw 2503 B ef4d678696ed4c53>'",
"/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/tmpvupbr_eq/post-turn1-state.sav",
"spine": {
"total": 44,
"verified": 0,
"implemented": 2,
"partial": 6,
"blocked": 6,
"stub": 30,
"modelled": 14,
"committed": 8
},
"tail": {
"total": 37,
"verified": 0,
"implemented": 1,
"partial": 0,
"blocked": 2,
"stub": 34,
"modelled": 3,
"committed": 1
},
"run": {
"leafWrites": 7,
"blockedLeafWrites": 64,
"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": "stub",
"ran": 0,
"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": "SystemTailFixup",
"status": "stub",
"ran": 0,
"writes": 0,
"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": "stub",
"ran": 0,
"writes": 0,
"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": "stub",
"ran": 0,
"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": 48,
"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): 14 of 44 modelled, 8 committed",
" verified 0 implemented 2 partial 6 blocked 6 stub 30",
" post-combat tail (written to the autosave, tracked separately): 3 of 37 modelled",
" verified 0 implemented 1 partial 0 blocked 2 stub 34",
"",
"this run",
" leaves written 7",
" leaves NOT written by a blocked phase 58",
" 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/tmpvupbr_eq/post-turn2-state.sav (66883 bytes gzipped, 603360 inflated)",
"metric -> /tmp/tmpvupbr_eq/metric-turn2-state.sav.json"
],
"coverage": {
"input": true,
"oracle": true,
"ours": true
},
"roots": {
"input": "4bed514f853332b9fa35b388c3aa5558",
"oracle": "e9c161e311f8ef8fad6f1aa1903dcf3f",
"ours": "22071ae1303f308a93b805e940b626b5"
},
"baselineDiverging": 108,
"divergingAfterTurn": 103,
"closed": 5,
"regressed": 0,
"closedPaths": [
"/Sim/Frame",
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev",
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev",
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ntdev",
"/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/.: '<raw 2503 B ef4d678696ed4c53>' -> '<raw 2503 B a80459bfd63a006b>'",
"/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/tmpvupbr_eq/post-turn2-state.sav",
"spine": {
"total": 44,
"verified": 0,
"implemented": 2,
"partial": 6,
"blocked": 6,
"stub": 30,
"modelled": 14,
"committed": 8
},
"tail": {
"total": 37,
"verified": 0,
"implemented": 1,
"partial": 0,
"blocked": 2,
"stub": 34,
"modelled": 3,
"committed": 1
},
"run": {
"leafWrites": 7,
"blockedLeafWrites": 58,
"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": "stub",
"ran": 0,
"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": "SystemTailFixup",
"status": "stub",
"ran": 0,
"writes": 0,
"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": "stub",
"ran": 0,
"writes": 0,
"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": "stub",
"ran": 0,
"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": 48,
"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
}
]
}
}
]
}