A pointer, not a redeploy
A version is a server-assigned integer. The client does not choose it: the server reads the current record and increments. Once written, a version is immutable — a correction is a new version, never an edit of an old one.
An artifact serves exactly one of them at a time. A new deploy publishes itself, so deploying feels like deploying; publishing any other version is a separate, deliberate act that moves a pointer at something already sitting in storage. Nothing is rebuilt, so there is no slower, riskier path back than the one you took forward.