Credit lifecycle
The Lifecycle
Applications and refunds determine open and used; reservations reduce availability without determining status. Expired is declared but unavailable as an implemented transition.
Transitions Explained
The transition rows identify the initiating action, eligibility checks, resulting records and responsible caller. They retain the pinned evidence for each path.
What Cannot Happen
The invalid-transition rows describe final-state protection and unsupported paths; command eligibility remains distinct from the declared state vocabulary.
Concurrency and Timing
Database balance bounds and ordered credit locks coordinate competing applications. Expiry is evaluated by direct application without a scheduled state change; settlement currently omits that check.