Support for custom types with custom de/serializers. Field types are replaced with two-stage serialization: first to a "simple" type (primitive/string), then to json. The idea is that users only need to provide the transformation from their object to the simple type.