Group scoping, glossary cleanup, occupations, aliases, relationships
Group scoping - groups are now scoped to a specific universe, series, or book, replacing the old approach of deriving group relevance from member appearances. This fixes inaccurate results like Thorin's Company appearing on Lord of the Rings pages (because Bilbo, a Hobbit member, also appears in LotR). Groups now use downward inheritance: universe-scoped groups appear on the universe page and all its series and book pages, series-scoped groups appear on the series and its book pages, and book-scoped groups appear only on that book's page. When a page shows groups from multiple scope levels, they are displayed in labelled sections (e.g. "Groups in The Culture", "Groups in Consider Phlebas"). Curators can set group scope via a new scope selector on the create and edit forms.
Group cleanup - 10 groups with zero members converted to glossary entries or soft-deleted. 10 groups reclassified from invalid "species" type to faction, nation, or community. Duplicate Druskelle group merged.
Glossary cleanup - removed 38 glossary entries that duplicated existing characters (concepts like "Bayaz", "Anomander Rake" that already have character pages). Removed 27 entries duplicating groups with 3+ members. Removed 11 near-duplicate entries (e.g. "Sprawl Architecture" alongside "The Sprawl"). Recategorised 34 race/species entries from "group" to "creature" or "culture" (e.g. Elves, Dwarves, Hobbits, Ogier, Jaghut). Fixed 15 broken glossary-to-glossary links and 7 broken group links. Glossary now at 1,220 clean entries.
Four new groups created - Big Coffin Hunters (All-World, 3 members), The Druskelle (Grishaverse, 4 members), Oakley Street (His Dark Materials, 4 members), and Protogen (The Expanse, 3 members). All with proper membership role lookup values and book-aware start dates.
Occupations expanded - 195 occupations added across 17 universes, all using valid lookup values and segment-aware start dates. Coverage increased from 33% to 39%. Includes new occupation types: dragon keeper, prostitute, tailor, apprentice, fisherman, admiral, resistance fighter.
Segment-aware aliases - 30 aliases added with exact segment IDs where the alias is gained (e.g. Frodo becomes "Mr Underhill" at the Prancing Pony, Moash becomes "Vyre" when he kills Elhokar, Taravangian becomes "Odium" when he seizes the Shard, Death becomes "Bill Door" in Reaper Man). Covers Middle-earth, Cosmere, Dune, Discworld, and Wizarding World.
Entity suggest links fix - increased the query limit from 2,000 to 5,000 for all entity types in the link suggestion system, fixing missing character suggestions caused by the database exceeding the previous cap.
Character cleanup - merged Ionides/Abdel Ionides duplicate (His Dark Materials). Fixed false Paolo appearances across universes.