Runtime backend that writes rendered frames to an Elixir IO device.
This backend is intentionally small: it writes exactly the rendered text it is given. Interactive terminal concerns such as raw mode, key decoding, cursor visibility, and resize events belong in a terminal backend.
Summary
Types
@type state() :: %{device: IO.device()}