class Console::Output::Terminal

def initialize(output, verbose: nil, start_at: Terminal.start_at!, format: nil, **options)

def initialize(output, verbose: nil, start_at: Terminal.start_at!, format: nil, **options)
	@io = output
	@start_at = start_at
	
	@terminal = format.nil? ? Console::Terminal.for(@io) : format.new(@io)
	
	if verbose.nil?
		@verbose = !@terminal.colors?
	else
		@verbose = verbose
	end
	
	@terminal[:logger_suffix] ||= @terminal.style(:white, nil, :faint)
	@terminal[:subject] ||= @terminal.style(nil, nil, :bold)
	@terminal[:debug] = @terminal.style(:cyan)
	@terminal[:info] = @terminal.style(:green)
	@terminal[:warn] = @terminal.style(:yellow)
	@terminal[:error] = @terminal.style(:red)
	@terminal[:fatal] = @terminal[:error]
	
	@terminal[:annotation] = @terminal.reset
	@terminal[:value] = @terminal.style(:blue)
	
	@formatters = {}
	self.register_formatters
end