1fc327efa5
The trainer window, its filters and the NPC service windows' lifecycle follow 1.12.1. - `SetTrainerServiceTypeFilter` takes `"all"`, an exclusive third argument and its own errors; `GetTrainerServiceTypeFilter` matches case-blind (`0x4da260`, `0x4da510`). - A mount or pet trainer always builds its known group first (`0x4d7609`); rows of state 3 and up show under no filter (`0x4da390`). - An item record a getter waited on re-derives, re-sorts and fires, once per callback (`0x4d9140`, `0x4d7d40`). - An NPC that loses a service flag closes that window (`0x60b420`). - No window fires its event when the NPC's name arrives; `QUEST_ITEM_UPDATE` comes only from the item callback (`0x5018c0`). Tests pin each address. Built on macOS. Fixes #2241 Fixes #2242 Fixes #2243 Fixes #2244 Fixes #1494 Fixes #203 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>