docs: public GraphQLDirective buildDirective(Directive directive, Set<GraphQLDirective> directiveDefinitions, DirectiveLocation directiveLocation) {
          Optional<GraphQLDirective> directiveDefinition = directiveDefinitions.stream().filter(dd -> dd.getName().equals(directive.getName())).findFirst();
          GraphQLDirective.Builder builder = GraphQLDirective.newDirective()
                  .name(directive.getName())
                  .description(buildDescription(directive, null))
                  .validLocations(directiveLocation);
  
          List<GraphQLArgument> arguments = directive.getArguments().stream()
                  .map(arg -> buildDirectiveArgument(arg, directiveDefinition))
                  .collect(Collectors.toList());
  
          if (directiveDefinition.isPresent()) {
              arguments = transferMissingArguments(arguments, directiveDefinition.get());
          }
          arguments.forEach(builder::argument);
  
          return builder.build();
      }