sots-re/verify/results/standalone/status.json
alex 58c2cd14b4 lane E3: ten addresses for the visibility record, and the standalone's new distance
The NVE writer 0x00756300 and its four siblings, `ltis`'s writer 0x00743ec0, the
encounter-placement routine whose unserialised field feeds Eid, the tail phase that
calls the writer, and the resolution of an indirect edge lane B5 left open --
ServerSystem primary vftable 0x00a2044c slot 7 is 0x007480b0, and it writes only a
runtime mask, so it never reaches the wire.

None of the ten collides with an address already in the DB (checked against all 714
addressed entries across addresses.json and every fragment); gen_addresses.py
validated to a scratch path at 1019 entries, no duplicate names.

Standalone report regenerated from the lane worktree:
  turn1 -> turn2   209 -> 158   closed 51, regressed 0
  turn2 -> turn3   108 ->  87   closed 21, regressed 0

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ARBgSooAfokKUy6wKUKEyZ
2026-09-08 13:38:57 -04:00

2050 lines
64 KiB
JSON

{
"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/.: '<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/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/.: '<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/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
}
]
}
}
]
}