Packaging
One core contract, eight optional modules.
Optional modules are assigned through billing plans and frozen into a tenant's entitlement snapshot. Editing a plan does not silently change a live partner — it is re-applied deliberately.
Optional modules
How entitlements behave
Assigned by plan
A billing plan carries the module set. Assigning the plan to a tenant freezes that set into the tenant's assignment snapshot.
Changed deliberately
Editing a plan does not mutate live tenants. A plan is re-applied deliberately — to one tenant, or in bulk to every active tenant bound to it.
Enforced twice
A disabled module is removed from panel navigation and closed at the API route level, so it is genuinely off rather than merely hidden.