pub(crate) fn first_free_slot(occupied: &HashSet<PinSlot>) -> PinSlotExpand description
The first slot the owner’s pins leave free, scanning top-down and West
before East. Total: each offset offers two slots, so some slot at an
offset in 0..=n escapes n occupants.
Shared with the clipboard: a paste slots its pins by the same policy a stamp does, group at a time.