Thanks @saranrapjs for sharing that use-case. That is a good reason to preserve transaction steps.
I have been looking at some of the projects that compute diffs between states and they didn’t seem suitable. You are right that this should be easily doable by leveraging object identity. I will look into this tomorrow.