Unions are structures that can take different formats according to the values of a Discriminator.

Like Classes, Unions have Properties (called Union Properties). Union Properties might (or have to) be associated to possible Values of the Union Discriminator.

Instances of a given Union type do not have Values for all Properties defined in the Union but only for the ones that are “active” for a given Discriminator Value.