Consecutive retryable billing failures: bumped on a retryable failure, reset to 0 on a successful renewal; at config.maxSubscriptionAttempts the sweep lapses the subscription. Adapters must round-trip this field through every save/load path.
Which billing period number it's on (increments each renewal).
What each renewal charges.
The first-charge posting this subscription opened with, whose hashed metadata seals the subscription id, user, seller, and price — the renewal sweep re-proves the row against it before every charge, and a row that fails that proof faults instead of charging. Required, because a nullable anchor would be an anchor the attacker can remove.
The stored state of one recurring subscription. The renewal sweep re-charges it every
periodMsfromnextDueAtuntil it cancels or lapses.