docs: function Option(options) {
  	if (options === undefined) {
  		options = {};
  	}
  	this.name = options.name;
  	this.description = options.description;
  	this.shortFlag = options.shortFlag;
  	this.longFlag = options.longFlag;
  	this.type = options.type || 'string';
  	this.length = (options.length !== undefined) ? options.length : 1;
  	this.required = (options.required !== undefined) ? options.required : true;
  	this.default = options.default;
  
  	if(this.length === 0) {
  		throw new ConfigError("A length of 0 doesn't make sense for an option, use a flag instead or set required to false. Option " + this.name);
  	}
  	if (this.shortFlag != null && (this.shortFlag.length != 2 || this.shortFlag[0] !== '-')) {
  		throw new InvalidInputError("The option: " + this.name + "'s short property must start with a '-' and be one more character.");
  	}
  
  	if (this.longFlag != null && (this.longFlag.length <= 2 || this.longFlag.substr(0, 2) !== '--')) {
  		throw new InvalidInputError("The option: " + this.name + "'s long property must start with '--' and be one or more character");
  	}
  
  	if ((this.shortFlag == null || this.shortFlag.length === 0) && (this.longFlag == null || this.longFlag.length === 0)) {
  		throw new InvalidInputError("The option: " + this.name + "'s must have a shortFlag or longFlag property");
  	}
  }