{"lexicon":1,"id":"money.atmosphere.payment.recurringEnd","defs":{"main":{"type":"record","key":"any","description":"EXPERIMENTAL DRAFT — unpublished append-only end evidence for one settled recurring enrollment. Authored only by that enrollment's committed broker, in a collection distinct from payment lifecycle: an end never changes the money's settled state, grants access, or implies a paid-through period. Revision 1 is ended at the enrollment proof's canonical 13-character TID K with no previous. Successors alternate ended and end-withdrawn, retain the exact enrollment proof, and require the exact preceding revision URI/CID. end-withdrawn corrects an erroneous assertion; a later genuine terminal outcome can append ended without resurrecting the old subscription. Keys use K at 1, K.<revision> at 2..16, and K.s<segment>.<revision> thereafter with segment=floor((revision-1)/16)+1, canonical decimal components, safe-integer revisions and a 47-byte maximum. No mutation, skipped revision, reason code or automatic historical backfill is admitted. Complete R16 plus next-key windows, qualified prior history and current-source evidence are required by COMMITMENT_PROFILE.md; absence never proves a live series. ATM publication additionally requires authenticated terminal evidence and the enrollment's frozen continuing-publication consent. This schema does not open any writer or publication gate.","record":{"type":"object","required":["proof","status","revision"],"properties":{"proof":{"type":"ref","ref":"com.atproto.repo.strongRef","description":"Exact enrollment broker proof URI and canonical repository-record CID. Every revision binds the same proof; its authenticated author and URI authority equal the committed broker. The underlying qualified statement must be a genuinely settled recurringReceipt or admitted guest recurring-enrollment, never a trial, SetupIntent or ordinary one-time payment."},"previous":{"type":"ref","ref":"com.atproto.repo.strongRef","description":"Exact immediately preceding recurringEnd URI/CID on this broker/enrollment path. Forbidden at revision 1 and required at revision >=2; the profile enforces this conditional, same proof and revision-1. The producer confirms exact read-back before handing off any successor."},"status":{"type":"string","maxLength":64,"knownValues":["ended","end-withdrawn"],"description":"ended asserts an actual terminal series outcome, not a cancel-at-period-end request, failed/past-due payment or pause. end-withdrawn withdraws the immediately preceding erroneous end; it does not assert active service. Genesis must be ended and successors must alternate; unknown values fail closed."},"revision":{"type":"integer","minimum":1,"maximum":9007199254740991,"description":"Dense immutable per-enrollment end-evidence revision. Never reuse a consumed revision or compare revision numbers from different paths. There is no additional lifetime correction cap."},"endedAt":{"type":"string","minLength":10,"maxLength":10,"description":"Actual terminal-outcome date at UTC date precision, exactly a valid proleptic Gregorian YYYY-MM-DD calendar date. Required only for ended and forbidden for end-withdrawn; the profile enforces this conditional and the full date grammar. It is not the cancel-request date or a claim of cryptographic signature time."}}}}}}