code: func New(c Capabilities, s StateFetcher, d IdentityDeserializer, pe PolicyEvaluator) *Validator {
  	vpmgr := &KeyLevelValidationParameterManagerImpl{StateFetcher: s}
  	sbv := NewKeyLevelValidator(pe, vpmgr)
  
  	return &Validator{
  		capabilities:        c,
  		stateFetcher:        s,
  		deserializer:        d,
  		policyEvaluator:     pe,
  		stateBasedValidator: sbv,
  	}
  }
docs: //go:generate mockery -dir ../../api/capabilities/ -name Capabilities -case underscore -output mocks/
  //go:generate mockery -dir ../../api/state/ -name StateFetcher -case underscore -output mocks/
  //go:generate mockery -dir ../../api/identities/ -name IdentityDeserializer -case underscore -output mocks/
  //go:generate mockery -dir ../../api/policies/ -name PolicyEvaluator -case underscore -output mocks/
  //go:generate mockery -dir . -name StateBasedValidator -case underscore -output mocks/
  // New creates a new instance of the default VSCC
  // Typically this will only be invoked once per peer