Let's create BinaryObject (BO) interface and a builder interface for it assuming
- BO is a self-described object. Similar to Ignite-2 one with a compact footer.
- BO is unmanaged. SchemaManager doesn't care about its schema at all.
- BO can be deserialized to user class with a specified deserializer.
- BO has a flat structure, cyclic links are not allowed. However, one can restore links on reserialization.
- BO must not have any dependencies on Ignite internals.
- Ignite should provide some base implementation for BO and builder.