Rollback safety limits when an upgraded Solidity contract changes its storage layout
Goal I am designing an upgrade path for an OpenZeppelin-style upgradeable proxy and want to understand the exact limits of safe rollback after a storage schema change. The documented rule is append-only: new state variables go after existing ones, order and types are preserved, and storage gaps reserve slots in base contracts. Constraint There is no on-chain