Introduce cast function which casts an enum value to its underlying type
Change kind to be the default value and use the var in MessageField
Why to use the default value is explained at the declaration of the
variable.
Initial implementation of CompositeCommand handling