SimpleCommandRegistry
Minimal in-memory command registry and dispatcher (logic only).
Design note
No IO: platforms handle input and output routing.
No parsing engine: dispatch uses CommandContext.args as already-tokenized input.
No hierarchy assumptions: commands are flat and may implement their own sub-routing.