πŸ§ͺ MOCK β€” shared plan card Β· Memberships screen + Booking-Widget SELL picker 🏠 Hub Build Plan Builder Mock Plan Card Slice Tracker

The plan card shared component

One card, two homes: the admin Memberships screen and the widget builder's SELL picker. Thesis: filter on facts, not labels. A plan has no single "type" β€” it's a bundle of orthogonal facts (cycle, credits, agreement, group move, renewal). Human labels like trial / membership / 10-pack are emergent combinations, and the free-text Category column below is where labels went to rot. All 482 rows are the real Zone 6 dev plans.

Derived KIND β€” the badge rules

Evaluated top-down, first match wins. This is a proposal to react to, not gospel β€” reorder, tighten, or veto any rule. Counts are live from the 482 plans.
badge = first matching rule✎ propose an edit
Backend ready: plan/list now filters server-side on subtype / billingCycleType / amount / startingCredits / hasMoveToGroup (AB#30032). This mock filters the same facts client-side over the full embedded dataset.