Hi,
Recently I was rereading the spec, while making the parser used by C++ more
compliant.
But there's some points that seem vague (at least to me), and I have some
idea about what they mean, but I want to verify my assumptions are true
before fixing the parser to conform:
1) It says that an object is {"type":"typename" ...attributes...}
Does this means that type must always appear first, before other attributes?
(I assume yes) And that after type, the remaining attributes can appear in
any order? (again, I assume yes).
2) "Attributes not defined in this document are permitted as metadata"
It talks about metadata attributes, but doesn't say explicitly what format
is allowed. I assume additional attributes are all of the form:
"attribute_name" : attribute_value
Can we assume attribute_name conforms to the same schema as
record/field/enum names, or is any unicode string allowed as per json?
And can attribute_value can be ANY json value? Or only string?
3) Are field declarations order-dependent (i.e. must "name" always come
before "type", and before "default")? Can objects used as field
declarations also include other metadata attributes?
4) The table for field defaults does not include an entry for "fixed" type.
Is that intentional?
5) And unrelated to spec parsing, "Blocking has not yet been ..." Any news
on that front?
thanks,
Scott