NEO-145: reconcile implementation plan with shipped catalog load.

pull/185/head
VinPropane 2026-06-20 19:31:54 -04:00
parent 5ab5022704
commit 937412eda6
1 changed files with 10 additions and 3 deletions

View File

@ -48,9 +48,16 @@ Fail-fast startup load of `content/contracts/*_contract_templates.json` with **C
## Acceptance criteria checklist
- [ ] Host exits on invalid contract catalog or broken encounter refs at startup.
- [ ] Registry resolves template metadata by id.
- [ ] `dotnet test` covers loader gates.
- [x] Host exits on invalid contract catalog or broken encounter refs at startup.
- [x] Registry resolves template metadata by id.
- [x] `dotnet test` covers loader gates.
## Implementation reconciliation (shipped)
- **Contract catalog:** `Game/Contracts/` loader, catalog, `IContractTemplateRegistry`, `PrototypeE7M4ContractCatalogRules` (roster, freeze, cross-ref, band caps synced to `PROTOTYPE_E7M4_*`), DI + `Program.cs` load order (after quest catalog).
- **Config:** `ContentPathsOptions` `ContractsDirectory` / `ContractTemplateSchemaPath`; `InMemoryWebApplicationFactory` pins repo `content/contracts`.
- **Tests:** `ContractTemplateCatalogLoaderTests`, `ContractTemplateRegistryTests`, host boot via `Host_ShouldResolveContractCatalogFromDi` (839 tests green).
- **Docs:** `server/README.md` contract catalog section.
## Technical approach