The declared type name, unique within the declaring module. A union of bare literals has no
name, so its id is the values joined by |.
The members, in declaration order. A union of bare literals names nothing, so each name is the value as text.
Whether the members are numbers or strings. The two never mix.
The JSON form of an IEnum.