{"lexicon":1,"id":"money.atmosphere.membership.tier","defs":{"main":{"type":"record","description":"Public ATM membership tier for a creator membership program. This is the portable tier/access target; app-specific badges, layout, welcome messages, and private member content belong in sidecar records.","key":"any","record":{"type":"object","required":["creator","program","title","createdAt"],"properties":{"creator":{"type":"string","format":"did","description":"DID of the creator or project whose tier this is."},"program":{"type":"ref","ref":"com.atproto.repo.strongRef","description":"Parent money.atmosphere.membership.program record for this tier."},"title":{"type":"string","minLength":1,"maxGraphemes":100,"maxLength":1000,"description":"Public tier name."},"description":{"type":"string","maxGraphemes":1000,"maxLength":10000,"description":"Public description of this tier. Do not include private URLs, member-only content, or customer-specific instructions."},"benefits":{"type":"array","maxLength":24,"items":{"type":"ref","ref":"#benefit"},"description":"Public benefit labels only. Access enforcement comes from active payment state, not this display list."},"product":{"type":"ref","ref":"com.atproto.repo.strongRef","description":"Optional money.atmosphere.product record with kind=membership for this tier."},"price":{"type":"ref","ref":"com.atproto.repo.strongRef","description":"Optional recurring money.atmosphere.price record for this tier."},"unitAmount":{"type":"integer","minimum":0,"description":"Display amount in the smallest unit of currency, matching the linked price when present."},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"Lowercase ISO 4217 currency code."},"rank":{"type":"integer","minimum":0,"description":"Optional access rank within the program. Higher ranks may include lower-rank benefits when an app chooses tier-or-above semantics; absence means exact-tier semantics."},"sortOrder":{"type":"integer","minimum":0,"description":"Creator-controlled display order."},"archived":{"type":"boolean","description":"Whether this tier is no longer available for new members. Missing means false."},"archivedAt":{"type":"string","format":"datetime"},"createdAt":{"type":"string","format":"datetime","description":"When this tier record was created."},"updatedAt":{"type":"string","format":"datetime","description":"When this tier record was last updated."}}}},"benefit":{"type":"object","required":["label"],"properties":{"kind":{"type":"string","maxLength":80,"description":"Optional app-neutral benefit category. Apps may ignore unknown values."},"label":{"type":"string","minLength":1,"maxGraphemes":120,"maxLength":1200,"description":"Public benefit label."}}}}}