There is no reason at all for each ID read/write callbacks to have to deal with this generic, common data explicitely. Generic ID read/write code is the place to handle such data (just like asset, liboverride, etc. data are handled already). Note behavioral change expected here.