Thanks Red,
I feel that an update should not remove any existing data beside updating those in payload.
Of course then we would be missing an endpoint to remove some data from existing user if we want to
You have more knowledge of most common use scenarios for the plugin so I leave it up to you how to best design it.
But please consider it a feature request for the next version. A better way to distinguish overwriting and updating a user.
When I was trying to find a suitable workaround, I was considering pulling all properties of the user and using this information in the update payload. But I haven't found any easy way to do it.
For the moment I have modified your code to suit my needs any built my version of the plugin. But for the long run I'm kind of cutting myself from future updates.