docs(events): the Event System design of record and its phased plan #207
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/events-system"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
Two documents for a game-agnostic Event System — an engine for scheduled, bounded, audited changes to a live game world, driven by the staff who already run the site.
website/EVENTS.mdis the design of record. It surveys what the eight repos already provide, records what they do not, and proposes the architecture: core owns the engine, a module owns the meaning, and the seam is declaration plus dispatch rather than a string core interprets.website/EVENTS_PLAN.mdis the plan of record. Seventeen phases (P0–P16): what lands in which PR, what each ships on its own merit, how each is proved, and the traps in each.The three findings that shaped it
driftedrather than a silent revert of their change.Scope and gating
Fourteen of the seventeen phases reach the game only to announce, over verbs the write plane already carries, and need no decision beyond P0. Only P11 and P12 are gated on the
../link/ADMIN_CONTROLS.md§8 amendment.This PR discharges the first half of P0. The decisions — N1 through N11, and the §8 amendment itself — remain, and they are the part that gates the two world-changing phases.
EVENTS_PLAN.md's P0 says so in as many words rather than reading as though it were still entirely ahead of the reader.Two documents that disagree with the code
Recorded rather than quietly resolved, per the survey's own rule:
website/ARCHITECTURE.mdplaces the SSE fan-out inside the core backend. It is entirelymodule-uo's, and has been since the module-system Phase 3 cutover.modules/rust-dryrun.mdfinding 4 asserts the Android app feature-detects againstGET /api/v1/public/modules. It does not —ShardStreamClient.kthardcodesapi/v1/public/shard/stream, a module path, and no Kotlin source mentionscapabilities.Neither is fixed here; both are named so the fix has somewhere to start. The second is a prerequisite for P14 and the plan says so.
One operational note worth reading before P1
edgeis free but stale inwebsite,docsandmodule-uo— 0 commits ahead ofmainand several behind, because the engagement cutover merged it intomainand nothing moved it afterwards. The first act of P1 is to reset eachedgeto itsmain; branching off it as it stands would silently revert the engagement retention work at the next cutover. The plan carries the tworev-list --countcommands to verify this per repo.How it was tested
Documentation only — no code, no CI in this repo. Checked mechanically:
](#…)link resolves against goldmark's slug algorithm (lowercase, strip punctuation, one hyphen per space). Caught one genuine break:plan: thecollapses to a single hyphen, not a double.MODULE_API.md,MODULE_SYSTEM.md,ENGAGEMENT.md,../link/ADMIN_CONTROLS.md, and the two files' cross-references) resolve fromdocs/website/.EVENTS.md§M and the 17 phase headings inEVENTS_PLAN.mdagree on number, order and repos-touched, verified by diff.Every codebase claim was read from the working trees on 2026-09-01 — including the ServUO checkout, where the 258
Config.Getcall sites and theirstatic readonlyvs live-read split are the reason the lease catalog must be a plugin-verified allowlist rather than "any config key".Checklist
AI-assisted contributions (required)
Claude Code (Opus 5). I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with aCo-Authored-Bytrailer.License