func (o *ObjectConstraint) Required(l ...string) *ObjectConstraint {
	o.reqlock.Lock()
	defer o.reqlock.Unlock()
	for _, pname := range l {
		o.required[pname] = struct{}{}
	}
	return o
}
Required specifies required property names
package jsval
import (
	"errors"
	"reflect"
	"regexp"
	"github.com/lestrrat/go-pdebug"
)
type getPropValuer interface {
	GetPropValue(string) (interface{}, error)
}
type getPropNameser interface {
	GetPropNames() ([]string, error)
}
func Object() *ObjectConstraint {
	return &ObjectConstraint{
		additionalProperties: nil,
		minProperties:        -1,
		maxProperties:        -1,
		patternProperties:    make(map[*regexp.Regexp]Constraint),
		properties:           make(map[string]Constraint),
		propdeps:             make(map[string][]string),
		required:             make(map[string]struct{}),
		schemadeps:           make(map[string]Constraint),
	}
}