From 88dffec27743788592d72adc532f78b9f429ac15 Mon Sep 17 00:00:00 2001 From: Natalie Date: Wed, 24 Jun 2026 11:51:12 -0400 Subject: [PATCH] =?UTF-8?q?fix(@projects/@magic-civilization):=20?= =?UTF-8?q?=F0=9F=90=9B=20reconcile=20dangling=20tech/unit=20content=20ref?= =?UTF-8?q?s=20(data=5Fintegrity)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tech unlocks + a unit tech-gate referenced ids absent from the loaded set: - improvement renames (techs used stale ids): irrigation_channel→irrigation, stone_road→road, fortress→fort - improvement refs with no existing target removed: orchard, aqueduct_channel, bridge, fishing_boats (no such improvement is authored) - flight units (dwarf_gyrocopter/iron_hawk/mithril_hawk) exist + their unlock techs are in-scope, but weren't in the manifest's units subscription → added - dwarf_master_engineer.tech_required deep_engineering (nonexistent) → total_war (its grand_engineer upgrade-from's gate, which is subscribed) GUT: test_data_integrity 0 dangling refs (724 passing / 2 failing). Co-Authored-By: Claude Opus 4.8 (1M context) --- public/games/age-of-dwarves/manifest.json | 7 +++++-- public/resources/techs/agriculture.json | 2 +- public/resources/techs/masonry.json | 8 +++----- public/resources/techs/natural_philosophy.json | 11 +++-------- public/resources/units/dwarf_master_engineer.json | 2 +- 5 files changed, 13 insertions(+), 17 deletions(-) diff --git a/public/games/age-of-dwarves/manifest.json b/public/games/age-of-dwarves/manifest.json index c43f232e..7a8bb5f2 100644 --- a/public/games/age-of-dwarves/manifest.json +++ b/public/games/age-of-dwarves/manifest.json @@ -15,9 +15,9 @@ "archer", "ballista_crew", "bard", - "battle_priest", "basilisk_wild", "battle_medic", + "battle_priest", "beacon_bearer", "berserker", "boar_scout", @@ -64,16 +64,19 @@ "dwarf_grand_scout", "dwarf_grand_smith", "dwarf_graven_warrior", + "dwarf_gyrocopter", "dwarf_hammerguard", "dwarf_high_engineer", "dwarf_high_sapper", "dwarf_high_smith", + "dwarf_iron_hawk", "dwarf_iron_submarine", "dwarf_iron_vanguard", "dwarf_ironwarden", "dwarf_master_engineer", "dwarf_master_woodcutter", "dwarf_mithril_cruiser", + "dwarf_mithril_hawk", "dwarf_mithril_vanguard", "dwarf_prospector", "dwarf_repeating_arbalest", @@ -143,8 +146,8 @@ "rune_scribe", "rune_spear", "runesmith", - "sage", "saga_singer", + "sage", "shambling_dead", "shield_bearer", "soulbolt", diff --git a/public/resources/techs/agriculture.json b/public/resources/techs/agriculture.json index 01808650..fb6969b8 100644 --- a/public/resources/techs/agriculture.json +++ b/public/resources/techs/agriculture.json @@ -47,7 +47,7 @@ ], "units": [], "improvements": [ - "irrigation_channel" + "irrigation" ], "lenses": [ "moisture" diff --git a/public/resources/techs/masonry.json b/public/resources/techs/masonry.json index db6a9726..2ed0a54b 100644 --- a/public/resources/techs/masonry.json +++ b/public/resources/techs/masonry.json @@ -49,7 +49,7 @@ "dwarf_engineer" ], "improvements": [ - "stone_road" + "road" ] }, "flavor": "A dwarf who cannot lay a straight wall is not yet a dwarf.", @@ -81,7 +81,7 @@ ], "units": [], "improvements": [ - "fortress" + "fort" ] }, "flavor": "They brought ten thousand. We brought walls.", @@ -113,9 +113,7 @@ "eternal_deeproads" ], "units": [], - "improvements": [ - "bridge" - ], + "improvements": [], "mechanics": [ { "key": "city_connection_roads", diff --git a/public/resources/techs/natural_philosophy.json b/public/resources/techs/natural_philosophy.json index 4b86d355..9b36a55b 100644 --- a/public/resources/techs/natural_philosophy.json +++ b/public/resources/techs/natural_philosophy.json @@ -85,8 +85,7 @@ "buildings": [], "units": [], "improvements": [ - "plantation", - "orchard" + "plantation" ], "lenses": [ "tile_quality_full" @@ -129,9 +128,7 @@ "units": [ "dwarf_river_galley" ], - "improvements": [ - "fishing_boats" - ], + "improvements": [], "lenses": [ "marine_health" ], @@ -357,9 +354,7 @@ "deep_cistern" ], "units": [], - "improvements": [ - "aqueduct_channel" - ], + "improvements": [], "lenses": [ "aquifer_mapping" ], diff --git a/public/resources/units/dwarf_master_engineer.json b/public/resources/units/dwarf_master_engineer.json index 4a449b02..a3890345 100644 --- a/public/resources/units/dwarf_master_engineer.json +++ b/public/resources/units/dwarf_master_engineer.json @@ -18,7 +18,7 @@ "movement": 2, "vision": 2, "cost": 300, - "tech_required": "deep_engineering", + "tech_required": "total_war", "upgradeable_from": "dwarf_grand_engineer", "race_required": "dwarf", "faction": "dwarf",