Phase 2 of the NIX Loyalty Platform (Narong’s priority) — the gamified Spin feature, exclusive to Get Coffee via a per-tenant flag. A paid POS order earns spin chances; spinning runs a server-side crypto-secure %-weighted draw over the merchant’s reward pool and grants points (straight to the ledger) or a coupon.
cb971c1, loyalty backend 41f14ce (redeployed to Fly, migration 0002). POST /spin/spin — a crypto-secure weighted draw with a
never-zero guarantee (the leftover % below 100 falls to a consolation reward; if none is
set, the lowest reward — a spin is never empty), excluding locked/inactive entries. Points rewards post
to the ledger immediately; coupon rewards mint a coupon for POS fulfilment. /pos/earn is now
config-driven (Chance Conversion Mode + per-product 1-or-none). Gate 2 evidence (demo, logged-in browser):

