Design install and browser modes
For a technical producer, this catalog design prototype should make every player action and result shown in the game easy to evaluate. Write how to define item identity, value, Koin price, preview, and ownership before checkout. Map preview, confirmation, a cancelled choice, an insufficient balance, pending, success, delivery, owned, and reload. Give every failure a safe next action. Try the flow in a regular tab and an installed presentation. Navigation, focus, and recovery should remain understandable even when browser controls are reduced or the app resumes from suspension.
Treat offline state explicitly
An unavailable connection must not look like a completed purchase. Explain when the action cannot continue, preserve the game state, and provide a safe retry after connectivity returns.
Do not imply native entitlement
PWA installation does not create platform IAP ownership. Durable identity, cross-device state, refunds, billing integration, and app-store policy remain outside the browser prototype.
Name every state and owner
Separate preview, confirmation, pending, success, delivery, owned, insufficient Koin, cancel, interrupted, and reopened states. Assign later production work for identity, persistence, native billing, security, refunds, policy, and monitoring.
Define idempotent recovery
Repeated confirmation, a slow response, navigation during delivery, and reopening must resolve to one result. Record which state is authoritative and how the player can safely retry without another grant or Koin deduction.
Turn the prototype into tickets
Capture the visible behavior first, then create implementation tasks with expected examples for each transition and platform boundary. Do not translate a working browser interaction into an unsupported claim that backend commerce is complete.
Compare items consistently
Use the same fields for every offer: preview, benefit, ownership or duration, full price in Koin, and owned state. Consistent cards make differences easier to understand. Test that behavior using PWA games. PWA packaging does not create native platform IAP entitlements.
Keep the first catalog small
Start with one to three clearly different items. A large grid makes it harder to find unclear value, duplicated promises, and missing delivery states. Test that behavior using PWA games. PWA packaging does not create native platform IAP entitlements.
Design owned and unavailable states
A catalog also needs sold, owned, equipped, and unavailable presentations. Do not leave a purchased item looking buyable after reload. Test that behavior using PWA games. PWA packaging does not create native platform IAP entitlements.