MembershipTierRepository
Data access for the tiers sold by the built-in membership system. A tier is a name, a slug, a trial length, a description, an active flag, and a collection of billing cadences.
The cadences are a separate collection reached through MembershipPriceRepository, which this class takes as an optional constructor dependency and cascades through. Reads and writes both accept and return a prices[] sub-array, so most callers never touch the price repository directly.