function password (list, path, options) {
	// Apply default and enforced options (you can't sort on password fields)
	options = Object.assign({}, defaultOptions, options, { nosort: false });

	this._nativeType = String;
	this._underscoreMethods = ['format', 'compare'];
	this._fixedSize = 'full';

	password.super_.call(this, list, path, options);

	for (var key in this.options.complexity) {
		if ({}.hasOwnProperty.call(this.options.complexity, key)) {
			if (key in regexChunk !== key in this.options.complexity) {
				throw new Error('FieldType.Password: options.complexity - option does not exist.');
			}
			if (typeof this.options.complexity[key] !== 'boolean') {
				throw new Error('FieldType.Password: options.complexity - Value must be boolean.');
			}
		}
	}
	if (this.options.max && this.options.max < this.options.min) {
		throw new Error('FieldType.Password: options - maximum password length cannot be less than the minimum length.');
	}
}
password FieldType Constructor
@extends Field
@api public