Whoops thanks, fixed the link!
I realized that a major problem with the user space approach is that if you try to update a field with the value null, it will have no effect, which is not what a user would expect.
I don’t think it’s possible to solve this since at the point where the user space code is running, the information about which fields were explicitly specified is lost. I’ve posted some more context on the PR, I’m going to rework it a bit but plan to continue with the update* approach.