Collectors want to track which items they own and which they want:
- Ownership tracking - Mark cards as owned/not owned
- Wishlist - Flag cards to acquire
- Progress display - Show collection completion percentage
- Quick toggling - Fast interaction without opening modals
Create a Collection mechanic with simple toggle actions on each card.
Normal Card Owned Card Wishlisted Card
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ [+] │ │ [✓] │ │ [♡] │
│ [Image] │ │ [Image] │ │ [Image] │
│ │ │ │ │ │
│ Title │ │ Title │ │ Title │
└─────────────────┘ └─────────────────┘ └─────────────────┘
Click → Cycle: Not Owned → Owned → Wishlist → Not Owned
Or use overlay buttons:
- Click [+] → Mark owned
- Click [✓] → Remove from owned
- Click [♡] → Add to wishlist
┌─────────────────────────────────────────────────────────────┐
│ Collection Progress │
│ ████████████░░░░░░░░░░░░ 45/100 (45%) │
│ │
│ Owned: 45 Wishlist: 12 Remaining: 43 │
└─────────────────────────────────────────────────────────────┘
- Create
src/mechanics/collection/index.ts - Define
CollectionMechanicManifest - Create
CollectionMechanicclass - Register factory with mechanic registry
- Create
src/mechanics/collection/store.ts - Track:
ownedIds: Set<string>,wishlistIds: Set<string> - Implement
toggleOwned(id)action - Implement
toggleWishlist(id)action - Persist state to localStorage
- Create
CollectionCardOverlay.tsx - Show ownership badge (checkmark for owned)
- Show wishlist badge (heart for wishlisted)
- Position badge in top-right corner
- Add click handler for quick toggle
- Create
CollectionGridOverlay.tsx - Calculate and display progress bar
- Show counts: owned, wishlist, remaining
- Show percentage completion
- Position at top of grid
- Add toggle buttons to card overlay
- Support keyboard shortcuts (O for owned, W for wishlist)
- Batch actions (select multiple, mark all owned)
- Export collection state as JSON
- Import collection state from JSON
- Merge or replace options
- Can mark cards as owned
- Can add cards to wishlist
- Owned/wishlist state persists
- Progress bar shows completion
- Quick toggle works from card
- Collection exportable
- F-053: Mechanic Plugin Registry
- F-054: Mechanic Context Provider
- F-055: Mechanic Overlay System
Medium - State tracking with UI overlays.
- Unit tests for state management
- Component tests for overlays
- Test persistence across sessions
- Test export/import round-trip
- F-055: Mechanic Overlay System
- R-005: Gaming Mechanics State Patterns
- ADR-017: Mechanic State Management
Status: Complete