@Override
public void serialize( @Nonnull JsonGenerator serializeTo, @Nonnull T object, @Nonnull Version formatVersion ) throws IOException, VersionException, JsonProcessingException {
assert isVersionWritable( formatVersion );
SerializingStrategy<T, JsonGenerator, JsonParser, JsonProcessingException> strategy = serializingStrategySupport.findStrategy( object );
Version resolvedVersion = serializingStrategySupport.resolveVersion( strategy, formatVersion );
serializeTo.writeStringField( PROPERTY_SUB_TYPE, strategy.getId() );
strategy.serialize( serializeTo, object, resolvedVersion );
}