magicciv/src
Natalie 5f3e02af5e refactor(@projects/@magic-civilization): ♻️ unit catalog single-source via canonical Rust transform (Rail 1)
Twin of the building consolidation. The GDScript build_unit_catalog did the
buildable-unit filter (drop faction:"wild" monsters + "freepeople" NPCs) and
field mapping by hand. Add mc_ai::tactical::parse_unit_catalog as the one Rust
implementation (resilient: skips malformed, drops map-spawned factions, defaults
tier=1), exposed as GdItemSystem.parse_unit_catalog_json. GDScript
build_unit_catalog now marshals the raw unit docs to it; the bench routes through
the same transform. The wild/freepeople filter lives only in Rust now.

Validated: mc-core+mc-ai+mc-player-api 826/0 (3 new parse_unit_catalog tests);
rebuilt aarch64 dylib; headless GUT 729/0/13 incl. a unit round-trip + wild-filter
delegation test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 23:55:39 -04:00
..
game refactor(@projects/@magic-civilization): ♻️ unit catalog single-source via canonical Rust transform (Rail 1) 2026-06-24 23:55:39 -04:00
packages feat(@projects): update resource deposits and objectives 2026-05-02 18:53:13 -04:00
simulator refactor(@projects/@magic-civilization): ♻️ unit catalog single-source via canonical Rust transform (Rail 1) 2026-06-24 23:55:39 -04:00