diff --git a/AGENTS.md b/AGENTS.md
index a6f63e9..54d51c9 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -226,8 +226,17 @@ These come from how gacha games actually schedule things, and they cause most bu
between the calendar and a year of expired banners.
- **Check what fences a section off.** Inclusion is decided by headings, and the level varies: Persona
5 hides fifty finished events behind nothing but an `
Finished Events
` in a collapsed
- accordion, while Genshin uses `h4` for sub-headings *inside* one event. So `h4` gates sections but
- never names one — an unrecognised `h4` must leave the current event title alone.
+ accordion, while Genshin uses `h4` for sub-headings *inside* one event and Wuthering Waves titles
+ each event of its summary block with one. So `h4` gates sections, and names one only when nothing
+ else has: an unrecognised `h4` may **fill an empty event title but never take one**. Genshin's h3
+ has already claimed the slot before its labels arrive; Wuthering Waves' block sits under a
+ recognised section heading, so the slot is empty and the `h4` is the only name there is.
+- **A blurb the listing table lacks is usually further down the page.** Two Game8 templates put
+ unlock conditions (`Reach Union Level 8`, `Unlocked by default`) in the cell where a description
+ belongs, and `isRequirementOnly` drops those rather than answer "what is this event?" with "how
+ do I qualify for it?". The real prose sits in a per-event section — under an `h3` on Persona 5's
+ page and an `h4` on Wuthering Waves'. `dedupe` blends it onto the better-dated copy and never
+ blends a date, so reading both shapes adds information and can never contradict any.
- **Prefer a source that states machine-readable times.** wiki.gg emits ISO timestamps with a timer
per server region, which is the only reason `regionEnds` carries real data anywhere.
- **Silent drops are the dangerous failure.** A date format the parser does not recognise makes
diff --git a/docs/INGESTION.md b/docs/INGESTION.md
index 107870d..5d4a569 100644
--- a/docs/INGESTION.md
+++ b/docs/INGESTION.md
@@ -250,17 +250,31 @@ several:
contains both column words, resolves, and puts the range at an index no data row has, so the
table yields nothing at all with no error. `readColumnTable` therefore decides the header by what
it produces — row 1 is tried **only when row 0 produced nothing**. *(Umamusume)*
+9. **An events-summary block** — shape 7's idea one heading level down: a
+ `3.6 Events Summary
` section whose every event is a sub-section titled by an `h4`, over
+ an `Event Duration` row and a paragraph of prose. The listing tables above it put *unlock
+ conditions* where a blurb would go, so this block is the only place on the page a description
+ exists, and two events are dated nowhere else. *(Wuthering Waves)*
-Shapes 1, 2, 4, 5, 6, 7 and 8 are handled. Before assuming a new Game8 page will work, dump its heading/table
-structure and check which shape it uses — and check **every** table, not just the obvious one.
-Endfield was written off as undatable on a first pass that only inspected its `Duration` rows; its
-two real events were in a table further down.
+Shapes 1, 2, 4, 5, 6, 7, 8 and 9 are handled. Before assuming a new Game8 page will work, dump its
+heading/table structure and check which shape it uses — and check **every** table, not just the
+obvious one. Endfield was written off as undatable on a first pass that only inspected its
+`Duration` rows; its two real events were in a table further down.
**Check what ends a section, too.** Headings decide inclusion and the level is not consistent: Persona
5 puts its whole finished back catalogue behind an `Finished Events
` inside a collapsed
accordion, so a reader that ignores `h4` publishes fifty dead events. Genshin uses `h4` the opposite
-way — for sub-headings *within* one event ("Availability Period") — so an unrecognised `h4` gates the
-section but must never claim the event title.
+way — for sub-headings *within* one event ("Availability Period"), while Wuthering Waves names
+each event of its summary block with one. Both are served by the same rule: an unrecognised `h4`
+may **fill an empty event title but never take one**. Genshin's event has already claimed the slot
+by the time its labels arrive, so they cannot rename it; Wuthering Waves' block sits under a
+*recognised* section heading, which leaves the slot empty for the `h4` that is the only name on
+offer.
+
+That last part is why `events summary` is in the section vocabulary rather than left to fall
+through. An unrecognised heading is read as an event name, so falling through would spend the title
+on the section and leave every `h4` beneath it unable to take it back — publishing
+"3.6 Events Summary" as an event and dropping the ten real ones under it.
## Stage 1 — fetch