Writer for building TOON output incrementally with efficient indentation handling.
@type t() :: %ToonEx.Encode.Writer{ indent_cache: map(), indent_string: String.t(), lines: [iodata()] }
@spec to_iodata(t()) :: iodata()
@spec to_lines(t()) :: [iodata()]
@spec to_string(t()) :: String.t()