caching of the writer objects per type as those are expensive (per documentation)
pooling of the buffers passed into the serialization writer (typical byte array buffer pool)
TCacheValue being object always causes all kinds of issues
Basic unit tests
Polymorphism testing / impl for derived types
Configuration json schema update for known serializers
Goal for the different implementations would be to have different extension methods for the ConfigurationBuilder to let the user choose which Bond serializer to use.
The underlying implementation will probably be able to share 90% of the code... edit: done inc842400
In general, Bond serialization has a lot of limitations compared to Json or even Protobuf. Like, it cannot serialize primitives (string, int), only classes representing a schema.