class Samovar::Option

def initialize(flags, description, key: nil, default: nil, value: nil, type: nil, required: false, &block)

def initialize(flags, description, key: nil, default: nil, value: nil, type: nil, required: false, &block)
	@flags = Flags.new(flags)
	@description = description
	
	if key
		@key = key
	else
		@key = @flags.first.key
	end
	
	@default = default
	
	# If the value is given, it overrides the user specified input.
	@value = value
	@value ||= true if @flags.boolean?
	
	@type = type
	@required = required
	@block = block
end