public override IViolation<ICliSpecification> Check( ICliSpecification subject, IBehaviors context = null ) { ConfigBehavior cb = null; context?.TryGet( out cb ); ICliConfig conf = cb?.Config; foreach( Func<UniqueNames, ICliSpecification, ICliConfig, IViolation<ICliSpecification>> check in __checks ) { IViolation<ICliSpecification> violation = check( this, subject, conf ); if( violation != NonViolation<ICliSpecification>.Instance ) return violation; } return NonViolation<ICliSpecification>.Instance; }