feat(fifa17): deterministic base-card seed generator + full identity catalog
scripts/seed_fifa17_cards.py: deterministic pipeline from committed FIFA17 data (pool.json + roster.json + leagues/nations/teams tables) -> the card-definition identity catalog. CardDefinitionId is opaque + deterministic (fifa17_<asset>), version 0 (base cards only; resource_id == asset_id). --check mode diffs against committed output (drift-detection mutation-proven). Provenance embedded. Generated openfut-adapter-fifa17/data/fifa17-card-identities.json: all 17,563 base assets. Semantic definition coverage (to /tmp, not committed here): 17,547 resolvable; 16 skipped for missing roster name (reported, never fabricated). Adapter loads the committed catalog (test: 17,563 entries, Ronaldo fifa17_20801 -> asset 20801 v0). Phase commit 3/5. NOT owned inventory: this is 'which cards exist', not 'which the user owns'. Core content seeding + dev-owned set next.
This commit is contained in:
@@ -284,4 +284,23 @@ mod tests {
|
||||
assert_eq!(Fifa17WireItemIdPolicy::OWNED_ITEM_KIND, "owned-item");
|
||||
assert_eq!(Fifa17WireItemIdPolicy::owned_item_base_floor(), 100_000_001);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn loads_the_committed_generated_catalog() {
|
||||
// The generated base-card catalog (scripts/seed_fifa17_cards.py) must be
|
||||
// loadable by this adapter and carry real asset identities.
|
||||
let path = std::path::Path::new(env!("CARGO_MANIFEST_DIR"))
|
||||
.join("data/fifa17-card-identities.json");
|
||||
if !path.exists() {
|
||||
eprintln!("skip: {} not generated", path.display());
|
||||
return;
|
||||
}
|
||||
let cat = Fifa17CardCatalog::from_file(&path).expect("load committed catalog");
|
||||
assert!(cat.len() > 17_000, "full FIFA17 base pool, got {}", cat.len());
|
||||
// Ronaldo (asset 20801), version 0 => resource_id == asset_id.
|
||||
let ron = cat.lookup("fifa17_20801").expect("known base asset present");
|
||||
assert_eq!(ron.asset_id, 20801);
|
||||
assert_eq!(ron.version, 0);
|
||||
assert_eq!(ron.resource_id, 20801);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user