The data types will have a core set of required
components and another set of optional components
that can affect the outcome and semantics of the
operations. For example, the simplest form of
navigation requires simply a “from target position”
and a “to target position”, but can be modified by
sending an optional description of a different cost function.