f55c401b6c
fut::catalog — Fifa17CardCatalog maps a semantic CardDefinitionId to a FIFA 17 render identity (resource_id = (version<<24)|asset_id; version 0 => resource== asset). Versioned JSON (schema_version=1, game=fifa17); validates schema/game, rejects asset_id > 24 bits, and rejects two card ids claiming one resource_id. Unknown definitions resolve to None (callers drop, never fabricate). Fifa17WireItemIdPolicy carries the owned-item namespace (base 100_000_000, first id 100_000_001, per the oracle) supplied to the generic store. Adds serde derive to the adapter. 8 catalog tests; 3/3 mutations killed (resourceId-drops-version, conflict-detection-off, asset-range-off). Phase commit 2/5. No card->asset DATA shipped: the synthetic Core catalogue is unmappable (see seed plan); the loader + format land now, population later.
21 lines
838 B
TOML
21 lines
838 B
TOML
[package]
|
|
name = "openfut-adapter-fifa17"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
license = "MIT"
|
|
description = "FIFA 17 game adapter: Blaze command tables, response bodies and dispatch"
|
|
publish = false
|
|
|
|
[dependencies]
|
|
openfut-protocol-blaze = { path = "../openfut-protocol-blaze" }
|
|
# Reads the bundled fetchClientConfig table (227-243 rows per CFID), which is
|
|
# generated from the Python oracle rather than transcribed by hand. Unlike the
|
|
# protocol crate below it, this crate is ordinary server-side code, so a real
|
|
# JSON parser is the right call — hand-rolling one to preserve a zero-dependency
|
|
# streak would be reinventing a solved problem in the riskiest possible place.
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
|
|
[dev-dependencies]
|
|
# Differential fixtures are JSONL; the runtime dependency already covers it.
|