docs: record player-citizen loop, care needs, regrowth, and seasons

This commit is contained in:
Rijad Zuzo
2026-08-11 00:46:00 +02:00
parent e51cde57be
commit e359e5253a
7 changed files with 150 additions and 38 deletions
+17
View File
@@ -11,6 +11,8 @@ storage_deposited
storage_withdrawn
item_consumed
animal_fed
villager_weak
home_damaged
```
Each record contains a monotonically increasing event ID, event type,
@@ -25,6 +27,21 @@ stable animal ID at delivery. Player `animal_fed` remains a direct
pantry-to-animal fact; actor `-1` identifies that player-triggered feeding or
extraction until persistent player identity is introduced.
The player now lives as a citizen with a persisted `PlayerStateRecord`. Player
gathering records a `resource_extracted` move from the finite source to the
`player_inventory` holder; depositing at the pantry or woodpile records a
`storage_deposited` move from that holder into the typed storage; eating
records `item_consumed` from carried food or the pantry. All player events use
the stable `PLAYER_ACTOR_ID`, so nearby living villagers witness a pantry
restock as a knowable fact and a hungry familiar witness can gain directed
trust toward the player. The old direct harvest-into-pantry `resource_extracted`
facts remain legacy-compatible for v12 saves.
Two bounded narrative facts feed the care opportunity family: `villager_weak`
marks a starving, low-energy villager who cannot feed themselves from an empty
pantry, and `home_damaged` marks a villager who slept through critically low
safety. Both are knowable by their actor and nearby witnesses.
Events are immutable facts about completed transfers. They do not perform the
transaction and are not replayed to reconstruct current state. Resource,
inventory, and storage records remain authoritative.