Catalog
Verticals and categories
Curate the catalog providers pick from. JSON-Schema attributes auto-render the offering form.
/admin/verticals: full CRUD for ProductType. Each vertical has key (immutable), name, description, lucide icon, active flag, and an attributeSchema (JSON Schema describing the fields offerings of this vertical carry). Adding a new vertical instantly gives providers the right form when they create an offering — no frontend changes.
/admin/categories: free-text categories that group offerings within a vertical. A category may be vertical-specific (productTypeKey set) or platform-wide (productTypeKey=null).
Starter packs
A starter pack bundles a ProductType + matching categories. /admin/starter-packs ships six built-ins (Taxi, Service, Equipment, Class, Event, Subscription). One-click Apply seeds the vertical + categories on the platform — idempotent.
Editing a built-in starter pack flips it to "custom" so future migrations don't clobber your changes.