func (cb ConstraintBuilder) Required(properties ...string) ConstraintBuilder {
	cb[KeyRequired] = properties
	return cb
}
Required adds a constraint that the object must have at least these keys.
package validation
const (
	KeyDefault          = "default"
	KeyExamples         = "examples"
	KeyDescription      = "description"
	KeyTitle            = "title"
	KeyType             = "type"
	KeyConst            = "const"
	KeyEnum             = "enum"
	KeyMultipleOf       = "multipleOf"
	KeyMaximum          = "maximum"
	KeyMinimum          = "minimum"
	KeyExclusiveMaximum = "exclusiveMaximum"
	KeyExclusiveMinimum = "exclusiveMinimum"
	KeyMaxLength        = "maxLength"
	KeyMinLength        = "minLength"
	KeyPattern          = "pattern"
	KeyMaxItems         = "maxItems"
	KeyMinItems         = "minItems"
	KeyMaxProperties    = "maxProperties"
	KeyMinProperties    = "minProperties"
	KeyRequired         = "required"
	KeyPropertyNames    = "propertyNames"
)
func NewConstraintBuilder() ConstraintBuilder {
	return ConstraintBuilder{}
}
type ConstraintBuilder map[string]interface{}
func (cb ConstraintBuilder) Type(t string) ConstraintBuilder {
	cb[KeyType] = t
	return cb
}
func (cb ConstraintBuilder) Description(desc string) ConstraintBuilder {
	cb[KeyDescription] = desc
	return cb
}
func (cb ConstraintBuilder) Title(title string) ConstraintBuilder {
	cb[KeyTitle] = title
	return cb
}
func (cb ConstraintBuilder) Examples(ex ...interface{}) ConstraintBuilder {
	cb[KeyExamples] = ex
	return cb
}
func (cb ConstraintBuilder) Const(value interface{}) ConstraintBuilder {
	cb[KeyConst] = value
	return cb
}
func (cb ConstraintBuilder) Enum(value ...interface{}) ConstraintBuilder {
	cb[KeyEnum] = value
	return cb
}
func (cb ConstraintBuilder) MultipleOf(value int) ConstraintBuilder {
	cb[KeyMultipleOf] = value
	return cb
}
func (cb ConstraintBuilder) Minimum(value int) ConstraintBuilder {
	cb[KeyMinimum] = value
	return cb
}
func (cb ConstraintBuilder) Maximum(value int) ConstraintBuilder {
	cb[KeyMaximum] = value
	return cb
}
func (cb ConstraintBuilder) ExclusiveMaximum(value int) ConstraintBuilder {
	cb[KeyExclusiveMaximum] = value
	return cb
}
func (cb ConstraintBuilder) ExclusiveMinimum(value int) ConstraintBuilder {
	cb[KeyExclusiveMinimum] = value
	return cb
}
func (cb ConstraintBuilder) MaxLength(value int) ConstraintBuilder {
	cb[KeyMaxLength] = value
	return cb
}
func (cb ConstraintBuilder) MinLength(value int) ConstraintBuilder {
	cb[KeyMinLength] = value
	return cb
}
func (cb ConstraintBuilder) Pattern(value string) ConstraintBuilder {
	cb[KeyPattern] = value
	return cb
}
func (cb ConstraintBuilder) MaxItems(value int) ConstraintBuilder {
	cb[KeyMaxItems] = value
	return cb
}
func (cb ConstraintBuilder) MinItems(value int) ConstraintBuilder {
	cb[KeyMinItems] = value
	return cb
}
func (cb ConstraintBuilder) MaxProperties(value int) ConstraintBuilder {
	cb[KeyMaxProperties] = value
	return cb
}
func (cb ConstraintBuilder) MinProperties(value int) ConstraintBuilder {
	cb[KeyMinProperties] = value
	return cb
}