Storing overrides of potentially heavy data-blocks uses a lot of space in .blend files, for data that is not overridable at all (like mesh geometry, existing action FCurves, etc.).
Write, store 'empty' versions of those override data-blocks, instead of complete ones.
- Saves a lot of space in .blend files using overrides.
- Makes saving and loading such files slightly faster.
- Those files are not 'autonomous' anymore, if the linked datablock is not available the override will show broken or not at all.
Note that technically, this should be fairly easy to implement (although some IDs, like actions or shape keys, may be less trivial since we ultimately want to allow creating or replacing whole shapes/FCurves in those). Also CC'ing the UI team, since this is more of an UX decision to make than anything else?
Identified Affected ID Types
- Meshes (other obdata types are probably small enough to not be worth the effort here)
- Any other ID type allowing to embed big-ish files?