worldbox-observer-mod/docs/world-event-inventory.md
2026-07-21 13:38:04 -05:00

106 lines
5.3 KiB
Markdown

# World event inventory (full surface)
Source of truth for what IdleSpectator covers across the **whole** game.
Refresh via live libraries + `mutation_discovery` / domain audits under `.harness/`.
Full gap map and expansion waves: [`event-catalog-discovery.md`](event-catalog-discovery.md).
Audit date: 2026-07-17.
## Policy
**If it is interesting, it is an interest candidate.**
`CreatesInterest` / Happiness `Signal` registers Layer A.
`EventStrength` + scoring decide who gets the spotlight.
Only true brief FX, cooldowns, civic Aggregates, and god-tool / biome spam stay B-only.
## How to read this
| Layer | Meaning |
|-------|---------|
| **B** | Activity / Life / chronicle prose may fire; no interest candidate |
| **A** | Registers interest; director ranks by points |
| **Gap** | Game fires a lifecycle beat; we have no reliable A path |
## Live libraries (enumerated)
| Library | ~Count | Owner |
|---------|-------:|-------|
| happiness_library | 67 | EventCatalog.Happiness (1:1 authored) |
| status | 58 | EventCatalog.Status (1:1 authored) |
| world_log_library | 41 | EventCatalog.WorldLog (1:1 authored) |
| disasters | 17 | via WorldLog |
| war_types_library | 5 | EventCatalog.WarType |
| traits | 116 | EventCatalog.Trait (all CI; strength ranks) |
| plots_library | 28 | EventCatalog.Plot |
| era_library | 11 | EventCatalog.Era |
| book_types | 12 | EventCatalog.Book (all A) |
| decisions / powers / spells / items | 127 / 339 / 12 / 111 | EventCatalog.Libraries / Decision |
| subspecies_traits / genes / phenotypes | 204 / 47 / 52 | Libraries |
| world_laws / biomes | 49 / 29 | Libraries |
| culture / religion / clan / language traits | 78 / 40 / 29 / 26 | EventCatalog.Libraries (live+dial) |
| buildings | 618 | patches (consume A; damage/ambient destroy skipped) |
| actor_library | 322 | SpeciesDiscovery / scoring |
| tasks_actor | 217 | Activity taxonomy |
## Layer A sizes (policy)
| Domain | Authored / seeded | Layer A |
|--------|------------------:|--------|
| Happiness | 67 | ~49 Signal (5 Ambient FX; 13 Aggregate civic) |
| Status | 58 | ~42 CreatesInterest (FX/cooldowns + egg gain stay B) |
| WorldLog | 41 | ~40 |
| Relationship | 11 | all interesting discrete |
| Plot / Era / War / Book | 28 / 11 / 5 / 12 | all A |
| Trait | 116 | all CI |
| Decision | 127 live / prose overlays | **16** camera-interesting (0.28.41 soft demote) |
| Spell / Item / Gene / Phenotype / WorldLaw / SubspeciesTrait | live | Signal-only A: spell 6 / item mythril+adamantine 20 / gene 0 / phenotype 0 / law crisis 7 / subsp 21 |
| Culture / Religion / Clan / LanguageTrait | live dials | Culture politics 8; religion 6; clan 0; language 0 |
| Power / Biome | live | Power Signal **41**; biome 0 (ambient CI=false) |
| Library+decision inventory dump | 1143 rows | **125 A / 1018 B** (`.harness/camera-a-inventory.tsv`) |
| Building / Boat | none | destroy/consume/trade/unload; damage/load skipped |
## Wired hooks (major)
Happiness, status (+ egg-loss hatch), WorldLog, wars, plots (new/cancel/join/leave/finish),
meta genesis (culture/religion/language/clan/army/alliance/city/kingdom),
books, traits, deferred libraries, boats (trade/unload), buildings (consume; civ complete/wonder; ambient destroy demoted),
relationship (lover/child/family/baby/alpha), Family.setAlpha, SpeciesDiscovery,
meta trait gain (`MetaObjectWithTraits.addTrait` pipelines),
earthquake sticky (`Earthquake.startQuake` while active).
## Known gaps / thin areas
| Gap | Why it matters | Status |
|-----|----------------|--------|
| Building complete / wonder finish | Settlement spectacle | **Live** (`Building.completeConstruction`, civ only) |
| Library tip Labels use raw `{id}` | Watch tips look untracked / ugly | **Live** (`LibraryAssetNames` + humanize) |
| Large ambient-A libraries (items/genes/phenotypes/subspecies/meta) | Camera noise with weak prose | **Live** (Signal-only A; `library_ambient_policy_ok`) |
| Meta-trait diffs not fail-gated in `domain_event_audit` | Regressions easy to miss | **Live** (fail-gated + `library_asset_labels_ok`) |
| Era/earthquake ongoing poll | Age via `startNextAge`; quake sticky via `Earthquake.startQuake` | **Live** |
| Alliance/kingdom destroy managers | End beats covered by WorldLog (`alliance_dissolved`, `kingdom_destroyed`, …) | **Closed via WorldLog** |
## Stay B (true noise)
- Happiness: `got_poked`, `got_caught`, `paid_tax`, `just_ate`, `just_pooped` + all Aggregates
- Status: dash/dodge/shield/recovery_*/spell_*/cough/flicked/just_ate/on_guard/afterglow/slowness + egg gain
- Libraries: Power ambient (god paint tools), Decision ambient (idle AI; interesting decisions are Signal), Biome ambient
- Patches: `building_damage`, ambient building destroy, `boat_load`
## Scoring notes
`TotalScore = EventStrength + scale + CharacterSignificance * charWeight + visual + novelty`.
CharacterSignificance includes favorite/king/leader/renown/kills/level and species rarity.
## Refresh commands
```bash
./scripts/harness-run.sh --no-launch mutation_discovery
./scripts/harness-run.sh --no-launch domain_event_audit
./scripts/harness-run.sh --no-launch activity_happiness_audit
./scripts/harness-run.sh --no-launch activity_status_audit
./scripts/harness-run.sh --no-launch world_log_audit
./scripts/harness-run.sh --no-launch disaster_war_audit
```
See also [`event-catalog-discovery.md`](event-catalog-discovery.md) for the prioritized expansion waves.