A union is encoded by first writing a long
+
A union is encoded by first writing an int
value indicating the zero-based position within the
union of the schema of its value. The value is then
encoded per the indicated schema within the union.
NOTE: Currently for C/C++ implementtions, the positions are practically an int, but theoretically a long. + In reality, we don't expect unions with 215M members