Classes for creation and execution of primitives. When engine want
to actully perform some action or get value of the sense, it askes
some IWorkExecutor to do it.
StateWorkExecutor (used by Yaposh) takes instances of
IAction and ISense and executes them. It
is not very comfortable to always implement interface, so
user should use one of abstract classes provided by this package:
IAction with access to context.ISense with access to context.Yaposh is using automatic instantiation of primitives from fully qualified names found in the plan.
Automatic instantiation requires standard constructor, thus all primitives must have public constructor with one parameter - subclass of type Context (same one as in generic parameter of IAction/ISense).
All classes of primitives (the ones overriding IAction / ISense) should be annotated with PrimitiveInfo. The annotation
provides useful information to the editor.