Build subscription billing that handles failed payments.
Recent revisions are kept. Restoring one creates a new revision.