A set of "extra" components (sub-components) that are not a standard part
of a field (component) but have been added at runtime. The purpose is to allow
processing of locally-defined extensions to datatypes without the need for a
custom message definition.
Extra components are not treated uniformly with standard components (e.g.
they are not accessible through methods like Primitive.getValue() and
Composite.getComponent()). To do so would blur the distinction between
primitive and composite types (i.e. leaf and non-leaf nodes), which seems
nice and polymorphic for a moment but actually isn't helpful.
Furthermore, the auto-generated classes do not define accessors to extra
components, because they are meant to encourage and enforce use of the standard
message structure -- stepping outside the standard structure must be
Note that a uniformity of access to standard and extra components is provided