Objective
Render server-calculated drop rates and expected outcomes consistently across shop and pack-opening experiences.Data sources
GET /api/productspack metadata fieldsGET /api/user/packsowned pack metadata fieldsGET /api/packs/{id}/oddsoptional detailed odds payload
Key client areas
- API contracts and pack metadata typing
- Shop and pack-detail modal disclosure rendering
- Pack-opening modal pre-open/reveal disclosure visibility
- Open-action error surfacing and fallback messaging
UX requirements
- Odds are visible before open, or one-tap toggleable.
- Back/close controls are always available in modal flows.
- Open failures display explicit actionable messages.
- Guarantee copy renders only when supplied by backend.
QA checklist
- Odds panel appears reliably in relevant surfaces.
- Show/hide disclosure controls function in all modal states.
- Modal close/back controls remain available in reveal flow.
- API errors appear as user-facing messages, not silent failures.
