Writes command output (the data channel).
Printable text (ANSI permitted) or raw bytes.
Writes error-stream output (the err channel).
Printable text (ANSI permitted) or raw bytes.
Sends a typed event to the command's origin surface, while the command runs.
The kind names what the data is (games.trek.state); a surface shows
the kinds it knows and drops the rest. Optional: a sink that predates
events, or has nowhere to send one, leaves it out, and a command sends
with sink.event_write?.(kind, data).
What the data is.
The event, shaped by its kind; it must survive JSON.
Writes an ephemeral status line (the status channel).
Transient text; consumers may overwrite or drop it.
Sink that writes both channels to the process's standard output.
This is the CLI host's sink and the default, preserving the shell's historical behavior exactly.