feat: add missing wood opportunities

This commit is contained in:
Rijad Zuzo
2026-07-16 01:50:19 +02:00
parent f82d9683de
commit 79dd503343
26 changed files with 1054 additions and 175 deletions
+25 -6
View File
@@ -757,11 +757,29 @@ The outcome-defined pantry-crisis demo loop is complete:
replacing state-driven world cues, while a runtime validator measures the
unassisted route and a headless scenario verifies its full event chain.
Milestone 7 is not complete. The immediate next slice is the second bounded
unresolved-condition consumer from a real missing-wood `task_blocked` fact,
including deterministic interested-party death/staleness handling. Extract
shared opportunity machinery only after that second consumer proves the common
contract.
The second bounded Milestone 7 consumer is complete:
- patrol or study that loses its definition-backed wood cost at completion
records one zero-transfer `task_blocked` fact with stable action, woodpile,
wood, and required-amount fields, without applying the work effect;
- the performer and nearby witnesses retain that objective fact, and the
performer becomes the interested party for one `supply_missing_wood` need;
- a real later NPC wood deposit or player tree extraction into the woodpile
resolves the record through its exact existing event;
- interested-party death or evidence that remains unresolved for one simulated
day invalidates the need deterministically, emits no quest-only fact, and
releases the protected trigger memory;
- world schema v9, nested opportunity schema v2, wood-specific UI text, and
focused headless/runtime regressions preserve the full open, resolved, and
invalidated lifecycle;
- the two proven consumers now share `VillageOpportunitySystem` and the common
lifecycle fields, while their evidence and care rules remain explicit.
Milestone 7 is not complete. The immediate next slice is a bounded
capable-helper query for an open need: derive one viable helper from existing
knowledge, relationship, action, inventory, and resource facts and expose the
reason for that result. Keep it read-only first; only a later proven slice
should let opportunity awareness influence autonomous task selection.
Recently completed:
@@ -819,7 +837,8 @@ Recently completed:
- Action completion costs are definition-backed: patrol and study share one
stored-resource contract across selection and execution. The inspector shows
readable unavailable reasons, and a late shortfall creates a persisted
`task_blocked` fact without applying the work effect.
`task_blocked` fact with stable action/resource/requirement fields without
applying the work effect.
- Structured event feed: EconomicEventRecord now supports narrative events
(task started, NPC slept, NPC died) alongside economic transfers.
Per-NPC event history with human-readable descriptions exposed in the