This is the main build block for all objects, it contains a reference to the assosicated xml object (loaded from the metadata) and is also Annotatable, Workable, FileHolder, Stateful, Propogatable, Ownable.
Is a ModelObject that is unqiuely named (such as a workspace or module or project or repository or ...)
Can contain a list of 'info', 'warn', 'error' text messages.
Can be worked on (typically by launched commands)
Can contain a list of file references (directories or files).
Holds 'state' (succeeded, failed) and 'reason' (if not Unset, e.g. 'build failed').
Can propogate state changes.
Is owned by something, and knows who it's owner is