CAUSEWAY-3676: adds invoke.args
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Environment.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Environment.java
index 4f9f09d..485fb2d 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Environment.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/Environment.java
@@ -11,6 +11,10 @@
 
     Map<String, Object> getArguments();
 
+    default <T> T getArgument(String name) {
+        return (T)getArguments().get(name);
+    }
+
     GraphQLContext getGraphQlContext();
 
     @RequiredArgsConstructor
@@ -28,4 +32,20 @@
             return dataFetchingEnvironment.getGraphQlContext();
         }
     }
+
+    @RequiredArgsConstructor
+    class ForTunnelled implements Environment {
+
+        private final DataFetchingEnvironment dataFetchingEnvironment;
+
+        @Override
+        public Map<String, Object> getArguments() {
+            return dataFetchingEnvironment.getGraphQlContext().get("arguments");
+        }
+
+        @Override
+        public GraphQLContext getGraphQlContext() {
+            return dataFetchingEnvironment.getGraphQlContext();
+        }
+    }
 }
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java
index 7c2144a..beeb26b 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java
@@ -40,10 +40,12 @@
 @Log4j2
 public class GqlvActionInvoke
         extends GqlvAbstractCustom
-        implements GqlvActionInvokeResult.Holder {
+        implements GqlvActionInvokeResult.Holder,
+                   GqlvActionInvokeArgs.Holder {
 
     private final Holder holder;
     private final GqlvActionInvokeResult result;
+    private final GqlvActionInvokeArgs args;
 
     public GqlvActionInvoke(
             final Holder holder,
@@ -54,10 +56,12 @@
 
         if(isBuilt()) {
             this.result = null;
+            this.args = null;
             return;
         }
 
-        addChildFieldFor(this.result = new GqlvActionInvokeResult(holder, context));
+        addChildFieldFor(this.result = new GqlvActionInvokeResult(this, context));
+        addChildFieldFor(this.args = new GqlvActionInvokeArgs(this, context));
 
         val gqlObjectType = buildObjectType();
         val objectAction = holder.getObjectAction();
@@ -97,6 +101,7 @@
     @Override
     protected void addDataFetchersForChildren() {
         result.addDataFetcher(this);
+        args.addDataFetcher(this);
     }
 
     @Override
@@ -110,10 +115,10 @@
 
     @Override
     public Can<ManagedObject> argumentManagedObjectsFor(
-            final Environment dataFetchingEnvironment,
+            final Environment environment,
             final ObjectAction objectAction,
             final BookmarkService bookmarkService) {
-        return holder.argumentManagedObjectsFor(dataFetchingEnvironment, objectAction, bookmarkService);
+        return holder.argumentManagedObjectsFor(environment, objectAction, bookmarkService);
     }
 
     @Override
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeArgs.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeArgs.java
new file mode 100644
index 0000000..9144d41
--- /dev/null
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeArgs.java
@@ -0,0 +1,113 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.causeway.viewer.graphql.model.domain;
+
+import graphql.schema.DataFetchingEnvironment;
+
+import lombok.Getter;
+import lombok.extern.log4j.Log4j2;
+import lombok.val;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.causeway.applib.services.bookmark.BookmarkService;
+import org.apache.causeway.commons.collections.Can;
+import org.apache.causeway.core.metamodel.object.ManagedObject;
+import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
+import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
+import org.apache.causeway.viewer.graphql.model.context.Context;
+import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo;
+import org.apache.causeway.viewer.graphql.model.mmproviders.ObjectActionProvider;
+import org.apache.causeway.viewer.graphql.model.mmproviders.ObjectSpecificationProvider;
+
+@Log4j2
+public class GqlvActionInvokeArgs
+        extends GqlvAbstractCustom
+        implements GqlvActionInvokeArgsArg.Holder {
+
+    @Getter private final Holder holder;
+
+    private final List<GqlvActionInvokeArgsArg> args = new ArrayList<>();
+
+    public GqlvActionInvokeArgs(
+            final Holder holder,
+            final Context context) {
+        super(TypeNames.actionArgsTypeNameFor(holder.getObjectSpecification(), holder.getObjectAction()), context);
+        this.holder = holder;
+
+        if (isBuilt()) {
+            // nothing else to be done
+            return;
+        }
+
+        val idx = new AtomicInteger(0);
+        holder.getObjectAction().getParameters().forEach(objectActionParameter -> {
+            args.add(addChildFieldFor(new GqlvActionInvokeArgsArg(this, objectActionParameter, this.context, idx.getAndIncrement())));
+        });
+
+        if (args.isEmpty()) {
+            return;
+        }
+
+        buildObjectTypeAndField("args");
+    }
+
+    @Override
+    public ObjectSpecification getObjectSpecification() {
+        return holder.getObjectSpecification();
+    }
+
+    @Override
+    public ObjectAction getObjectMember() {
+        return getObjectAction();
+    }
+
+    @Override
+    public ObjectAction getObjectAction() {
+        return holder.getObjectAction();
+    }
+
+    @Override
+    protected void addDataFetchersForChildren() {
+        args.forEach(param -> param.addDataFetcher(this));
+    }
+
+    @Override
+    protected Object fetchData(DataFetchingEnvironment dataFetchingEnvironment) {
+        return BookmarkedPojo.sourceFrom(dataFetchingEnvironment, context);
+    }
+
+    @Override
+    public Can<ManagedObject> argumentManagedObjectsFor(Environment dataFetchingEnvironment, ObjectAction objectAction, BookmarkService bookmarkService) {
+        return holder.argumentManagedObjectsFor(dataFetchingEnvironment, objectAction, bookmarkService);
+    }
+
+    public interface Holder
+            extends ObjectSpecificationProvider,
+                    ObjectActionProvider {
+
+        Can<ManagedObject> argumentManagedObjectsFor(
+                Environment dataFetchingEnvironment,
+                ObjectAction objectAction,
+                BookmarkService bookmarkService);
+
+    }
+}
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeArgsArg.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeArgsArg.java
new file mode 100644
index 0000000..f46436a
--- /dev/null
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeArgsArg.java
@@ -0,0 +1,100 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.causeway.viewer.graphql.model.domain;
+
+import graphql.schema.DataFetchingEnvironment;
+
+import org.apache.causeway.applib.services.bookmark.BookmarkService;
+import org.apache.causeway.commons.collections.Can;
+import org.apache.causeway.core.metamodel.object.ManagedObject;
+import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
+import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter;
+import org.apache.causeway.viewer.graphql.model.context.Context;
+import org.apache.causeway.viewer.graphql.model.domain.GqlvAbstract;
+import org.apache.causeway.viewer.graphql.model.fetcher.BookmarkedPojo;
+import org.apache.causeway.viewer.graphql.model.mmproviders.ObjectActionProvider;
+import org.apache.causeway.viewer.graphql.model.mmproviders.ObjectSpecificationProvider;
+
+import graphql.schema.GraphQLList;
+
+import lombok.Getter;
+import lombok.extern.log4j.Log4j2;
+import lombok.val;
+
+import java.util.Map;
+
+import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
+
+import static org.apache.causeway.viewer.graphql.model.domain.GqlvAction.asPojo;
+
+@Log4j2
+public class GqlvActionInvokeArgsArg
+        extends GqlvAbstract {
+
+    @Getter private final Holder holder;
+    @Getter private final ObjectActionParameter objectActionParameter;
+    @Getter private final int paramNum;
+
+    public GqlvActionInvokeArgsArg(
+            final Holder holder,
+            final ObjectActionParameter objectActionParameter,
+            final Context context,
+            final int paramNum) {
+        super(context);
+
+        this.holder = holder;
+        this.objectActionParameter = objectActionParameter;
+        this.paramNum = paramNum;
+
+        val elementType = objectActionParameter.getElementType();;
+
+        val gqlObjectTypeForElementType = context.typeMapper.outputTypeFor(elementType);
+        if (gqlObjectTypeForElementType != null) {
+            val gqlOutputType = objectActionParameter.isPlural()
+                    ? GraphQLList.list(gqlObjectTypeForElementType)
+                    : gqlObjectTypeForElementType;
+
+            val fieldBuilder = newFieldDefinition()
+                    .name(objectActionParameter.getId())
+                    .type(gqlOutputType);
+            setField(fieldBuilder.build());
+        } else {
+            setField(null);
+        }
+    }
+
+
+    @Override
+    protected Object fetchData(DataFetchingEnvironment dataFetchingEnvironment) {
+        val environment = new Environment.ForTunnelled(dataFetchingEnvironment);
+        val managedObjects = holder.argumentManagedObjectsFor(environment, holder.getObjectAction(), context.bookmarkService);
+        return managedObjects.get(paramNum).map(ManagedObject::getPojo).orElse(null);
+    }
+
+    public interface Holder
+            extends ObjectSpecificationProvider,
+                    ObjectActionProvider {
+
+        Can<ManagedObject> argumentManagedObjectsFor(
+                Environment dataFetchingEnvironment,
+                ObjectAction objectAction,
+                BookmarkService bookmarkService);
+
+    }
+}
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeResult.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeResult.java
index fdce5d3..1b279c2 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeResult.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeResult.java
@@ -18,7 +18,6 @@
  */
 package org.apache.causeway.viewer.graphql.model.domain;
 
-import graphql.GraphQLContext;
 import graphql.schema.DataFetchingEnvironment;
 import graphql.schema.GraphQLFieldDefinition;
 import graphql.schema.GraphQLList;
@@ -48,15 +47,13 @@
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
-import java.util.Map;
-
 @Log4j2
 public class GqlvActionInvokeResult extends GqlvAbstract {
 
-    private final GqlvActionInvoke.Holder holder;
+    private final GqlvActionInvokeResult.Holder holder;
 
     public GqlvActionInvokeResult(
-            final GqlvActionInvoke.Holder holder,
+            final GqlvActionInvokeResult.Holder holder,
             final Context context) {
         super(context);
 
@@ -110,18 +107,8 @@
     protected Object fetchData(final DataFetchingEnvironment dataFetchingEnvironment) {
 
         val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment);
-        val environment = new Environment() {
 
-            @Override
-            public Map<String, Object> getArguments() {
-                return dataFetchingEnvironment.getGraphQlContext().get("arguments");
-            }
-
-            @Override
-            public GraphQLContext getGraphQlContext() {
-                return dataFetchingEnvironment.getGraphQlContext();
-            }
-        };
+        val environment = new Environment.ForTunnelled(dataFetchingEnvironment);
 
         val objectSpecification = context.specificationLoader.loadSpecification(sourcePojo.getClass());
         if (objectSpecification == null) {
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java
index 028cb60..a13a04c 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java
@@ -19,9 +19,7 @@
 package org.apache.causeway.viewer.graphql.model.domain;
 
 import java.util.ArrayList;
-import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import graphql.schema.DataFetchingEnvironment;
@@ -64,14 +62,14 @@
 
         val idx = new AtomicInteger(0);
         holder.getObjectAction().getParameters().forEach(objectActionParameter -> {
-            val gqlvActionParam = new GqlvActionParamsParam(this, objectActionParameter, this.context, idx.getAndIncrement());
-            addChildFieldFor(gqlvActionParam);
-            params.add(gqlvActionParam);
+            params.add(addChildFieldFor(new GqlvActionParamsParam(this, objectActionParameter, this.context, idx.getAndIncrement())));
         });
 
-        if (hasParams()) {
-            buildObjectTypeAndField("params");
+        if (params.isEmpty()) {
+            return;
         }
+
+        buildObjectTypeAndField("params");
     }
 
     @Override
@@ -89,16 +87,11 @@
         return holder.getObjectAction();
     }
 
-    public boolean hasParams() {
-        return !params.isEmpty();
-    }
-
     @Override
     protected void addDataFetchersForChildren() {
         params.forEach(param -> param.addDataFetcher(this));
     }
 
-
     @Override
     protected Object fetchData(DataFetchingEnvironment dataFetchingEnvironment) {
         return BookmarkedPojo.sourceFrom(dataFetchingEnvironment, context);
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java
index 85fa14f..9ccb814 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java
@@ -18,15 +18,14 @@
  */
 package org.apache.causeway.viewer.graphql.model.domain;
 
-import java.util.LinkedHashMap;
-import java.util.Map;
+import java.util.ArrayList;
+import java.util.List;
 
 import graphql.schema.DataFetchingEnvironment;
 
 import org.apache.causeway.core.config.CausewayConfiguration;
 import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.core.metamodel.spec.feature.MixedIn;
-import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
 import org.apache.causeway.viewer.graphql.model.context.Context;
 
 import lombok.Getter;
@@ -42,7 +41,7 @@
     @Getter private final ObjectSpecification objectSpecification;
     @Getter private final Object servicePojo;
 
-    private final Map<String, GqlvAction> actions = new LinkedHashMap<>();
+    private final List<GqlvAction> actions = new ArrayList<>();
 
     public static GqlvDomainService of(
             final ObjectSpecification objectSpecification,
@@ -81,20 +80,14 @@
                 .filter(objectAction -> objectAction.getSemantics().isSafeInNature() ||
                         apiVariant != CausewayConfiguration.Viewer.Graphql.ApiVariant.QUERY_ONLY    // the other variants have an entry for all actions.
                 )
-                .forEach(this::addAction);
-    }
-
-    private void addAction(final ObjectAction objectAction) {
-        val gqlvAction = new GqlvAction(this, objectAction, context);
-        addChildFieldFor(gqlvAction);
-        actions.put(objectAction.getId(), gqlvAction);
+                .forEach(act -> actions.add(addChildFieldFor(new GqlvAction(this, act, context))));
     }
 
 
     @Override
     protected void addDataFetchersForChildren() {
         if (hasActions()) {
-            actions.forEach((id, gqlva) -> gqlva.addDataFetcher(this));
+            actions.forEach(act -> act.addDataFetcher(this));
         }
     }
 
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java
index 93f605f..3b97b2a 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/TypeNames.java
@@ -59,6 +59,10 @@
         return objectTypeNameFor(owningType) + "__" + objectAction.getId() + "__gqlv_action_params";
     }
 
+    public static String actionArgsTypeNameFor(ObjectSpecification owningType, ObjectAction objectAction) {
+        return objectTypeNameFor(owningType) + "__" + objectAction.getId() + "__gqlv_action_args";
+    }
+
     public static String actionParamTypeNameFor(ObjectSpecification owningType, ObjectActionParameter objectActionParameter) {
         return objectTypeNameFor(owningType) + "__" + objectActionParameter.getAction().getId() + "__" + objectActionParameter.getId() + "__gqlv_action_parameter";
     }
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals._.gql
index 1567448..5bb92ef 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals._.gql
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals._.gql
@@ -2,6 +2,10 @@
   university_calc_Calculator {
     addBigDecimals {
       invoke(x: "1.1", y: "2.2") {
+        args {
+          x
+          y
+        }
         results
       }
     }
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals.approved.json
index 46fdaad..2dbb5ad 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals.approved.json
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.add_big_decimals.approved.json
@@ -3,6 +3,10 @@
     "university_calc_Calculator" : {
       "addBigDecimals" : {
         "invoke" : {
+          "args" : {
+            "x" : "1.1",
+            "y" : "2.2"
+          },
           "results" : "3.3"
         }
       }
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat._.gql
index 7850f7b..72d04e7 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat._.gql
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat._.gql
@@ -5,6 +5,10 @@
       university_calc_Calculator {
         concat {
           invoke(prefix: "Fizz", suffix: "Buzz") {
+            args {
+              prefix
+              suffix
+            }
             results
           }
         }
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat.approved.json
index d1dacdf..ef631f4 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat.approved.json
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Calculator_IntegTest.each.scenario_concat.approved.json
@@ -6,6 +6,10 @@
         "university_calc_Calculator" : {
           "concat" : {
             "invoke" : {
+              "args" : {
+                "prefix" : "Fizz",
+                "suffix" : "Buzz"
+              },
               "results" : "FizzBuzz"
             }
           }
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members._.gql
index 963d325..3a677d0b 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members._.gql
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members._.gql
@@ -1,9 +1,13 @@
 {
   Scenario(name: "can add staff members") {
+    Name
     Given {
       university_dept_Departments {
         findDepartmentByName {
           invoke(name: "Classics") {
+            args {
+              name
+            }
             results {
               staffMembers {
                 get {
@@ -60,6 +64,9 @@
       university_dept_Departments {
         findDepartmentByName {
           invoke(name: "Classics") {
+            args {
+              name
+            }
             results {
               staffMembers {
                 get {
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members.approved.json
index 069b006..d9064a0 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members.approved.json
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.find_department_and_add_staff_members.approved.json
@@ -1,10 +1,14 @@
 {
   "data" : {
     "Scenario" : {
+      "Name" : "can add staff members",
       "Given" : {
         "university_dept_Departments" : {
           "findDepartmentByName" : {
             "invoke" : {
+              "args" : {
+                "name" : "Classics"
+              },
               "results" : {
                 "staffMembers" : {
                   "get" : [ {
@@ -91,6 +95,9 @@
         "university_dept_Departments" : {
           "findDepartmentByName" : {
             "invoke" : {
+              "args" : {
+                "name" : "Classics"
+              },
               "results" : {
                 "staffMembers" : {
                   "get" : [ {
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name._.gql
index 0f15d48..1f959fa 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name._.gql
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name._.gql
@@ -1,11 +1,13 @@
 {
   Scenario(name: "Find department and change its name"){
     Name
-
     Given {
       university_dept_Departments {
         findDepartmentByName {
           invoke(name: "Classics") {
+            args {
+              name
+            }
             results {
               _meta {
                 saveAs(ref: "classics_dept")
@@ -20,6 +22,9 @@
       university_dept_Department(object: {ref: "classics_dept"}) {
         changeName {
           invokeIdempotent(newName: "Ancient History") {
+            args {
+              newName
+            }
             results {
               name {
                 get
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name.approved.json
index e4d41ec..7e7ce09 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name.approved.json
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Department_IntegTest.each.scenario_find_department_and_change_name.approved.json
@@ -6,6 +6,9 @@
         "university_dept_Departments" : {
           "findDepartmentByName" : {
             "invoke" : {
+              "args" : {
+                "name" : "Classics"
+              },
               "results" : {
                 "_meta" : {
                   "saveAs" : "classics_dept"
@@ -19,6 +22,9 @@
         "university_dept_Department" : {
           "changeName" : {
             "invokeIdempotent" : {
+              "args" : {
+                "newName" : "Ancient History"
+              },
               "results" : {
                 "name" : {
                   "get" : "Ancient History"
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department._.gql b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department._.gql
index 82cc9b9..df05734 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department._.gql
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department._.gql
@@ -5,6 +5,9 @@
       university_dept_Departments {
         findDepartmentByName {
           invoke(name: "Classics") {
+            args {
+              name
+            }
             results {
               _meta {
                 saveAs(ref: "classics")
@@ -18,6 +21,14 @@
       university_dept_Staff {
         createStaffMember {
           invokeNonIdempotent(name: "Dr. Georgina McGovern", department: { ref: "classics"}) {
+            args {
+              name
+              department {
+                name {
+                  get
+                }
+              }
+            }
             results {
               name {
                 get
diff --git a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department.approved.json b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department.approved.json
index 7eb3216..3d8eac4 100644
--- a/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department.approved.json
+++ b/viewers/graphql/test/src/test/java/org/apache/causeway/viewer/graphql/viewer/test/e2e/Staff_IntegTest.each.create_staff_member_with_department.approved.json
@@ -6,6 +6,9 @@
         "university_dept_Departments" : {
           "findDepartmentByName" : {
             "invoke" : {
+              "args" : {
+                "name" : "Classics"
+              },
               "results" : {
                 "_meta" : {
                   "saveAs" : "classics"
@@ -19,6 +22,14 @@
         "university_dept_Staff" : {
           "createStaffMember" : {
             "invokeNonIdempotent" : {
+              "args" : {
+                "name" : "Dr. Georgina McGovern",
+                "department" : {
+                  "name" : {
+                    "get" : "Classics"
+                  }
+                }
+              },
               "results" : {
                 "name" : {
                   "get" : "Dr. Georgina McGovern"
diff --git a/viewers/graphql/test/src/test/resources/schema.gql b/viewers/graphql/test/src/test/resources/schema.gql
index 571a083..02187b4 100644
--- a/viewers/graphql/test/src/test/resources/schema.gql
+++ b/viewers/graphql/test/src/test/resources/schema.gql
@@ -1808,7 +1808,14 @@
   validate(firstParam: String, secondParam: String, thirdParameter: String): String
 }
 
+type university_admin_AdminMenu__actionWithDisabledParam__gqlv_action_args {
+  firstParam: String
+  secondParam: String
+  thirdParameter: String
+}
+
 type university_admin_AdminMenu__actionWithDisabledParam__gqlv_action_invoke {
+  args: university_admin_AdminMenu__actionWithDisabledParam__gqlv_action_args
   results: String
 }
 
@@ -1847,7 +1854,13 @@
   validate(firstParam: String, secondParam: String): String
 }
 
+type university_admin_AdminMenu__actionWithHiddenParam__gqlv_action_args {
+  firstParam: String
+  secondParam: String
+}
+
 type university_admin_AdminMenu__actionWithHiddenParam__gqlv_action_invoke {
+  args: university_admin_AdminMenu__actionWithHiddenParam__gqlv_action_args
   results: String
 }
 
@@ -1924,7 +1937,13 @@
   validate(x: String, y: String): String
 }
 
+type university_calc_Calculator__addBigDecimals__gqlv_action_args {
+  x: String
+  y: String
+}
+
 type university_calc_Calculator__addBigDecimals__gqlv_action_invoke {
+  args: university_calc_Calculator__addBigDecimals__gqlv_action_args
   results: String
 }
 
@@ -1955,7 +1974,13 @@
   validate(x: String, y: String): String
 }
 
+type university_calc_Calculator__addBigIntegers__gqlv_action_args {
+  x: String
+  y: String
+}
+
 type university_calc_Calculator__addBigIntegers__gqlv_action_invoke {
+  args: university_calc_Calculator__addBigIntegers__gqlv_action_args
   results: String
 }
 
@@ -1986,7 +2011,13 @@
   validate(x: Byte, y: Byte): String
 }
 
+type university_calc_Calculator__addByteWrappers__gqlv_action_args {
+  x: Byte
+  y: Byte
+}
+
 type university_calc_Calculator__addByteWrappers__gqlv_action_invoke {
+  args: university_calc_Calculator__addByteWrappers__gqlv_action_args
   results: Int
 }
 
@@ -2017,7 +2048,13 @@
   validate(x: Byte, y: Byte): String
 }
 
+type university_calc_Calculator__addBytes__gqlv_action_args {
+  x: Byte
+  y: Byte
+}
+
 type university_calc_Calculator__addBytes__gqlv_action_invoke {
+  args: university_calc_Calculator__addBytes__gqlv_action_args
   results: Byte
 }
 
@@ -2048,7 +2085,13 @@
   validate(x: Float, y: Float): String
 }
 
+type university_calc_Calculator__addDoubleWrappers__gqlv_action_args {
+  x: Float
+  y: Float
+}
+
 type university_calc_Calculator__addDoubleWrappers__gqlv_action_invoke {
+  args: university_calc_Calculator__addDoubleWrappers__gqlv_action_args
   results: Float
 }
 
@@ -2079,7 +2122,13 @@
   validate(x: Float, y: Float): String
 }
 
+type university_calc_Calculator__addDoubles__gqlv_action_args {
+  x: Float
+  y: Float
+}
+
 type university_calc_Calculator__addDoubles__gqlv_action_invoke {
+  args: university_calc_Calculator__addDoubles__gqlv_action_args
   results: Float
 }
 
@@ -2110,7 +2159,13 @@
   validate(x: Float, y: Float): String
 }
 
+type university_calc_Calculator__addFloatWrappers__gqlv_action_args {
+  x: Float
+  y: Float
+}
+
 type university_calc_Calculator__addFloatWrappers__gqlv_action_invoke {
+  args: university_calc_Calculator__addFloatWrappers__gqlv_action_args
   results: Float
 }
 
@@ -2141,7 +2196,13 @@
   validate(x: Float, y: Float): String
 }
 
+type university_calc_Calculator__addFloats__gqlv_action_args {
+  x: Float
+  y: Float
+}
+
 type university_calc_Calculator__addFloats__gqlv_action_invoke {
+  args: university_calc_Calculator__addFloats__gqlv_action_args
   results: Float
 }
 
@@ -2172,7 +2233,13 @@
   validate(x: Int, y: Int): String
 }
 
+type university_calc_Calculator__addIntegerWrappers__gqlv_action_args {
+  x: Int
+  y: Int
+}
+
 type university_calc_Calculator__addIntegerWrappers__gqlv_action_invoke {
+  args: university_calc_Calculator__addIntegerWrappers__gqlv_action_args
   results: Int
 }
 
@@ -2203,7 +2270,13 @@
   validate(x: Int, y: Int): String
 }
 
+type university_calc_Calculator__addIntegers__gqlv_action_args {
+  x: Int
+  y: Int
+}
+
 type university_calc_Calculator__addIntegers__gqlv_action_invoke {
+  args: university_calc_Calculator__addIntegers__gqlv_action_args
   results: Int
 }
 
@@ -2234,7 +2307,13 @@
   validate(x: Short, y: Short): String
 }
 
+type university_calc_Calculator__addShortWrappers__gqlv_action_args {
+  x: Short
+  y: Short
+}
+
 type university_calc_Calculator__addShortWrappers__gqlv_action_invoke {
+  args: university_calc_Calculator__addShortWrappers__gqlv_action_args
   results: Short
 }
 
@@ -2265,7 +2344,13 @@
   validate(x: Short, y: Short): String
 }
 
+type university_calc_Calculator__addShorts__gqlv_action_args {
+  x: Short
+  y: Short
+}
+
 type university_calc_Calculator__addShorts__gqlv_action_invoke {
+  args: university_calc_Calculator__addShorts__gqlv_action_args
   results: Short
 }
 
@@ -2296,7 +2381,13 @@
   validate(x: Boolean, y: Boolean): String
 }
 
+type university_calc_Calculator__and__gqlv_action_args {
+  x: Boolean
+  y: Boolean
+}
+
 type university_calc_Calculator__and__gqlv_action_invoke {
+  args: university_calc_Calculator__and__gqlv_action_args
   results: Boolean
 }
 
@@ -2327,7 +2418,13 @@
   validate(prefix: String, suffix: String): String
 }
 
+type university_calc_Calculator__concat__gqlv_action_args {
+  prefix: String
+  suffix: String
+}
+
 type university_calc_Calculator__concat__gqlv_action_invoke {
+  args: university_calc_Calculator__concat__gqlv_action_args
   results: String
 }
 
@@ -2365,7 +2462,13 @@
   validate(date: String, numDays: Int): String
 }
 
+type university_calc_Calculator__jdk8LocalPlusDays__gqlv_action_args {
+  date: String
+  numDays: Int
+}
+
 type university_calc_Calculator__jdk8LocalPlusDays__gqlv_action_invoke {
+  args: university_calc_Calculator__jdk8LocalPlusDays__gqlv_action_args
   results: String
 }
 
@@ -2389,7 +2492,14 @@
   validate(numHours: Int, numMinutes: Int, time: String): String
 }
 
+type university_calc_Calculator__jdk8LocalPlusHoursAndMinutes__gqlv_action_args {
+  numHours: Int
+  numMinutes: Int
+  time: String
+}
+
 type university_calc_Calculator__jdk8LocalPlusHoursAndMinutes__gqlv_action_invoke {
+  args: university_calc_Calculator__jdk8LocalPlusHoursAndMinutes__gqlv_action_args
   results: String
 }
 
@@ -2435,7 +2545,15 @@
   validate(dateTime: DateTime, numDays: Int, numHours: Int, numMinutes: Int): String
 }
 
+type university_calc_Calculator__jdk8OffsetPlusDaysAndHoursAndMinutes__gqlv_action_args {
+  dateTime: DateTime
+  numDays: Int
+  numHours: Int
+  numMinutes: Int
+}
+
 type university_calc_Calculator__jdk8OffsetPlusDaysAndHoursAndMinutes__gqlv_action_invoke {
+  args: university_calc_Calculator__jdk8OffsetPlusDaysAndHoursAndMinutes__gqlv_action_args
   results: DateTime
 }
 
@@ -2475,7 +2593,14 @@
   validate(numHours: Int, numMinutes: Int, time: Time): String
 }
 
+type university_calc_Calculator__jdk8OffsetPlusHoursAndMinutes__gqlv_action_args {
+  numHours: Int
+  numMinutes: Int
+  time: Time
+}
+
 type university_calc_Calculator__jdk8OffsetPlusHoursAndMinutes__gqlv_action_invoke {
+  args: university_calc_Calculator__jdk8OffsetPlusHoursAndMinutes__gqlv_action_args
   results: Time
 }
 
@@ -2521,7 +2646,15 @@
   validate(dateTime: String, numDays: Int, numHours: Int, numMinutes: Int): String
 }
 
+type university_calc_Calculator__jdk8ZonedPlusDaysAndHoursAndMinutes__gqlv_action_args {
+  dateTime: String
+  numDays: Int
+  numHours: Int
+  numMinutes: Int
+}
+
 type university_calc_Calculator__jdk8ZonedPlusDaysAndHoursAndMinutes__gqlv_action_invoke {
+  args: university_calc_Calculator__jdk8ZonedPlusDaysAndHoursAndMinutes__gqlv_action_args
   results: String
 }
 
@@ -2568,7 +2701,13 @@
   validate(date: String, numDays: Int): String
 }
 
+type university_calc_Calculator__jodaLocalPlusDays__gqlv_action_args {
+  date: String
+  numDays: Int
+}
+
 type university_calc_Calculator__jodaLocalPlusDays__gqlv_action_invoke {
+  args: university_calc_Calculator__jodaLocalPlusDays__gqlv_action_args
   results: String
 }
 
@@ -2592,7 +2731,14 @@
   validate(numHours: Int, numMinutes: Int, time: String): String
 }
 
+type university_calc_Calculator__jodaLocalPlusHoursAndMinutes__gqlv_action_args {
+  numHours: Int
+  numMinutes: Int
+  time: String
+}
+
 type university_calc_Calculator__jodaLocalPlusHoursAndMinutes__gqlv_action_invoke {
+  args: university_calc_Calculator__jodaLocalPlusHoursAndMinutes__gqlv_action_args
   results: String
 }
 
@@ -2638,7 +2784,15 @@
   validate(dateTime: String, numDays: Int, numHours: Int, numMinutes: Int): String
 }
 
+type university_calc_Calculator__jodaPlusDaysAndHoursAndMinutes__gqlv_action_args {
+  dateTime: String
+  numDays: Int
+  numHours: Int
+  numMinutes: Int
+}
+
 type university_calc_Calculator__jodaPlusDaysAndHoursAndMinutes__gqlv_action_invoke {
+  args: university_calc_Calculator__jodaPlusDaysAndHoursAndMinutes__gqlv_action_args
   results: String
 }
 
@@ -2678,7 +2832,12 @@
   validate(month: org_apache_causeway_viewer_graphql_viewer_test_domain_calc_Month__gqlv_enum): String
 }
 
+type university_calc_Calculator__nextMonth__gqlv_action_args {
+  month: org_apache_causeway_viewer_graphql_viewer_test_domain_calc_Month__gqlv_enum
+}
+
 type university_calc_Calculator__nextMonth__gqlv_action_invoke {
+  args: university_calc_Calculator__nextMonth__gqlv_action_args
   results: org_apache_causeway_viewer_graphql_viewer_test_domain_calc_Month__gqlv_enum
 }
 
@@ -2702,7 +2861,12 @@
   validate(x: Boolean): String
 }
 
+type university_calc_Calculator__not__gqlv_action_args {
+  x: Boolean
+}
+
 type university_calc_Calculator__not__gqlv_action_invoke {
+  args: university_calc_Calculator__not__gqlv_action_args
   results: Boolean
 }
 
@@ -2725,7 +2889,13 @@
   validate(x: Boolean, y: Boolean): String
 }
 
+type university_calc_Calculator__or__gqlv_action_args {
+  x: Boolean
+  y: Boolean
+}
+
 type university_calc_Calculator__or__gqlv_action_invoke {
+  args: university_calc_Calculator__or__gqlv_action_args
   results: Boolean
 }
 
@@ -2803,7 +2973,12 @@
   validate(staffMember: university_dept_StaffMember__gqlv_input): String
 }
 
+type university_dept_Department__addStaffMember__gqlv_action_args {
+  staffMember: university_dept_StaffMember
+}
+
 type university_dept_Department__addStaffMember__gqlv_action_invoke {
+  args: university_dept_Department__addStaffMember__gqlv_action_args
   results: university_dept_Department
 }
 
@@ -2828,7 +3003,12 @@
   validate(staffMembers: [university_dept_StaffMember__gqlv_input]): String
 }
 
+type university_dept_Department__addStaffMembers__gqlv_action_args {
+  staffMembers: [university_dept_StaffMember]
+}
+
 type university_dept_Department__addStaffMembers__gqlv_action_invoke {
+  args: university_dept_Department__addStaffMembers__gqlv_action_args
   results: university_dept_Department
 }
 
@@ -2853,7 +3033,12 @@
   validate(newDeptHead: university_dept_DeptHead__gqlv_input): String
 }
 
+type university_dept_Department__changeDeptHead__gqlv_action_args {
+  newDeptHead: university_dept_DeptHead
+}
+
 type university_dept_Department__changeDeptHead__gqlv_action_invoke {
+  args: university_dept_Department__changeDeptHead__gqlv_action_args
   results: university_dept_Department
 }
 
@@ -2879,7 +3064,12 @@
   validate(newName: String): String
 }
 
+type university_dept_Department__changeName__gqlv_action_args {
+  newName: String
+}
+
 type university_dept_Department__changeName__gqlv_action_invoke {
+  args: university_dept_Department__changeName__gqlv_action_args
   results: university_dept_Department
 }
 
@@ -2936,7 +3126,12 @@
   validate(staffMember: university_dept_StaffMember__gqlv_input): String
 }
 
+type university_dept_Department__removeStaffMember__gqlv_action_args {
+  staffMember: university_dept_StaffMember
+}
+
 type university_dept_Department__removeStaffMember__gqlv_action_invoke {
+  args: university_dept_Department__removeStaffMember__gqlv_action_args
   results: university_dept_Department
 }
 
@@ -2983,7 +3178,13 @@
   validate(deptHead: university_dept_DeptHead__gqlv_input, name: String): String
 }
 
+type university_dept_Departments__createDepartment__gqlv_action_args {
+  deptHead: university_dept_DeptHead
+  name: String
+}
+
 type university_dept_Departments__createDepartment__gqlv_action_invoke {
+  args: university_dept_Departments__createDepartment__gqlv_action_args
   results: university_dept_Department
 }
 
@@ -3020,7 +3221,12 @@
   validate(name: String): String
 }
 
+type university_dept_Departments__findDepartmentByName__gqlv_action_args {
+  name: String
+}
+
 type university_dept_Departments__findDepartmentByName__gqlv_action_invoke {
+  args: university_dept_Departments__findDepartmentByName__gqlv_action_args
   results: university_dept_Department
 }
 
@@ -3061,7 +3267,12 @@
   validate(department: university_dept_Department__gqlv_input): String
 }
 
+type university_dept_DeptHead__changeDepartment__gqlv_action_args {
+  department: university_dept_Department
+}
+
 type university_dept_DeptHead__changeDepartment__gqlv_action_invoke {
+  args: university_dept_DeptHead__changeDepartment__gqlv_action_args
   results: university_dept_DeptHead
 }
 
@@ -3078,7 +3289,12 @@
   validate(newName: String): String
 }
 
+type university_dept_DeptHead__changeName__gqlv_action_args {
+  newName: String
+}
+
 type university_dept_DeptHead__changeName__gqlv_action_invoke {
+  args: university_dept_DeptHead__changeName__gqlv_action_args
   results: university_dept_DeptHead
 }
 
@@ -3152,7 +3368,12 @@
   validate(name: String): String
 }
 
+type university_dept_DeptHeads__findHeadByName__gqlv_action_args {
+  name: String
+}
+
 type university_dept_DeptHeads__findHeadByName__gqlv_action_invoke {
+  args: university_dept_DeptHeads__findHeadByName__gqlv_action_args
   results: university_dept_DeptHead
 }
 
@@ -3256,7 +3477,13 @@
   validate(department: university_dept_Department__gqlv_input, name: String): String
 }
 
+type university_dept_Staff__createStaffMember__gqlv_action_args {
+  department: university_dept_Department
+  name: String
+}
+
 type university_dept_Staff__createStaffMember__gqlv_action_invoke {
+  args: university_dept_Staff__createStaffMember__gqlv_action_args
   results: university_dept_StaffMember
 }
 
@@ -3293,7 +3520,12 @@
   validate(name: String): String
 }
 
+type university_dept_Staff__findStaffMemberByName__gqlv_action_args {
+  name: String
+}
+
 type university_dept_Staff__findStaffMemberByName__gqlv_action_invoke {
+  args: university_dept_Staff__findStaffMemberByName__gqlv_action_args
   results: university_dept_StaffMember
 }