fix(@projects/@magic-civilization): 🐛 reconcile dangling tech/unit content refs (data_integrity)

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) <noreply@anthropic.com>
This commit is contained in:
Natalie 2026-06-24 11:51:12 -04:00
parent ff0f8a4670
commit 88dffec277
5 changed files with 13 additions and 17 deletions

View file

@ -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",

View file

@ -47,7 +47,7 @@
],
"units": [],
"improvements": [
"irrigation_channel"
"irrigation"
],
"lenses": [
"moisture"

View file

@ -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",

View file

@ -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"
],

View file

@ -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",