- **Buff frame**: 32 helpful slots and 16 harmful (`BuffFrame.xml`), not 16 of each, so the first
debuff is `BuffButton32`. `BuffButton16` is a helpful slot here and stays down with one buff up.
- **Pet frame**: its `PetFrameDebuffN` row really is debuffs now — `RefreshBuffs(this, 0, "pet")`
(`PetFrame.lua:38`, `:57`) picks `UnitDebuff`, where stock passed `1` and showed the pet's buffs
under those names. The fixture seeds harmful auras.
- **Pet paper doll**: the diet icon is the realm's own `PetStable-DietIcon` at 32x32, and it was
moved out of the `<PlayerModel>` into a `frameLevel="5"` frame of its own
(`PetPaperDollFrame.xml:245-258`), so it draws over the scene by level rather than by the
model's ARTWORK callback draining last — the ordering this test used to pin.
- **Merchant**: both mouse buttons share one shift arm now (`MerchantFrame.lua:304-338` and
`:345-375` are the same body), and it opens the stack splitter for a bundle row too, stepping by
the bundle size. The fork inside is only where `maxStack` comes from: `GetItemInfo` off the link
for a bundle (so the row needs its template cached and a link to parse the id out of),
`GetMerchantItemMaxStack` for a single.
- **Trainer**: after a purchase the realm re-selects `ClassTrainerFrame.selectedService`
(`Blizzard_TrainerUI.lua:75-91`) instead of leaving the pane blank, so the pane and the
highlight follow the row that took the learned one's seat, and the engine's selection index
comes back off the hidden tail.
- **Game menu**: a `"full"` frame is exempt from both open gates (`UIParent.lua:927`, `:951` each
spell out `frameArea ~= "full"`) and its arm runs `CloseAllWindows()` before taking the slot
(`:962-966`), so asking for the map over the game menu closes the menu and opens the map.
- A third prereq row, and a latent raise named: `WorldMapFrame.xml` needs `Overrides.lua`'s
`CONTINENTS_LENGTH = 2` (toc row 13 against 85), because the continent and zone dropdown text
helpers compare against it unguarded (`WorldMapFrame.lua:440`, `:457`).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn