When a string representing a union data type is validated, the string
is validated against each member type, in the order they are
specified in the "type" statement, until a match is found.
Thus with that type definition, a default value will only ever match the string member, never int32. The corresponding text in https://tools.ietf.org/html/rfc7950#section-9.12 is a little different, because it takes into consideration that in the JSON encoding, strings and integers have different representation, and it is thus possible for a value to match the int32 member, while for XML encoding, a value can only match the string member.