An adjunct to the "Xmp for all" thing:
Have methods in the Lr Api to read/write xmp transparently, meaning: same way if its embedded as if its in a sidecar, from the point of view of a plugin.
Of course, we need xmp for virtual copies too (if the distinction between virtual and real copies is still being made), but also:
Toss in methods to extract xmp (from dngs or rgb files) into sidecar, and likewise fold xmp sidecar into an image file, and we'd really be having things...
And, to round things out, a pair of save/read metadata functions, that you could specify "force sidecar".
Retrieving data ...