Bulk layout
Select, move, fill and remove several binder pockets at once.
Choose Edit layout above the binder and tap pockets to select them, across pages if you like. The bar shows the count, and tapping a selected pocket deselects it. Up to 256 pockets can change in one edit. Every action works with buttons and the keyboard, without dragging across pages.
Move and add
Move, then tap a pocket outside the selection to move the whole group before it, or choose To the start or To the end. Pockets keep their targets, cards and wants, in their saved relative order.
Add inserts one empty pocket before or after the selection or at the end of the binder, or a whole page of empty pockets (the current grid size) before the selection or at the end. Following pockets shift automatically, including across pages, and changing the grid later repaginates them. A binder holds at most 4,096 pockets.
Fill from spare cards
Select pockets and choose Fill. Fill pockets from spare cards lists each pocket with a Choose a card picker. Spare cards are ones you own that aren't in a pocket yet. Match my spare cards proposes compatible spares for empty targets; it creates no cards or grades. Choose a card or Leave empty for each pocket, then confirm Add N cards. Occupied pockets are kept. Target mismatches, copies already in a pocket and the same copy chosen twice can't be confirmed.
Remove pockets
Select pockets and choose Remove. The review lists the pockets that will go, their targets and explicit wants, and the owned cards that become spare. Every owned card keeps its identity, grading and source details. The pockets after them close up and everything else keeps its order. This does not delete the binder or any owned card, and it can't be undone with one tap: add pockets back and place the cards again, or use Activity recovery where it's supported.
Saving, conflicts and limits
Each action is one atomic request, never several partial saves. A request that is too large is refused whole, so select fewer pockets. If the pockets change while selected, choose Update selection. Fill and Remove need a connection, a complete current read and no unsynced edits.
Edits save on the device first and sync when online, keeping the original operation ID through retries. A lost reply is retried with the same request, and an unknown outcome can't be silently replaced. Device-save failures show Try again and Discard. Done exits editing without discarding accepted edits.
API
Moves, inserts and removals use execute_slot_commands (POST /app/api/v1/storage/slots/commands); fill uses execute_inventory_commands. Both are available over REST and MCP with collection:write and binders:write. See native storage.