# 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 / 14 prose overlays | 12 camera-interesting | | Spell / Item / Gene / Phenotype / WorldLaw / SubspeciesTrait | live | Signal-only A (ambient CI=false); phenotypes all B | | Culture / Religion / Clan / LanguageTrait | live dials | Signal-only via dramatic heuristic | | Power / Biome | live | Signal predicate only / ambient CI=false | | 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.