I'd like MM to provide basic memory managed Object, which is identificable and shareable. Resources, inherited from Object, would provide a serialization mechanism for loading and saving from memory/disk. But serialization is used engine-wide; almost all objects are intended to be serialized at any time, even objects that aren't Resources, like vectors or matrices. So, I decided to pull up Object at resource level, incorporating serialization and making an identificable, shareable and serializable abstract object. All engine resources are built upon this base object.
We will have a helper class that makes the dirty job of serialization. Object-derived classes will use polymorphism to implement it, and other structures will have their functions hard-coded in serializer itself.