R2.4 framework cleanup. Walks every host the candidate is
currently in a slot of, vacates each slot via the canonical
Slotted.vacate(slot, candidate) chokepoint so witnesses
(onSlotReleased, etc.) fire on the held side. Static
dispatch — a subclass onDestruct that omits
super.onDestruct() cannot bypass this.
findOccupiedSlots returns a freshly-built Map each call;
the inner Set of slot names is a snapshot view. Safe to
mutate the host's live slot map during iteration.
R2.4 framework cleanup. Walks every host the candidate is currently in a slot of, vacates each slot via the canonical
Slotted.vacate(slot, candidate)chokepoint so witnesses (onSlotReleased, etc.) fire on the held side. Static dispatch — a subclassonDestructthat omitssuper.onDestruct()cannot bypass this.findOccupiedSlotsreturns a freshly-built Map each call; the inner Set of slot names is a snapshot view. Safe to mutate the host's live slot map during iteration.