feat: integrate regional caravan persistence

This commit is contained in:
Rijad Zuzo
2026-08-23 17:20:41 +02:00
parent 49c5bda651
commit 52307f1306
24 changed files with 1939 additions and 92 deletions
+13 -12
View File
@@ -21,10 +21,11 @@ own persistent quantities, travel completion, or quest progress.
The long-term direction is one regional simulation containing settlements,
routes, caravans, named people, aggregate cohorts, and polities. The current
repository has the regional records, deterministic scheduler, one exact
caravan transfer service, chunked persistence, and a 20-caravan structural
benchmark. It does not yet run that regional service as the production
`SimulationManager` facade or provide a complete market, settlement-growth, or
kingdom gameplay loop. That distinction is important when extending the game.
caravan transfer service, a production facade for one inbound Jajce route, a
combined local/regional save manifest, chunked persistence, and a 20-caravan
structural benchmark. It does not yet provide a complete market,
settlement-growth, or kingdom gameplay loop. That distinction is important
when extending the game.
## Start here
@@ -53,9 +54,9 @@ kingdom gameplay loop. That distinction is important when extending the game.
| Situations/quests | Definition-driven bounded situations, derived progress, journal metadata, commitments and idempotent outcomes | The initial Jajce slice is bounded; it is not a universal objective scripting language |
| Dialogue | Deterministic semantic `ConversationService`, authored intent/template resources, Dialogue Manager v3 presenter | Dialogue Manager renders planned turns; it is not an authority or save format |
| Entities | Shared definition → instance/state → presentation contracts for resources, animals, enemies, items, storage | New behavior profiles and genuinely new mechanics still need typed code and tests |
| Regional kernel | Primitive records, due-job heap, keyed random, analytical updates, caravan proof, chunk/file store | Regional service and 20-caravan trade are currently integration fixtures, not the live Jajce loop |
| Regional kernel | Primitive records, due-job heap, keyed random, analytical updates, caravan service, production facade, chunk/file store | One authored inbound route is live; the 20-caravan economy remains a structural fixture, not the Jajce market |
| Presentation | Active-world adapters, context registries, relevance cap of 40, navigation budget of 2/frame, High/Balanced/Low profiles | Hardware frame-time/VRAM evidence is still pending; structural benchmarks are not rendered claims |
| Persistence | Local save schema v16 with migrations and scope preflight; regional chunk generations with recovery | No save menu/profile system; regional chunk store is not yet the local `SaveSlotStore` backend |
| Persistence | Combined manifest v1 containing unchanged local schema v16 plus the canonical regional facade; regional chunk generations with recovery | No save menu/profile system; regional chunk/history generations are not yet the `SaveSlotStore` backend |
## The authority pipeline
@@ -106,9 +107,10 @@ relationship, or reward that the event claims happened.
- `simulation/events/`, `knowledge/`, `relationships/`, `situations/`, and
`dialogue/` — causal history and emergent narrative layers.
- `simulation/state/` — versioned primitive records and validation.
- `simulation/persistence/`local quicksave safety.
- `simulation/regional/` — regional records, scheduler, caravan proof, chunk
codec, and file generations.
- `simulation/persistence/`combined quicksave manifest and atomic slot
replacement, plus regional chunk codecs and generations.
- `simulation/regional/` — production facade, regional records, scheduler,
caravan transaction, retention planning, and scale contracts.
### Loaded world and presentation
@@ -161,12 +163,11 @@ are used when an existing save is loaded.
The following are deliberately **not** claimed as complete:
- wire `RegionalCaravanService` into the production regional facade and local
save manifest;
- integrate event retention/rollups/chunked history into one atomic,
lazily loaded long-horizon save;
- run 20 real caravan trades across five settlement economies with atomic
cargo/stock ledgers;
- replace local unloaded travel freezes with authoritative route-time work;
- integrate event retention/rollups/chunked history into one long-horizon save;
- add settlement projects, cohort promotion/demotion, offices, diplomacy,
armies, campaigns, and aggregate conflict;
- add visual relevance streaming to the live world view rather than only the