Skip to content

Commit 9927e1f

Browse files
committed
Remove Trade V4 handoff scaffolding
1 parent a0f4469 commit 9927e1f

10 files changed

Lines changed: 390 additions & 821 deletions

site/admin/index.html

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
})();
1919
</script>
2020
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='10' fill='%2314171a'/%3E%3Cpath d='M8 8h32L8 40z' fill='%23f0c33b'/%3E%3Cpath d='M56 56H24l32-32z' fill='%230d65d9'/%3E%3C/svg%3E">
21-
<link rel="stylesheet" href="../css/base.css?v=20260604-budget-handoff-publish">
22-
<link rel="stylesheet" href="../css/trade.css?v=20260604-budget-handoff-publish">
23-
<link rel="stylesheet" href="../css/ledger.css?v=20260604-budget-handoff-publish">
24-
<link rel="stylesheet" href="../css/simulation.css?v=20260604-budget-handoff-publish">
25-
<link rel="stylesheet" href="../css/records.css?v=20260604-budget-handoff-publish">
26-
<link rel="stylesheet" href="../css/responsive.css?v=20260604-budget-handoff-publish">
21+
<link rel="stylesheet" href="../css/base.css?v=20260605-trade-v4-cleanup">
22+
<link rel="stylesheet" href="../css/trade.css?v=20260605-trade-v4-cleanup">
23+
<link rel="stylesheet" href="../css/ledger.css?v=20260605-trade-v4-cleanup">
24+
<link rel="stylesheet" href="../css/simulation.css?v=20260605-trade-v4-cleanup">
25+
<link rel="stylesheet" href="../css/records.css?v=20260605-trade-v4-cleanup">
26+
<link rel="stylesheet" href="../css/responsive.css?v=20260605-trade-v4-cleanup">
2727
</head>
2828
<body data-app-mode="admin">
2929
<header class="topbar">
@@ -63,24 +63,24 @@ <h1>Global Ledger</h1>
6363
<span id="sourceNote"></span>
6464
</footer>
6565

66-
<script src="../data.js?v=20260604-budget-handoff-publish"></script>
67-
<script src="../js/engine/fiscal.js?v=20260604-budget-handoff-publish"></script>
68-
<script src="../js/engine/tradePolicy.js?v=20260604-budget-handoff-publish"></script>
69-
<script src="../js/engine/trade.js?v=20260604-budget-handoff-publish"></script>
70-
<script src="../engine.js?v=20260604-budget-handoff-publish"></script>
71-
<script src="../js/app/config.js?v=20260604-budget-handoff-publish"></script>
72-
<script src="../js/app/format.js?v=20260604-budget-handoff-publish"></script>
73-
<script src="../js/app/sync.js?v=20260604-budget-handoff-publish"></script>
74-
<script src="../js/app/statusTables.js?v=20260604-budget-handoff-publish"></script>
75-
<script src="../js/app/recordsParser.js?v=20260604-budget-handoff-publish"></script>
76-
<script src="../js/app/records.js?v=20260604-budget-handoff-publish"></script>
77-
<script src="../js/app/tradeMapShapes.js?v=20260604-budget-handoff-publish"></script>
78-
<script src="../js/app/tradeZones.js?v=20260604-budget-handoff-publish"></script>
79-
<script src="../js/app/tradeRouteMesh.js?v=20260604-budget-handoff-publish"></script>
80-
<script src="../js/app/tradeLaneSkeleton.js?v=20260604-budget-handoff-publish"></script>
81-
<script src="../js/app/tradeMap.js?v=20260604-budget-handoff-publish"></script>
82-
<script src="../js/app/tradeView.js?v=20260604-budget-handoff-publish"></script>
83-
<script src="../js/app/editorView.js?v=20260604-budget-handoff-publish"></script>
84-
<script src="../app.js?v=20260604-budget-handoff-publish"></script>
66+
<script src="../data.js?v=20260605-trade-v4-cleanup"></script>
67+
<script src="../js/engine/fiscal.js?v=20260605-trade-v4-cleanup"></script>
68+
<script src="../js/engine/tradePolicy.js?v=20260605-trade-v4-cleanup"></script>
69+
<script src="../js/engine/trade.js?v=20260605-trade-v4-cleanup"></script>
70+
<script src="../engine.js?v=20260605-trade-v4-cleanup"></script>
71+
<script src="../js/app/config.js?v=20260605-trade-v4-cleanup"></script>
72+
<script src="../js/app/format.js?v=20260605-trade-v4-cleanup"></script>
73+
<script src="../js/app/sync.js?v=20260605-trade-v4-cleanup"></script>
74+
<script src="../js/app/statusTables.js?v=20260605-trade-v4-cleanup"></script>
75+
<script src="../js/app/recordsParser.js?v=20260605-trade-v4-cleanup"></script>
76+
<script src="../js/app/records.js?v=20260605-trade-v4-cleanup"></script>
77+
<script src="../js/app/tradeMapShapes.js?v=20260605-trade-v4-cleanup"></script>
78+
<script src="../js/app/tradeZones.js?v=20260605-trade-v4-cleanup"></script>
79+
<script src="../js/app/tradeRouteMesh.js?v=20260605-trade-v4-cleanup"></script>
80+
<script src="../js/app/tradeLaneSkeleton.js?v=20260605-trade-v4-cleanup"></script>
81+
<script src="../js/app/tradeMap.js?v=20260605-trade-v4-cleanup"></script>
82+
<script src="../js/app/tradeView.js?v=20260605-trade-v4-cleanup"></script>
83+
<script src="../js/app/editorView.js?v=20260605-trade-v4-cleanup"></script>
84+
<script src="../app.js?v=20260605-trade-v4-cleanup"></script>
8585
</body>
8686
</html>

site/engine.js

Lines changed: 0 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,6 @@
11
(function () {
22
const STORAGE_KEY = "aggs-operations-state-v4";
33
const TRADE_V4_FORMULA_VERSION = "trade2028";
4-
const TRADE_V4_FISCAL_BALANCE_VERSION = "pre-v4-balance-20260604";
5-
const PRE_TRADE_V4_BUDGET_BALANCE_TARGETS = {
6-
"astoria": 6281,
7-
"baathist_republic_of_volgastan": -10231,
8-
"baechong_democratic_republic": -193,
9-
"benera_navine": 291,
10-
"bingtau_kingdom": 94,
11-
"butonian_state": 2,
12-
"crovian_national_union": -165,
13-
"democratic_republic_of_suzuharu": 2154,
14-
"dracoist_malonia": 1066,
15-
"duchy_of_hoogeveen": 1026,
16-
"duchy_of_ledostrov": -342,
17-
"empire_of_hanazuki": -2,
18-
"empire_of_hyeosu": 3497,
19-
"empire_of_khalindar": 7734,
20-
"federated_syndicates_of_veszprem": -1669,
21-
"federation_of_vinterholm": -838,
22-
"fengu_people_s_federation": 3,
23-
"fuji_shogunate": 133,
24-
"hyelean_republic": -47,
25-
"imperial_dynasty_of_saochai": 1108,
26-
"imperial_rhovland": 2367,
27-
"imperial_suomi": 2986,
28-
"judas_democratic_republic": 1084,
29-
"karkalnadag_kingdom": 345,
30-
"khalari_emirates": -675,
31-
"kingdom_of_lunaria": 850,
32-
"kolkenlennan_empire": 3997,
33-
"mumoon_hamed_sultunate": 58,
34-
"okudan_empire": -6639,
35-
"orinian_empire": 10414,
36-
"pdr_of_hoshigoru": -1370,
37-
"people_s_federation_of_xanaqu": 7059,
38-
"people_s_republic_of_mariposa": 41,
39-
"republic_of_aurendale": 10719,
40-
"republic_of_belcanto": -4298,
41-
"republic_of_borealyan": 309,
42-
"republic_of_calblanca": 531,
43-
"republic_of_perzam": 128,
44-
"republic_of_pestera": -5175,
45-
"republic_of_shangri_la": 20,
46-
"serranova_military_junta": 68,
47-
"solara": 2236,
48-
"templar_of_saxonia": 55,
49-
"theorin_commonwealth": -398,
50-
"tsardom_of_nogoyev": -537,
51-
"vesperan_federation": -2157,
52-
"vinraarabeise_people_s_republic": 377,
53-
"vorkutangrad": 719,
54-
"xaojin_heavenly_kingdom": 91,
55-
"zhensanovian_commonwealth": -8330
56-
};
574

585
const HEALTH_GROWTH = { Depression: -3, Recession: -2, Slowdown: -1, Recovery: 1, Expansion: 2, Prosperity: 3 };
596
const HEALTH_DEMOGRAPHICS = {
@@ -203,56 +150,8 @@
203150
return Number(number(value, 0).toFixed(2));
204151
}
205152

206-
function budgetBalanceMigrationTarget(national = {}) {
207-
const storedBalance = number(national.budgetBalance, null);
208-
if (Number.isFinite(storedBalance)) return roundCurrency(storedBalance);
209-
return roundCurrency(number(national.budgetCapacity, 0) - number(national.budgetExpenditure, 0));
210-
}
211-
212-
function tradeV4FiscalBalanceTarget(id, national = {}) {
213-
const preTradeV4Target = number(PRE_TRADE_V4_BUDGET_BALANCE_TARGETS[id], null);
214-
if (Number.isFinite(preTradeV4Target)) return roundCurrency(preTradeV4Target);
215-
return budgetBalanceMigrationTarget(national);
216-
}
217-
218-
function hasPreTradeV4BudgetBalanceTarget(id) {
219-
return Number.isFinite(number(PRE_TRADE_V4_BUDGET_BALANCE_TARGETS[id], null));
220-
}
221-
222-
function captureTradeV4BudgetBalanceTargets(data, previousTradeFormulaVersion) {
223-
if (previousTradeFormulaVersion === TRADE_V4_FORMULA_VERSION || data.meta.tradeV4BudgetBalanceTargets) return;
224-
const nationalRows = data.national && typeof data.national === "object" && !Array.isArray(data.national)
225-
? data.national
226-
: {};
227-
const targets = Object.fromEntries(
228-
Object.entries(nationalRows)
229-
.map(([id, national]) => [id, budgetBalanceMigrationTarget(national)])
230-
.filter(([, target]) => Number.isFinite(target))
231-
);
232-
if (Object.keys(targets).length) data.meta.tradeV4BudgetBalanceTargets = targets;
233-
}
234-
235-
function captureTradeV4FiscalBalanceTargets(data, previousTradeFormulaVersion) {
236-
if (data.meta.tradeV4FiscalBalanceVersion === TRADE_V4_FISCAL_BALANCE_VERSION || data.meta.tradeV4BudgetBalanceTargets) return;
237-
if (previousTradeFormulaVersion !== TRADE_V4_FORMULA_VERSION) return;
238-
const nationalRows = data.national && typeof data.national === "object" && !Array.isArray(data.national)
239-
? data.national
240-
: {};
241-
const targets = Object.fromEntries(
242-
Object.entries(nationalRows)
243-
.map(([id, national]) => [id, tradeV4FiscalBalanceTarget(id, national)])
244-
.filter(([, target]) => Number.isFinite(target))
245-
);
246-
if (!Object.keys(targets).length) return;
247-
const exactTargets = Object.fromEntries(Object.keys(targets).filter((id) => hasPreTradeV4BudgetBalanceTarget(id)).map((id) => [id, true]));
248-
data.meta.tradeV4BudgetBalanceTargets = targets;
249-
data.meta.tradeV4BudgetBalanceTargetMode = "normalize";
250-
data.meta.tradeV4BudgetBalanceExactTargets = exactTargets;
251-
}
252-
253153
function ensureState(data = {}) {
254154
data.meta = data.meta || {};
255-
const previousTradeFormulaVersion = data.meta.tradeFormulaVersion;
256155
data.meta.title = data.meta.title || "AG-GS Global Ledger";
257156
data.meta.currentYear = number(data.meta.currentYear, 2021);
258157
data.meta.worldEconomicHealth = data.meta.worldEconomicHealth || "Expansion";
@@ -271,8 +170,6 @@
271170
["populationColumns", "equipmentCosts", "eraMultipliers", "costAdditionModifiers", "costReductionModifiers"].forEach((key) => {
272171
data[key] = Array.isArray(data[key]) ? data[key] : [];
273172
});
274-
captureTradeV4BudgetBalanceTargets(data, previousTradeFormulaVersion);
275-
captureTradeV4FiscalBalanceTargets(data, previousTradeFormulaVersion);
276173
data.meta.tradeFormulaVersion = TRADE_V4_FORMULA_VERSION;
277174
data.tradeNetwork = data.tradeNetwork && typeof data.tradeNetwork === "object" && !Array.isArray(data.tradeNetwork) ? data.tradeNetwork : {};
278175
data.tradeNetwork.targetedTariffs = data.tradeNetwork.targetedTariffs && typeof data.tradeNetwork.targetedTariffs === "object" && !Array.isArray(data.tradeNetwork.targetedTariffs)
@@ -334,11 +231,6 @@
334231
return true;
335232
}
336233

337-
function hasTradeV4BudgetBalanceTargets(data) {
338-
const targets = data.meta?.tradeV4BudgetBalanceTargets;
339-
return Boolean(targets && typeof targets === "object" && !Array.isArray(targets) && Object.keys(targets).length);
340-
}
341-
342234
function recalculationSignature(data) {
343235
return Object.keys(data.national || {})
344236
.sort()
@@ -857,22 +749,6 @@
857749

858750
function recalculateAll(data, options = {}) {
859751
ensureTradeV4State(data);
860-
if (hasTradeV4BudgetBalanceTargets(data)) {
861-
const migrationOptions = { ...options, keepTradeV4BudgetBalanceTargets: true };
862-
let previousSignature = "";
863-
for (let attempt = 0; attempt < 8; attempt++) {
864-
recalculateTrade(data, options);
865-
recalculateBudgets(data, migrationOptions);
866-
const nextSignature = recalculationSignature(data);
867-
if (attempt > 0 && nextSignature === previousSignature) break;
868-
previousSignature = nextSignature;
869-
}
870-
delete data.meta.tradeV4BudgetBalanceTargets;
871-
delete data.meta.tradeV4BudgetBalanceTargetMode;
872-
delete data.meta.tradeV4BudgetBalanceExactTargets;
873-
data.meta.tradeV4FiscalBalanceVersion = TRADE_V4_FISCAL_BALANCE_VERSION;
874-
return data;
875-
}
876752
let previousSignature = "";
877753
for (let attempt = 0; attempt < 8; attempt++) {
878754
recalculateTrade(data, options);

site/index.html

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828
})();
2929
</script>
3030
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='10' fill='%2314171a'/%3E%3Cpath d='M8 8h32L8 40z' fill='%23f0c33b'/%3E%3Cpath d='M56 56H24l32-32z' fill='%230d65d9'/%3E%3C/svg%3E">
31-
<link rel="stylesheet" href="css/base.css?v=20260604-budget-handoff-publish">
32-
<link rel="stylesheet" href="css/trade.css?v=20260604-budget-handoff-publish">
33-
<link rel="stylesheet" href="css/ledger.css?v=20260604-budget-handoff-publish">
34-
<link rel="stylesheet" href="css/simulation.css?v=20260604-budget-handoff-publish">
35-
<link rel="stylesheet" href="css/records.css?v=20260604-budget-handoff-publish">
36-
<link rel="stylesheet" href="css/responsive.css?v=20260604-budget-handoff-publish">
31+
<link rel="stylesheet" href="css/base.css?v=20260605-trade-v4-cleanup">
32+
<link rel="stylesheet" href="css/trade.css?v=20260605-trade-v4-cleanup">
33+
<link rel="stylesheet" href="css/ledger.css?v=20260605-trade-v4-cleanup">
34+
<link rel="stylesheet" href="css/simulation.css?v=20260605-trade-v4-cleanup">
35+
<link rel="stylesheet" href="css/records.css?v=20260605-trade-v4-cleanup">
36+
<link rel="stylesheet" href="css/responsive.css?v=20260605-trade-v4-cleanup">
3737
</head>
3838
<body data-app-mode="public">
3939
<header class="topbar">
@@ -75,24 +75,24 @@ <h1>Global Ledger</h1>
7575
</span>
7676
</footer>
7777

78-
<script src="data.js?v=20260604-budget-handoff-publish"></script>
79-
<script src="js/engine/fiscal.js?v=20260604-budget-handoff-publish"></script>
80-
<script src="js/engine/tradePolicy.js?v=20260604-budget-handoff-publish"></script>
81-
<script src="js/engine/trade.js?v=20260604-budget-handoff-publish"></script>
82-
<script src="engine.js?v=20260604-budget-handoff-publish"></script>
83-
<script src="js/app/config.js?v=20260604-budget-handoff-publish"></script>
84-
<script src="js/app/format.js?v=20260604-budget-handoff-publish"></script>
85-
<script src="js/app/sync.js?v=20260604-budget-handoff-publish"></script>
86-
<script src="js/app/statusTables.js?v=20260604-budget-handoff-publish"></script>
87-
<script src="js/app/recordsParser.js?v=20260604-budget-handoff-publish"></script>
88-
<script src="js/app/records.js?v=20260604-budget-handoff-publish"></script>
89-
<script src="js/app/tradeMapShapes.js?v=20260604-budget-handoff-publish"></script>
90-
<script src="js/app/tradeZones.js?v=20260604-budget-handoff-publish"></script>
91-
<script src="js/app/tradeRouteMesh.js?v=20260604-budget-handoff-publish"></script>
92-
<script src="js/app/tradeLaneSkeleton.js?v=20260604-budget-handoff-publish"></script>
93-
<script src="js/app/tradeMap.js?v=20260604-budget-handoff-publish"></script>
94-
<script src="js/app/tradeView.js?v=20260604-budget-handoff-publish"></script>
95-
<script src="js/app/editorView.js?v=20260604-budget-handoff-publish"></script>
96-
<script src="app.js?v=20260604-budget-handoff-publish"></script>
78+
<script src="data.js?v=20260605-trade-v4-cleanup"></script>
79+
<script src="js/engine/fiscal.js?v=20260605-trade-v4-cleanup"></script>
80+
<script src="js/engine/tradePolicy.js?v=20260605-trade-v4-cleanup"></script>
81+
<script src="js/engine/trade.js?v=20260605-trade-v4-cleanup"></script>
82+
<script src="engine.js?v=20260605-trade-v4-cleanup"></script>
83+
<script src="js/app/config.js?v=20260605-trade-v4-cleanup"></script>
84+
<script src="js/app/format.js?v=20260605-trade-v4-cleanup"></script>
85+
<script src="js/app/sync.js?v=20260605-trade-v4-cleanup"></script>
86+
<script src="js/app/statusTables.js?v=20260605-trade-v4-cleanup"></script>
87+
<script src="js/app/recordsParser.js?v=20260605-trade-v4-cleanup"></script>
88+
<script src="js/app/records.js?v=20260605-trade-v4-cleanup"></script>
89+
<script src="js/app/tradeMapShapes.js?v=20260605-trade-v4-cleanup"></script>
90+
<script src="js/app/tradeZones.js?v=20260605-trade-v4-cleanup"></script>
91+
<script src="js/app/tradeRouteMesh.js?v=20260605-trade-v4-cleanup"></script>
92+
<script src="js/app/tradeLaneSkeleton.js?v=20260605-trade-v4-cleanup"></script>
93+
<script src="js/app/tradeMap.js?v=20260605-trade-v4-cleanup"></script>
94+
<script src="js/app/tradeView.js?v=20260605-trade-v4-cleanup"></script>
95+
<script src="js/app/editorView.js?v=20260605-trade-v4-cleanup"></script>
96+
<script src="app.js?v=20260605-trade-v4-cleanup"></script>
9797
</body>
9898
</html>

site/js/app/sync.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,7 @@
8888
const nextRevision = Number(payload.revision || 0);
8989
if (nextRevision && nextRevision === sharedSync.revision) return false;
9090
const nextData = Engine.normalizeState(Engine.clone(payload.data));
91-
const sourceFiscalVersion = nextData.meta?.tradeV4FiscalBalanceVersion || "";
9291
TradeMap.ensureGeography?.(nextData);
93-
Engine.recalculateAll(nextData);
94-
const fiscalMigrationApplied = isAdmin && nextData.meta?.tradeV4FiscalBalanceVersion && nextData.meta.tradeV4FiscalBalanceVersion !== sourceFiscalVersion;
9592
clearPendingChanges?.();
9693
setData(nextData);
9794
sharedSync.revision = nextRevision || sharedSync.revision;
@@ -102,7 +99,6 @@
10299
updateSourceNote();
103100
state.notice = "";
104101
render();
105-
if (fiscalMigrationApplied) scheduleSharedPublish("Published Trade V4 budget balance handoff.");
106102
return true;
107103
}
108104

0 commit comments

Comments
 (0)