Plans instead of special cases in the code
In a plan, you describe which features are unlocked, which numeric values apply as limits and how many seats a company subscription includes. From this, every app installation receives a traceable entitlement.
A published plan stays unchanged. Changes are created as a new version, which you first check in the preview and then apply. This means terms never change unnoticed for existing customers.