help generation todo.
do not document the special forms of the
booleans
document aliases, group them with the main option!
Make chart of v-type heuristics to select one when not specified by
the user.
Similarly make chart for default value heuristics
input - validate default: str! (new, change)
option - validate default boolean! (as-is)
state - validate default as input
New attribute:
force - Force value (and when-complete action)
before dispatching to the command prefix of
the actor.
Extended common handling
Key *all* is special to the parameter DSL, always and automatically
'use'd when present, as first action. For common options, common
state, possibly forced. (s.a.).
Classes
Main xo is wrapper/singleton/enseble around officer.
actor base class, instances can do actions
- private derived. can do only/exactly one action.
knows how parse and handle argument specs
- officer derived. can do multiple actions. but not by
itself, only through delegation to other
officers or privates.
actors have a name (for use in prompts).
actors know their boss (chain of command).
actors (or just officers?) have associative data store for
sharing of knowledge in the chain. -- Use for fragments of
argument specs.
the derived actors parse their specs only when needed,
i.e. defered until actually called on in some way. Keeps
startup time low, unfolding only the parts of the command
hierarchy required by the system.
Argument Spec and Values
config base class. collection of arguments.
in-memory representation of an argument spec.
value base class for a single argument.
configuration and value.
constructed from argument spec.
- input derived. mandatory argument.
filled from parameters in order.
- optional derived. optional argument.
filled from parameters in order.
- option derived. option argument.
- invisible derived. argument not visible to the user.
All value instances have access to the configuration instance
they are part of. Allows them to have access to all other
values, be they arguments, options, or invisible.