diff --git a/crates/benilla-app/assets/ui/BankFrame.xml b/crates/benilla-app/assets/ui/BankFrame.xml
deleted file mode 100644
index 9ad0efbb..00000000
--- a/crates/benilla-app/assets/ui/BankFrame.xml
+++ /dev/null
@@ -1,889 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BenillaBankBagButton_OnClick(self)
- BenillaBankBagButton_OnEnter(self)
- GameTooltip:Hide()
- BenillaBankBagButton_Place(self)
- BenillaBankBagButton_Place(self)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BenillaBankBagButton_OnLoad(self, 1)
-
-
-
- BenillaBankBagButton_OnLoad(self, 2)
-
-
-
- BenillaBankBagButton_OnLoad(self, 3)
-
-
-
- BenillaBankBagButton_OnLoad(self, 4)
-
-
-
- BenillaBankBagButton_OnLoad(self, 5)
-
-
-
- BenillaBankBagButton_OnLoad(self, 6)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BankFrame_OnLoad()
- BankFrame_OnEvent(event)
-
- OpenBackpack(); PlaySound("igMainMenuOpen")
- CloseBankBagFrames(); CloseBankFrame(); CloseBackpack(); PlaySound("igMainMenuClose")
-
-
-
-
diff --git a/crates/benilla-app/assets/ui/CharacterFrame.xml b/crates/benilla-app/assets/ui/CharacterFrame.xml
index 42f4d6ca..e9e5251d 100644
--- a/crates/benilla-app/assets/ui/CharacterFrame.xml
+++ b/crates/benilla-app/assets/ui/CharacterFrame.xml
@@ -1024,7 +1024,7 @@
-- reference (PaperDollFrame.xml:20-25 routes OnDragStart/OnReceiveDrag to the same
-- OnClick("LeftButton", ignoreModifiers=1) the plain click uses) — see
-- BenillaPaperDollSlot_OnClick below for the identical routing, the bag slots' own
- -- precedent (BagFrame.xml's BenillaBagSlot_OnClick).
+ -- precedent (the reference's ContainerFrameItemButton_OnClick, sourced since 1751).
button:RegisterForDrag("LeftButton")
else
button:RegisterForClicks("LeftButtonUp")
@@ -1095,7 +1095,7 @@
button.broken = textureName and GetInventoryItemBroken("player", button.invSlotId)
-- A locked slot (its item is up on the cursor, or a send is still pending
-- server-side, decision 0216 §4/0218 §3) dims — the bag slots' own vertex-dim
- -- convention (BagFrame.xml's BenillaBagSlot_Update), applied here instead of the
+ -- convention, applied here instead of the
-- ref's separate SetItemButtonDesaturated call (no engine equivalent — header
-- comment). The transient drag-dim outranks the broken red on the icon.
if IsInventoryItemLocked(button.invSlotId) then
@@ -1272,7 +1272,7 @@
The shared equipment-slot button (ref PaperDollItemSlotButtonTemplate inherits
ItemButtonTemplate, ref-PaperDollFrame.xml:4-38 — ItemButtonTemplate's own XML isn't part of
this session's extraction, so its shape is taken from this codebase's own prior
- reconstruction of it, BagFrame.xml's BenillaBagSlotTemplate: 37x37, a BACKGROUND icon fill,
+ reconstruction of it (BagFrame.xml's since-retired BenillaBagSlotTemplate): 37x37, a BACKGROUND icon fill,
an OVERLAY count, the 64x64 UI-Quickslot2 ring centered (0,-1), UI-Quickslot-Depress pushed,
ButtonHilight-Square ADD highlight — duplicated here rather than cross-file inherited so this
window's slot behavior (UNIT_INVENTORY_CHANGED refresh, tooltip) stays self-contained in one
diff --git a/crates/benilla-app/assets/ui/ItemButtonTemplate.xml b/crates/benilla-app/assets/ui/ItemButtonTemplate.xml
index 20039646..10f1002b 100644
--- a/crates/benilla-app/assets/ui/ItemButtonTemplate.xml
+++ b/crates/benilla-app/assets/ui/ItemButtonTemplate.xml
@@ -70,20 +70,23 @@
never the behaviour; it was two XML declarations, because the reference ships its templates in
`ContainerFrame.xml` and that file is not in the sourced set.
- So the chain costs what it actually costs: this Button, and `ContainerFrameItemButtonTemplate`
- in ContainerFrameAdapters.xml beside the adapter that already wraps one of those very handlers.
- Our own bag windows keep `BenillaBagSlotTemplate` and are untouched — that is our design (0216),
- a thousand lines of it, and this template is the reference's PUBLISHED surface for addons that
- build their own slots. Two things that look alike because they do the same job; only one of them
- is an API.
+ So the chain cost what it actually cost: this Button, and — at the time — a transcribed
+ `ContainerFrameItemButtonTemplate` beside the adapter that already wrapped one of those very
+ handlers. **Decision 1751 then took the last step and made both moot for the windows
+ themselves**: `Interface\FrameXML\ContainerFrame.xml` is a manifest entry now, so the
+ reference's OWN declaration of that template is the live one and the transcription is deleted.
+ This Button stays, because it is the reference's PUBLISHED surface for addons that build their
+ own slots and it has to exist whether or not any window of ours uses it.
- **The bank arm is NOT here, and this is the omission, not an oversight** (1134 §4).
- `BankItemButtonGenericTemplate` inherits `BankItemButtonTemplate` (BankFrame.xml l.-), whose
- handlers — `BankFrameItemButton_OnLoad`, `_OnEvent`, `BankFrameItemButtonGeneric_OnClick` —
- live in `BankFrame.lua`, which is NOT sourced, and whose OnEnter calls `this:GetInventorySlot()`,
- a widget method we do not bind. That is the real unit of work the paragraph above thought it was
- describing. pfUI reaches it only for `bag == -1`, so its bag arm works and its bank arm raises
- where it raises today.
+ **The bank arm resolves too, since 1751's second window.** `BankItemButtonGenericTemplate`
+ inherits `BankItemButtonTemplate`, whose handlers live in `BankFrame.lua` — and that file
+ arrives through `Interface\FrameXML\BankFrame.xml`'s own `