- Add ItemRepository.MoveToEscrow: upserts the item's current state and adds its listing, mail or detention row in one transaction, refusing a row another holder already has
- These hand-offs only updated an existing row, so an item made since the owner's last save had no row to update and vanished
- AuctionManager.Sell lists through it and removes the item and takes the deposit only after it commits, replacing the manual undo and refund
- MailboxManager.DeliverAuctionItem delivers through it, so a booth item bought through the auction house arrives even before the seller's next save
- ConfiscatorManager durability and PK detains use it, so equipment made since the last save can be confiscated
- Keep bot equipment out of PK detention, which the missing row used to block