src/windowserver/WindowSurfaceInventorySpecs.md
The inventory is the physical WindowServer plane. It retains surfaces which are not switch destinations so AX tab adoption and parent-surface resolution can still reason about the complete app layout.
A whole all-Space scan receives its sequence before leaving main. Targeted event/discovery mutations receive later sequences as they happen. When the full answer lands:
Downstream discovery and physical reevaluation consume the rows accepted by this inventory, not the original snapshot payload. Otherwise a rejected old row could still overwrite the live model after missing the cache.
Window numbers are unique for the login session. Removal tombstones exist to protect against outstanding old queries, not because numeric reuse is expected.