Rule version lifecycle
The Lifecycle
Transitions Explained
Publication freezes the draft expression and assigns a new release number. An overlapping latest release becomes superseded, whereas disjoint scheduled releases can remain published. Retirement exists as persistence behavior without a public operation.
What Cannot Happen
Released expressions never return to an editable draft; rollback creates another release. A superseded number is not restored in place. Retirement has no outgoing release transition. Draft retirement is unsupported; unreleased definitions can instead be deleted.
Concurrency and Timing
Publication validates before entering the transaction, then locks and compares the draft fingerprint. Competing publications serialize and one succeeds. Effective-range exclusion is implemented by the service rather than a database exclusion constraint.