Skip to main content

Feature roadmap

Fourteen deliveries, cut along independently shippable increments rather than along tables. Six of them make F1a. All fourteen are written, in English and Spanish, and every one is at 0.1.0 / draft with its own open questions listed. None is approved yet: approval is a decision, and the open questions are exactly the decisions that have to be made first. Spanish mirror: ../../es/modules/loyalty/. English is authoritative.

The cut, explained

The decomposition follows one test: can this ship alone and be worth something?
  • Ledger and balances are separate (0002, 0003) because the ledger is the source of truth and the projection is a performance decision. They fail differently and are verified differently.
  • Rules engine (0004) is independent of rewards (0005): a program can award points long before it has a catalog to spend them on.
  • Redemptions (0006) needs both, which is why it closes F1a.
  • Stacking (0008) is deliberately not inside coupons — it is a policy layer over redemptions and coupons together, and forcing it into either one would have produced a spec nobody could approve.

Extension points reserved in F1

Present from the first migration, deliberately unused, so enabling them later needs zero data migration: