docs: public Map<String, Object> coerceArgumentValues(GraphQLSchema schema, List<VariableDefinition> variableDefinitions, Map<String, Object> variableValues) {
          GraphqlFieldVisibility fieldVisibility = schema.getFieldVisibility();
          Map<String, Object> coercedValues = new LinkedHashMap<>();
          for (VariableDefinition variableDefinition : variableDefinitions) {
              String variableName = variableDefinition.getName();
              GraphQLType variableType = TypeFromAST.getTypeFromAST(schema, variableDefinition.getType());
  
              // 3.e
              if (!variableValues.containsKey(variableName)) {
                  Value defaultValue = variableDefinition.getDefaultValue();
                  if (defaultValue != null) {
                      // 3.e.i
                      Object coercedValue = coerceValueAst(fieldVisibility, variableType, variableDefinition.getDefaultValue(), null);
                      coercedValues.put(variableName, coercedValue);
                  } else if (isNonNull(variableType)) {
                      // 3.e.ii
                      throw new NonNullableValueCoercedAsNullException(variableDefinition, variableType);
                  }
              } else {
                  Object value = variableValues.get(variableName);
                  // 3.f
                  Object coercedValue = getVariableValue(fieldVisibility, variableDefinition, variableType, value);
                  // 3.g
                  coercedValues.put(variableName, coercedValue);
              }
          }
  
          return coercedValues;
      }