If code == STRUCT, then structType provides type information for the struct's fields.
TypeCode is used as part of Type to indicate the type of a Cloud Spanner value.
Each legal value of a type can be encoded to or decoded from a JSON value, using the encodings described below. All Cloud Spanner values can be null, regardless of type; nulls are always encoded as a JSON null.
Encoded as JSON true or false.
Encoded as string, in decimal format.
Encoded as number, or the strings "NaN", "Infinity", or "-Infinity".
Encoded as string in RFC 3339 timestamp format. The time zone must be present, and must be "Z".
If the schema has the column option allow_commit_timestamp=true, the placeholder string "spanner.commit_timestamp()" can be used to instruct the system to insert the commit timestamp associated with the transaction commit.
Encoded as string in RFC 3339 date format.
Encoded as string.
Encoded as a base64-encoded string, as described in RFC 4648, section 4.
Encoded as list, where the list elements are represented according to arrayElementType.