Will avoid having to reshuffle all ID types' DNA alignement when modifying runtime data, avoid writing garbage data in blendfile, allow usage of non-trivial C++ data in that runtime struct, etc. NOTE: Trigger for this refactor was this commit in the upcoming packed data PR (!133801): https://projects.blender.org/blender/blender/commit/34a2ad81fbdcf7f Co-authored-by: Brecht Van Lommel <brecht@blender.org> Pull Request: https://projects.blender.org/blender/blender/pulls/146046