playr-app: what playr's Rust frontends share.
A frontend draws and reads input its own way; this crate holds what it
means. [action::Action] is everything a key or a : command can do, and
[dispatch::dispatch] does it, through a [dispatch::Frontend] the
frontend implements over its own cursors and prompts. The : command
language and key bindings over a key type of its own are here too, with
the [keys] tables of the settings file, so a terminal and a GUI read the
same commands and bindings. [model::Model] is the interface's state,
which both frontends draw, and [message::text] words every message.
docs/architecture.md sets out the design.