It is conceivable that another client also modified other aspects of the resource in the interim. So is it best practice to always include the full representation in the re
Jldupont's comment pointed me in the right direction. I will use ETags to determine whether the resource has been modified, by doing a conditional PUT using the If-match header, as described here.
Then, in case of a conflict, I'll let the user decide whether to fetch the latest representation from the server (GET) or overwrite the changes with his own.
Thus, there is no need to return the full representation in the response to the PUT just to help with conflict detection and resolution.