Shelf Packer — Live Test
LEFT COL: slots 0 (top) · 1 (mid) · 2 (bot) | RIGHT COL: slot 3 (top) · PORTAL (rows 1+2, fixed)
landscape → wide (0+3) | portrait → tall-top (0+1) or tall-bot (1+2) | square → single
landscape → wide (0+3) | portrait → tall-top (0+1) or tall-bot (1+2) | square → single
Event Log
Waiting for first image…
Expected sequence — landscape=wide ONLY when slot 3 is free:
1. Arc (landscape) → portal · shelf empty → slot 3 free → Arc = wide (0+3)
2. Press (landscape) → portal · Arc shifts to slot 1 (slot 3 freed) → Press = wide (0+3)
3. Network (landscape) → portal · Press→slot1, Arc→slot2 (slot 3 freed) → Network = wide (0+3)
4. Radio (square) → portal · Network→slot1, Press→slot2, Arc evicted → Radio = single-0 · slot 3 free but Radio is square
5. App (portrait) → portal · Radio→slot1 (evicted by portrait claiming 0+1) → App = tall-top (0+1) · Network→slot2
6. App Screen (landscape) → portal · App→tall-bot(1+2), Network evicted → slot 3 free → AppScreen = wide (0+3)
7. Vintage Radio (portrait) → portal · AppScreen→slot1(single-1, slot3 freed), App→slot2 evicted → Radio = tall-top (0+1)