OptionalconstructorFor simplicity, when isBareUnion or isBareType is true, this field contains the constructor ID of the type being referenced.
May still be undefined if the constructor ID is not known.
OptionalisWhether type is in fact a "bare" type (a %-prefixed type)
The difference between T and %T is that in the latter case
constructor ID of T is omitted.
The difference with isBareUnion is in the kind of type.
For isBareUnion, type is a name of a union (e.g. Message),
for isBareType it is a name of a type (e.g. message).
OptionalisWhether type is in fact a "bare" type (a %-prefixed type) from within a union.
The difference between T and %T is that in the latter case
constructor ID of T is omitted.
Note: If there are more than 1 types within that union, this syntax is not valid.
OptionalisWhether type is in fact a vector (a bare vector, not to be confused with Vector).
The difference between Vector<T> and vector<T> is that in the latter case
constructor ID of the vector itself (1cb5c415) is omitted
OptionalisWhether type is in fact a Vector
OptionalpredicatePredicate of the argument
Modifiers for TlArgument.type