CLI output formatting: ok/error results, tables, JSON.
@spec error(String.t()) :: :ok
@spec print( term(), keyword() ) :: :ok | {:error, term()}