It seems tricky to add a nullable field with a default (for compatibility
with previous versions). I find that the type of the default value must be
declared first in the union. For example, this works:
{"name":"myField", "type":["int", "null"], "default": 3}
But this doesn't:
{"name":"myField", "type":["null", "int"], "default": 3}
When I resolve the latter from a writer's schema that doesn't declare the
field, I get the value null, not 3. There's a similar problem with a null
default: the resolved value is zero, not null, if "int" comes first in the
union.
Am I approaching this wrong? I was hoping the resolver would pick the type
that matches the default value. It seems unambiguous, in this case.
I'm using the Java implementation.
- John Kristian