private IOutputType GetReturnType( MatchSelectionsContext context, FieldNode node, IOutputType type) { if (GetDirective(node, "_return") is DirectiveNode directive && directive.Arguments.Count == 1 && directive.Arguments[0] is { Name: { Value : "type" } } argument&& argument.Value is StringValueNode value) { ITypeNode typeSyntax = Utf8GraphQLParser.Syntax.ParseTypeReference(value.Value); NamedTypeNode namedTypeSyntax = typeSyntax.NamedType(); var named = context.Schema.GetType <INamedOutputType>(namedTypeSyntax.Name.Value); return((IOutputType)typeSyntax.ToType(named)); } return(type); }