The fixes were around the encode/decode of fields specified as
"multiple=true". The spec states that multiple values are encoded as a
list annotated with a descriptor of "true". The interop issue came up
when testing interop between my C implementation and the python code.
I noticed that the python code was annoting a null value with true.
This isn't something the spec states, so I modified the code to not
annotate the null value in the case that there are no values and
instead only annotate lists of values.
I think there is probably a clarification required in the spec here on
how to handle this case. I'll fill a JIRA.