Versioning changes overwrite and delete behavior. A new write can preserve earlier versions, while a normal delete adds a marker that hides the key from current-object listing. Requesting a specific version is different from requesting the current key, and permanently deleting a version is different from adding a delete marker. Keep those operations separate during recovery.
Retention rules also have a time dimension. The local training clock advances in days so you can observe transitions and expiration without waiting. Current-object age and time since a version became noncurrent are different clocks. The supplied history records both. The final task transitions only reports/ to the named storage class and expires an old noncurrent version while preserving the current version and an unrelated inbox object. These are fictional retention settings, not current pricing claims.