Unit kind availability
The Lifecycle
Transitions Explained
Creation defaults to active but can explicitly create an inactive kind. Retirement keeps current placements intact. Full replacement can reopen the kind, including accidentally when activity is omitted.
What Cannot Happen
Deletion cannot bypass protected references. Replacement cannot remove a parent permission or root permission on which a current placement depends.
Concurrency and Timing
Version checks protect competing kind changes, while placement operations use a separate tree lock. The examined code does not prove that every kind change and placement sees one serialized ordering.