Use getTypeFactory instead of defaultInstance for Jackson deserialization