Repository: apollographql/apollo-rs
Pull request #575 (2023-06-01 12:59:07)

feat(compiler): accept any scalar type for custom value validation
A possible solution for #562. Would be really curious to hear what other people think!

goto-bus-stop: would having an `.is_custom()` method on scalars make sense? so we can check `.is_int() || .is_custom()` instead of listing all the other possibilities

Patch:
diff --git a/.github/workflows/github_projects_tagger.yml b/.github/workflows/github_projects_tagger.yml
index 500f19c..36cbebb 100644
--- a/.github/workflows/github_projects_tagger.yml
+++ b/.github/workflows/github_projects_tagger.yml
@@ -8,7 +8,7 @@ jobs:
   tag:
     runs-on: ubuntu-latest
     steps:
-      - uses: abernix/github-issue-pull-api-hook@v1.0.0
+      - uses: abernix/github-issue-pull-api-hook@v2.0.1
         with:
           # These are both set in Org level secrets and work on a safe-listed
           # set of repositories that affect the Polaris team.  This allows them to
diff --git a/crates/apollo-compiler/src/database/hir.rs b/crates/apollo-compiler/src/database/hir.rs
index baf521b..772146f 100644
--- a/crates/apollo-compiler/src/database/hir.rs
+++ b/crates/apollo-compiler/src/database/hir.rs
@@ -2632,6 +2632,11 @@ impl ScalarTypeDefinition {
         self.extensions.push(ext);
     }
 
+    /// Returns true if the current scalar is a custom scalar.
+    pub fn is_custom(&self) -> bool {
+        !self.built_in
+    }
+
     /// Returns true if the current scalar is a GraphQL built in.
     pub fn is_built_in(&self) -> bool {
         self.built_in
diff --git a/crates/apollo-compiler/src/validation/value.rs b/crates/apollo-compiler/src/validation/value.rs
index 16a77be..659c596 100644
--- a/crates/apollo-compiler/src/validation/value.rs
+++ b/crates/apollo-compiler/src/validation/value.rs
@@ -80,7 +80,7 @@ pub fn value_of_correct_type(
                                 )),
                             )
                         }
-                    } else {
+                    } else if scalar.is_string() || scalar.is_boolean() {
                         diagnostics.push(unsupported_type!(db, val, ty));
                     }
                 }
@@ -92,7 +92,7 @@ pub fn value_of_correct_type(
             // incorrect type.
             Value::Float { .. } => match &type_def {
                 TypeDefinition::ScalarTypeDefinition(scalar) => {
-                    if !scalar.is_float() {
+                    if !scalar.is_float() && !scalar.is_custom() {
                         diagnostics.push(unsupported_type!(db, val, ty));
                     }
                 }
@@ -109,7 +109,7 @@ pub fn value_of_correct_type(
                     // booleans.
                     // string, ids and custom scalars are ok, and
                     // don't need a diagnostic.
-                    if scalar.is_int() || scalar.is_float() || scalar.is_boolean() {
+                    if !scalar.is_string() && !scalar.is_id() && !scalar.is_custom() {
                         diagnostics.push(unsupported_type!(db, val, ty));
                     }
                 }
@@ -120,7 +120,7 @@ pub fn value_of_correct_type(
             // indicating an incorrect type.
             Value::Boolean { .. } => match &type_def {
                 TypeDefinition::ScalarTypeDefinition(scalar) => {
-                    if !scalar.is_boolean() {
+                    if !scalar.is_boolean() && !scalar.is_custom() {
                         diagnostics.push(unsupported_type!(db, val, ty));
                     }
                 }


Test patch:
diff --git a/crates/apollo-compiler/test_data/ok/0032_valid_of_correct_type.graphql b/crates/apollo-compiler/test_data/ok/0032_valid_of_correct_type.graphql
index 91f94b1..7ce0912 100644
--- a/crates/apollo-compiler/test_data/ok/0032_valid_of_correct_type.graphql
+++ b/crates/apollo-compiler/test_data/ok/0032_valid_of_correct_type.graphql
@@ -11,6 +11,7 @@ type ComplicatedArgs {
   idArgField(idArg: ID): String
   stringListArgField(stringListArg: [String]): String
   stringListNonNullArgField(stringListNonNullArg: [String!]): String
+  customScalar(customScalar: Custom): String
   complexArgField(complexArg: ComplexInput): String
   multipleReqs(req1: Int!, req2: Int!): String
   nonNullFieldWithDefault(arg: Int! = 0): String
@@ -18,6 +19,8 @@ type ComplicatedArgs {
   multipleOptAndReq(req1: Int!, req2: Int!, opt1: Int = 0, opt2: Int = 0): String
 }
 
+scalar Custom @specifiedBy(url: "example.com")
+
 enum FurColor {
   BROWN
   BLACK
@@ -310,4 +313,36 @@ query variablesWithDefaultNullValues(
     stringArgField(stringArg: $b)
   }
 
+}
+
+# Custom Scalars
+query customScalarWithStringValue {
+  complicatedArgs {
+    customScalar(customScalar: "custom")
+  }
+}
+
+query customScalarWithIntValue {
+  complicatedArgs {
+    customScalar(customScalar: 4)
+  }
+}
+
+query customScalarWithBooleanValue {
+  complicatedArgs {
+    customScalar(customScalar: true)
+  }
+}
+
+query customScalarWithFloatValue {
+  complicatedArgs {
+    customScalar(customScalar: 4.4)
+  }
+}
+
+query customScalarWithVariableValue($custom: Custom = 4) {
+  complicatedArgs {
+    customScalar(customScalar: $custom)
+  }
+
 }
\ No newline at end of file
diff --git a/crates/apollo-compiler/test_data/ok/0032_valid_of_correct_type.txt b/crates/apollo-compiler/test_data/ok/0032_valid_of_correct_type.txt
index 7030023..cfd82a4 100644
--- a/crates/apollo-compiler/test_data/ok/0032_valid_of_correct_type.txt
+++ b/crates/apollo-compiler/test_data/ok/0032_valid_of_correct_type.txt
@@ -1,11 +1,11 @@
-- DOCUMENT@0..5512
-    - OBJECT_TYPE_DEFINITION@0..771
+- DOCUMENT@0..6146
+    - OBJECT_TYPE_DEFINITION@0..816
         - type_KW@0..4 "type"
         - WHITESPACE@4..5 " "
         - NAME@5..20
             - IDENT@5..20 "ComplicatedArgs"
         - WHITESPACE@20..21 " "
-        - FIELDS_DEFINITION@21..771
+        - FIELDS_DEFINITION@21..816
             - L_CURLY@21..22 "{"
             - WHITESPACE@22..25 "\n  "
             - COMMENT@25..36 "# TODO List"
@@ -204,68 +204,66 @@
                     - NAME@480..486
                         - IDENT@480..486 "String"
             - WHITESPACE@486..489 "\n  "
-            - FIELD_DEFINITION@489..538
-                - NAME@489..504
-                    - IDENT@489..504 "complexArgField"
-                - ARGUMENTS_DEFINITION@504..530
-                    - L_PAREN@504..505 "("
-                    - INPUT_VALUE_DEFINITION@505..529
-                        - NAME@505..515
-                            - IDENT@505..515 "complexArg"
-                        - COLON@515..516 ":"
-                        - WHITESPACE@516..517 " "
-                        - NAMED_TYPE@517..529
-                            - NAME@517..529
-                                - IDENT@517..529 "ComplexInput"
-                    - R_PAREN@529..530 ")"
-                - COLON@530..531 ":"
-                - WHITESPACE@531..532 " "
-                - NAMED_TYPE@532..538
-                    - NAME@532..538
-                        - IDENT@532..538 "String"
-            - WHITESPACE@538..541 "\n  "
-            - FIELD_DEFINITION@541..585
-                - NAME@541..553
-                    - IDENT@541..553 "multipleReqs"
-                - ARGUMENTS_DEFINITION@553..577
-                    - L_PAREN@553..554 "("
-                    - INPUT_VALUE_DEFINITION@554..564
-                        - NAME@554..558
-                            - IDENT@554..558 "req1"
-                        - COLON@558..559 ":"
-                        - WHITESPACE@559..560 " "
-                        - NON_NULL_TYPE@560..564
-                            - NAMED_TYPE@560..563
-                                - NAME@560..563
-                                    - IDENT@560..563 "Int"
-                            - BANG@563..564 "!"
-                    - COMMA@564..565 ","
-                    - WHITESPACE@565..566 " "
-                    - INPUT_VALUE_DEFINITION@566..576
-                        - NAME@566..570
-                            - IDENT@566..570 "req2"
-                        - COLON@570..571 ":"
-                        - WHITESPACE@571..572 " "
-                        - NON_NULL_TYPE@572..576
-                            - NAMED_TYPE@572..575
-                                - NAME@572..575
-                                    - IDENT@572..575 "Int"
-                            - BANG@575..576 "!"
-                    - R_PAREN@576..577 ")"
-                - COLON@577..578 ":"
-                - WHITESPACE@578..579 " "
-                - NAMED_TYPE@579..585
-                    - NAME@579..585
-                        - IDENT@579..585 "String"
-            - WHITESPACE@585..588 "\n  "
-            - FIELD_DEFINITION@588..634
-                - NAME@588..611
-                    - IDENT@588..611 "nonNullFieldWithDefault"
-                - ARGUMENTS_DEFINITION@611..626
-                    - L_PAREN@611..612 "("
-                    - INPUT_VALUE_DEFINITION@612..625
-                        - NAME@612..615
-                            - IDENT@612..615 "arg"
+            - FIELD_DEFINITION@489..531
+                - NAME@489..501
+                    - IDENT@489..501 "customScalar"
+                - ARGUMENTS_DEFINITION@501..523
+                    - L_PAREN@501..502 "("
+                    - INPUT_VALUE_DEFINITION@502..522
+                        - NAME@502..514
+                            - IDENT@502..514 "customScalar"
+                        - COLON@514..515 ":"
+                        - WHITESPACE@515..516 " "
+                        - NAMED_TYPE@516..522
+                            - NAME@516..522
+                                - IDENT@516..522 "Custom"
+                    - R_PAREN@522..523 ")"
+                - COLON@523..524 ":"
+                - WHITESPACE@524..525 " "
+                - NAMED_TYPE@525..531
+                    - NAME@525..531
+                        - IDENT@525..531 "String"
+            - WHITESPACE@531..534 "\n  "
+            - FIELD_DEFINITION@534..583
+                - NAME@534..549
+                    - IDENT@534..549 "complexArgField"
+                - ARGUMENTS_DEFINITION@549..575
+                    - L_PAREN@549..550 "("
+                    - INPUT_VALUE_DEFINITION@550..574
+                        - NAME@550..560
+                            - IDENT@550..560 "complexArg"
+                        - COLON@560..561 ":"
+                        - WHITESPACE@561..562 " "
+                        - NAMED_TYPE@562..574
+                            - NAME@562..574
+                                - IDENT@562..574 "ComplexInput"
+                    - R_PAREN@574..575 ")"
+                - COLON@575..576 ":"
+                - WHITESPACE@576..577 " "
+                - NAMED_TYPE@577..583
+                    - NAME@577..583
+                        - IDENT@577..583 "String"
+            - WHITESPACE@583..586 "\n  "
+            - FIELD_DEFINITION@586..630
+                - NAME@586..598
+                    - IDENT@586..598 "multipleReqs"
+                - ARGUMENTS_DEFINITION@598..622
+                    - L_PAREN@598..599 "("
+                    - INPUT_VALUE_DEFINITION@599..609
+                        - NAME@599..603
+                            - IDENT@599..603 "req1"
+                        - COLON@603..604 ":"
+                        - WHITESPACE@604..605 " "
+                        - NON_NULL_TYPE@605..609
+                            - NAMED_TYPE@605..608
+                                - NAME@605..608
+                                    - IDENT@605..608 "Int"
+                            - BANG@608..609 "!"
+                    - COMMA@609..610 ","
+                    - WHITESPACE@610..611 " "
+                    - INPUT_VALUE_DEFINITION@611..621
+                        - NAME@611..615
+                            - IDENT@611..615 "req2"
                         - COLON@615..616 ":"
                         - WHITESPACE@616..617 " "
                         - NON_NULL_TYPE@617..621
@@ -273,2207 +271,2449 @@
                                 - NAME@617..620
                                     - IDENT@617..620 "Int"
                             - BANG@620..621 "!"
-                        - WHITESPACE@621..622 " "
-                        - DEFAULT_VALUE@622..625
-                            - EQ@622..623 "="
-                            - WHITESPACE@623..624 " "
-                            - INT_VALUE@624..625
-                                - INT@624..625 "0"
-                    - R_PAREN@625..626 ")"
-                - COLON@626..627 ":"
-                - WHITESPACE@627..628 " "
-                - NAMED_TYPE@628..634
-                    - NAME@628..634
-                        - IDENT@628..634 "String"
-            - WHITESPACE@634..637 "\n  "
-            - FIELD_DEFINITION@637..687
-                - NAME@637..649
-                    - IDENT@637..649 "multipleOpts"
-                - ARGUMENTS_DEFINITION@649..679
-                    - L_PAREN@649..650 "("
-                    - INPUT_VALUE_DEFINITION@650..663
-                        - NAME@650..654
-                            - IDENT@650..654 "opt1"
-                        - COLON@654..655 ":"
-                        - WHITESPACE@655..656 " "
-                        - NAMED_TYPE@656..659
-                            - NAME@656..659
-                                - IDENT@656..659 "Int"
-                        - WHITESPACE@659..660 " "
-                        - DEFAULT_VALUE@660..663
-                            - EQ@660..661 "="
-                            - WHITESPACE@661..662 " "
-                            - INT_VALUE@662..663
-                                - INT@662..663 "0"
-                    - COMMA@663..664 ","
-                    - WHITESPACE@664..665 " "
-                    - INPUT_VALUE_DEFINITION@665..678
-                        - NAME@665..669
-                            - IDENT@665..669 "opt2"
-                        - COLON@669..670 ":"
-                        - WHITESPACE@670..671 " "
-                        - NAMED_TYPE@671..674
-                            - NAME@671..674
-                                - IDENT@671..674 "Int"
-                        - WHITESPACE@674..675 " "
-                        - DEFAULT_VALUE@675..678
-                            - EQ@675..676 "="
-                            - WHITESPACE@676..677 " "
-                            - INT_VALUE@677..678
-                                - INT@677..678 "0"
-                    - R_PAREN@678..679 ")"
-                - COLON@679..680 ":"
-                - WHITESPACE@680..681 " "
-                - NAMED_TYPE@681..687
-                    - NAME@681..687
-                        - IDENT@681..687 "String"
-            - WHITESPACE@687..690 "\n  "
-            - FIELD_DEFINITION@690..769
-                - NAME@690..707
-                    - IDENT@690..707 "multipleOptAndReq"
-                - ARGUMENTS_DEFINITION@707..761
-                    - L_PAREN@707..708 "("
-                    - INPUT_VALUE_DEFINITION@708..718
-                        - NAME@708..712
-                            - IDENT@708..712 "req1"
-                        - COLON@712..713 ":"
-                        - WHITESPACE@713..714 " "
-                        - NON_NULL_TYPE@714..718
-                            - NAMED_TYPE@714..717
-                                - NAME@714..717
-                                    - IDENT@714..717 "Int"
-                            - BANG@717..718 "!"
-                    - COMMA@718..719 ","
-                    - WHITESPACE@719..720 " "
-                    - INPUT_VALUE_DEFINITION@720..730
-                        - NAME@720..724
-                            - IDENT@720..724 "req2"
-                        - COLON@724..725 ":"
-                        - WHITESPACE@725..726 " "
-                        - NON_NULL_TYPE@726..730
-                            - NAMED_TYPE@726..729
-                                - NAME@726..729
-                                    - IDENT@726..729 "Int"
-                            - BANG@729..730 "!"
-                    - COMMA@730..731 ","
-                    - WHITESPACE@731..732 " "
-                    - INPUT_VALUE_DEFINITION@732..745
-                        - NAME@732..736
-                            - IDENT@732..736 "opt1"
-                        - COLON@736..737 ":"
-                        - WHITESPACE@737..738 " "
-                        - NAMED_TYPE@738..741
-                            - NAME@738..741
-                                - IDENT@738..741 "Int"
-                        - WHITESPACE@741..742 " "
-                        - DEFAULT_VALUE@742..745
-                            - EQ@742..743 "="
-                            - WHITESPACE@743..744 " "
-                            - INT_VALUE@744..745
-                                - INT@744..745 "0"
-                    - COMMA@745..746 ","
-                    - WHITESPACE@746..747 " "
-                    - INPUT_VALUE_DEFINITION@747..760
-                        - NAME@747..751
-                            - IDENT@747..751 "opt2"
-                        - COLON@751..752 ":"
-                        - WHITESPACE@752..753 " "
-                        - NAMED_TYPE@753..756
-                            - NAME@753..756
-                                - IDENT@753..756 "Int"
-                        - WHITESPACE@756..757 " "
-                        - DEFAULT_VALUE@757..760
-                            - EQ@757..758 "="
-                            - WHITESPACE@758..759 " "
-                            - INT_VALUE@759..760
-                                - INT@759..760 "0"
-                    - R_PAREN@760..761 ")"
-                - COLON@761..762 ":"
-                - WHITESPACE@762..763 " "
-                - NAMED_TYPE@763..769
-                    - NAME@763..769
-                        - IDENT@763..769 "String"
-            - WHITESPACE@769..770 "\n"
-            - R_CURLY@770..771 "}"
-    - WHITESPACE@771..773 "\n\n"
-    - ENUM_TYPE_DEFINITION@773..841
-        - enum_KW@773..777 "enum"
-        - WHITESPACE@777..778 " "
-        - NAME@778..786
-            - IDENT@778..786 "FurColor"
-        - WHITESPACE@786..787 " "
-        - ENUM_VALUES_DEFINITION@787..841
-            - L_CURLY@787..788 "{"
-            - WHITESPACE@788..791 "\n  "
-            - ENUM_VALUE_DEFINITION@791..796
-                - ENUM_VALUE@791..796
-                    - NAME@791..796
-                        - IDENT@791..796 "BROWN"
-            - WHITESPACE@796..799 "\n  "
-            - ENUM_VALUE_DEFINITION@799..804
-                - ENUM_VALUE@799..804
-                    - NAME@799..804
-                        - IDENT@799..804 "BLACK"
-            - WHITESPACE@804..807 "\n  "
-            - ENUM_VALUE_DEFINITION@807..810
-                - ENUM_VALUE@807..810
-                    - NAME@807..810
-                        - IDENT@807..810 "TAN"
-            - WHITESPACE@810..813 "\n  "
-            - ENUM_VALUE_DEFINITION@813..820
-                - ENUM_VALUE@813..820
-                    - NAME@813..820
-                        - IDENT@813..820 "SPOTTED"
-            - WHITESPACE@820..823 "\n  "
-            - ENUM_VALUE_DEFINITION@823..829
-                - ENUM_VALUE@823..829
-                    - NAME@823..829
-                        - IDENT@823..829 "NO_FUR"
-            - WHITESPACE@829..832 "\n  "
-            - ENUM_VALUE_DEFINITION@832..839
-                - ENUM_VALUE@832..839
-                    - NAME@832..839
-                        - IDENT@832..839 "UNKNOWN"
-            - WHITESPACE@839..840 "\n"
-            - R_CURLY@840..841 "}"
-    - WHITESPACE@841..843 "\n\n"
-    - INPUT_OBJECT_TYPE_DEFINITION@843..1014
-        - input_KW@843..848 "input"
-        - WHITESPACE@848..849 " "
-        - NAME@849..861
-            - IDENT@849..861 "ComplexInput"
-        - WHITESPACE@861..862 " "
-        - INPUT_FIELDS_DEFINITION@862..1014
-            - L_CURLY@862..863 "{"
-            - WHITESPACE@863..866 "\n  "
-            - INPUT_VALUE_DEFINITION@866..889
-                - NAME@866..879
-                    - IDENT@866..879 "requiredField"
-                - COLON@879..880 ":"
-                - WHITESPACE@880..881 " "
-                - NON_NULL_TYPE@881..889
-                    - NAMED_TYPE@881..888
-                        - NAME@881..888
-                            - IDENT@881..888 "Boolean"
-                    - BANG@888..889 "!"
+                    - R_PAREN@621..622 ")"
+                - COLON@622..623 ":"
+                - WHITESPACE@623..624 " "
+                - NAMED_TYPE@624..630
+                    - NAME@624..630
+                        - IDENT@624..630 "String"
+            - WHITESPACE@630..633 "\n  "
+            - FIELD_DEFINITION@633..679
+                - NAME@633..656
+                    - IDENT@633..656 "nonNullFieldWithDefault"
+                - ARGUMENTS_DEFINITION@656..671
+                    - L_PAREN@656..657 "("
+                    - INPUT_VALUE_DEFINITION@657..670
+                        - NAME@657..660
+                            - IDENT@657..660 "arg"
+                        - COLON@660..661 ":"
+                        - WHITESPACE@661..662 " "
+                        - NON_NULL_TYPE@662..666
+                            - NAMED_TYPE@662..665
+                                - NAME@662..665
+                                    - IDENT@662..665 "Int"
+                            - BANG@665..666 "!"
+                        - WHITESPACE@666..667 " "
+                        - DEFAULT_VALUE@667..670
+                            - EQ@667..668 "="
+                            - WHITESPACE@668..669 " "
+                            - INT_VALUE@669..670
+                                - INT@669..670 "0"
+                    - R_PAREN@670..671 ")"
+                - COLON@671..672 ":"
+                - WHITESPACE@672..673 " "
+                - NAMED_TYPE@673..679
+                    - NAME@673..679
+                        - IDENT@673..679 "String"
+            - WHITESPACE@679..682 "\n  "
+            - FIELD_DEFINITION@682..732
+                - NAME@682..694
+                    - IDENT@682..694 "multipleOpts"
+                - ARGUMENTS_DEFINITION@694..724
+                    - L_PAREN@694..695 "("
+                    - INPUT_VALUE_DEFINITION@695..708
+                        - NAME@695..699
+                            - IDENT@695..699 "opt1"
+                        - COLON@699..700 ":"
+                        - WHITESPACE@700..701 " "
+                        - NAMED_TYPE@701..704
+                            - NAME@701..704
+                                - IDENT@701..704 "Int"
+                        - WHITESPACE@704..705 " "
+                        - DEFAULT_VALUE@705..708
+                            - EQ@705..706 "="
+                            - WHITESPACE@706..707 " "
+                            - INT_VALUE@707..708
+                                - INT@707..708 "0"
+                    - COMMA@708..709 ","
+                    - WHITESPACE@709..710 " "
+                    - INPUT_VALUE_DEFINITION@710..723
+                        - NAME@710..714
+                            - IDENT@710..714 "opt2"
+                        - COLON@714..715 ":"
+                        - WHITESPACE@715..716 " "
+                        - NAMED_TYPE@716..719
+                            - NAME@716..719
+                                - IDENT@716..719 "Int"
+                        - WHITESPACE@719..720 " "
+                        - DEFAULT_VALUE@720..723
+                            - EQ@720..721 "="
+                            - WHITESPACE@721..722 " "
+                            - INT_VALUE@722..723
+                                - INT@722..723 "0"
+                    - R_PAREN@723..724 ")"
+                - COLON@724..725 ":"
+                - WHITESPACE@725..726 " "
+                - NAMED_TYPE@726..732
+                    - NAME@726..732
+                        - IDENT@726..732 "String"
+            - WHITESPACE@732..735 "\n  "
+            - FIELD_DEFINITION@735..814
+                - NAME@735..752
+                    - IDENT@735..752 "multipleOptAndReq"
+                - ARGUMENTS_DEFINITION@752..806
+                    - L_PAREN@752..753 "("
+                    - INPUT_VALUE_DEFINITION@753..763
+                        - NAME@753..757
+                            - IDENT@753..757 "req1"
+                        - COLON@757..758 ":"
+                        - WHITESPACE@758..759 " "
+                        - NON_NULL_TYPE@759..763
+                            - NAMED_TYPE@759..762
+                                - NAME@759..762
+                                    - IDENT@759..762 "Int"
+                            - BANG@762..763 "!"
+                    - COMMA@763..764 ","
+                    - WHITESPACE@764..765 " "
+                    - INPUT_VALUE_DEFINITION@765..775
+                        - NAME@765..769
+                            - IDENT@765..769 "req2"
+                        - COLON@769..770 ":"
+                        - WHITESPACE@770..771 " "
+                        - NON_NULL_TYPE@771..775
+                            - NAMED_TYPE@771..774
+                                - NAME@771..774
+                                    - IDENT@771..774 "Int"
+                            - BANG@774..775 "!"
+                    - COMMA@775..776 ","
+                    - WHITESPACE@776..777 " "
+                    - INPUT_VALUE_DEFINITION@777..790
+                        - NAME@777..781
+                            - IDENT@777..781 "opt1"
+                        - COLON@781..782 ":"
+                        - WHITESPACE@782..783 " "
+                        - NAMED_TYPE@783..786
+                            - NAME@783..786
+                                - IDENT@783..786 "Int"
+                        - WHITESPACE@786..787 " "
+                        - DEFAULT_VALUE@787..790
+                            - EQ@787..788 "="
+                            - WHITESPACE@788..789 " "
+                            - INT_VALUE@789..790
+                                - INT@789..790 "0"
+                    - COMMA@790..791 ","
+                    - WHITESPACE@791..792 " "
+                    - INPUT_VALUE_DEFINITION@792..805
+                        - NAME@792..796
+                            - IDENT@792..796 "opt2"
+                        - COLON@796..797 ":"
+                        - WHITESPACE@797..798 " "
+                        - NAMED_TYPE@798..801
+                            - NAME@798..801
+                                - IDENT@798..801 "Int"
+                        - WHITESPACE@801..802 " "
+                        - DEFAULT_VALUE@802..805
+                            - EQ@802..803 "="
+                            - WHITESPACE@803..804 " "
+                            - INT_VALUE@804..805
+                                - INT@804..805 "0"
+                    - R_PAREN@805..806 ")"
+                - COLON@806..807 ":"
+                - WHITESPACE@807..808 " "
+                - NAMED_TYPE@808..814
+                    - NAME@808..814
+                        - IDENT@808..814 "String"
+            - WHITESPACE@814..815 "\n"
+            - R_CURLY@815..816 "}"
+    - WHITESPACE@816..818 "\n\n"
+    - SCALAR_TYPE_DEFINITION@818..864
+        - scalar_KW@818..824 "scalar"
+        - WHITESPACE@824..825 " "
+        - NAME@825..831
+            - IDENT@825..831 "Custom"
+        - WHITESPACE@831..832 " "
+        - DIRECTIVES@832..864
+            - DIRECTIVE@832..864
+                - AT@832..833 "@"
+                - NAME@833..844
+                    - IDENT@833..844 "specifiedBy"
+                - ARGUMENTS@844..864
+                    - L_PAREN@844..845 "("
+                    - ARGUMENT@845..863
+                        - NAME@845..848
+                            - IDENT@845..848 "url"
+                        - COLON@848..849 ":"
+                        - WHITESPACE@849..850 " "
+                        - STRING_VALUE@850..863
+                            - STRING@850..863 "\"example.com\""
+                    - R_PAREN@863..864 ")"
+    - WHITESPACE@864..866 "\n\n"
+    - ENUM_TYPE_DEFINITION@866..934
+        - enum_KW@866..870 "enum"
+        - WHITESPACE@870..871 " "
+        - NAME@871..879
+            - IDENT@871..879 "FurColor"
+        - WHITESPACE@879..880 " "
+        - ENUM_VALUES_DEFINITION@880..934
+            - L_CURLY@880..881 "{"
+            - WHITESPACE@881..884 "\n  "
+            - ENUM_VALUE_DEFINITION@884..889
+                - ENUM_VALUE@884..889
+                    - NAME@884..889
+                        - IDENT@884..889 "BROWN"
             - WHITESPACE@889..892 "\n  "
-            - INPUT_VALUE_DEFINITION@892..922
-                - NAME@892..904
-                    - IDENT@892..904 "nonNullField"
-                - COLON@904..905 ":"
-                - WHITESPACE@905..906 " "
-                - NON_NULL_TYPE@906..914
-                    - NAMED_TYPE@906..913
-                        - NAME@906..913
-                            - IDENT@906..913 "Boolean"
-                    - BANG@913..914 "!"
-                - WHITESPACE@914..915 " "
-                - DEFAULT_VALUE@915..922
-                    - EQ@915..916 "="
-                    - WHITESPACE@916..917 " "
-                    - BOOLEAN_VALUE@917..922
-                        - false_KW@917..922 "false"
+            - ENUM_VALUE_DEFINITION@892..897
+                - ENUM_VALUE@892..897
+                    - NAME@892..897
+                        - IDENT@892..897 "BLACK"
+            - WHITESPACE@897..900 "\n  "
+            - ENUM_VALUE_DEFINITION@900..903
+                - ENUM_VALUE@900..903
+                    - NAME@900..903
+                        - IDENT@900..903 "TAN"
+            - WHITESPACE@903..906 "\n  "
+            - ENUM_VALUE_DEFINITION@906..913
+                - ENUM_VALUE@906..913
+                    - NAME@906..913
+                        - IDENT@906..913 "SPOTTED"
+            - WHITESPACE@913..916 "\n  "
+            - ENUM_VALUE_DEFINITION@916..922
+                - ENUM_VALUE@916..922
+                    - NAME@916..922
+                        - IDENT@916..922 "NO_FUR"
             - WHITESPACE@922..925 "\n  "
-            - INPUT_VALUE_DEFINITION@925..938
-                - NAME@925..933
-                    - IDENT@925..933 "intField"
-                - COLON@933..934 ":"
-                - WHITESPACE@934..935 " "
-                - NAMED_TYPE@935..938
-                    - NAME@935..938
-                        - IDENT@935..938 "Int"
-            - WHITESPACE@938..941 "\n  "
-            - INPUT_VALUE_DEFINITION@941..960
-                - NAME@941..952
-                    - IDENT@941..952 "stringField"
-                - COLON@952..953 ":"
-                - WHITESPACE@953..954 " "
-                - NAMED_TYPE@954..960
-                    - NAME@954..960
-                        - IDENT@954..960 "String"
-            - WHITESPACE@960..963 "\n  "
-            - INPUT_VALUE_DEFINITION@963..984
-                - NAME@963..975
-                    - IDENT@963..975 "booleanField"
-                - COLON@975..976 ":"
-                - WHITESPACE@976..977 " "
-                - NAMED_TYPE@977..984
-                    - NAME@977..984
-                        - IDENT@977..984 "Boolean"
-            - WHITESPACE@984..987 "\n  "
-            - INPUT_VALUE_DEFINITION@987..1012
-                - NAME@987..1002
-                    - IDENT@987..1002 "stringListField"
-                - COLON@1002..1003 ":"
-                - WHITESPACE@1003..1004 " "
-                - LIST_TYPE@1004..1012
-                    - L_BRACK@1004..1005 "["
-                    - NAMED_TYPE@1005..1011
-                        - NAME@1005..1011
-                            - IDENT@1005..1011 "String"
-                    - R_BRACK@1011..1012 "]"
-            - WHITESPACE@1012..1013 "\n"
-            - R_CURLY@1013..1014 "}"
-    - WHITESPACE@1014..1016 "\n\n"
-    - ENUM_TYPE_DEFINITION@1016..1055
-        - enum_KW@1016..1020 "enum"
-        - WHITESPACE@1020..1021 " "
-        - NAME@1021..1031
-            - IDENT@1021..1031 "DogCommand"
-        - WHITESPACE@1031..1032 " "
-        - ENUM_VALUES_DEFINITION@1032..1055
-            - L_CURLY@1032..1033 "{"
-            - WHITESPACE@1033..1036 "\n  "
-            - ENUM_VALUE_DEFINITION@1036..1039
-                - ENUM_VALUE@1036..1039
-                    - NAME@1036..1039
-                        - IDENT@1036..1039 "SIT"
-            - WHITESPACE@1039..1042 "\n  "
-            - ENUM_VALUE_DEFINITION@1042..1046
-                - ENUM_VALUE@1042..1046
-                    - NAME@1042..1046
-                        - IDENT@1042..1046 "HEEL"
-            - WHITESPACE@1046..1049 "\n  "
-            - ENUM_VALUE_DEFINITION@1049..1053
-                - ENUM_VALUE@1049..1053
-                    - NAME@1049..1053
-                        - IDENT@1049..1053 "DOWN"
-            - WHITESPACE@1053..1054 "\n"
-            - R_CURLY@1054..1055 "}"
-    - WHITESPACE@1055..1057 "\n\n"
-    - OBJECT_TYPE_DEFINITION@1057..1209
-        - type_KW@1057..1061 "type"
-        - WHITESPACE@1061..1062 " "
-        - NAME@1062..1065
-            - IDENT@1062..1065 "Dog"
-        - WHITESPACE@1065..1066 " "
-        - FIELDS_DEFINITION@1066..1209
-            - L_CURLY@1066..1067 "{"
-            - WHITESPACE@1067..1070 "\n  "
-            - FIELD_DEFINITION@1070..1118
-                - NAME@1070..1085
-                    - IDENT@1070..1085 "doesKnowCommand"
-                - ARGUMENTS_DEFINITION@1085..1109
-                    - L_PAREN@1085..1086 "("
-                    - INPUT_VALUE_DEFINITION@1086..1108
-                        - NAME@1086..1096
-                            - IDENT@1086..1096 "dogCommand"
-                        - COLON@1096..1097 ":"
-                        - WHITESPACE@1097..1098 " "
-                        - NAMED_TYPE@1098..1108
-                            - NAME@1098..1108
-                                - IDENT@1098..1108 "DogCommand"
-                    - R_PAREN@1108..1109 ")"
-                - COLON@1109..1110 ":"
-                - WHITESPACE@1110..1111 " "
-                - NAMED_TYPE@1111..1118
-                    - NAME@1111..1118
-                        - IDENT@1111..1118 "Boolean"
-            - WHITESPACE@1118..1121 "\n  "
-            - FIELD_DEFINITION@1121..1151
-                - NAME@1121..1125
-                    - IDENT@1121..1125 "name"
-                - ARGUMENTS_DEFINITION@1125..1143
-                    - L_PAREN@1125..1126 "("
-                    - INPUT_VALUE_DEFINITION@1126..1142
-                        - NAME@1126..1133
-                            - IDENT@1126..1133 "surname"
-                        - COLON@1133..1134 ":"
-                        - WHITESPACE@1134..1135 " "
-                        - NAMED_TYPE@1135..1142
-                            - NAME@1135..1142
-                                - IDENT@1135..1142 "Boolean"
-                    - R_PAREN@1142..1143 ")"
-                - COLON@1143..1144 ":"
-                - WHITESPACE@1144..1145 " "
-                - NAMED_TYPE@1145..1151
-                    - NAME@1145..1151
-                        - IDENT@1145..1151 "String"
-            - WHITESPACE@1151..1154 "\n  "
-            - FIELD_DEFINITION@1154..1207
-                - NAME@1154..1168
-                    - IDENT@1154..1168 "isHouseTrained"
-                - ARGUMENTS_DEFINITION@1168..1198
-                    - L_PAREN@1168..1169 "("
-                    - INPUT_VALUE_DEFINITION@1169..1197
-                        - NAME@1169..1181
-                            - IDENT@1169..1181 "atOtherHomes"
-                        - COLON@1181..1182 ":"
-                        - WHITESPACE@1182..1183 " "
-                        - NAMED_TYPE@1183..1190
-                            - NAME@1183..1190
-                                - IDENT@1183..1190 "Boolean"
+            - ENUM_VALUE_DEFINITION@925..932
+                - ENUM_VALUE@925..932
+                    - NAME@925..932
+                        - IDENT@925..932 "UNKNOWN"
+            - WHITESPACE@932..933 "\n"
+            - R_CURLY@933..934 "}"
+    - WHITESPACE@934..936 "\n\n"
+    - INPUT_OBJECT_TYPE_DEFINITION@936..1107
+        - input_KW@936..941 "input"
+        - WHITESPACE@941..942 " "
+        - NAME@942..954
+            - IDENT@942..954 "ComplexInput"
+        - WHITESPACE@954..955 " "
+        - INPUT_FIELDS_DEFINITION@955..1107
+            - L_CURLY@955..956 "{"
+            - WHITESPACE@956..959 "\n  "
+            - INPUT_VALUE_DEFINITION@959..982
+                - NAME@959..972
+                    - IDENT@959..972 "requiredField"
+                - COLON@972..973 ":"
+                - WHITESPACE@973..974 " "
+                - NON_NULL_TYPE@974..982
+                    - NAMED_TYPE@974..981
+                        - NAME@974..981
+                            - IDENT@974..981 "Boolean"
+                    - BANG@981..982 "!"
+            - WHITESPACE@982..985 "\n  "
+            - INPUT_VALUE_DEFINITION@985..1015
+                - NAME@985..997
+                    - IDENT@985..997 "nonNullField"
+                - COLON@997..998 ":"
+                - WHITESPACE@998..999 " "
+                - NON_NULL_TYPE@999..1007
+                    - NAMED_TYPE@999..1006
+                        - NAME@999..1006
+                            - IDENT@999..1006 "Boolean"
+                    - BANG@1006..1007 "!"
+                - WHITESPACE@1007..1008 " "
+                - DEFAULT_VALUE@1008..1015
+                    - EQ@1008..1009 "="
+                    - WHITESPACE@1009..1010 " "
+                    - BOOLEAN_VALUE@1010..1015
+                        - false_KW@1010..1015 "false"
+            - WHITESPACE@1015..1018 "\n  "
+            - INPUT_VALUE_DEFINITION@1018..1031
+                - NAME@1018..1026
+                    - IDENT@1018..1026 "intField"
+                - COLON@1026..1027 ":"
+                - WHITESPACE@1027..1028 " "
+                - NAMED_TYPE@1028..1031
+                    - NAME@1028..1031
+                        - IDENT@1028..1031 "Int"
+            - WHITESPACE@1031..1034 "\n  "
+            - INPUT_VALUE_DEFINITION@1034..1053
+                - NAME@1034..1045
+                    - IDENT@1034..1045 "stringField"
+                - COLON@1045..1046 ":"
+                - WHITESPACE@1046..1047 " "
+                - NAMED_TYPE@1047..1053
+                    - NAME@1047..1053
+                        - IDENT@1047..1053 "String"
+            - WHITESPACE@1053..1056 "\n  "
+            - INPUT_VALUE_DEFINITION@1056..1077
+                - NAME@1056..1068
+                    - IDENT@1056..1068 "booleanField"
+                - COLON@1068..1069 ":"
+                - WHITESPACE@1069..1070 " "
+                - NAMED_TYPE@1070..1077
+                    - NAME@1070..1077
+                        - IDENT@1070..1077 "Boolean"
+            - WHITESPACE@1077..1080 "\n  "
+            - INPUT_VALUE_DEFINITION@1080..1105
+                - NAME@1080..1095
+                    - IDENT@1080..1095 "stringListField"
+                - COLON@1095..1096 ":"
+                - WHITESPACE@1096..1097 " "
+                - LIST_TYPE@1097..1105
+                    - L_BRACK@1097..1098 "["
+                    - NAMED_TYPE@1098..1104
+                        - NAME@1098..1104
+                            - IDENT@1098..1104 "String"
+                    - R_BRACK@1104..1105 "]"
+            - WHITESPACE@1105..1106 "\n"
+            - R_CURLY@1106..1107 "}"
+    - WHITESPACE@1107..1109 "\n\n"
+    - ENUM_TYPE_DEFINITION@1109..1148
+        - enum_KW@1109..1113 "enum"
+        - WHITESPACE@1113..1114 " "
+        - NAME@1114..1124
+            - IDENT@1114..1124 "DogCommand"
+        - WHITESPACE@1124..1125 " "
+        - ENUM_VALUES_DEFINITION@1125..1148
+            - L_CURLY@1125..1126 "{"
+            - WHITESPACE@1126..1129 "\n  "
+            - ENUM_VALUE_DEFINITION@1129..1132
+                - ENUM_VALUE@1129..1132
+                    - NAME@1129..1132
+                        - IDENT@1129..1132 "SIT"
+            - WHITESPACE@1132..1135 "\n  "
+            - ENUM_VALUE_DEFINITION@1135..1139
+                - ENUM_VALUE@1135..1139
+                    - NAME@1135..1139
+                        - IDENT@1135..1139 "HEEL"
+            - WHITESPACE@1139..1142 "\n  "
+            - ENUM_VALUE_DEFINITION@1142..1146
+                - ENUM_VALUE@1142..1146
+                    - NAME@1142..1146
+                        - IDENT@1142..1146 "DOWN"
+            - WHITESPACE@1146..1147 "\n"
+            - R_CURLY@1147..1148 "}"
+    - WHITESPACE@1148..1150 "\n\n"
+    - OBJECT_TYPE_DEFINITION@1150..1302
+        - type_KW@1150..1154 "type"
+        - WHITESPACE@1154..1155 " "
+        - NAME@1155..1158
+            - IDENT@1155..1158 "Dog"
+        - WHITESPACE@1158..1159 " "
+        - FIELDS_DEFINITION@1159..1302
+            - L_CURLY@1159..1160 "{"
+            - WHITESPACE@1160..1163 "\n  "
+            - FIELD_DEFINITION@1163..1211
+                - NAME@1163..1178
+                    - IDENT@1163..1178 "doesKnowCommand"
+                - ARGUMENTS_DEFINITION@1178..1202
+                    - L_PAREN@1178..1179 "("
+                    - INPUT_VALUE_DEFINITION@1179..1201
+                        - NAME@1179..1189
+                            - IDENT@1179..1189 "dogCommand"
+                        - COLON@1189..1190 ":"
                         - WHITESPACE@1190..1191 " "
-                        - DEFAULT_VALUE@1191..1197
-                            - EQ@1191..1192 "="
-                            - WHITESPACE@1192..1193 " "
-                            - BOOLEAN_VALUE@1193..1197
-                                - true_KW@1193..1197 "true"
-                    - R_PAREN@1197..1198 ")"
-                - COLON@1198..1199 ":"
-                - WHITESPACE@1199..1200 " "
-                - NAMED_TYPE@1200..1207
-                    - NAME@1200..1207
-                        - IDENT@1200..1207 "Boolean"
-            - WHITESPACE@1207..1208 "\n"
-            - R_CURLY@1208..1209 "}"
-    - WHITESPACE@1209..1211 "\n\n"
-    - INTERFACE_TYPE_DEFINITION@1211..1261
-        - interface_KW@1211..1220 "interface"
-        - WHITESPACE@1220..1221 " "
-        - NAME@1221..1224
-            - IDENT@1221..1224 "Pet"
-        - WHITESPACE@1224..1225 " "
-        - FIELDS_DEFINITION@1225..1261
-            - L_CURLY@1225..1226 "{"
-            - WHITESPACE@1226..1229 "\n  "
-            - FIELD_DEFINITION@1229..1259
-                - NAME@1229..1233
-                    - IDENT@1229..1233 "name"
-                - ARGUMENTS_DEFINITION@1233..1251
-                    - L_PAREN@1233..1234 "("
-                    - INPUT_VALUE_DEFINITION@1234..1250
-                        - NAME@1234..1241
-                            - IDENT@1234..1241 "surname"
-                        - COLON@1241..1242 ":"
-                        - WHITESPACE@1242..1243 " "
-                        - NAMED_TYPE@1243..1250
-                            - NAME@1243..1250
-                                - IDENT@1243..1250 "Boolean"
-                    - R_PAREN@1250..1251 ")"
-                - COLON@1251..1252 ":"
-                - WHITESPACE@1252..1253 " "
-                - NAMED_TYPE@1253..1259
-                    - NAME@1253..1259
-                        - IDENT@1253..1259 "String"
-            - WHITESPACE@1259..1260 "\n"
-            - R_CURLY@1260..1261 "}"
-    - WHITESPACE@1261..1263 "\n\n"
-    - OBJECT_TYPE_DEFINITION@1263..1346
-        - type_KW@1263..1267 "type"
-        - WHITESPACE@1267..1268 " "
-        - NAME@1268..1273
-            - IDENT@1268..1273 "Query"
-        - WHITESPACE@1273..1274 " "
-        - FIELDS_DEFINITION@1274..1346
-            - L_CURLY@1274..1275 "{"
-            - WHITESPACE@1275..1278 "\n  "
-            - FIELD_DEFINITION@1278..1310
-                - NAME@1278..1293
-                    - IDENT@1278..1293 "complicatedArgs"
-                - COLON@1293..1294 ":"
-                - WHITESPACE@1294..1295 " "
-                - NAMED_TYPE@1295..1310
-                    - NAME@1295..1310
-                        - IDENT@1295..1310 "ComplicatedArgs"
-            - WHITESPACE@1310..1313 "\n  "
-            - FIELD_DEFINITION@1313..1321
-                - NAME@1313..1316
-                    - IDENT@1313..1316 "dog"
-                - COLON@1316..1317 ":"
-                - WHITESPACE@1317..1318 " "
-                - NAMED_TYPE@1318..1321
-                    - NAME@1318..1321
-                        - IDENT@1318..1321 "Dog"
-            - WHITESPACE@1321..1324 "\n  "
-            - FIELD_DEFINITION@1324..1344
-                - NAME@1324..1329
-                    - IDENT@1324..1329 "human"
-                - ARGUMENTS_DEFINITION@1329..1337
-                    - L_PAREN@1329..1330 "("
-                    - INPUT_VALUE_DEFINITION@1330..1336
-                        - NAME@1330..1332
-                            - IDENT@1330..1332 "id"
-                        - COLON@1332..1333 ":"
-                        - WHITESPACE@1333..1334 " "
-                        - NAMED_TYPE@1334..1336
-                            - NAME@1334..1336
-                                - IDENT@1334..1336 "ID"
-                    - R_PAREN@1336..1337 ")"
-                - COLON@1337..1338 ":"
-                - WHITESPACE@1338..1339 " "
-                - NAMED_TYPE@1339..1344
-                    - NAME@1339..1344
-                        - IDENT@1339..1344 "Human"
-            - WHITESPACE@1344..1345 "\n"
-            - R_CURLY@1345..1346 "}"
-    - WHITESPACE@1346..1348 "\n\n"
-    - OBJECT_TYPE_DEFINITION@1348..1431
-        - type_KW@1348..1352 "type"
-        - WHITESPACE@1352..1353 " "
-        - NAME@1353..1358
-            - IDENT@1353..1358 "Human"
-        - WHITESPACE@1358..1359 " "
-        - FIELDS_DEFINITION@1359..1431
-            - L_CURLY@1359..1360 "{"
-            - WHITESPACE@1360..1363 "\n  "
-            - FIELD_DEFINITION@1363..1393
-                - NAME@1363..1367
-                    - IDENT@1363..1367 "name"
-                - ARGUMENTS_DEFINITION@1367..1385
-                    - L_PAREN@1367..1368 "("
-                    - INPUT_VALUE_DEFINITION@1368..1384
-                        - NAME@1368..1375
-                            - IDENT@1368..1375 "surname"
-                        - COLON@1375..1376 ":"
-                        - WHITESPACE@1376..1377 " "
-                        - NAMED_TYPE@1377..1384
-                            - NAME@1377..1384
-                                - IDENT@1377..1384 "Boolean"
-                    - R_PAREN@1384..1385 ")"
-                - COLON@1385..1386 ":"
-                - WHITESPACE@1386..1387 " "
-                - NAMED_TYPE@1387..1393
-                    - NAME@1387..1393
-                        - IDENT@1387..1393 "String"
-            - WHITESPACE@1393..1396 "\n  "
-            - FIELD_DEFINITION@1396..1407
-                - NAME@1396..1400
-                    - IDENT@1396..1400 "pets"
-                - COLON@1400..1401 ":"
-                - WHITESPACE@1401..1402 " "
-                - LIST_TYPE@1402..1407
-                    - L_BRACK@1402..1403 "["
-                    - NAMED_TYPE@1403..1406
-                        - NAME@1403..1406
-                            - IDENT@1403..1406 "Pet"
-                    - R_BRACK@1406..1407 "]"
-            - WHITESPACE@1407..1410 "\n  "
-            - FIELD_DEFINITION@1410..1429
-                - NAME@1410..1419
-                    - IDENT@1410..1419 "relatives"
-                - COLON@1419..1420 ":"
-                - WHITESPACE@1420..1421 " "
-                - NON_NULL_TYPE@1421..1429
-                    - LIST_TYPE@1421..1428
-                        - L_BRACK@1421..1422 "["
-                        - NAMED_TYPE@1422..1427
-                            - NAME@1422..1427
-                                - IDENT@1422..1427 "Human"
-                        - R_BRACK@1427..1428 "]"
-                    - BANG@1428..1429 "!"
-            - WHITESPACE@1429..1430 "\n"
-            - R_CURLY@1430..1431 "}"
-    - WHITESPACE@1431..1433 "\n\n"
-    - OPERATION_DEFINITION@1433..1506
-        - OPERATION_TYPE@1433..1438
-            - query_KW@1433..1438 "query"
-        - WHITESPACE@1438..1439 " "
-        - NAME@1439..1451
-            - IDENT@1439..1451 "goodIntValue"
+                        - NAMED_TYPE@1191..1201
+                            - NAME@1191..1201
+                                - IDENT@1191..1201 "DogCommand"
+                    - R_PAREN@1201..1202 ")"
+                - COLON@1202..1203 ":"
+                - WHITESPACE@1203..1204 " "
+                - NAMED_TYPE@1204..1211
+                    - NAME@1204..1211
+                        - IDENT@1204..1211 "Boolean"
+            - WHITESPACE@1211..1214 "\n  "
+            - FIELD_DEFINITION@1214..1244
+                - NAME@1214..1218
+                    - IDENT@1214..1218 "name"
+                - ARGUMENTS_DEFINITION@1218..1236
+                    - L_PAREN@1218..1219 "("
+                    - INPUT_VALUE_DEFINITION@1219..1235
+                        - NAME@1219..1226
+                            - IDENT@1219..1226 "surname"
+                        - COLON@1226..1227 ":"
+                        - WHITESPACE@1227..1228 " "
+                        - NAMED_TYPE@1228..1235
+                            - NAME@1228..1235
+                                - IDENT@1228..1235 "Boolean"
+                    - R_PAREN@1235..1236 ")"
+                - COLON@1236..1237 ":"
+                - WHITESPACE@1237..1238 " "
+                - NAMED_TYPE@1238..1244
+                    - NAME@1238..1244
+                        - IDENT@1238..1244 "String"
+            - WHITESPACE@1244..1247 "\n  "
+            - FIELD_DEFINITION@1247..1300
+                - NAME@1247..1261
+                    - IDENT@1247..1261 "isHouseTrained"
+                - ARGUMENTS_DEFINITION@1261..1291
+                    - L_PAREN@1261..1262 "("
+                    - INPUT_VALUE_DEFINITION@1262..1290
+                        - NAME@1262..1274
+                            - IDENT@1262..1274 "atOtherHomes"
+                        - COLON@1274..1275 ":"
+                        - WHITESPACE@1275..1276 " "
+                        - NAMED_TYPE@1276..1283
+                            - NAME@1276..1283
+                                - IDENT@1276..1283 "Boolean"
+                        - WHITESPACE@1283..1284 " "
+                        - DEFAULT_VALUE@1284..1290
+                            - EQ@1284..1285 "="
+                            - WHITESPACE@1285..1286 " "
+                            - BOOLEAN_VALUE@1286..1290
+                                - true_KW@1286..1290 "true"
+                    - R_PAREN@1290..1291 ")"
+                - COLON@1291..1292 ":"
+                - WHITESPACE@1292..1293 " "
+                - NAMED_TYPE@1293..1300
+                    - NAME@1293..1300
+                        - IDENT@1293..1300 "Boolean"
+            - WHITESPACE@1300..1301 "\n"
+            - R_CURLY@1301..1302 "}"
+    - WHITESPACE@1302..1304 "\n\n"
+    - INTERFACE_TYPE_DEFINITION@1304..1354
+        - interface_KW@1304..1313 "interface"
+        - WHITESPACE@1313..1314 " "
+        - NAME@1314..1317
+            - IDENT@1314..1317 "Pet"
+        - WHITESPACE@1317..1318 " "
+        - FIELDS_DEFINITION@1318..1354
+            - L_CURLY@1318..1319 "{"
+            - WHITESPACE@1319..1322 "\n  "
+            - FIELD_DEFINITION@1322..1352
+                - NAME@1322..1326
+                    - IDENT@1322..1326 "name"
+                - ARGUMENTS_DEFINITION@1326..1344
+                    - L_PAREN@1326..1327 "("
+                    - INPUT_VALUE_DEFINITION@1327..1343
+                        - NAME@1327..1334
+                            - IDENT@1327..1334 "surname"
+                        - COLON@1334..1335 ":"
+                        - WHITESPACE@1335..1336 " "
+                        - NAMED_TYPE@1336..1343
+                            - NAME@1336..1343
+                                - IDENT@1336..1343 "Boolean"
+                    - R_PAREN@1343..1344 ")"
+                - COLON@1344..1345 ":"
+                - WHITESPACE@1345..1346 " "
+                - NAMED_TYPE@1346..1352
+                    - NAME@1346..1352
+                        - IDENT@1346..1352 "String"
+            - WHITESPACE@1352..1353 "\n"
+            - R_CURLY@1353..1354 "}"
+    - WHITESPACE@1354..1356 "\n\n"
+    - OBJECT_TYPE_DEFINITION@1356..1439
+        - type_KW@1356..1360 "type"
+        - WHITESPACE@1360..1361 " "
+        - NAME@1361..1366
+            - IDENT@1361..1366 "Query"
+        - WHITESPACE@1366..1367 " "
+        - FIELDS_DEFINITION@1367..1439
+            - L_CURLY@1367..1368 "{"
+            - WHITESPACE@1368..1371 "\n  "
+            - FIELD_DEFINITION@1371..1403
+                - NAME@1371..1386
+                    - IDENT@1371..1386 "complicatedArgs"
+                - COLON@1386..1387 ":"
+                - WHITESPACE@1387..1388 " "
+                - NAMED_TYPE@1388..1403
+                    - NAME@1388..1403
+                        - IDENT@1388..1403 "ComplicatedArgs"
+            - WHITESPACE@1403..1406 "\n  "
+            - FIELD_DEFINITION@1406..1414
+                - NAME@1406..1409
+                    - IDENT@1406..1409 "dog"
+                - COLON@1409..1410 ":"
+                - WHITESPACE@1410..1411 " "
+                - NAMED_TYPE@1411..1414
+                    - NAME@1411..1414
+                        - IDENT@1411..1414 "Dog"
+            - WHITESPACE@1414..1417 "\n  "
+            - FIELD_DEFINITION@1417..1437
+                - NAME@1417..1422
+                    - IDENT@1417..1422 "human"
+                - ARGUMENTS_DEFINITION@1422..1430
+                    - L_PAREN@1422..1423 "("
+                    - INPUT_VALUE_DEFINITION@1423..1429
+                        - NAME@1423..1425
+                            - IDENT@1423..1425 "id"
+                        - COLON@1425..1426 ":"
+                        - WHITESPACE@1426..1427 " "
+                        - NAMED_TYPE@1427..1429
+                            - NAME@1427..1429
+                                - IDENT@1427..1429 "ID"
+                    - R_PAREN@1429..1430 ")"
+                - COLON@1430..1431 ":"
+                - WHITESPACE@1431..1432 " "
+                - NAMED_TYPE@1432..1437
+                    - NAME@1432..1437
+                        - IDENT@1432..1437 "Human"
+            - WHITESPACE@1437..1438 "\n"
+            - R_CURLY@1438..1439 "}"
+    - WHITESPACE@1439..1441 "\n\n"
+    - OBJECT_TYPE_DEFINITION@1441..1524
+        - type_KW@1441..1445 "type"
+        - WHITESPACE@1445..1446 " "
+        - NAME@1446..1451
+            - IDENT@1446..1451 "Human"
         - WHITESPACE@1451..1452 " "
-        - SELECTION_SET@1452..1506
+        - FIELDS_DEFINITION@1452..1524
             - L_CURLY@1452..1453 "{"
             - WHITESPACE@1453..1456 "\n  "
-            - FIELD@1456..1504
-                - NAME@1456..1471
-                    - IDENT@1456..1471 "complicatedArgs"
-                - WHITESPACE@1471..1472 " "
-                - SELECTION_SET@1472..1504
-                    - L_CURLY@1472..1473 "{"
-                    - WHITESPACE@1473..1478 "\n    "
-                    - FIELD@1478..1500
-                        - NAME@1478..1489
-                            - IDENT@1478..1489 "intArgField"
-                        - ARGUMENTS@1489..1500
-                            - L_PAREN@1489..1490 "("
-                            - ARGUMENT@1490..1499
-                                - NAME@1490..1496
-                                    - IDENT@1490..1496 "intArg"
-                                - COLON@1496..1497 ":"
-                                - WHITESPACE@1497..1498 " "
-                                - INT_VALUE@1498..1499
-                                    - INT@1498..1499 "2"
-                            - R_PAREN@1499..1500 ")"
-                    - WHITESPACE@1500..1503 "\n  "
-                    - R_CURLY@1503..1504 "}"
-            - WHITESPACE@1504..1505 "\n"
-            - R_CURLY@1505..1506 "}"
-    - WHITESPACE@1506..1508 "\n\n"
-    - OPERATION_DEFINITION@1508..1589
-        - OPERATION_TYPE@1508..1513
-            - query_KW@1508..1513 "query"
-        - WHITESPACE@1513..1514 " "
-        - NAME@1514..1534
-            - IDENT@1514..1534 "goodNegativeIntValue"
-        - SELECTION_SET@1534..1589
-            - L_CURLY@1534..1535 "{"
-            - WHITESPACE@1535..1538 "\n  "
-            - FIELD@1538..1587
-                - NAME@1538..1553
-                    - IDENT@1538..1553 "complicatedArgs"
-                - WHITESPACE@1553..1554 " "
-                - SELECTION_SET@1554..1587
-                    - L_CURLY@1554..1555 "{"
-                    - WHITESPACE@1555..1560 "\n    "
-                    - FIELD@1560..1583
-                        - NAME@1560..1571
-                            - IDENT@1560..1571 "intArgField"
-                        - ARGUMENTS@1571..1583
-                            - L_PAREN@1571..1572 "("
-                            - ARGUMENT@1572..1582
-                                - NAME@1572..1578
-                                    - IDENT@1572..1578 "intArg"
-                                - COLON@1578..1579 ":"
-                                - WHITESPACE@1579..1580 " "
-                                - INT_VALUE@1580..1582
-                                    - INT@1580..1582 "-2"
-                            - R_PAREN@1582..1583 ")"
-                    - WHITESPACE@1583..1586 "\n  "
-                    - R_CURLY@1586..1587 "}"
-            - WHITESPACE@1587..1588 "\n"
-            - R_CURLY@1588..1589 "}"
-    - WHITESPACE@1589..1591 "\n\n"
-    - OPERATION_DEFINITION@1591..1679
-        - OPERATION_TYPE@1591..1596
-            - query_KW@1591..1596 "query"
-        - WHITESPACE@1596..1597 " "
-        - NAME@1597..1613
-            - IDENT@1597..1613 "goodBooleanValue"
-        - WHITESPACE@1613..1614 " "
-        - SELECTION_SET@1614..1679
-            - L_CURLY@1614..1615 "{"
-            - WHITESPACE@1615..1618 "\n  "
-            - FIELD@1618..1677
-                - NAME@1618..1633
-                    - IDENT@1618..1633 "complicatedArgs"
-                - WHITESPACE@1633..1634 " "
-                - SELECTION_SET@1634..1677
-                    - L_CURLY@1634..1635 "{"
-                    - WHITESPACE@1635..1640 "\n    "
-                    - FIELD@1640..1673
-                        - NAME@1640..1655
-                            - IDENT@1640..1655 "booleanArgField"
-                        - ARGUMENTS@1655..1673
-                            - L_PAREN@1655..1656 "("
-                            - ARGUMENT@1656..1672
-                                - NAME@1656..1666
-                                    - IDENT@1656..1666 "booleanArg"
-                                - COLON@1666..1667 ":"
-                                - WHITESPACE@1667..1668 " "
-                                - BOOLEAN_VALUE@1668..1672
-                                    - true_KW@1668..1672 "true"
-                            - R_PAREN@1672..1673 ")"
-                    - WHITESPACE@1673..1676 "\n  "
-                    - R_CURLY@1676..1677 "}"
-            - WHITESPACE@1677..1678 "\n"
-            - R_CURLY@1678..1679 "}"
-    - WHITESPACE@1679..1681 "\n\n"
-    - OPERATION_DEFINITION@1681..1767
-        - OPERATION_TYPE@1681..1686
-            - query_KW@1681..1686 "query"
-        - WHITESPACE@1686..1687 " "
-        - NAME@1687..1702
-            - IDENT@1687..1702 "goodStringValue"
-        - WHITESPACE@1702..1703 " "
-        - SELECTION_SET@1703..1767
-            - L_CURLY@1703..1704 "{"
-            - WHITESPACE@1704..1707 "\n  "
-            - FIELD@1707..1765
-                - NAME@1707..1722
-                    - IDENT@1707..1722 "complicatedArgs"
-                - WHITESPACE@1722..1723 " "
-                - SELECTION_SET@1723..1765
-                    - L_CURLY@1723..1724 "{"
-                    - WHITESPACE@1724..1729 "\n    "
-                    - FIELD@1729..1761
-                        - NAME@1729..1743
-                            - IDENT@1729..1743 "stringArgField"
-                        - ARGUMENTS@1743..1761
-                            - L_PAREN@1743..1744 "("
-                            - ARGUMENT@1744..1760
-                                - NAME@1744..1753
-                                    - IDENT@1744..1753 "stringArg"
-                                - COLON@1753..1754 ":"
-                                - WHITESPACE@1754..1755 " "
-                                - STRING_VALUE@1755..1760
-                                    - STRING@1755..1760 "\"foo\""
-                            - R_PAREN@1760..1761 ")"
-                    - WHITESPACE@1761..1764 "\n  "
-                    - R_CURLY@1764..1765 "}"
-            - WHITESPACE@1765..1766 "\n"
-            - R_CURLY@1766..1767 "}"
-    - WHITESPACE@1767..1769 "\n\n"
-    - OPERATION_DEFINITION@1769..1850
-        - OPERATION_TYPE@1769..1774
-            - query_KW@1769..1774 "query"
-        - WHITESPACE@1774..1775 " "
-        - NAME@1775..1789
-            - IDENT@1775..1789 "goodFloatValue"
-        - WHITESPACE@1789..1790 " "
-        - SELECTION_SET@1790..1850
-            - L_CURLY@1790..1791 "{"
-            - WHITESPACE@1791..1794 "\n  "
-            - FIELD@1794..1848
-                - NAME@1794..1809
-                    - IDENT@1794..1809 "complicatedArgs"
-                - WHITESPACE@1809..1810 " "
-                - SELECTION_SET@1810..1848
-                    - L_CURLY@1810..1811 "{"
-                    - WHITESPACE@1811..1816 "\n    "
-                    - FIELD@1816..1844
-                        - NAME@1816..1829
-                            - IDENT@1816..1829 "floatArgField"
-                        - ARGUMENTS@1829..1844
-                            - L_PAREN@1829..1830 "("
-                            - ARGUMENT@1830..1843
-                                - NAME@1830..1838
-                                    - IDENT@1830..1838 "floatArg"
-                                - COLON@1838..1839 ":"
-                                - WHITESPACE@1839..1840 " "
-                                - FLOAT_VALUE@1840..1843
-                                    - FLOAT@1840..1843 "1.1"
-                            - R_PAREN@1843..1844 ")"
-                    - WHITESPACE@1844..1847 "\n  "
-                    - R_CURLY@1847..1848 "}"
-            - WHITESPACE@1848..1849 "\n"
-            - R_CURLY@1849..1850 "}"
-    - WHITESPACE@1850..1852 "\n\n"
-    - OPERATION_DEFINITION@1852..1942
-        - OPERATION_TYPE@1852..1857
-            - query_KW@1852..1857 "query"
-        - WHITESPACE@1857..1858 " "
-        - NAME@1858..1880
-            - IDENT@1858..1880 "goodNegativeFloatValue"
-        - WHITESPACE@1880..1881 " "
-        - SELECTION_SET@1881..1942
-            - L_CURLY@1881..1882 "{"
-            - WHITESPACE@1882..1885 "\n  "
-            - FIELD@1885..1940
-                - NAME@1885..1900
-                    - IDENT@1885..1900 "complicatedArgs"
-                - WHITESPACE@1900..1901 " "
-                - SELECTION_SET@1901..1940
-                    - L_CURLY@1901..1902 "{"
-                    - WHITESPACE@1902..1907 "\n    "
-                    - FIELD@1907..1936
-                        - NAME@1907..1920
-                            - IDENT@1907..1920 "floatArgField"
-                        - ARGUMENTS@1920..1936
-                            - L_PAREN@1920..1921 "("
-                            - ARGUMENT@1921..1935
-                                - NAME@1921..1929
-                                    - IDENT@1921..1929 "floatArg"
-                                - COLON@1929..1930 ":"
-                                - WHITESPACE@1930..1931 " "
-                                - FLOAT_VALUE@1931..1935
-                                    - FLOAT@1931..1935 "-1.1"
-                            - R_PAREN@1935..1936 ")"
-                    - WHITESPACE@1936..1939 "\n  "
-                    - R_CURLY@1939..1940 "}"
-            - WHITESPACE@1940..1941 "\n"
-            - R_CURLY@1941..1942 "}"
-    - WHITESPACE@1942..1944 "\n\n"
-    - OPERATION_DEFINITION@1944..2021
-        - OPERATION_TYPE@1944..1949
-            - query_KW@1944..1949 "query"
-        - WHITESPACE@1949..1950 " "
-        - NAME@1950..1962
-            - IDENT@1950..1962 "intIntoFloat"
-        - WHITESPACE@1962..1963 " "
-        - SELECTION_SET@1963..2021
-            - L_CURLY@1963..1964 "{"
-            - WHITESPACE@1964..1967 "\n  "
-            - FIELD@1967..2019
-                - NAME@1967..1982
-                    - IDENT@1967..1982 "complicatedArgs"
-                - WHITESPACE@1982..1983 " "
-                - SELECTION_SET@1983..2019
-                    - L_CURLY@1983..1984 "{"
-                    - WHITESPACE@1984..1989 "\n    "
-                    - FIELD@1989..2015
-                        - NAME@1989..2002
-                            - IDENT@1989..2002 "floatArgField"
-                        - ARGUMENTS@2002..2015
-                            - L_PAREN@2002..2003 "("
-                            - ARGUMENT@2003..2014
-                                - NAME@2003..2011
-                                    - IDENT@2003..2011 "floatArg"
-                                - COLON@2011..2012 ":"
-                                - WHITESPACE@2012..2013 " "
-                                - INT_VALUE@2013..2014
-                                    - INT@2013..2014 "1"
-                            - R_PAREN@2014..2015 ")"
-                    - WHITESPACE@2015..2018 "\n  "
-                    - R_CURLY@2018..2019 "}"
-            - WHITESPACE@2019..2020 "\n"
-            - R_CURLY@2020..2021 "}"
-    - WHITESPACE@2021..2023 "\n\n"
-    - OPERATION_DEFINITION@2023..2091
-        - OPERATION_TYPE@2023..2028
-            - query_KW@2023..2028 "query"
-        - WHITESPACE@2028..2029 " "
-        - NAME@2029..2038
-            - IDENT@2029..2038 "intIntoID"
-        - WHITESPACE@2038..2039 " "
-        - SELECTION_SET@2039..2091
-            - L_CURLY@2039..2040 "{"
-            - WHITESPACE@2040..2043 "\n  "
-            - FIELD@2043..2089
-                - NAME@2043..2058
-                    - IDENT@2043..2058 "complicatedArgs"
-                - WHITESPACE@2058..2059 " "
-                - SELECTION_SET@2059..2089
-                    - L_CURLY@2059..2060 "{"
-                    - WHITESPACE@2060..2065 "\n    "
-                    - FIELD@2065..2085
-                        - NAME@2065..2075
-                            - IDENT@2065..2075 "idArgField"
-                        - ARGUMENTS@2075..2085
-                            - L_PAREN@2075..2076 "("
-                            - ARGUMENT@2076..2084
-                                - NAME@2076..2081
-                                    - IDENT@2076..2081 "idArg"
-                                - COLON@2081..2082 ":"
-                                - WHITESPACE@2082..2083 " "
-                                - INT_VALUE@2083..2084
-                                    - INT@2083..2084 "1"
-                            - R_PAREN@2084..2085 ")"
-                    - WHITESPACE@2085..2088 "\n  "
-                    - R_CURLY@2088..2089 "}"
-            - WHITESPACE@2089..2090 "\n"
-            - R_CURLY@2090..2091 "}"
-    - WHITESPACE@2091..2093 "\n\n"
-    - OPERATION_DEFINITION@2093..2177
-        - OPERATION_TYPE@2093..2098
-            - query_KW@2093..2098 "query"
-        - WHITESPACE@2098..2099 " "
-        - NAME@2099..2111
-            - IDENT@2099..2111 "stringIntoID"
-        - WHITESPACE@2111..2112 " "
-        - SELECTION_SET@2112..2177
-            - L_CURLY@2112..2113 "{"
-            - WHITESPACE@2113..2116 "\n  "
-            - FIELD@2116..2175
-                - NAME@2116..2131
-                    - IDENT@2116..2131 "complicatedArgs"
-                - WHITESPACE@2131..2132 " "
-                - SELECTION_SET@2132..2175
-                    - L_CURLY@2132..2133 "{"
-                    - WHITESPACE@2133..2138 "\n    "
-                    - FIELD@2138..2171
-                        - NAME@2138..2148
-                            - IDENT@2138..2148 "idArgField"
-                        - ARGUMENTS@2148..2171
-                            - L_PAREN@2148..2149 "("
-                            - ARGUMENT@2149..2170
-                                - NAME@2149..2154
-                                    - IDENT@2149..2154 "idArg"
-                                - COLON@2154..2155 ":"
-                                - WHITESPACE@2155..2156 " "
-                                - STRING_VALUE@2156..2170
-                                    - STRING@2156..2170 "\"someIdString\""
-                            - R_PAREN@2170..2171 ")"
-                    - WHITESPACE@2171..2174 "\n  "
-                    - R_CURLY@2174..2175 "}"
-            - WHITESPACE@2175..2176 "\n"
-            - R_CURLY@2176..2177 "}"
-    - WHITESPACE@2177..2179 "\n\n"
-    - OPERATION_DEFINITION@2179..2251
-        - OPERATION_TYPE@2179..2184
-            - query_KW@2179..2184 "query"
-        - WHITESPACE@2184..2185 " "
-        - NAME@2185..2198
-            - IDENT@2185..2198 "goodEnumValue"
-        - WHITESPACE@2198..2199 " "
-        - SELECTION_SET@2199..2251
-            - L_CURLY@2199..2200 "{"
-            - WHITESPACE@2200..2203 "\n  "
-            - FIELD@2203..2249
-                - NAME@2203..2206
-                    - IDENT@2203..2206 "dog"
-                - WHITESPACE@2206..2207 " "
-                - SELECTION_SET@2207..2249
-                    - L_CURLY@2207..2208 "{"
-                    - WHITESPACE@2208..2213 "\n    "
-                    - FIELD@2213..2245
-                        - NAME@2213..2228
-                            - IDENT@2213..2228 "doesKnowCommand"
-                        - ARGUMENTS@2228..2245
-                            - L_PAREN@2228..2229 "("
-                            - ARGUMENT@2229..2244
-                                - NAME@2229..2239
-                                    - IDENT@2229..2239 "dogCommand"
-                                - COLON@2239..2240 ":"
-                                - WHITESPACE@2240..2241 " "
-                                - ENUM_VALUE@2241..2244
-                                    - NAME@2241..2244
-                                        - IDENT@2241..2244 "SIT"
-                            - R_PAREN@2244..2245 ")"
-                    - WHITESPACE@2245..2248 "\n  "
-                    - R_CURLY@2248..2249 "}"
-            - WHITESPACE@2249..2250 "\n"
-            - R_CURLY@2250..2251 "}"
-    - WHITESPACE@2251..2253 "\n\n"
-    - OPERATION_DEFINITION@2253..2344
-        - OPERATION_TYPE@2253..2258
-            - query_KW@2253..2258 "query"
-        - WHITESPACE@2258..2259 " "
-        - NAME@2259..2281
-            - IDENT@2259..2281 "enumWithUndefinedValue"
-        - WHITESPACE@2281..2282 " "
-        - SELECTION_SET@2282..2344
-            - L_CURLY@2282..2283 "{"
-            - WHITESPACE@2283..2286 "\n  "
-            - FIELD@2286..2342
-                - NAME@2286..2301
-                    - IDENT@2286..2301 "complicatedArgs"
-                - WHITESPACE@2301..2302 " "
-                - SELECTION_SET@2302..2342
-                    - L_CURLY@2302..2303 "{"
-                    - WHITESPACE@2303..2308 "\n    "
-                    - FIELD@2308..2338
-                        - NAME@2308..2320
-                            - IDENT@2308..2320 "enumArgField"
-                        - ARGUMENTS@2320..2338
-                            - L_PAREN@2320..2321 "("
-                            - ARGUMENT@2321..2337
-                                - NAME@2321..2328
-                                    - IDENT@2321..2328 "enumArg"
-                                - COLON@2328..2329 ":"
-                                - WHITESPACE@2329..2330 " "
-                                - ENUM_VALUE@2330..2337
-                                    - NAME@2330..2337
-                                        - IDENT@2330..2337 "UNKNOWN"
+            - FIELD_DEFINITION@1456..1486
+                - NAME@1456..1460
+                    - IDENT@1456..1460 "name"
+                - ARGUMENTS_DEFINITION@1460..1478
+                    - L_PAREN@1460..1461 "("
+                    - INPUT_VALUE_DEFINITION@1461..1477
+                        - NAME@1461..1468
+                            - IDENT@1461..1468 "surname"
+                        - COLON@1468..1469 ":"
+                        - WHITESPACE@1469..1470 " "
+                        - NAMED_TYPE@1470..1477
+                            - NAME@1470..1477
+                                - IDENT@1470..1477 "Boolean"
+                    - R_PAREN@1477..1478 ")"
+                - COLON@1478..1479 ":"
+                - WHITESPACE@1479..1480 " "
+                - NAMED_TYPE@1480..1486
+                    - NAME@1480..1486
+                        - IDENT@1480..1486 "String"
+            - WHITESPACE@1486..1489 "\n  "
+            - FIELD_DEFINITION@1489..1500
+                - NAME@1489..1493
+                    - IDENT@1489..1493 "pets"
+                - COLON@1493..1494 ":"
+                - WHITESPACE@1494..1495 " "
+                - LIST_TYPE@1495..1500
+                    - L_BRACK@1495..1496 "["
+                    - NAMED_TYPE@1496..1499
+                        - NAME@1496..1499
+                            - IDENT@1496..1499 "Pet"
+                    - R_BRACK@1499..1500 "]"
+            - WHITESPACE@1500..1503 "\n  "
+            - FIELD_DEFINITION@1503..1522
+                - NAME@1503..1512
+                    - IDENT@1503..1512 "relatives"
+                - COLON@1512..1513 ":"
+                - WHITESPACE@1513..1514 " "
+                - NON_NULL_TYPE@1514..1522
+                    - LIST_TYPE@1514..1521
+                        - L_BRACK@1514..1515 "["
+                        - NAMED_TYPE@1515..1520
+                            - NAME@1515..1520
+                                - IDENT@1515..1520 "Human"
+                        - R_BRACK@1520..1521 "]"
+                    - BANG@1521..1522 "!"
+            - WHITESPACE@1522..1523 "\n"
+            - R_CURLY@1523..1524 "}"
+    - WHITESPACE@1524..1526 "\n\n"
+    - OPERATION_DEFINITION@1526..1599
+        - OPERATION_TYPE@1526..1531
+            - query_KW@1526..1531 "query"
+        - WHITESPACE@1531..1532 " "
+        - NAME@1532..1544
+            - IDENT@1532..1544 "goodIntValue"
+        - WHITESPACE@1544..1545 " "
+        - SELECTION_SET@1545..1599
+            - L_CURLY@1545..1546 "{"
+            - WHITESPACE@1546..1549 "\n  "
+            - FIELD@1549..1597
+                - NAME@1549..1564
+                    - IDENT@1549..1564 "complicatedArgs"
+                - WHITESPACE@1564..1565 " "
+                - SELECTION_SET@1565..1597
+                    - L_CURLY@1565..1566 "{"
+                    - WHITESPACE@1566..1571 "\n    "
+                    - FIELD@1571..1593
+                        - NAME@1571..1582
+                            - IDENT@1571..1582 "intArgField"
+                        - ARGUMENTS@1582..1593
+                            - L_PAREN@1582..1583 "("
+                            - ARGUMENT@1583..1592
+                                - NAME@1583..1589
+                                    - IDENT@1583..1589 "intArg"
+                                - COLON@1589..1590 ":"
+                                - WHITESPACE@1590..1591 " "
+                                - INT_VALUE@1591..1592
+                                    - INT@1591..1592 "2"
+                            - R_PAREN@1592..1593 ")"
+                    - WHITESPACE@1593..1596 "\n  "
+                    - R_CURLY@1596..1597 "}"
+            - WHITESPACE@1597..1598 "\n"
+            - R_CURLY@1598..1599 "}"
+    - WHITESPACE@1599..1601 "\n\n"
+    - OPERATION_DEFINITION@1601..1682
+        - OPERATION_TYPE@1601..1606
+            - query_KW@1601..1606 "query"
+        - WHITESPACE@1606..1607 " "
+        - NAME@1607..1627
+            - IDENT@1607..1627 "goodNegativeIntValue"
+        - SELECTION_SET@1627..1682
+            - L_CURLY@1627..1628 "{"
+            - WHITESPACE@1628..1631 "\n  "
+            - FIELD@1631..1680
+                - NAME@1631..1646
+                    - IDENT@1631..1646 "complicatedArgs"
+                - WHITESPACE@1646..1647 " "
+                - SELECTION_SET@1647..1680
+                    - L_CURLY@1647..1648 "{"
+                    - WHITESPACE@1648..1653 "\n    "
+                    - FIELD@1653..1676
+                        - NAME@1653..1664
+                            - IDENT@1653..1664 "intArgField"
+                        - ARGUMENTS@1664..1676
+                            - L_PAREN@1664..1665 "("
+                            - ARGUMENT@1665..1675
+                                - NAME@1665..1671
+                                    - IDENT@1665..1671 "intArg"
+                                - COLON@1671..1672 ":"
+                                - WHITESPACE@1672..1673 " "
+                                - INT_VALUE@1673..1675
+                                    - INT@1673..1675 "-2"
+                            - R_PAREN@1675..1676 ")"
+                    - WHITESPACE@1676..1679 "\n  "
+                    - R_CURLY@1679..1680 "}"
+            - WHITESPACE@1680..1681 "\n"
+            - R_CURLY@1681..1682 "}"
+    - WHITESPACE@1682..1684 "\n\n"
+    - OPERATION_DEFINITION@1684..1772
+        - OPERATION_TYPE@1684..1689
+            - query_KW@1684..1689 "query"
+        - WHITESPACE@1689..1690 " "
+        - NAME@1690..1706
+            - IDENT@1690..1706 "goodBooleanValue"
+        - WHITESPACE@1706..1707 " "
+        - SELECTION_SET@1707..1772
+            - L_CURLY@1707..1708 "{"
+            - WHITESPACE@1708..1711 "\n  "
+            - FIELD@1711..1770
+                - NAME@1711..1726
+                    - IDENT@1711..1726 "complicatedArgs"
+                - WHITESPACE@1726..1727 " "
+                - SELECTION_SET@1727..1770
+                    - L_CURLY@1727..1728 "{"
+                    - WHITESPACE@1728..1733 "\n    "
+                    - FIELD@1733..1766
+                        - NAME@1733..1748
+                            - IDENT@1733..1748 "booleanArgField"
+                        - ARGUMENTS@1748..1766
+                            - L_PAREN@1748..1749 "("
+                            - ARGUMENT@1749..1765
+                                - NAME@1749..1759
+                                    - IDENT@1749..1759 "booleanArg"
+                                - COLON@1759..1760 ":"
+                                - WHITESPACE@1760..1761 " "
+                                - BOOLEAN_VALUE@1761..1765
+                                    - true_KW@1761..1765 "true"
+                            - R_PAREN@1765..1766 ")"
+                    - WHITESPACE@1766..1769 "\n  "
+                    - R_CURLY@1769..1770 "}"
+            - WHITESPACE@1770..1771 "\n"
+            - R_CURLY@1771..1772 "}"
+    - WHITESPACE@1772..1774 "\n\n"
+    - OPERATION_DEFINITION@1774..1860
+        - OPERATION_TYPE@1774..1779
+            - query_KW@1774..1779 "query"
+        - WHITESPACE@1779..1780 " "
+        - NAME@1780..1795
+            - IDENT@1780..1795 "goodStringValue"
+        - WHITESPACE@1795..1796 " "
+        - SELECTION_SET@1796..1860
+            - L_CURLY@1796..1797 "{"
+            - WHITESPACE@1797..1800 "\n  "
+            - FIELD@1800..1858
+                - NAME@1800..1815
+                    - IDENT@1800..1815 "complicatedArgs"
+                - WHITESPACE@1815..1816 " "
+                - SELECTION_SET@1816..1858
+                    - L_CURLY@1816..1817 "{"
+                    - WHITESPACE@1817..1822 "\n    "
+                    - FIELD@1822..1854
+                        - NAME@1822..1836
+                            - IDENT@1822..1836 "stringArgField"
+                        - ARGUMENTS@1836..1854
+                            - L_PAREN@1836..1837 "("
+                            - ARGUMENT@1837..1853
+                                - NAME@1837..1846
+                                    - IDENT@1837..1846 "stringArg"
+                                - COLON@1846..1847 ":"
+                                - WHITESPACE@1847..1848 " "
+                                - STRING_VALUE@1848..1853
+                                    - STRING@1848..1853 "\"foo\""
+                            - R_PAREN@1853..1854 ")"
+                    - WHITESPACE@1854..1857 "\n  "
+                    - R_CURLY@1857..1858 "}"
+            - WHITESPACE@1858..1859 "\n"
+            - R_CURLY@1859..1860 "}"
+    - WHITESPACE@1860..1862 "\n\n"
+    - OPERATION_DEFINITION@1862..1943
+        - OPERATION_TYPE@1862..1867
+            - query_KW@1862..1867 "query"
+        - WHITESPACE@1867..1868 " "
+        - NAME@1868..1882
+            - IDENT@1868..1882 "goodFloatValue"
+        - WHITESPACE@1882..1883 " "
+        - SELECTION_SET@1883..1943
+            - L_CURLY@1883..1884 "{"
+            - WHITESPACE@1884..1887 "\n  "
+            - FIELD@1887..1941
+                - NAME@1887..1902
+                    - IDENT@1887..1902 "complicatedArgs"
+                - WHITESPACE@1902..1903 " "
+                - SELECTION_SET@1903..1941
+                    - L_CURLY@1903..1904 "{"
+                    - WHITESPACE@1904..1909 "\n    "
+                    - FIELD@1909..1937
+                        - NAME@1909..1922
+                            - IDENT@1909..1922 "floatArgField"
+                        - ARGUMENTS@1922..1937
+                            - L_PAREN@1922..1923 "("
+                            - ARGUMENT@1923..1936
+                                - NAME@1923..1931
+                                    - IDENT@1923..1931 "floatArg"
+                                - COLON@1931..1932 ":"
+                                - WHITESPACE@1932..1933 " "
+                                - FLOAT_VALUE@1933..1936
+                                    - FLOAT@1933..1936 "1.1"
+                            - R_PAREN@1936..1937 ")"
+                    - WHITESPACE@1937..1940 "\n  "
+                    - R_CURLY@1940..1941 "}"
+            - WHITESPACE@1941..1942 "\n"
+            - R_CURLY@1942..1943 "}"
+    - WHITESPACE@1943..1945 "\n\n"
+    - OPERATION_DEFINITION@1945..2035
+        - OPERATION_TYPE@1945..1950
+            - query_KW@1945..1950 "query"
+        - WHITESPACE@1950..1951 " "
+        - NAME@1951..1973
+            - IDENT@1951..1973 "goodNegativeFloatValue"
+        - WHITESPACE@1973..1974 " "
+        - SELECTION_SET@1974..2035
+            - L_CURLY@1974..1975 "{"
+            - WHITESPACE@1975..1978 "\n  "
+            - FIELD@1978..2033
+                - NAME@1978..1993
+                    - IDENT@1978..1993 "complicatedArgs"
+                - WHITESPACE@1993..1994 " "
+                - SELECTION_SET@1994..2033
+                    - L_CURLY@1994..1995 "{"
+                    - WHITESPACE@1995..2000 "\n    "
+                    - FIELD@2000..2029
+                        - NAME@2000..2013
+                            - IDENT@2000..2013 "floatArgField"
+                        - ARGUMENTS@2013..2029
+                            - L_PAREN@2013..2014 "("
+                            - ARGUMENT@2014..2028
+                                - NAME@2014..2022
+                                    - IDENT@2014..2022 "floatArg"
+                                - COLON@2022..2023 ":"
+                                - WHITESPACE@2023..2024 " "
+                                - FLOAT_VALUE@2024..2028
+                                    - FLOAT@2024..2028 "-1.1"
+                            - R_PAREN@2028..2029 ")"
+                    - WHITESPACE@2029..2032 "\n  "
+                    - R_CURLY@2032..2033 "}"
+            - WHITESPACE@2033..2034 "\n"
+            - R_CURLY@2034..2035 "}"
+    - WHITESPACE@2035..2037 "\n\n"
+    - OPERATION_DEFINITION@2037..2114
+        - OPERATION_TYPE@2037..2042
+            - query_KW@2037..2042 "query"
+        - WHITESPACE@2042..2043 " "
+        - NAME@2043..2055
+            - IDENT@2043..2055 "intIntoFloat"
+        - WHITESPACE@2055..2056 " "
+        - SELECTION_SET@2056..2114
+            - L_CURLY@2056..2057 "{"
+            - WHITESPACE@2057..2060 "\n  "
+            - FIELD@2060..2112
+                - NAME@2060..2075
+                    - IDENT@2060..2075 "complicatedArgs"
+                - WHITESPACE@2075..2076 " "
+                - SELECTION_SET@2076..2112
+                    - L_CURLY@2076..2077 "{"
+                    - WHITESPACE@2077..2082 "\n    "
+                    - FIELD@2082..2108
+                        - NAME@2082..2095
+                            - IDENT@2082..2095 "floatArgField"
+                        - ARGUMENTS@2095..2108
+                            - L_PAREN@2095..2096 "("
+                            - ARGUMENT@2096..2107
+                                - NAME@2096..2104
+                                    - IDENT@2096..2104 "floatArg"
+                                - COLON@2104..2105 ":"
+                                - WHITESPACE@2105..2106 " "
+                                - INT_VALUE@2106..2107
+                                    - INT@2106..2107 "1"
+                            - R_PAREN@2107..2108 ")"
+                    - WHITESPACE@2108..2111 "\n  "
+                    - R_CURLY@2111..2112 "}"
+            - WHITESPACE@2112..2113 "\n"
+            - R_CURLY@2113..2114 "}"
+    - WHITESPACE@2114..2116 "\n\n"
+    - OPERATION_DEFINITION@2116..2184
+        - OPERATION_TYPE@2116..2121
+            - query_KW@2116..2121 "query"
+        - WHITESPACE@2121..2122 " "
+        - NAME@2122..2131
+            - IDENT@2122..2131 "intIntoID"
+        - WHITESPACE@2131..2132 " "
+        - SELECTION_SET@2132..2184
+            - L_CURLY@2132..2133 "{"
+            - WHITESPACE@2133..2136 "\n  "
+            - FIELD@2136..2182
+                - NAME@2136..2151
+                    - IDENT@2136..2151 "complicatedArgs"
+                - WHITESPACE@2151..2152 " "
+                - SELECTION_SET@2152..2182
+                    - L_CURLY@2152..2153 "{"
+                    - WHITESPACE@2153..2158 "\n    "
+                    - FIELD@2158..2178
+                        - NAME@2158..2168
+                            - IDENT@2158..2168 "idArgField"
+                        - ARGUMENTS@2168..2178
+                            - L_PAREN@2168..2169 "("
+                            - ARGUMENT@2169..2177
+                                - NAME@2169..2174
+                                    - IDENT@2169..2174 "idArg"
+                                - COLON@2174..2175 ":"
+                                - WHITESPACE@2175..2176 " "
+                                - INT_VALUE@2176..2177
+                                    - INT@2176..2177 "1"
+                            - R_PAREN@2177..2178 ")"
+                    - WHITESPACE@2178..2181 "\n  "
+                    - R_CURLY@2181..2182 "}"
+            - WHITESPACE@2182..2183 "\n"
+            - R_CURLY@2183..2184 "}"
+    - WHITESPACE@2184..2186 "\n\n"
+    - OPERATION_DEFINITION@2186..2270
+        - OPERATION_TYPE@2186..2191
+            - query_KW@2186..2191 "query"
+        - WHITESPACE@2191..2192 " "
+        - NAME@2192..2204
+            - IDENT@2192..2204 "stringIntoID"
+        - WHITESPACE@2204..2205 " "
+        - SELECTION_SET@2205..2270
+            - L_CURLY@2205..2206 "{"
+            - WHITESPACE@2206..2209 "\n  "
+            - FIELD@2209..2268
+                - NAME@2209..2224
+                    - IDENT@2209..2224 "complicatedArgs"
+                - WHITESPACE@2224..2225 " "
+                - SELECTION_SET@2225..2268
+                    - L_CURLY@2225..2226 "{"
+                    - WHITESPACE@2226..2231 "\n    "
+                    - FIELD@2231..2264
+                        - NAME@2231..2241
+                            - IDENT@2231..2241 "idArgField"
+                        - ARGUMENTS@2241..2264
+                            - L_PAREN@2241..2242 "("
+                            - ARGUMENT@2242..2263
+                                - NAME@2242..2247
+                                    - IDENT@2242..2247 "idArg"
+                                - COLON@2247..2248 ":"
+                                - WHITESPACE@2248..2249 " "
+                                - STRING_VALUE@2249..2263
+                                    - STRING@2249..2263 "\"someIdString\""
+                            - R_PAREN@2263..2264 ")"
+                    - WHITESPACE@2264..2267 "\n  "
+                    - R_CURLY@2267..2268 "}"
+            - WHITESPACE@2268..2269 "\n"
+            - R_CURLY@2269..2270 "}"
+    - WHITESPACE@2270..2272 "\n\n"
+    - OPERATION_DEFINITION@2272..2344
+        - OPERATION_TYPE@2272..2277
+            - query_KW@2272..2277 "query"
+        - WHITESPACE@2277..2278 " "
+        - NAME@2278..2291
+            - IDENT@2278..2291 "goodEnumValue"
+        - WHITESPACE@2291..2292 " "
+        - SELECTION_SET@2292..2344
+            - L_CURLY@2292..2293 "{"
+            - WHITESPACE@2293..2296 "\n  "
+            - FIELD@2296..2342
+                - NAME@2296..2299
+                    - IDENT@2296..2299 "dog"
+                - WHITESPACE@2299..2300 " "
+                - SELECTION_SET@2300..2342
+                    - L_CURLY@2300..2301 "{"
+                    - WHITESPACE@2301..2306 "\n    "
+                    - FIELD@2306..2338
+                        - NAME@2306..2321
+                            - IDENT@2306..2321 "doesKnowCommand"
+                        - ARGUMENTS@2321..2338
+                            - L_PAREN@2321..2322 "("
+                            - ARGUMENT@2322..2337
+                                - NAME@2322..2332
+                                    - IDENT@2322..2332 "dogCommand"
+                                - COLON@2332..2333 ":"
+                                - WHITESPACE@2333..2334 " "
+                                - ENUM_VALUE@2334..2337
+                                    - NAME@2334..2337
+                                        - IDENT@2334..2337 "SIT"
                             - R_PAREN@2337..2338 ")"
                     - WHITESPACE@2338..2341 "\n  "
                     - R_CURLY@2341..2342 "}"
             - WHITESPACE@2342..2343 "\n"
             - R_CURLY@2343..2344 "}"
     - WHITESPACE@2344..2346 "\n\n"
-    - OPERATION_DEFINITION@2346..2429
+    - OPERATION_DEFINITION@2346..2437
         - OPERATION_TYPE@2346..2351
             - query_KW@2346..2351 "query"
         - WHITESPACE@2351..2352 " "
-        - NAME@2352..2369
-            - IDENT@2352..2369 "enumWithNullValue"
-        - WHITESPACE@2369..2370 " "
-        - SELECTION_SET@2370..2429
-            - L_CURLY@2370..2371 "{"
-            - WHITESPACE@2371..2374 "\n  "
-            - FIELD@2374..2427
-                - NAME@2374..2389
-                    - IDENT@2374..2389 "complicatedArgs"
-                - WHITESPACE@2389..2390 " "
-                - SELECTION_SET@2390..2427
-                    - L_CURLY@2390..2391 "{"
-                    - WHITESPACE@2391..2396 "\n    "
-                    - FIELD@2396..2423
-                        - NAME@2396..2408
-                            - IDENT@2396..2408 "enumArgField"
-                        - ARGUMENTS@2408..2423
-                            - L_PAREN@2408..2409 "("
-                            - ARGUMENT@2409..2422
-                                - NAME@2409..2416
-                                    - IDENT@2409..2416 "enumArg"
-                                - COLON@2416..2417 ":"
-                                - WHITESPACE@2417..2418 " "
-                                - NULL_VALUE@2418..2422
-                                    - null_KW@2418..2422 "null"
-                            - R_PAREN@2422..2423 ")"
-                    - WHITESPACE@2423..2426 "\n  "
-                    - R_CURLY@2426..2427 "}"
-            - WHITESPACE@2427..2428 "\n"
-            - R_CURLY@2428..2429 "}"
-    - WHITESPACE@2429..2431 "\n\n"
-    - OPERATION_DEFINITION@2431..2515
-        - OPERATION_TYPE@2431..2436
-            - query_KW@2431..2436 "query"
-        - WHITESPACE@2436..2437 " "
-        - NAME@2437..2457
-            - IDENT@2437..2457 "nullIntoNullableType"
-        - WHITESPACE@2457..2458 " "
-        - SELECTION_SET@2458..2515
-            - L_CURLY@2458..2459 "{"
-            - WHITESPACE@2459..2462 "\n  "
-            - FIELD@2462..2513
-                - NAME@2462..2477
-                    - IDENT@2462..2477 "complicatedArgs"
-                - WHITESPACE@2477..2478 " "
-                - SELECTION_SET@2478..2513
-                    - L_CURLY@2478..2479 "{"
-                    - WHITESPACE@2479..2484 "\n    "
-                    - FIELD@2484..2509
-                        - NAME@2484..2495
-                            - IDENT@2484..2495 "intArgField"
-                        - ARGUMENTS@2495..2509
-                            - L_PAREN@2495..2496 "("
-                            - ARGUMENT@2496..2508
-                                - NAME@2496..2502
-                                    - IDENT@2496..2502 "intArg"
-                                - COLON@2502..2503 ":"
-                                - WHITESPACE@2503..2504 " "
-                                - NULL_VALUE@2504..2508
-                                    - null_KW@2504..2508 "null"
-                            - R_PAREN@2508..2509 ")"
-                    - WHITESPACE@2509..2512 "\n  "
-                    - R_CURLY@2512..2513 "}"
-            - WHITESPACE@2513..2514 "\n"
-            - R_CURLY@2514..2515 "}"
-    - WHITESPACE@2515..2517 "\n\n"
-    - OPERATION_DEFINITION@2517..2624
-        - OPERATION_TYPE@2517..2522
-            - query_KW@2517..2522 "query"
-        - WHITESPACE@2522..2523 " "
-        - NAME@2523..2536
-            - IDENT@2523..2536 "goodListValue"
-        - WHITESPACE@2536..2537 " "
-        - SELECTION_SET@2537..2624
-            - L_CURLY@2537..2538 "{"
-            - WHITESPACE@2538..2541 "\n  "
-            - FIELD@2541..2622
-                - NAME@2541..2556
-                    - IDENT@2541..2556 "complicatedArgs"
-                - WHITESPACE@2556..2557 " "
-                - SELECTION_SET@2557..2622
-                    - L_CURLY@2557..2558 "{"
-                    - WHITESPACE@2558..2563 "\n    "
-                    - FIELD@2563..2618
-                        - NAME@2563..2581
-                            - IDENT@2563..2581 "stringListArgField"
-                        - ARGUMENTS@2581..2618
-                            - L_PAREN@2581..2582 "("
-                            - ARGUMENT@2582..2617
-                                - NAME@2582..2595
-                                    - IDENT@2582..2595 "stringListArg"
+        - NAME@2352..2374
+            - IDENT@2352..2374 "enumWithUndefinedValue"
+        - WHITESPACE@2374..2375 " "
+        - SELECTION_SET@2375..2437
+            - L_CURLY@2375..2376 "{"
+            - WHITESPACE@2376..2379 "\n  "
+            - FIELD@2379..2435
+                - NAME@2379..2394
+                    - IDENT@2379..2394 "complicatedArgs"
+                - WHITESPACE@2394..2395 " "
+                - SELECTION_SET@2395..2435
+                    - L_CURLY@2395..2396 "{"
+                    - WHITESPACE@2396..2401 "\n    "
+                    - FIELD@2401..2431
+                        - NAME@2401..2413
+                            - IDENT@2401..2413 "enumArgField"
+                        - ARGUMENTS@2413..2431
+                            - L_PAREN@2413..2414 "("
+                            - ARGUMENT@2414..2430
+                                - NAME@2414..2421
+                                    - IDENT@2414..2421 "enumArg"
+                                - COLON@2421..2422 ":"
+                                - WHITESPACE@2422..2423 " "
+                                - ENUM_VALUE@2423..2430
+                                    - NAME@2423..2430
+                                        - IDENT@2423..2430 "UNKNOWN"
+                            - R_PAREN@2430..2431 ")"
+                    - WHITESPACE@2431..2434 "\n  "
+                    - R_CURLY@2434..2435 "}"
+            - WHITESPACE@2435..2436 "\n"
+            - R_CURLY@2436..2437 "}"
+    - WHITESPACE@2437..2439 "\n\n"
+    - OPERATION_DEFINITION@2439..2522
+        - OPERATION_TYPE@2439..2444
+            - query_KW@2439..2444 "query"
+        - WHITESPACE@2444..2445 " "
+        - NAME@2445..2462
+            - IDENT@2445..2462 "enumWithNullValue"
+        - WHITESPACE@2462..2463 " "
+        - SELECTION_SET@2463..2522
+            - L_CURLY@2463..2464 "{"
+            - WHITESPACE@2464..2467 "\n  "
+            - FIELD@2467..2520
+                - NAME@2467..2482
+                    - IDENT@2467..2482 "complicatedArgs"
+                - WHITESPACE@2482..2483 " "
+                - SELECTION_SET@2483..2520
+                    - L_CURLY@2483..2484 "{"
+                    - WHITESPACE@2484..2489 "\n    "
+                    - FIELD@2489..2516
+                        - NAME@2489..2501
+                            - IDENT@2489..2501 "enumArgField"
+                        - ARGUMENTS@2501..2516
+                            - L_PAREN@2501..2502 "("
+                            - ARGUMENT@2502..2515
+                                - NAME@2502..2509
+                                    - IDENT@2502..2509 "enumArg"
+                                - COLON@2509..2510 ":"
+                                - WHITESPACE@2510..2511 " "
+                                - NULL_VALUE@2511..2515
+                                    - null_KW@2511..2515 "null"
+                            - R_PAREN@2515..2516 ")"
+                    - WHITESPACE@2516..2519 "\n  "
+                    - R_CURLY@2519..2520 "}"
+            - WHITESPACE@2520..2521 "\n"
+            - R_CURLY@2521..2522 "}"
+    - WHITESPACE@2522..2524 "\n\n"
+    - OPERATION_DEFINITION@2524..2608
+        - OPERATION_TYPE@2524..2529
+            - query_KW@2524..2529 "query"
+        - WHITESPACE@2529..2530 " "
+        - NAME@2530..2550
+            - IDENT@2530..2550 "nullIntoNullableType"
+        - WHITESPACE@2550..2551 " "
+        - SELECTION_SET@2551..2608
+            - L_CURLY@2551..2552 "{"
+            - WHITESPACE@2552..2555 "\n  "
+            - FIELD@2555..2606
+                - NAME@2555..2570
+                    - IDENT@2555..2570 "complicatedArgs"
+                - WHITESPACE@2570..2571 " "
+                - SELECTION_SET@2571..2606
+                    - L_CURLY@2571..2572 "{"
+                    - WHITESPACE@2572..2577 "\n    "
+                    - FIELD@2577..2602
+                        - NAME@2577..2588
+                            - IDENT@2577..2588 "intArgField"
+                        - ARGUMENTS@2588..2602
+                            - L_PAREN@2588..2589 "("
+                            - ARGUMENT@2589..2601
+                                - NAME@2589..2595
+                                    - IDENT@2589..2595 "intArg"
                                 - COLON@2595..2596 ":"
                                 - WHITESPACE@2596..2597 " "
-                                - LIST_VALUE@2597..2617
-                                    - L_BRACK@2597..2598 "["
-                                    - STRING_VALUE@2598..2603
-                                        - STRING@2598..2603 "\"one\""
-                                    - COMMA@2603..2604 ","
-                                    - WHITESPACE@2604..2605 " "
-                                    - NULL_VALUE@2605..2609
-                                        - null_KW@2605..2609 "null"
-                                    - COMMA@2609..2610 ","
-                                    - WHITESPACE@2610..2611 " "
-                                    - STRING_VALUE@2611..2616
-                                        - STRING@2611..2616 "\"two\""
-                                    - R_BRACK@2616..2617 "]"
-                            - R_PAREN@2617..2618 ")"
-                    - WHITESPACE@2618..2621 "\n  "
-                    - R_CURLY@2621..2622 "}"
-            - WHITESPACE@2622..2623 "\n"
-            - R_CURLY@2623..2624 "}"
-    - WHITESPACE@2624..2626 "\n\n"
-    - OPERATION_DEFINITION@2626..2716
-        - OPERATION_TYPE@2626..2631
-            - query_KW@2626..2631 "query"
-        - WHITESPACE@2631..2632 " "
-        - NAME@2632..2646
-            - IDENT@2632..2646 "emptyListValue"
-        - WHITESPACE@2646..2647 " "
-        - SELECTION_SET@2647..2716
-            - L_CURLY@2647..2648 "{"
-            - WHITESPACE@2648..2651 "\n  "
-            - FIELD@2651..2714
-                - NAME@2651..2666
-                    - IDENT@2651..2666 "complicatedArgs"
-                - WHITESPACE@2666..2667 " "
-                - SELECTION_SET@2667..2714
-                    - L_CURLY@2667..2668 "{"
-                    - WHITESPACE@2668..2673 "\n    "
-                    - FIELD@2673..2710
-                        - NAME@2673..2691
-                            - IDENT@2673..2691 "stringListArgField"
-                        - ARGUMENTS@2691..2710
-                            - L_PAREN@2691..2692 "("
-                            - ARGUMENT@2692..2709
-                                - NAME@2692..2705
-                                    - IDENT@2692..2705 "stringListArg"
-                                - COLON@2705..2706 ":"
-                                - WHITESPACE@2706..2707 " "
-                                - LIST_VALUE@2707..2709
-                                    - L_BRACK@2707..2708 "["
-                                    - R_BRACK@2708..2709 "]"
-                            - R_PAREN@2709..2710 ")"
-                    - WHITESPACE@2710..2713 "\n  "
-                    - R_CURLY@2713..2714 "}"
-            - WHITESPACE@2714..2715 "\n"
-            - R_CURLY@2715..2716 "}"
-    - WHITESPACE@2716..2718 "\n\n"
-    - OPERATION_DEFINITION@2718..2809
-        - OPERATION_TYPE@2718..2723
-            - query_KW@2718..2723 "query"
-        - WHITESPACE@2723..2724 " "
-        - NAME@2724..2737
-            - IDENT@2724..2737 "nullListValue"
-        - WHITESPACE@2737..2738 " "
-        - SELECTION_SET@2738..2809
-            - L_CURLY@2738..2739 "{"
-            - WHITESPACE@2739..2742 "\n  "
-            - FIELD@2742..2807
-                - NAME@2742..2757
-                    - IDENT@2742..2757 "complicatedArgs"
-                - WHITESPACE@2757..2758 " "
-                - SELECTION_SET@2758..2807
-                    - L_CURLY@2758..2759 "{"
-                    - WHITESPACE@2759..2764 "\n    "
-                    - FIELD@2764..2803
-                        - NAME@2764..2782
-                            - IDENT@2764..2782 "stringListArgField"
-                        - ARGUMENTS@2782..2803
-                            - L_PAREN@2782..2783 "("
-                            - ARGUMENT@2783..2802
-                                - NAME@2783..2796
-                                    - IDENT@2783..2796 "stringListArg"
-                                - COLON@2796..2797 ":"
-                                - WHITESPACE@2797..2798 " "
-                                - NULL_VALUE@2798..2802
-                                    - null_KW@2798..2802 "null"
+                                - NULL_VALUE@2597..2601
+                                    - null_KW@2597..2601 "null"
+                            - R_PAREN@2601..2602 ")"
+                    - WHITESPACE@2602..2605 "\n  "
+                    - R_CURLY@2605..2606 "}"
+            - WHITESPACE@2606..2607 "\n"
+            - R_CURLY@2607..2608 "}"
+    - WHITESPACE@2608..2610 "\n\n"
+    - OPERATION_DEFINITION@2610..2717
+        - OPERATION_TYPE@2610..2615
+            - query_KW@2610..2615 "query"
+        - WHITESPACE@2615..2616 " "
+        - NAME@2616..2629
+            - IDENT@2616..2629 "goodListValue"
+        - WHITESPACE@2629..2630 " "
+        - SELECTION_SET@2630..2717
+            - L_CURLY@2630..2631 "{"
+            - WHITESPACE@2631..2634 "\n  "
+            - FIELD@2634..2715
+                - NAME@2634..2649
+                    - IDENT@2634..2649 "complicatedArgs"
+                - WHITESPACE@2649..2650 " "
+                - SELECTION_SET@2650..2715
+                    - L_CURLY@2650..2651 "{"
+                    - WHITESPACE@2651..2656 "\n    "
+                    - FIELD@2656..2711
+                        - NAME@2656..2674
+                            - IDENT@2656..2674 "stringListArgField"
+                        - ARGUMENTS@2674..2711
+                            - L_PAREN@2674..2675 "("
+                            - ARGUMENT@2675..2710
+                                - NAME@2675..2688
+                                    - IDENT@2675..2688 "stringListArg"
+                                - COLON@2688..2689 ":"
+                                - WHITESPACE@2689..2690 " "
+                                - LIST_VALUE@2690..2710
+                                    - L_BRACK@2690..2691 "["
+                                    - STRING_VALUE@2691..2696
+                                        - STRING@2691..2696 "\"one\""
+                                    - COMMA@2696..2697 ","
+                                    - WHITESPACE@2697..2698 " "
+                                    - NULL_VALUE@2698..2702
+                                        - null_KW@2698..2702 "null"
+                                    - COMMA@2702..2703 ","
+                                    - WHITESPACE@2703..2704 " "
+                                    - STRING_VALUE@2704..2709
+                                        - STRING@2704..2709 "\"two\""
+                                    - R_BRACK@2709..2710 "]"
+                            - R_PAREN@2710..2711 ")"
+                    - WHITESPACE@2711..2714 "\n  "
+                    - R_CURLY@2714..2715 "}"
+            - WHITESPACE@2715..2716 "\n"
+            - R_CURLY@2716..2717 "}"
+    - WHITESPACE@2717..2719 "\n\n"
+    - OPERATION_DEFINITION@2719..2809
+        - OPERATION_TYPE@2719..2724
+            - query_KW@2719..2724 "query"
+        - WHITESPACE@2724..2725 " "
+        - NAME@2725..2739
+            - IDENT@2725..2739 "emptyListValue"
+        - WHITESPACE@2739..2740 " "
+        - SELECTION_SET@2740..2809
+            - L_CURLY@2740..2741 "{"
+            - WHITESPACE@2741..2744 "\n  "
+            - FIELD@2744..2807
+                - NAME@2744..2759
+                    - IDENT@2744..2759 "complicatedArgs"
+                - WHITESPACE@2759..2760 " "
+                - SELECTION_SET@2760..2807
+                    - L_CURLY@2760..2761 "{"
+                    - WHITESPACE@2761..2766 "\n    "
+                    - FIELD@2766..2803
+                        - NAME@2766..2784
+                            - IDENT@2766..2784 "stringListArgField"
+                        - ARGUMENTS@2784..2803
+                            - L_PAREN@2784..2785 "("
+                            - ARGUMENT@2785..2802
+                                - NAME@2785..2798
+                                    - IDENT@2785..2798 "stringListArg"
+                                - COLON@2798..2799 ":"
+                                - WHITESPACE@2799..2800 " "
+                                - LIST_VALUE@2800..2802
+                                    - L_BRACK@2800..2801 "["
+                                    - R_BRACK@2801..2802 "]"
                             - R_PAREN@2802..2803 ")"
                     - WHITESPACE@2803..2806 "\n  "
                     - R_CURLY@2806..2807 "}"
             - WHITESPACE@2807..2808 "\n"
             - R_CURLY@2808..2809 "}"
     - WHITESPACE@2809..2811 "\n\n"
-    - OPERATION_DEFINITION@2811..2909
+    - OPERATION_DEFINITION@2811..2902
         - OPERATION_TYPE@2811..2816
             - query_KW@2811..2816 "query"
         - WHITESPACE@2816..2817 " "
-        - NAME@2817..2836
-            - IDENT@2817..2836 "singleValueIntoList"
-        - WHITESPACE@2836..2837 " "
-        - SELECTION_SET@2837..2909
-            - L_CURLY@2837..2838 "{"
-            - WHITESPACE@2838..2841 "\n  "
-            - FIELD@2841..2907
-                - NAME@2841..2856
-                    - IDENT@2841..2856 "complicatedArgs"
-                - WHITESPACE@2856..2857 " "
-                - SELECTION_SET@2857..2907
-                    - L_CURLY@2857..2858 "{"
-                    - WHITESPACE@2858..2863 "\n    "
-                    - FIELD@2863..2903
-                        - NAME@2863..2881
-                            - IDENT@2863..2881 "stringListArgField"
-                        - ARGUMENTS@2881..2903
-                            - L_PAREN@2881..2882 "("
-                            - ARGUMENT@2882..2902
-                                - NAME@2882..2895
-                                    - IDENT@2882..2895 "stringListArg"
-                                - COLON@2895..2896 ":"
-                                - WHITESPACE@2896..2897 " "
-                                - STRING_VALUE@2897..2902
-                                    - STRING@2897..2902 "\"one\""
-                            - R_PAREN@2902..2903 ")"
-                    - WHITESPACE@2903..2906 "\n  "
-                    - R_CURLY@2906..2907 "}"
-            - WHITESPACE@2907..2908 "\n"
-            - R_CURLY@2908..2909 "}"
-    - WHITESPACE@2909..2911 "\n\n"
-    - COMMENT@2911..2937 "# Valid Non-Nullable Value"
-    - WHITESPACE@2937..2938 "\n"
-    - OPERATION_DEFINITION@2938..3015
-        - OPERATION_TYPE@2938..2943
-            - query_KW@2938..2943 "query"
-        - WHITESPACE@2943..2944 " "
-        - NAME@2944..2960
-            - IDENT@2944..2960 "argOnOptionalArg"
-        - WHITESPACE@2960..2961 " "
-        - SELECTION_SET@2961..3015
-            - L_CURLY@2961..2962 "{"
-            - WHITESPACE@2962..2965 "\n  "
-            - FIELD@2965..3013
-                - NAME@2965..2968
-                    - IDENT@2965..2968 "dog"
-                - WHITESPACE@2968..2969 " "
-                - SELECTION_SET@2969..3013
-                    - L_CURLY@2969..2970 "{"
-                    - WHITESPACE@2970..2975 "\n    "
-                    - FIELD@2975..3009
-                        - NAME@2975..2989
-                            - IDENT@2975..2989 "isHouseTrained"
-                        - ARGUMENTS@2989..3009
-                            - L_PAREN@2989..2990 "("
-                            - ARGUMENT@2990..3008
-                                - NAME@2990..3002
-                                    - IDENT@2990..3002 "atOtherHomes"
-                                - COLON@3002..3003 ":"
-                                - WHITESPACE@3003..3004 " "
-                                - BOOLEAN_VALUE@3004..3008
-                                    - true_KW@3004..3008 "true"
-                            - R_PAREN@3008..3009 ")"
-                    - WHITESPACE@3009..3012 "\n  "
-                    - R_CURLY@3012..3013 "}"
-            - WHITESPACE@3013..3014 "\n"
-            - R_CURLY@3014..3015 "}"
-    - WHITESPACE@3015..3017 "\n\n"
-    - OPERATION_DEFINITION@3017..3076
-        - OPERATION_TYPE@3017..3022
-            - query_KW@3017..3022 "query"
-        - WHITESPACE@3022..3023 " "
-        - NAME@3023..3041
-            - IDENT@3023..3041 "noArgOnOptionalArg"
-        - WHITESPACE@3041..3042 " "
-        - SELECTION_SET@3042..3076
-            - L_CURLY@3042..3043 "{"
-            - WHITESPACE@3043..3046 "\n  "
-            - FIELD@3046..3074
-                - NAME@3046..3049
-                    - IDENT@3046..3049 "dog"
-                - WHITESPACE@3049..3050 " "
-                - SELECTION_SET@3050..3074
-                    - L_CURLY@3050..3051 "{"
-                    - WHITESPACE@3051..3056 "\n    "
-                    - FIELD@3056..3070
-                        - NAME@3056..3070
-                            - IDENT@3056..3070 "isHouseTrained"
-                    - WHITESPACE@3070..3073 "\n  "
-                    - R_CURLY@3073..3074 "}"
-            - WHITESPACE@3074..3075 "\n"
-            - R_CURLY@3075..3076 "}"
-    - WHITESPACE@3076..3078 "\n\n"
-    - OPERATION_DEFINITION@3078..3159
-        - OPERATION_TYPE@3078..3083
-            - query_KW@3078..3083 "query"
-        - WHITESPACE@3083..3084 " "
-        - NAME@3084..3096
-            - IDENT@3084..3096 "multipleArgs"
-        - WHITESPACE@3096..3097 " "
-        - SELECTION_SET@3097..3159
-            - L_CURLY@3097..3098 "{"
-            - WHITESPACE@3098..3101 "\n  "
-            - FIELD@3101..3157
-                - NAME@3101..3116
-                    - IDENT@3101..3116 "complicatedArgs"
-                - WHITESPACE@3116..3117 " "
-                - SELECTION_SET@3117..3157
-                    - L_CURLY@3117..3118 "{"
-                    - WHITESPACE@3118..3123 "\n    "
-                    - FIELD@3123..3153
-                        - NAME@3123..3135
-                            - IDENT@3123..3135 "multipleReqs"
-                        - ARGUMENTS@3135..3153
-                            - L_PAREN@3135..3136 "("
-                            - ARGUMENT@3136..3143
-                                - NAME@3136..3140
-                                    - IDENT@3136..3140 "req1"
-                                - COLON@3140..3141 ":"
-                                - WHITESPACE@3141..3142 " "
-                                - INT_VALUE@3142..3143
-                                    - INT@3142..3143 "1"
-                            - COMMA@3143..3144 ","
-                            - WHITESPACE@3144..3145 " "
-                            - ARGUMENT@3145..3152
-                                - NAME@3145..3149
-                                    - IDENT@3145..3149 "req2"
-                                - COLON@3149..3150 ":"
-                                - WHITESPACE@3150..3151 " "
-                                - INT_VALUE@3151..3152
-                                    - INT@3151..3152 "2"
-                            - R_PAREN@3152..3153 ")"
-                    - WHITESPACE@3153..3156 "\n  "
-                    - R_CURLY@3156..3157 "}"
-            - WHITESPACE@3157..3158 "\n"
-            - R_CURLY@3158..3159 "}"
-    - WHITESPACE@3159..3161 "\n\n"
-    - OPERATION_DEFINITION@3161..3253
-        - OPERATION_TYPE@3161..3166
-            - query_KW@3161..3166 "query"
-        - WHITESPACE@3166..3167 " "
-        - NAME@3167..3190
-            - IDENT@3167..3190 "multiplArgsReverseOrder"
-        - WHITESPACE@3190..3191 " "
-        - SELECTION_SET@3191..3253
-            - L_CURLY@3191..3192 "{"
-            - WHITESPACE@3192..3195 "\n  "
-            - FIELD@3195..3251
-                - NAME@3195..3210
-                    - IDENT@3195..3210 "complicatedArgs"
-                - WHITESPACE@3210..3211 " "
-                - SELECTION_SET@3211..3251
-                    - L_CURLY@3211..3212 "{"
-                    - WHITESPACE@3212..3217 "\n    "
-                    - FIELD@3217..3247
-                        - NAME@3217..3229
-                            - IDENT@3217..3229 "multipleReqs"
-                        - ARGUMENTS@3229..3247
-                            - L_PAREN@3229..3230 "("
-                            - ARGUMENT@3230..3237
-                                - NAME@3230..3234
-                                    - IDENT@3230..3234 "req2"
-                                - COLON@3234..3235 ":"
-                                - WHITESPACE@3235..3236 " "
-                                - INT_VALUE@3236..3237
-                                    - INT@3236..3237 "2"
-                            - COMMA@3237..3238 ","
-                            - WHITESPACE@3238..3239 " "
-                            - ARGUMENT@3239..3246
-                                - NAME@3239..3243
-                                    - IDENT@3239..3243 "req1"
-                                - COLON@3243..3244 ":"
-                                - WHITESPACE@3244..3245 " "
-                                - INT_VALUE@3245..3246
-                                    - INT@3245..3246 "1"
-                            - R_PAREN@3246..3247 ")"
-                    - WHITESPACE@3247..3250 "\n  "
-                    - R_CURLY@3250..3251 "}"
-            - WHITESPACE@3251..3252 "\n"
-            - R_CURLY@3252..3253 "}"
-    - WHITESPACE@3253..3255 "\n\n"
-    - OPERATION_DEFINITION@3255..3330
-        - OPERATION_TYPE@3255..3260
-            - query_KW@3255..3260 "query"
-        - WHITESPACE@3260..3261 " "
-        - NAME@3261..3285
-            - IDENT@3261..3285 "noArgsOnMultipleOptional"
-        - WHITESPACE@3285..3286 " "
-        - SELECTION_SET@3286..3330
-            - L_CURLY@3286..3287 "{"
-            - WHITESPACE@3287..3290 "\n  "
-            - FIELD@3290..3328
-                - NAME@3290..3305
-                    - IDENT@3290..3305 "complicatedArgs"
-                - WHITESPACE@3305..3306 " "
-                - SELECTION_SET@3306..3328
-                    - L_CURLY@3306..3307 "{"
-                    - WHITESPACE@3307..3312 "\n    "
-                    - FIELD@3312..3324
-                        - NAME@3312..3324
-                            - IDENT@3312..3324 "multipleOpts"
-                    - WHITESPACE@3324..3327 "\n  "
-                    - R_CURLY@3327..3328 "}"
-            - WHITESPACE@3328..3329 "\n"
-            - R_CURLY@3329..3330 "}"
-    - WHITESPACE@3330..3332 "\n\n"
-    - OPERATION_DEFINITION@3332..3416
-        - OPERATION_TYPE@3332..3337
-            - query_KW@3332..3337 "query"
-        - WHITESPACE@3337..3338 " "
-        - NAME@3338..3362
-            - IDENT@3338..3362 "oneArgOnMultipleOptional"
-        - WHITESPACE@3362..3363 " "
-        - SELECTION_SET@3363..3416
-            - L_CURLY@3363..3364 "{"
-            - WHITESPACE@3364..3367 "\n  "
-            - FIELD@3367..3414
-                - NAME@3367..3382
-                    - IDENT@3367..3382 "complicatedArgs"
-                - WHITESPACE@3382..3383 " "
-                - SELECTION_SET@3383..3414
-                    - L_CURLY@3383..3384 "{"
-                    - WHITESPACE@3384..3389 "\n    "
-                    - FIELD@3389..3410
-                        - NAME@3389..3401
-                            - IDENT@3389..3401 "multipleOpts"
-                        - ARGUMENTS@3401..3410
-                            - L_PAREN@3401..3402 "("
-                            - ARGUMENT@3402..3409
-                                - NAME@3402..3406
-                                    - IDENT@3402..3406 "opt1"
-                                - COLON@3406..3407 ":"
-                                - WHITESPACE@3407..3408 " "
-                                - INT_VALUE@3408..3409
-                                    - INT@3408..3409 "1"
-                            - R_PAREN@3409..3410 ")"
-                    - WHITESPACE@3410..3413 "\n  "
-                    - R_CURLY@3413..3414 "}"
-            - WHITESPACE@3414..3415 "\n"
-            - R_CURLY@3415..3416 "}"
-    - WHITESPACE@3416..3418 "\n\n"
-    - OPERATION_DEFINITION@3418..3505
-        - OPERATION_TYPE@3418..3423
-            - query_KW@3418..3423 "query"
-        - WHITESPACE@3423..3424 " "
-        - NAME@3424..3451
-            - IDENT@3424..3451 "secondArgOnMultipleOptional"
-        - WHITESPACE@3451..3452 " "
-        - SELECTION_SET@3452..3505
-            - L_CURLY@3452..3453 "{"
-            - WHITESPACE@3453..3456 "\n  "
-            - FIELD@3456..3503
-                - NAME@3456..3471
-                    - IDENT@3456..3471 "complicatedArgs"
-                - WHITESPACE@3471..3472 " "
-                - SELECTION_SET@3472..3503
-                    - L_CURLY@3472..3473 "{"
-                    - WHITESPACE@3473..3478 "\n    "
-                    - FIELD@3478..3499
-                        - NAME@3478..3490
-                            - IDENT@3478..3490 "multipleOpts"
-                        - ARGUMENTS@3490..3499
-                            - L_PAREN@3490..3491 "("
-                            - ARGUMENT@3491..3498
-                                - NAME@3491..3495
-                                    - IDENT@3491..3495 "opt2"
-                                - COLON@3495..3496 ":"
-                                - WHITESPACE@3496..3497 " "
-                                - INT_VALUE@3497..3498
-                                    - INT@3497..3498 "1"
-                            - R_PAREN@3498..3499 ")"
-                    - WHITESPACE@3499..3502 "\n  "
-                    - R_CURLY@3502..3503 "}"
-            - WHITESPACE@3503..3504 "\n"
-            - R_CURLY@3504..3505 "}"
-    - WHITESPACE@3505..3507 "\n\n"
-    - OPERATION_DEFINITION@3507..3612
-        - OPERATION_TYPE@3507..3512
-            - query_KW@3507..3512 "query"
-        - WHITESPACE@3512..3513 " "
-        - NAME@3513..3544
-            - IDENT@3513..3544 "multipleRequiredArgsOnMixedList"
+        - NAME@2817..2830
+            - IDENT@2817..2830 "nullListValue"
+        - WHITESPACE@2830..2831 " "
+        - SELECTION_SET@2831..2902
+            - L_CURLY@2831..2832 "{"
+            - WHITESPACE@2832..2835 "\n  "
+            - FIELD@2835..2900
+                - NAME@2835..2850
+                    - IDENT@2835..2850 "complicatedArgs"
+                - WHITESPACE@2850..2851 " "
+                - SELECTION_SET@2851..2900
+                    - L_CURLY@2851..2852 "{"
+                    - WHITESPACE@2852..2857 "\n    "
+                    - FIELD@2857..2896
+                        - NAME@2857..2875
+                            - IDENT@2857..2875 "stringListArgField"
+                        - ARGUMENTS@2875..2896
+                            - L_PAREN@2875..2876 "("
+                            - ARGUMENT@2876..2895
+                                - NAME@2876..2889
+                                    - IDENT@2876..2889 "stringListArg"
+                                - COLON@2889..2890 ":"
+                                - WHITESPACE@2890..2891 " "
+                                - NULL_VALUE@2891..2895
+                                    - null_KW@2891..2895 "null"
+                            - R_PAREN@2895..2896 ")"
+                    - WHITESPACE@2896..2899 "\n  "
+                    - R_CURLY@2899..2900 "}"
+            - WHITESPACE@2900..2901 "\n"
+            - R_CURLY@2901..2902 "}"
+    - WHITESPACE@2902..2904 "\n\n"
+    - OPERATION_DEFINITION@2904..3002
+        - OPERATION_TYPE@2904..2909
+            - query_KW@2904..2909 "query"
+        - WHITESPACE@2909..2910 " "
+        - NAME@2910..2929
+            - IDENT@2910..2929 "singleValueIntoList"
+        - WHITESPACE@2929..2930 " "
+        - SELECTION_SET@2930..3002
+            - L_CURLY@2930..2931 "{"
+            - WHITESPACE@2931..2934 "\n  "
+            - FIELD@2934..3000
+                - NAME@2934..2949
+                    - IDENT@2934..2949 "complicatedArgs"
+                - WHITESPACE@2949..2950 " "
+                - SELECTION_SET@2950..3000
+                    - L_CURLY@2950..2951 "{"
+                    - WHITESPACE@2951..2956 "\n    "
+                    - FIELD@2956..2996
+                        - NAME@2956..2974
+                            - IDENT@2956..2974 "stringListArgField"
+                        - ARGUMENTS@2974..2996
+                            - L_PAREN@2974..2975 "("
+                            - ARGUMENT@2975..2995
+                                - NAME@2975..2988
+                                    - IDENT@2975..2988 "stringListArg"
+                                - COLON@2988..2989 ":"
+                                - WHITESPACE@2989..2990 " "
+                                - STRING_VALUE@2990..2995
+                                    - STRING@2990..2995 "\"one\""
+                            - R_PAREN@2995..2996 ")"
+                    - WHITESPACE@2996..2999 "\n  "
+                    - R_CURLY@2999..3000 "}"
+            - WHITESPACE@3000..3001 "\n"
+            - R_CURLY@3001..3002 "}"
+    - WHITESPACE@3002..3004 "\n\n"
+    - COMMENT@3004..3030 "# Valid Non-Nullable Value"
+    - WHITESPACE@3030..3031 "\n"
+    - OPERATION_DEFINITION@3031..3108
+        - OPERATION_TYPE@3031..3036
+            - query_KW@3031..3036 "query"
+        - WHITESPACE@3036..3037 " "
+        - NAME@3037..3053
+            - IDENT@3037..3053 "argOnOptionalArg"
+        - WHITESPACE@3053..3054 " "
+        - SELECTION_SET@3054..3108
+            - L_CURLY@3054..3055 "{"
+            - WHITESPACE@3055..3058 "\n  "
+            - FIELD@3058..3106
+                - NAME@3058..3061
+                    - IDENT@3058..3061 "dog"
+                - WHITESPACE@3061..3062 " "
+                - SELECTION_SET@3062..3106
+                    - L_CURLY@3062..3063 "{"
+                    - WHITESPACE@3063..3068 "\n    "
+                    - FIELD@3068..3102
+                        - NAME@3068..3082
+                            - IDENT@3068..3082 "isHouseTrained"
+                        - ARGUMENTS@3082..3102
+                            - L_PAREN@3082..3083 "("
+                            - ARGUMENT@3083..3101
+                                - NAME@3083..3095
+                                    - IDENT@3083..3095 "atOtherHomes"
+                                - COLON@3095..3096 ":"
+                                - WHITESPACE@3096..3097 " "
+                                - BOOLEAN_VALUE@3097..3101
+                                    - true_KW@3097..3101 "true"
+                            - R_PAREN@3101..3102 ")"
+                    - WHITESPACE@3102..3105 "\n  "
+                    - R_CURLY@3105..3106 "}"
+            - WHITESPACE@3106..3107 "\n"
+            - R_CURLY@3107..3108 "}"
+    - WHITESPACE@3108..3110 "\n\n"
+    - OPERATION_DEFINITION@3110..3169
+        - OPERATION_TYPE@3110..3115
+            - query_KW@3110..3115 "query"
+        - WHITESPACE@3115..3116 " "
+        - NAME@3116..3134
+            - IDENT@3116..3134 "noArgOnOptionalArg"
+        - WHITESPACE@3134..3135 " "
+        - SELECTION_SET@3135..3169
+            - L_CURLY@3135..3136 "{"
+            - WHITESPACE@3136..3139 "\n  "
+            - FIELD@3139..3167
+                - NAME@3139..3142
+                    - IDENT@3139..3142 "dog"
+                - WHITESPACE@3142..3143 " "
+                - SELECTION_SET@3143..3167
+                    - L_CURLY@3143..3144 "{"
+                    - WHITESPACE@3144..3149 "\n    "
+                    - FIELD@3149..3163
+                        - NAME@3149..3163
+                            - IDENT@3149..3163 "isHouseTrained"
+                    - WHITESPACE@3163..3166 "\n  "
+                    - R_CURLY@3166..3167 "}"
+            - WHITESPACE@3167..3168 "\n"
+            - R_CURLY@3168..3169 "}"
+    - WHITESPACE@3169..3171 "\n\n"
+    - OPERATION_DEFINITION@3171..3252
+        - OPERATION_TYPE@3171..3176
+            - query_KW@3171..3176 "query"
+        - WHITESPACE@3176..3177 " "
+        - NAME@3177..3189
+            - IDENT@3177..3189 "multipleArgs"
+        - WHITESPACE@3189..3190 " "
+        - SELECTION_SET@3190..3252
+            - L_CURLY@3190..3191 "{"
+            - WHITESPACE@3191..3194 "\n  "
+            - FIELD@3194..3250
+                - NAME@3194..3209
+                    - IDENT@3194..3209 "complicatedArgs"
+                - WHITESPACE@3209..3210 " "
+                - SELECTION_SET@3210..3250
+                    - L_CURLY@3210..3211 "{"
+                    - WHITESPACE@3211..3216 "\n    "
+                    - FIELD@3216..3246
+                        - NAME@3216..3228
+                            - IDENT@3216..3228 "multipleReqs"
+                        - ARGUMENTS@3228..3246
+                            - L_PAREN@3228..3229 "("
+                            - ARGUMENT@3229..3236
+                                - NAME@3229..3233
+                                    - IDENT@3229..3233 "req1"
+                                - COLON@3233..3234 ":"
+                                - WHITESPACE@3234..3235 " "
+                                - INT_VALUE@3235..3236
+                                    - INT@3235..3236 "1"
+                            - COMMA@3236..3237 ","
+                            - WHITESPACE@3237..3238 " "
+                            - ARGUMENT@3238..3245
+                                - NAME@3238..3242
+                                    - IDENT@3238..3242 "req2"
+                                - COLON@3242..3243 ":"
+                                - WHITESPACE@3243..3244 " "
+                                - INT_VALUE@3244..3245
+                                    - INT@3244..3245 "2"
+                            - R_PAREN@3245..3246 ")"
+                    - WHITESPACE@3246..3249 "\n  "
+                    - R_CURLY@3249..3250 "}"
+            - WHITESPACE@3250..3251 "\n"
+            - R_CURLY@3251..3252 "}"
+    - WHITESPACE@3252..3254 "\n\n"
+    - OPERATION_DEFINITION@3254..3346
+        - OPERATION_TYPE@3254..3259
+            - query_KW@3254..3259 "query"
+        - WHITESPACE@3259..3260 " "
+        - NAME@3260..3283
+            - IDENT@3260..3283 "multiplArgsReverseOrder"
+        - WHITESPACE@3283..3284 " "
+        - SELECTION_SET@3284..3346
+            - L_CURLY@3284..3285 "{"
+            - WHITESPACE@3285..3288 "\n  "
+            - FIELD@3288..3344
+                - NAME@3288..3303
+                    - IDENT@3288..3303 "complicatedArgs"
+                - WHITESPACE@3303..3304 " "
+                - SELECTION_SET@3304..3344
+                    - L_CURLY@3304..3305 "{"
+                    - WHITESPACE@3305..3310 "\n    "
+                    - FIELD@3310..3340
+                        - NAME@3310..3322
+                            - IDENT@3310..3322 "multipleReqs"
+                        - ARGUMENTS@3322..3340
+                            - L_PAREN@3322..3323 "("
+                            - ARGUMENT@3323..3330
+                                - NAME@3323..3327
+                                    - IDENT@3323..3327 "req2"
+                                - COLON@3327..3328 ":"
+                                - WHITESPACE@3328..3329 " "
+                                - INT_VALUE@3329..3330
+                                    - INT@3329..3330 "2"
+                            - COMMA@3330..3331 ","
+                            - WHITESPACE@3331..3332 " "
+                            - ARGUMENT@3332..3339
+                                - NAME@3332..3336
+                                    - IDENT@3332..3336 "req1"
+                                - COLON@3336..3337 ":"
+                                - WHITESPACE@3337..3338 " "
+                                - INT_VALUE@3338..3339
+                                    - INT@3338..3339 "1"
+                            - R_PAREN@3339..3340 ")"
+                    - WHITESPACE@3340..3343 "\n  "
+                    - R_CURLY@3343..3344 "}"
+            - WHITESPACE@3344..3345 "\n"
+            - R_CURLY@3345..3346 "}"
+    - WHITESPACE@3346..3348 "\n\n"
+    - OPERATION_DEFINITION@3348..3423
+        - OPERATION_TYPE@3348..3353
+            - query_KW@3348..3353 "query"
+        - WHITESPACE@3353..3354 " "
+        - NAME@3354..3378
+            - IDENT@3354..3378 "noArgsOnMultipleOptional"
+        - WHITESPACE@3378..3379 " "
+        - SELECTION_SET@3379..3423
+            - L_CURLY@3379..3380 "{"
+            - WHITESPACE@3380..3383 "\n  "
+            - FIELD@3383..3421
+                - NAME@3383..3398
+                    - IDENT@3383..3398 "complicatedArgs"
+                - WHITESPACE@3398..3399 " "
+                - SELECTION_SET@3399..3421
+                    - L_CURLY@3399..3400 "{"
+                    - WHITESPACE@3400..3405 "\n    "
+                    - FIELD@3405..3417
+                        - NAME@3405..3417
+                            - IDENT@3405..3417 "multipleOpts"
+                    - WHITESPACE@3417..3420 "\n  "
+                    - R_CURLY@3420..3421 "}"
+            - WHITESPACE@3421..3422 "\n"
+            - R_CURLY@3422..3423 "}"
+    - WHITESPACE@3423..3425 "\n\n"
+    - OPERATION_DEFINITION@3425..3509
+        - OPERATION_TYPE@3425..3430
+            - query_KW@3425..3430 "query"
+        - WHITESPACE@3430..3431 " "
+        - NAME@3431..3455
+            - IDENT@3431..3455 "oneArgOnMultipleOptional"
+        - WHITESPACE@3455..3456 " "
+        - SELECTION_SET@3456..3509
+            - L_CURLY@3456..3457 "{"
+            - WHITESPACE@3457..3460 "\n  "
+            - FIELD@3460..3507
+                - NAME@3460..3475
+                    - IDENT@3460..3475 "complicatedArgs"
+                - WHITESPACE@3475..3476 " "
+                - SELECTION_SET@3476..3507
+                    - L_CURLY@3476..3477 "{"
+                    - WHITESPACE@3477..3482 "\n    "
+                    - FIELD@3482..3503
+                        - NAME@3482..3494
+                            - IDENT@3482..3494 "multipleOpts"
+                        - ARGUMENTS@3494..3503
+                            - L_PAREN@3494..3495 "("
+                            - ARGUMENT@3495..3502
+                                - NAME@3495..3499
+                                    - IDENT@3495..3499 "opt1"
+                                - COLON@3499..3500 ":"
+                                - WHITESPACE@3500..3501 " "
+                                - INT_VALUE@3501..3502
+                                    - INT@3501..3502 "1"
+                            - R_PAREN@3502..3503 ")"
+                    - WHITESPACE@3503..3506 "\n  "
+                    - R_CURLY@3506..3507 "}"
+            - WHITESPACE@3507..3508 "\n"
+            - R_CURLY@3508..3509 "}"
+    - WHITESPACE@3509..3511 "\n\n"
+    - OPERATION_DEFINITION@3511..3598
+        - OPERATION_TYPE@3511..3516
+            - query_KW@3511..3516 "query"
+        - WHITESPACE@3516..3517 " "
+        - NAME@3517..3544
+            - IDENT@3517..3544 "secondArgOnMultipleOptional"
         - WHITESPACE@3544..3545 " "
-        - SELECTION_SET@3545..3612
+        - SELECTION_SET@3545..3598
             - L_CURLY@3545..3546 "{"
             - WHITESPACE@3546..3549 "\n  "
-            - FIELD@3549..3610
+            - FIELD@3549..3596
                 - NAME@3549..3564
                     - IDENT@3549..3564 "complicatedArgs"
                 - WHITESPACE@3564..3565 " "
-                - SELECTION_SET@3565..3610
+                - SELECTION_SET@3565..3596
                     - L_CURLY@3565..3566 "{"
                     - WHITESPACE@3566..3571 "\n    "
-                    - FIELD@3571..3606
-                        - NAME@3571..3588
-                            - IDENT@3571..3588 "multipleOptAndReq"
-                        - ARGUMENTS@3588..3606
-                            - L_PAREN@3588..3589 "("
-                            - ARGUMENT@3589..3596
-                                - NAME@3589..3593
-                                    - IDENT@3589..3593 "req1"
-                                - COLON@3593..3594 ":"
-                                - WHITESPACE@3594..3595 " "
-                                - INT_VALUE@3595..3596
-                                    - INT@3595..3596 "3"
-                            - COMMA@3596..3597 ","
-                            - WHITESPACE@3597..3598 " "
-                            - ARGUMENT@3598..3605
-                                - NAME@3598..3602
-                                    - IDENT@3598..3602 "req2"
-                                - COLON@3602..3603 ":"
-                                - WHITESPACE@3603..3604 " "
-                                - INT_VALUE@3604..3605
-                                    - INT@3604..3605 "4"
-                            - R_PAREN@3605..3606 ")"
-                    - WHITESPACE@3606..3609 "\n  "
-                    - R_CURLY@3609..3610 "}"
-            - WHITESPACE@3610..3611 "\n"
-            - R_CURLY@3611..3612 "}"
-    - WHITESPACE@3612..3614 "\n\n"
-    - OPERATION_DEFINITION@3614..3741
-        - OPERATION_TYPE@3614..3619
-            - query_KW@3614..3619 "query"
-        - WHITESPACE@3619..3620 " "
-        - NAME@3620..3664
-            - IDENT@3620..3664 "multipleRequiredAndOneOptionalArgOnMixedList"
-        - WHITESPACE@3664..3665 " "
-        - SELECTION_SET@3665..3741
-            - L_CURLY@3665..3666 "{"
-            - WHITESPACE@3666..3669 "\n  "
-            - FIELD@3669..3739
-                - NAME@3669..3684
-                    - IDENT@3669..3684 "complicatedArgs"
-                - WHITESPACE@3684..3685 " "
-                - SELECTION_SET@3685..3739
-                    - L_CURLY@3685..3686 "{"
-                    - WHITESPACE@3686..3691 "\n    "
-                    - FIELD@3691..3735
-                        - NAME@3691..3708
-                            - IDENT@3691..3708 "multipleOptAndReq"
-                        - ARGUMENTS@3708..3735
-                            - L_PAREN@3708..3709 "("
-                            - ARGUMENT@3709..3716
-                                - NAME@3709..3713
-                                    - IDENT@3709..3713 "req1"
-                                - COLON@3713..3714 ":"
-                                - WHITESPACE@3714..3715 " "
-                                - INT_VALUE@3715..3716
-                                    - INT@3715..3716 "3"
-                            - COMMA@3716..3717 ","
-                            - WHITESPACE@3717..3718 " "
-                            - ARGUMENT@3718..3725
-                                - NAME@3718..3722
-                                    - IDENT@3718..3722 "req2"
-                                - COLON@3722..3723 ":"
-                                - WHITESPACE@3723..3724 " "
-                                - INT_VALUE@3724..3725
-                                    - INT@3724..3725 "4"
-                            - COMMA@3725..3726 ","
-                            - WHITESPACE@3726..3727 " "
-                            - ARGUMENT@3727..3734
-                                - NAME@3727..3731
-                                    - IDENT@3727..3731 "opt1"
-                                - COLON@3731..3732 ":"
-                                - WHITESPACE@3732..3733 " "
-                                - INT_VALUE@3733..3734
-                                    - INT@3733..3734 "5"
-                            - R_PAREN@3734..3735 ")"
-                    - WHITESPACE@3735..3738 "\n  "
-                    - R_CURLY@3738..3739 "}"
-            - WHITESPACE@3739..3740 "\n"
-            - R_CURLY@3740..3741 "}"
-    - WHITESPACE@3741..3743 "\n\n"
-    - OPERATION_DEFINITION@3743..3872
-        - OPERATION_TYPE@3743..3748
-            - query_KW@3743..3748 "query"
-        - WHITESPACE@3748..3749 " "
-        - NAME@3749..3786
-            - IDENT@3749..3786 "AllRequiredAndOptionalArgsOnMixedList"
-        - WHITESPACE@3786..3787 " "
-        - SELECTION_SET@3787..3872
-            - L_CURLY@3787..3788 "{"
-            - WHITESPACE@3788..3791 "\n  "
-            - FIELD@3791..3870
-                - NAME@3791..3806
-                    - IDENT@3791..3806 "complicatedArgs"
-                - WHITESPACE@3806..3807 " "
-                - SELECTION_SET@3807..3870
-                    - L_CURLY@3807..3808 "{"
-                    - WHITESPACE@3808..3813 "\n    "
-                    - FIELD@3813..3866
-                        - NAME@3813..3830
-                            - IDENT@3813..3830 "multipleOptAndReq"
-                        - ARGUMENTS@3830..3866
-                            - L_PAREN@3830..3831 "("
-                            - ARGUMENT@3831..3838
-                                - NAME@3831..3835
-                                    - IDENT@3831..3835 "req1"
-                                - COLON@3835..3836 ":"
-                                - WHITESPACE@3836..3837 " "
-                                - INT_VALUE@3837..3838
-                                    - INT@3837..3838 "3"
-                            - COMMA@3838..3839 ","
-                            - WHITESPACE@3839..3840 " "
-                            - ARGUMENT@3840..3847
-                                - NAME@3840..3844
-                                    - IDENT@3840..3844 "req2"
-                                - COLON@3844..3845 ":"
-                                - WHITESPACE@3845..3846 " "
-                                - INT_VALUE@3846..3847
-                                    - INT@3846..3847 "4"
-                            - COMMA@3847..3848 ","
-                            - WHITESPACE@3848..3849 " "
-                            - ARGUMENT@3849..3856
-                                - NAME@3849..3853
-                                    - IDENT@3849..3853 "opt1"
-                                - COLON@3853..3854 ":"
-                                - WHITESPACE@3854..3855 " "
-                                - INT_VALUE@3855..3856
-                                    - INT@3855..3856 "5"
-                            - COMMA@3856..3857 ","
-                            - WHITESPACE@3857..3858 " "
-                            - ARGUMENT@3858..3865
-                                - NAME@3858..3862
-                                    - IDENT@3858..3862 "opt2"
-                                - COLON@3862..3863 ":"
-                                - WHITESPACE@3863..3864 " "
-                                - INT_VALUE@3864..3865
-                                    - INT@3864..3865 "6"
-                            - R_PAREN@3865..3866 ")"
-                    - WHITESPACE@3866..3869 "\n  "
-                    - R_CURLY@3869..3870 "}"
-            - WHITESPACE@3870..3871 "\n"
-            - R_CURLY@3871..3872 "}"
-    - WHITESPACE@3872..3874 "\n\n"
-    - COMMENT@3874..3900 "# Valid input object value"
-    - WHITESPACE@3900..3901 "\n"
-    - OPERATION_DEFINITION@3901..3992
-        - OPERATION_TYPE@3901..3906
-            - query_KW@3901..3906 "query"
-        - WHITESPACE@3906..3907 " "
-        - NAME@3907..3944
-            - IDENT@3907..3944 "optionalArgDespiteRequiredFieldInType"
-        - WHITESPACE@3944..3945 " "
-        - SELECTION_SET@3945..3992
-            - L_CURLY@3945..3946 "{"
-            - WHITESPACE@3946..3949 "\n  "
-            - FIELD@3949..3990
-                - NAME@3949..3964
-                    - IDENT@3949..3964 "complicatedArgs"
-                - WHITESPACE@3964..3965 " "
-                - SELECTION_SET@3965..3990
-                    - L_CURLY@3965..3966 "{"
-                    - WHITESPACE@3966..3971 "\n    "
-                    - FIELD@3971..3986
-                        - NAME@3971..3986
-                            - IDENT@3971..3986 "complexArgField"
-                    - WHITESPACE@3986..3989 "\n  "
-                    - R_CURLY@3989..3990 "}"
-            - WHITESPACE@3990..3991 "\n"
-            - R_CURLY@3991..3992 "}"
-    - WHITESPACE@3992..3994 "\n\n"
-    - OPERATION_DEFINITION@3994..4110
+                    - FIELD@3571..3592
+                        - NAME@3571..3583
+                            - IDENT@3571..3583 "multipleOpts"
+                        - ARGUMENTS@3583..3592
+                            - L_PAREN@3583..3584 "("
+                            - ARGUMENT@3584..3591
+                                - NAME@3584..3588
+                                    - IDENT@3584..3588 "opt2"
+                                - COLON@3588..3589 ":"
+                                - WHITESPACE@3589..3590 " "
+                                - INT_VALUE@3590..3591
+                                    - INT@3590..3591 "1"
+                            - R_PAREN@3591..3592 ")"
+                    - WHITESPACE@3592..3595 "\n  "
+                    - R_CURLY@3595..3596 "}"
+            - WHITESPACE@3596..3597 "\n"
+            - R_CURLY@3597..3598 "}"
+    - WHITESPACE@3598..3600 "\n\n"
+    - OPERATION_DEFINITION@3600..3705
+        - OPERATION_TYPE@3600..3605
+            - query_KW@3600..3605 "query"
+        - WHITESPACE@3605..3606 " "
+        - NAME@3606..3637
+            - IDENT@3606..3637 "multipleRequiredArgsOnMixedList"
+        - WHITESPACE@3637..3638 " "
+        - SELECTION_SET@3638..3705
+            - L_CURLY@3638..3639 "{"
+            - WHITESPACE@3639..3642 "\n  "
+            - FIELD@3642..3703
+                - NAME@3642..3657
+                    - IDENT@3642..3657 "complicatedArgs"
+                - WHITESPACE@3657..3658 " "
+                - SELECTION_SET@3658..3703
+                    - L_CURLY@3658..3659 "{"
+                    - WHITESPACE@3659..3664 "\n    "
+                    - FIELD@3664..3699
+                        - NAME@3664..3681
+                            - IDENT@3664..3681 "multipleOptAndReq"
+                        - ARGUMENTS@3681..3699
+                            - L_PAREN@3681..3682 "("
+                            - ARGUMENT@3682..3689
+                                - NAME@3682..3686
+                                    - IDENT@3682..3686 "req1"
+                                - COLON@3686..3687 ":"
+                                - WHITESPACE@3687..3688 " "
+                                - INT_VALUE@3688..3689
+                                    - INT@3688..3689 "3"
+                            - COMMA@3689..3690 ","
+                            - WHITESPACE@3690..3691 " "
+                            - ARGUMENT@3691..3698
+                                - NAME@3691..3695
+                                    - IDENT@3691..3695 "req2"
+                                - COLON@3695..3696 ":"
+                                - WHITESPACE@3696..3697 " "
+                                - INT_VALUE@3697..3698
+                                    - INT@3697..3698 "4"
+                            - R_PAREN@3698..3699 ")"
+                    - WHITESPACE@3699..3702 "\n  "
+                    - R_CURLY@3702..3703 "}"
+            - WHITESPACE@3703..3704 "\n"
+            - R_CURLY@3704..3705 "}"
+    - WHITESPACE@3705..3707 "\n\n"
+    - OPERATION_DEFINITION@3707..3834
+        - OPERATION_TYPE@3707..3712
+            - query_KW@3707..3712 "query"
+        - WHITESPACE@3712..3713 " "
+        - NAME@3713..3757
+            - IDENT@3713..3757 "multipleRequiredAndOneOptionalArgOnMixedList"
+        - WHITESPACE@3757..3758 " "
+        - SELECTION_SET@3758..3834
+            - L_CURLY@3758..3759 "{"
+            - WHITESPACE@3759..3762 "\n  "
+            - FIELD@3762..3832
+                - NAME@3762..3777
+                    - IDENT@3762..3777 "complicatedArgs"
+                - WHITESPACE@3777..3778 " "
+                - SELECTION_SET@3778..3832
+                    - L_CURLY@3778..3779 "{"
+                    - WHITESPACE@3779..3784 "\n    "
+                    - FIELD@3784..3828
+                        - NAME@3784..3801
+                            - IDENT@3784..3801 "multipleOptAndReq"
+                        - ARGUMENTS@3801..3828
+                            - L_PAREN@3801..3802 "("
+                            - ARGUMENT@3802..3809
+                                - NAME@3802..3806
+                                    - IDENT@3802..3806 "req1"
+                                - COLON@3806..3807 ":"
+                                - WHITESPACE@3807..3808 " "
+                                - INT_VALUE@3808..3809
+                                    - INT@3808..3809 "3"
+                            - COMMA@3809..3810 ","
+                            - WHITESPACE@3810..3811 " "
+                            - ARGUMENT@3811..3818
+                                - NAME@3811..3815
+                                    - IDENT@3811..3815 "req2"
+                                - COLON@3815..3816 ":"
+                                - WHITESPACE@3816..3817 " "
+                                - INT_VALUE@3817..3818
+                                    - INT@3817..3818 "4"
+                            - COMMA@3818..3819 ","
+                            - WHITESPACE@3819..3820 " "
+                            - ARGUMENT@3820..3827
+                                - NAME@3820..3824
+                                    - IDENT@3820..3824 "opt1"
+                                - COLON@3824..3825 ":"
+                                - WHITESPACE@3825..3826 " "
+                                - INT_VALUE@3826..3827
+                                    - INT@3826..3827 "5"
+                            - R_PAREN@3827..3828 ")"
+                    - WHITESPACE@3828..3831 "\n  "
+                    - R_CURLY@3831..3832 "}"
+            - WHITESPACE@3832..3833 "\n"
+            - R_CURLY@3833..3834 "}"
+    - WHITESPACE@3834..3836 "\n\n"
+    - OPERATION_DEFINITION@3836..3965
+        - OPERATION_TYPE@3836..3841
+            - query_KW@3836..3841 "query"
+        - WHITESPACE@3841..3842 " "
+        - NAME@3842..3879
+            - IDENT@3842..3879 "AllRequiredAndOptionalArgsOnMixedList"
+        - WHITESPACE@3879..3880 " "
+        - SELECTION_SET@3880..3965
+            - L_CURLY@3880..3881 "{"
+            - WHITESPACE@3881..3884 "\n  "
+            - FIELD@3884..3963
+                - NAME@3884..3899
+                    - IDENT@3884..3899 "complicatedArgs"
+                - WHITESPACE@3899..3900 " "
+                - SELECTION_SET@3900..3963
+                    - L_CURLY@3900..3901 "{"
+                    - WHITESPACE@3901..3906 "\n    "
+                    - FIELD@3906..3959
+                        - NAME@3906..3923
+                            - IDENT@3906..3923 "multipleOptAndReq"
+                        - ARGUMENTS@3923..3959
+                            - L_PAREN@3923..3924 "("
+                            - ARGUMENT@3924..3931
+                                - NAME@3924..3928
+                                    - IDENT@3924..3928 "req1"
+                                - COLON@3928..3929 ":"
+                                - WHITESPACE@3929..3930 " "
+                                - INT_VALUE@3930..3931
+                                    - INT@3930..3931 "3"
+                            - COMMA@3931..3932 ","
+                            - WHITESPACE@3932..3933 " "
+                            - ARGUMENT@3933..3940
+                                - NAME@3933..3937
+                                    - IDENT@3933..3937 "req2"
+                                - COLON@3937..3938 ":"
+                                - WHITESPACE@3938..3939 " "
+                                - INT_VALUE@3939..3940
+                                    - INT@3939..3940 "4"
+                            - COMMA@3940..3941 ","
+                            - WHITESPACE@3941..3942 " "
+                            - ARGUMENT@3942..3949
+                                - NAME@3942..3946
+                                    - IDENT@3942..3946 "opt1"
+                                - COLON@3946..3947 ":"
+                                - WHITESPACE@3947..3948 " "
+                                - INT_VALUE@3948..3949
+                                    - INT@3948..3949 "5"
+                            - COMMA@3949..3950 ","
+                            - WHITESPACE@3950..3951 " "
+                            - ARGUMENT@3951..3958
+                                - NAME@3951..3955
+                                    - IDENT@3951..3955 "opt2"
+                                - COLON@3955..3956 ":"
+                                - WHITESPACE@3956..3957 " "
+                                - INT_VALUE@3957..3958
+                                    - INT@3957..3958 "6"
+                            - R_PAREN@3958..3959 ")"
+                    - WHITESPACE@3959..3962 "\n  "
+                    - R_CURLY@3962..3963 "}"
+            - WHITESPACE@3963..3964 "\n"
+            - R_CURLY@3964..3965 "}"
+    - WHITESPACE@3965..3967 "\n\n"
+    - COMMENT@3967..3993 "# Valid input object value"
+    - WHITESPACE@3993..3994 "\n"
+    - OPERATION_DEFINITION@3994..4085
         - OPERATION_TYPE@3994..3999
             - query_KW@3994..3999 "query"
         - WHITESPACE@3999..4000 " "
-        - NAME@4000..4025
-            - IDENT@4000..4025 "partialObjectOnlyRequired"
-        - WHITESPACE@4025..4026 " "
-        - SELECTION_SET@4026..4110
-            - L_CURLY@4026..4027 "{"
-            - WHITESPACE@4027..4030 "\n  "
-            - FIELD@4030..4108
-                - NAME@4030..4045
-                    - IDENT@4030..4045 "complicatedArgs"
-                - WHITESPACE@4045..4046 " "
-                - SELECTION_SET@4046..4108
-                    - L_CURLY@4046..4047 "{"
-                    - WHITESPACE@4047..4052 "\n    "
-                    - FIELD@4052..4104
-                        - NAME@4052..4067
-                            - IDENT@4052..4067 "complexArgField"
-                        - ARGUMENTS@4067..4104
-                            - L_PAREN@4067..4068 "("
-                            - ARGUMENT@4068..4103
-                                - NAME@4068..4078
-                                    - IDENT@4068..4078 "complexArg"
-                                - COLON@4078..4079 ":"
-                                - WHITESPACE@4079..4080 " "
-                                - OBJECT_VALUE@4080..4103
-                                    - L_CURLY@4080..4081 "{"
-                                    - WHITESPACE@4081..4082 " "
-                                    - OBJECT_FIELD@4082..4101
-                                        - NAME@4082..4095
-                                            - IDENT@4082..4095 "requiredField"
-                                        - COLON@4095..4096 ":"
-                                        - WHITESPACE@4096..4097 " "
-                                        - BOOLEAN_VALUE@4097..4101
-                                            - true_KW@4097..4101 "true"
-                                    - WHITESPACE@4101..4102 " "
-                                    - R_CURLY@4102..4103 "}"
-                            - R_PAREN@4103..4104 ")"
-                    - WHITESPACE@4104..4107 "\n  "
-                    - R_CURLY@4107..4108 "}"
-            - WHITESPACE@4108..4109 "\n"
-            - R_CURLY@4109..4110 "}"
-    - WHITESPACE@4110..4112 "\n\n"
-    - OPERATION_DEFINITION@4112..4240
-        - OPERATION_TYPE@4112..4117
-            - query_KW@4112..4117 "query"
-        - WHITESPACE@4117..4118 " "
-        - NAME@4118..4154
-            - IDENT@4118..4154 "partialObjectRequiredFieldCanBeFalse"
-        - WHITESPACE@4154..4155 " "
-        - SELECTION_SET@4155..4240
-            - L_CURLY@4155..4156 "{"
-            - WHITESPACE@4156..4159 "\n  "
-            - FIELD@4159..4238
-                - NAME@4159..4174
-                    - IDENT@4159..4174 "complicatedArgs"
-                - WHITESPACE@4174..4175 " "
-                - SELECTION_SET@4175..4238
-                    - L_CURLY@4175..4176 "{"
-                    - WHITESPACE@4176..4181 "\n    "
-                    - FIELD@4181..4234
-                        - NAME@4181..4196
-                            - IDENT@4181..4196 "complexArgField"
-                        - ARGUMENTS@4196..4234
-                            - L_PAREN@4196..4197 "("
-                            - ARGUMENT@4197..4233
-                                - NAME@4197..4207
-                                    - IDENT@4197..4207 "complexArg"
-                                - COLON@4207..4208 ":"
-                                - WHITESPACE@4208..4209 " "
-                                - OBJECT_VALUE@4209..4233
-                                    - L_CURLY@4209..4210 "{"
-                                    - WHITESPACE@4210..4211 " "
-                                    - OBJECT_FIELD@4211..4231
-                                        - NAME@4211..4224
-                                            - IDENT@4211..4224 "requiredField"
-                                        - COLON@4224..4225 ":"
-                                        - WHITESPACE@4225..4226 " "
-                                        - BOOLEAN_VALUE@4226..4231
-                                            - false_KW@4226..4231 "false"
-                                    - WHITESPACE@4231..4232 " "
-                                    - R_CURLY@4232..4233 "}"
-                            - R_PAREN@4233..4234 ")"
-                    - WHITESPACE@4234..4237 "\n  "
-                    - R_CURLY@4237..4238 "}"
-            - WHITESPACE@4238..4239 "\n"
-            - R_CURLY@4239..4240 "}"
-    - WHITESPACE@4240..4242 "\n\n"
-    - OPERATION_DEFINITION@4242..4376
-        - OPERATION_TYPE@4242..4247
-            - query_KW@4242..4247 "query"
+        - NAME@4000..4037
+            - IDENT@4000..4037 "optionalArgDespiteRequiredFieldInType"
+        - WHITESPACE@4037..4038 " "
+        - SELECTION_SET@4038..4085
+            - L_CURLY@4038..4039 "{"
+            - WHITESPACE@4039..4042 "\n  "
+            - FIELD@4042..4083
+                - NAME@4042..4057
+                    - IDENT@4042..4057 "complicatedArgs"
+                - WHITESPACE@4057..4058 " "
+                - SELECTION_SET@4058..4083
+                    - L_CURLY@4058..4059 "{"
+                    - WHITESPACE@4059..4064 "\n    "
+                    - FIELD@4064..4079
+                        - NAME@4064..4079
+                            - IDENT@4064..4079 "complexArgField"
+                    - WHITESPACE@4079..4082 "\n  "
+                    - R_CURLY@4082..4083 "}"
+            - WHITESPACE@4083..4084 "\n"
+            - R_CURLY@4084..4085 "}"
+    - WHITESPACE@4085..4087 "\n\n"
+    - OPERATION_DEFINITION@4087..4203
+        - OPERATION_TYPE@4087..4092
+            - query_KW@4087..4092 "query"
+        - WHITESPACE@4092..4093 " "
+        - NAME@4093..4118
+            - IDENT@4093..4118 "partialObjectOnlyRequired"
+        - WHITESPACE@4118..4119 " "
+        - SELECTION_SET@4119..4203
+            - L_CURLY@4119..4120 "{"
+            - WHITESPACE@4120..4123 "\n  "
+            - FIELD@4123..4201
+                - NAME@4123..4138
+                    - IDENT@4123..4138 "complicatedArgs"
+                - WHITESPACE@4138..4139 " "
+                - SELECTION_SET@4139..4201
+                    - L_CURLY@4139..4140 "{"
+                    - WHITESPACE@4140..4145 "\n    "
+                    - FIELD@4145..4197
+                        - NAME@4145..4160
+                            - IDENT@4145..4160 "complexArgField"
+                        - ARGUMENTS@4160..4197
+                            - L_PAREN@4160..4161 "("
+                            - ARGUMENT@4161..4196
+                                - NAME@4161..4171
+                                    - IDENT@4161..4171 "complexArg"
+                                - COLON@4171..4172 ":"
+                                - WHITESPACE@4172..4173 " "
+                                - OBJECT_VALUE@4173..4196
+                                    - L_CURLY@4173..4174 "{"
+                                    - WHITESPACE@4174..4175 " "
+                                    - OBJECT_FIELD@4175..4194
+                                        - NAME@4175..4188
+                                            - IDENT@4175..4188 "requiredField"
+                                        - COLON@4188..4189 ":"
+                                        - WHITESPACE@4189..4190 " "
+                                        - BOOLEAN_VALUE@4190..4194
+                                            - true_KW@4190..4194 "true"
+                                    - WHITESPACE@4194..4195 " "
+                                    - R_CURLY@4195..4196 "}"
+                            - R_PAREN@4196..4197 ")"
+                    - WHITESPACE@4197..4200 "\n  "
+                    - R_CURLY@4200..4201 "}"
+            - WHITESPACE@4201..4202 "\n"
+            - R_CURLY@4202..4203 "}"
+    - WHITESPACE@4203..4205 "\n\n"
+    - OPERATION_DEFINITION@4205..4333
+        - OPERATION_TYPE@4205..4210
+            - query_KW@4205..4210 "query"
+        - WHITESPACE@4210..4211 " "
+        - NAME@4211..4247
+            - IDENT@4211..4247 "partialObjectRequiredFieldCanBeFalse"
         - WHITESPACE@4247..4248 " "
-        - NAME@4248..4278
-            - IDENT@4248..4278 "partialObjectIncludingRequired"
-        - WHITESPACE@4278..4279 " "
-        - SELECTION_SET@4279..4376
-            - L_CURLY@4279..4280 "{"
-            - WHITESPACE@4280..4283 "\n  "
-            - FIELD@4283..4374
-                - NAME@4283..4298
-                    - IDENT@4283..4298 "complicatedArgs"
-                - WHITESPACE@4298..4299 " "
-                - SELECTION_SET@4299..4374
-                    - L_CURLY@4299..4300 "{"
-                    - WHITESPACE@4300..4305 "\n    "
-                    - FIELD@4305..4370
-                        - NAME@4305..4320
-                            - IDENT@4305..4320 "complexArgField"
-                        - ARGUMENTS@4320..4370
-                            - L_PAREN@4320..4321 "("
-                            - ARGUMENT@4321..4369
-                                - NAME@4321..4331
-                                    - IDENT@4321..4331 "complexArg"
-                                - COLON@4331..4332 ":"
-                                - WHITESPACE@4332..4333 " "
-                                - OBJECT_VALUE@4333..4369
-                                    - L_CURLY@4333..4334 "{"
-                                    - WHITESPACE@4334..4335 " "
-                                    - OBJECT_FIELD@4335..4354
-                                        - NAME@4335..4348
-                                            - IDENT@4335..4348 "requiredField"
-                                        - COLON@4348..4349 ":"
-                                        - WHITESPACE@4349..4350 " "
-                                        - BOOLEAN_VALUE@4350..4354
-                                            - true_KW@4350..4354 "true"
-                                    - COMMA@4354..4355 ","
-                                    - WHITESPACE@4355..4356 " "
-                                    - OBJECT_FIELD@4356..4367
-                                        - NAME@4356..4364
-                                            - IDENT@4356..4364 "intField"
-                                        - COLON@4364..4365 ":"
-                                        - WHITESPACE@4365..4366 " "
-                                        - INT_VALUE@4366..4367
-                                            - INT@4366..4367 "4"
-                                    - WHITESPACE@4367..4368 " "
-                                    - R_CURLY@4368..4369 "}"
-                            - R_PAREN@4369..4370 ")"
-                    - WHITESPACE@4370..4373 "\n  "
-                    - R_CURLY@4373..4374 "}"
-            - WHITESPACE@4374..4375 "\n"
-            - R_CURLY@4375..4376 "}"
-    - WHITESPACE@4376..4378 "\n\n"
-    - OPERATION_DEFINITION@4378..4600
-        - OPERATION_TYPE@4378..4383
-            - query_KW@4378..4383 "query"
-        - WHITESPACE@4383..4384 " "
-        - NAME@4384..4394
-            - IDENT@4384..4394 "fullObject"
-        - WHITESPACE@4394..4395 " "
-        - SELECTION_SET@4395..4600
-            - L_CURLY@4395..4396 "{"
-            - WHITESPACE@4396..4399 "\n  "
-            - FIELD@4399..4598
-                - NAME@4399..4414
-                    - IDENT@4399..4414 "complicatedArgs"
-                - WHITESPACE@4414..4415 " "
-                - SELECTION_SET@4415..4598
-                    - L_CURLY@4415..4416 "{"
-                    - WHITESPACE@4416..4421 "\n    "
-                    - FIELD@4421..4594
-                        - NAME@4421..4436
-                            - IDENT@4421..4436 "complexArgField"
-                        - ARGUMENTS@4436..4594
-                            - L_PAREN@4436..4437 "("
-                            - ARGUMENT@4437..4593
-                                - NAME@4437..4447
-                                    - IDENT@4437..4447 "complexArg"
-                                - COLON@4447..4448 ":"
-                                - WHITESPACE@4448..4449 " "
-                                - OBJECT_VALUE@4449..4593
-                                    - L_CURLY@4449..4450 "{"
-                                    - WHITESPACE@4450..4457 "\n      "
-                                    - OBJECT_FIELD@4457..4476
-                                        - NAME@4457..4470
-                                            - IDENT@4457..4470 "requiredField"
-                                        - COLON@4470..4471 ":"
-                                        - WHITESPACE@4471..4472 " "
-                                        - BOOLEAN_VALUE@4472..4476
-                                            - true_KW@4472..4476 "true"
-                                    - COMMA@4476..4477 ","
-                                    - WHITESPACE@4477..4484 "\n      "
-                                    - OBJECT_FIELD@4484..4495
-                                        - NAME@4484..4492
-                                            - IDENT@4484..4492 "intField"
-                                        - COLON@4492..4493 ":"
-                                        - WHITESPACE@4493..4494 " "
-                                        - INT_VALUE@4494..4495
-                                            - INT@4494..4495 "4"
-                                    - COMMA@4495..4496 ","
-                                    - WHITESPACE@4496..4503 "\n      "
-                                    - OBJECT_FIELD@4503..4521
-                                        - NAME@4503..4514
-                                            - IDENT@4503..4514 "stringField"
-                                        - COLON@4514..4515 ":"
-                                        - WHITESPACE@4515..4516 " "
-                                        - STRING_VALUE@4516..4521
-                                            - STRING@4516..4521 "\"foo\""
-                                    - COMMA@4521..4522 ","
-                                    - WHITESPACE@4522..4529 "\n      "
-                                    - OBJECT_FIELD@4529..4548
-                                        - NAME@4529..4541
-                                            - IDENT@4529..4541 "booleanField"
-                                        - COLON@4541..4542 ":"
-                                        - WHITESPACE@4542..4543 " "
-                                        - BOOLEAN_VALUE@4543..4548
-                                            - false_KW@4543..4548 "false"
-                                    - COMMA@4548..4549 ","
-                                    - WHITESPACE@4549..4556 "\n      "
-                                    - OBJECT_FIELD@4556..4587
-                                        - NAME@4556..4571
-                                            - IDENT@4556..4571 "stringListField"
-                                        - COLON@4571..4572 ":"
-                                        - WHITESPACE@4572..4573 " "
-                                        - LIST_VALUE@4573..4587
-                                            - L_BRACK@4573..4574 "["
-                                            - STRING_VALUE@4574..4579
-                                                - STRING@4574..4579 "\"one\""
-                                            - COMMA@4579..4580 ","
-                                            - WHITESPACE@4580..4581 " "
-                                            - STRING_VALUE@4581..4586
-                                                - STRING@4581..4586 "\"two\""
-                                            - R_BRACK@4586..4587 "]"
-                                    - WHITESPACE@4587..4592 "\n    "
-                                    - R_CURLY@4592..4593 "}"
-                            - R_PAREN@4593..4594 ")"
-                    - WHITESPACE@4594..4597 "\n  "
-                    - R_CURLY@4597..4598 "}"
-            - WHITESPACE@4598..4599 "\n"
-            - R_CURLY@4599..4600 "}"
-    - WHITESPACE@4600..4602 "\n\n"
-    - OPERATION_DEFINITION@4602..4851
-        - OPERATION_TYPE@4602..4607
-            - query_KW@4602..4607 "query"
-        - WHITESPACE@4607..4608 " "
-        - NAME@4608..4644
-            - IDENT@4608..4644 "fullObjectWithFieldsInDifferentOrder"
-        - WHITESPACE@4644..4645 " "
-        - SELECTION_SET@4645..4851
-            - L_CURLY@4645..4646 "{"
-            - WHITESPACE@4646..4649 "\n  "
-            - FIELD@4649..4849
-                - NAME@4649..4664
-                    - IDENT@4649..4664 "complicatedArgs"
-                - WHITESPACE@4664..4665 " "
-                - SELECTION_SET@4665..4849
-                    - L_CURLY@4665..4666 "{"
-                    - WHITESPACE@4666..4671 "\n    "
-                    - FIELD@4671..4845
-                        - NAME@4671..4686
-                            - IDENT@4671..4686 "complexArgField"
-                        - ARGUMENTS@4686..4845
-                            - L_PAREN@4686..4687 "("
-                            - ARGUMENT@4687..4844
-                                - NAME@4687..4697
-                                    - IDENT@4687..4697 "complexArg"
-                                - COLON@4697..4698 ":"
-                                - WHITESPACE@4698..4699 " "
-                                - OBJECT_VALUE@4699..4844
-                                    - L_CURLY@4699..4700 "{"
-                                    - WHITESPACE@4700..4707 "\n      "
-                                    - OBJECT_FIELD@4707..4738
-                                        - NAME@4707..4722
-                                            - IDENT@4707..4722 "stringListField"
-                                        - COLON@4722..4723 ":"
-                                        - WHITESPACE@4723..4724 " "
-                                        - LIST_VALUE@4724..4738
-                                            - L_BRACK@4724..4725 "["
-                                            - STRING_VALUE@4725..4730
-                                                - STRING@4725..4730 "\"one\""
-                                            - COMMA@4730..4731 ","
-                                            - WHITESPACE@4731..4732 " "
-                                            - STRING_VALUE@4732..4737
-                                                - STRING@4732..4737 "\"two\""
-                                            - R_BRACK@4737..4738 "]"
-                                    - COMMA@4738..4739 ","
-                                    - WHITESPACE@4739..4746 "\n      "
-                                    - OBJECT_FIELD@4746..4765
-                                        - NAME@4746..4758
-                                            - IDENT@4746..4758 "booleanField"
-                                        - COLON@4758..4759 ":"
-                                        - WHITESPACE@4759..4760 " "
-                                        - BOOLEAN_VALUE@4760..4765
-                                            - false_KW@4760..4765 "false"
-                                    - COMMA@4765..4766 ","
-                                    - WHITESPACE@4766..4773 "\n      "
-                                    - OBJECT_FIELD@4773..4792
-                                        - NAME@4773..4786
-                                            - IDENT@4773..4786 "requiredField"
-                                        - COLON@4786..4787 ":"
-                                        - WHITESPACE@4787..4788 " "
-                                        - BOOLEAN_VALUE@4788..4792
-                                            - true_KW@4788..4792 "true"
-                                    - COMMA@4792..4793 ","
+        - SELECTION_SET@4248..4333
+            - L_CURLY@4248..4249 "{"
+            - WHITESPACE@4249..4252 "\n  "
+            - FIELD@4252..4331
+                - NAME@4252..4267
+                    - IDENT@4252..4267 "complicatedArgs"
+                - WHITESPACE@4267..4268 " "
+                - SELECTION_SET@4268..4331
+                    - L_CURLY@4268..4269 "{"
+                    - WHITESPACE@4269..4274 "\n    "
+                    - FIELD@4274..4327
+                        - NAME@4274..4289
+                            - IDENT@4274..4289 "complexArgField"
+                        - ARGUMENTS@4289..4327
+                            - L_PAREN@4289..4290 "("
+                            - ARGUMENT@4290..4326
+                                - NAME@4290..4300
+                                    - IDENT@4290..4300 "complexArg"
+                                - COLON@4300..4301 ":"
+                                - WHITESPACE@4301..4302 " "
+                                - OBJECT_VALUE@4302..4326
+                                    - L_CURLY@4302..4303 "{"
+                                    - WHITESPACE@4303..4304 " "
+                                    - OBJECT_FIELD@4304..4324
+                                        - NAME@4304..4317
+                                            - IDENT@4304..4317 "requiredField"
+                                        - COLON@4317..4318 ":"
+                                        - WHITESPACE@4318..4319 " "
+                                        - BOOLEAN_VALUE@4319..4324
+                                            - false_KW@4319..4324 "false"
+                                    - WHITESPACE@4324..4325 " "
+                                    - R_CURLY@4325..4326 "}"
+                            - R_PAREN@4326..4327 ")"
+                    - WHITESPACE@4327..4330 "\n  "
+                    - R_CURLY@4330..4331 "}"
+            - WHITESPACE@4331..4332 "\n"
+            - R_CURLY@4332..4333 "}"
+    - WHITESPACE@4333..4335 "\n\n"
+    - OPERATION_DEFINITION@4335..4469
+        - OPERATION_TYPE@4335..4340
+            - query_KW@4335..4340 "query"
+        - WHITESPACE@4340..4341 " "
+        - NAME@4341..4371
+            - IDENT@4341..4371 "partialObjectIncludingRequired"
+        - WHITESPACE@4371..4372 " "
+        - SELECTION_SET@4372..4469
+            - L_CURLY@4372..4373 "{"
+            - WHITESPACE@4373..4376 "\n  "
+            - FIELD@4376..4467
+                - NAME@4376..4391
+                    - IDENT@4376..4391 "complicatedArgs"
+                - WHITESPACE@4391..4392 " "
+                - SELECTION_SET@4392..4467
+                    - L_CURLY@4392..4393 "{"
+                    - WHITESPACE@4393..4398 "\n    "
+                    - FIELD@4398..4463
+                        - NAME@4398..4413
+                            - IDENT@4398..4413 "complexArgField"
+                        - ARGUMENTS@4413..4463
+                            - L_PAREN@4413..4414 "("
+                            - ARGUMENT@4414..4462
+                                - NAME@4414..4424
+                                    - IDENT@4414..4424 "complexArg"
+                                - COLON@4424..4425 ":"
+                                - WHITESPACE@4425..4426 " "
+                                - OBJECT_VALUE@4426..4462
+                                    - L_CURLY@4426..4427 "{"
+                                    - WHITESPACE@4427..4428 " "
+                                    - OBJECT_FIELD@4428..4447
+                                        - NAME@4428..4441
+                                            - IDENT@4428..4441 "requiredField"
+                                        - COLON@4441..4442 ":"
+                                        - WHITESPACE@4442..4443 " "
+                                        - BOOLEAN_VALUE@4443..4447
+                                            - true_KW@4443..4447 "true"
+                                    - COMMA@4447..4448 ","
+                                    - WHITESPACE@4448..4449 " "
+                                    - OBJECT_FIELD@4449..4460
+                                        - NAME@4449..4457
+                                            - IDENT@4449..4457 "intField"
+                                        - COLON@4457..4458 ":"
+                                        - WHITESPACE@4458..4459 " "
+                                        - INT_VALUE@4459..4460
+                                            - INT@4459..4460 "4"
+                                    - WHITESPACE@4460..4461 " "
+                                    - R_CURLY@4461..4462 "}"
+                            - R_PAREN@4462..4463 ")"
+                    - WHITESPACE@4463..4466 "\n  "
+                    - R_CURLY@4466..4467 "}"
+            - WHITESPACE@4467..4468 "\n"
+            - R_CURLY@4468..4469 "}"
+    - WHITESPACE@4469..4471 "\n\n"
+    - OPERATION_DEFINITION@4471..4693
+        - OPERATION_TYPE@4471..4476
+            - query_KW@4471..4476 "query"
+        - WHITESPACE@4476..4477 " "
+        - NAME@4477..4487
+            - IDENT@4477..4487 "fullObject"
+        - WHITESPACE@4487..4488 " "
+        - SELECTION_SET@4488..4693
+            - L_CURLY@4488..4489 "{"
+            - WHITESPACE@4489..4492 "\n  "
+            - FIELD@4492..4691
+                - NAME@4492..4507
+                    - IDENT@4492..4507 "complicatedArgs"
+                - WHITESPACE@4507..4508 " "
+                - SELECTION_SET@4508..4691
+                    - L_CURLY@4508..4509 "{"
+                    - WHITESPACE@4509..4514 "\n    "
+                    - FIELD@4514..4687
+                        - NAME@4514..4529
+                            - IDENT@4514..4529 "complexArgField"
+                        - ARGUMENTS@4529..4687
+                            - L_PAREN@4529..4530 "("
+                            - ARGUMENT@4530..4686
+                                - NAME@4530..4540
+                                    - IDENT@4530..4540 "complexArg"
+                                - COLON@4540..4541 ":"
+                                - WHITESPACE@4541..4542 " "
+                                - OBJECT_VALUE@4542..4686
+                                    - L_CURLY@4542..4543 "{"
+                                    - WHITESPACE@4543..4550 "\n      "
+                                    - OBJECT_FIELD@4550..4569
+                                        - NAME@4550..4563
+                                            - IDENT@4550..4563 "requiredField"
+                                        - COLON@4563..4564 ":"
+                                        - WHITESPACE@4564..4565 " "
+                                        - BOOLEAN_VALUE@4565..4569
+                                            - true_KW@4565..4569 "true"
+                                    - COMMA@4569..4570 ","
+                                    - WHITESPACE@4570..4577 "\n      "
+                                    - OBJECT_FIELD@4577..4588
+                                        - NAME@4577..4585
+                                            - IDENT@4577..4585 "intField"
+                                        - COLON@4585..4586 ":"
+                                        - WHITESPACE@4586..4587 " "
+                                        - INT_VALUE@4587..4588
+                                            - INT@4587..4588 "4"
+                                    - COMMA@4588..4589 ","
+                                    - WHITESPACE@4589..4596 "\n      "
+                                    - OBJECT_FIELD@4596..4614
+                                        - NAME@4596..4607
+                                            - IDENT@4596..4607 "stringField"
+                                        - COLON@4607..4608 ":"
+                                        - WHITESPACE@4608..4609 " "
+                                        - STRING_VALUE@4609..4614
+                                            - STRING@4609..4614 "\"foo\""
+                                    - COMMA@4614..4615 ","
+                                    - WHITESPACE@4615..4622 "\n      "
+                                    - OBJECT_FIELD@4622..4641
+                                        - NAME@4622..4634
+                                            - IDENT@4622..4634 "booleanField"
+                                        - COLON@4634..4635 ":"
+                                        - WHITESPACE@4635..4636 " "
+                                        - BOOLEAN_VALUE@4636..4641
+                                            - false_KW@4636..4641 "false"
+                                    - COMMA@4641..4642 ","
+                                    - WHITESPACE@4642..4649 "\n      "
+                                    - OBJECT_FIELD@4649..4680
+                                        - NAME@4649..4664
+                                            - IDENT@4649..4664 "stringListField"
+                                        - COLON@4664..4665 ":"
+                                        - WHITESPACE@4665..4666 " "
+                                        - LIST_VALUE@4666..4680
+                                            - L_BRACK@4666..4667 "["
+                                            - STRING_VALUE@4667..4672
+                                                - STRING@4667..4672 "\"one\""
+                                            - COMMA@4672..4673 ","
+                                            - WHITESPACE@4673..4674 " "
+                                            - STRING_VALUE@4674..4679
+                                                - STRING@4674..4679 "\"two\""
+                                            - R_BRACK@4679..4680 "]"
+                                    - WHITESPACE@4680..4685 "\n    "
+                                    - R_CURLY@4685..4686 "}"
+                            - R_PAREN@4686..4687 ")"
+                    - WHITESPACE@4687..4690 "\n  "
+                    - R_CURLY@4690..4691 "}"
+            - WHITESPACE@4691..4692 "\n"
+            - R_CURLY@4692..4693 "}"
+    - WHITESPACE@4693..4695 "\n\n"
+    - OPERATION_DEFINITION@4695..4944
+        - OPERATION_TYPE@4695..4700
+            - query_KW@4695..4700 "query"
+        - WHITESPACE@4700..4701 " "
+        - NAME@4701..4737
+            - IDENT@4701..4737 "fullObjectWithFieldsInDifferentOrder"
+        - WHITESPACE@4737..4738 " "
+        - SELECTION_SET@4738..4944
+            - L_CURLY@4738..4739 "{"
+            - WHITESPACE@4739..4742 "\n  "
+            - FIELD@4742..4942
+                - NAME@4742..4757
+                    - IDENT@4742..4757 "complicatedArgs"
+                - WHITESPACE@4757..4758 " "
+                - SELECTION_SET@4758..4942
+                    - L_CURLY@4758..4759 "{"
+                    - WHITESPACE@4759..4764 "\n    "
+                    - FIELD@4764..4938
+                        - NAME@4764..4779
+                            - IDENT@4764..4779 "complexArgField"
+                        - ARGUMENTS@4779..4938
+                            - L_PAREN@4779..4780 "("
+                            - ARGUMENT@4780..4937
+                                - NAME@4780..4790
+                                    - IDENT@4780..4790 "complexArg"
+                                - COLON@4790..4791 ":"
+                                - WHITESPACE@4791..4792 " "
+                                - OBJECT_VALUE@4792..4937
+                                    - L_CURLY@4792..4793 "{"
                                     - WHITESPACE@4793..4800 "\n      "
-                                    - OBJECT_FIELD@4800..4818
-                                        - NAME@4800..4811
-                                            - IDENT@4800..4811 "stringField"
-                                        - COLON@4811..4812 ":"
-                                        - WHITESPACE@4812..4813 " "
-                                        - STRING_VALUE@4813..4818
-                                            - STRING@4813..4818 "\"foo\""
-                                    - COMMA@4818..4819 ","
-                                    - WHITESPACE@4819..4826 "\n      "
-                                    - OBJECT_FIELD@4826..4837
-                                        - NAME@4826..4834
-                                            - IDENT@4826..4834 "intField"
-                                        - COLON@4834..4835 ":"
-                                        - WHITESPACE@4835..4836 " "
-                                        - INT_VALUE@4836..4837
-                                            - INT@4836..4837 "4"
-                                    - COMMA@4837..4838 ","
-                                    - WHITESPACE@4838..4843 "\n    "
-                                    - R_CURLY@4843..4844 "}"
-                            - R_PAREN@4844..4845 ")"
-                    - WHITESPACE@4845..4848 "\n  "
-                    - R_CURLY@4848..4849 "}"
-            - WHITESPACE@4849..4850 "\n"
-            - R_CURLY@4850..4851 "}"
-    - WHITESPACE@4851..4853 "\n\n"
-    - OPERATION_DEFINITION@4853..4969
-        - OPERATION_TYPE@4853..4858
-            - query_KW@4853..4858 "query"
-        - WHITESPACE@4858..4859 " "
-        - NAME@4859..4885
-            - IDENT@4859..4885 "withDirectivesOfValidTypes"
-        - WHITESPACE@4885..4886 " "
-        - SELECTION_SET@4886..4969
-            - L_CURLY@4886..4887 "{"
-            - WHITESPACE@4887..4890 "\n  "
-            - FIELD@4890..4927
-                - NAME@4890..4893
-                    - IDENT@4890..4893 "dog"
-                - WHITESPACE@4893..4894 " "
-                - DIRECTIVES@4894..4912
-                    - DIRECTIVE@4894..4912
-                        - AT@4894..4895 "@"
-                        - NAME@4895..4902
-                            - IDENT@4895..4902 "include"
-                        - ARGUMENTS@4902..4912
-                            - L_PAREN@4902..4903 "("
-                            - ARGUMENT@4903..4911
-                                - NAME@4903..4905
-                                    - IDENT@4903..4905 "if"
-                                - COLON@4905..4906 ":"
-                                - WHITESPACE@4906..4907 " "
-                                - BOOLEAN_VALUE@4907..4911
-                                    - true_KW@4907..4911 "true"
-                            - R_PAREN@4911..4912 ")"
-                - WHITESPACE@4912..4913 " "
-                - SELECTION_SET@4913..4927
-                    - L_CURLY@4913..4914 "{"
-                    - WHITESPACE@4914..4919 "\n    "
-                    - FIELD@4919..4923
-                        - NAME@4919..4923
-                            - IDENT@4919..4923 "name"
-                    - WHITESPACE@4923..4926 "\n  "
-                    - R_CURLY@4926..4927 "}"
-            - WHITESPACE@4927..4930 "\n  "
-            - FIELD@4930..4967
-                - NAME@4930..4935
-                    - IDENT@4930..4935 "human"
-                - WHITESPACE@4935..4936 " "
-                - DIRECTIVES@4936..4952
-                    - DIRECTIVE@4936..4952
-                        - AT@4936..4937 "@"
-                        - NAME@4937..4941
-                            - IDENT@4937..4941 "skip"
-                        - ARGUMENTS@4941..4952
-                            - L_PAREN@4941..4942 "("
-                            - ARGUMENT@4942..4951
-                                - NAME@4942..4944
-                                    - IDENT@4942..4944 "if"
-                                - COLON@4944..4945 ":"
-                                - WHITESPACE@4945..4946 " "
-                                - BOOLEAN_VALUE@4946..4951
-                                    - false_KW@4946..4951 "false"
-                            - R_PAREN@4951..4952 ")"
-                - WHITESPACE@4952..4953 " "
-                - SELECTION_SET@4953..4967
-                    - L_CURLY@4953..4954 "{"
-                    - WHITESPACE@4954..4959 "\n    "
-                    - FIELD@4959..4963
-                        - NAME@4959..4963
-                            - IDENT@4959..4963 "name"
-                    - WHITESPACE@4963..4966 "\n  "
-                    - R_CURLY@4966..4967 "}"
-            - WHITESPACE@4967..4968 "\n"
-            - R_CURLY@4968..4969 "}"
-    - WHITESPACE@4969..4972 "\n\n\n"
-    - COMMENT@4972..4997 "# Variable default values"
-    - WHITESPACE@4997..4998 "\n"
-    - OPERATION_DEFINITION@4998..5244
-        - OPERATION_TYPE@4998..5003
-            - query_KW@4998..5003 "query"
-        - WHITESPACE@5003..5004 " "
-        - NAME@5004..5021
-            - IDENT@5004..5021 "withDefaultValues"
-        - VARIABLE_DEFINITIONS@5021..5118
-            - L_PAREN@5021..5022 "("
-            - WHITESPACE@5022..5025 "\n  "
-            - VARIABLE_DEFINITION@5025..5036
-                - VARIABLE@5025..5027
-                    - DOLLAR@5025..5026 "$"
-                    - NAME@5026..5027
-                        - IDENT@5026..5027 "a"
-                - COLON@5027..5028 ":"
+                                    - OBJECT_FIELD@4800..4831
+                                        - NAME@4800..4815
+                                            - IDENT@4800..4815 "stringListField"
+                                        - COLON@4815..4816 ":"
+                                        - WHITESPACE@4816..4817 " "
+                                        - LIST_VALUE@4817..4831
+                                            - L_BRACK@4817..4818 "["
+                                            - STRING_VALUE@4818..4823
+                                                - STRING@4818..4823 "\"one\""
+                                            - COMMA@4823..4824 ","
+                                            - WHITESPACE@4824..4825 " "
+                                            - STRING_VALUE@4825..4830
+                                                - STRING@4825..4830 "\"two\""
+                                            - R_BRACK@4830..4831 "]"
+                                    - COMMA@4831..4832 ","
+                                    - WHITESPACE@4832..4839 "\n      "
+                                    - OBJECT_FIELD@4839..4858
+                                        - NAME@4839..4851
+                                            - IDENT@4839..4851 "booleanField"
+                                        - COLON@4851..4852 ":"
+                                        - WHITESPACE@4852..4853 " "
+                                        - BOOLEAN_VALUE@4853..4858
+                                            - false_KW@4853..4858 "false"
+                                    - COMMA@4858..4859 ","
+                                    - WHITESPACE@4859..4866 "\n      "
+                                    - OBJECT_FIELD@4866..4885
+                                        - NAME@4866..4879
+                                            - IDENT@4866..4879 "requiredField"
+                                        - COLON@4879..4880 ":"
+                                        - WHITESPACE@4880..4881 " "
+                                        - BOOLEAN_VALUE@4881..4885
+                                            - true_KW@4881..4885 "true"
+                                    - COMMA@4885..4886 ","
+                                    - WHITESPACE@4886..4893 "\n      "
+                                    - OBJECT_FIELD@4893..4911
+                                        - NAME@4893..4904
+                                            - IDENT@4893..4904 "stringField"
+                                        - COLON@4904..4905 ":"
+                                        - WHITESPACE@4905..4906 " "
+                                        - STRING_VALUE@4906..4911
+                                            - STRING@4906..4911 "\"foo\""
+                                    - COMMA@4911..4912 ","
+                                    - WHITESPACE@4912..4919 "\n      "
+                                    - OBJECT_FIELD@4919..4930
+                                        - NAME@4919..4927
+                                            - IDENT@4919..4927 "intField"
+                                        - COLON@4927..4928 ":"
+                                        - WHITESPACE@4928..4929 " "
+                                        - INT_VALUE@4929..4930
+                                            - INT@4929..4930 "4"
+                                    - COMMA@4930..4931 ","
+                                    - WHITESPACE@4931..4936 "\n    "
+                                    - R_CURLY@4936..4937 "}"
+                            - R_PAREN@4937..4938 ")"
+                    - WHITESPACE@4938..4941 "\n  "
+                    - R_CURLY@4941..4942 "}"
+            - WHITESPACE@4942..4943 "\n"
+            - R_CURLY@4943..4944 "}"
+    - WHITESPACE@4944..4946 "\n\n"
+    - OPERATION_DEFINITION@4946..5062
+        - OPERATION_TYPE@4946..4951
+            - query_KW@4946..4951 "query"
+        - WHITESPACE@4951..4952 " "
+        - NAME@4952..4978
+            - IDENT@4952..4978 "withDirectivesOfValidTypes"
+        - WHITESPACE@4978..4979 " "
+        - SELECTION_SET@4979..5062
+            - L_CURLY@4979..4980 "{"
+            - WHITESPACE@4980..4983 "\n  "
+            - FIELD@4983..5020
+                - NAME@4983..4986
+                    - IDENT@4983..4986 "dog"
+                - WHITESPACE@4986..4987 " "
+                - DIRECTIVES@4987..5005
+                    - DIRECTIVE@4987..5005
+                        - AT@4987..4988 "@"
+                        - NAME@4988..4995
+                            - IDENT@4988..4995 "include"
+                        - ARGUMENTS@4995..5005
+                            - L_PAREN@4995..4996 "("
+                            - ARGUMENT@4996..5004
+                                - NAME@4996..4998
+                                    - IDENT@4996..4998 "if"
+                                - COLON@4998..4999 ":"
+                                - WHITESPACE@4999..5000 " "
+                                - BOOLEAN_VALUE@5000..5004
+                                    - true_KW@5000..5004 "true"
+                            - R_PAREN@5004..5005 ")"
+                - WHITESPACE@5005..5006 " "
+                - SELECTION_SET@5006..5020
+                    - L_CURLY@5006..5007 "{"
+                    - WHITESPACE@5007..5012 "\n    "
+                    - FIELD@5012..5016
+                        - NAME@5012..5016
+                            - IDENT@5012..5016 "name"
+                    - WHITESPACE@5016..5019 "\n  "
+                    - R_CURLY@5019..5020 "}"
+            - WHITESPACE@5020..5023 "\n  "
+            - FIELD@5023..5060
+                - NAME@5023..5028
+                    - IDENT@5023..5028 "human"
                 - WHITESPACE@5028..5029 " "
-                - NAMED_TYPE@5029..5032
-                    - NAME@5029..5032
-                        - IDENT@5029..5032 "Int"
-                - WHITESPACE@5032..5033 " "
-                - DEFAULT_VALUE@5033..5036
-                    - EQ@5033..5034 "="
-                    - WHITESPACE@5034..5035 " "
-                    - INT_VALUE@5035..5036
-                        - INT@5035..5036 "1"
-            - COMMA@5036..5037 ","
-            - WHITESPACE@5037..5040 "\n  "
-            - VARIABLE_DEFINITION@5040..5057
-                - VARIABLE@5040..5042
-                    - DOLLAR@5040..5041 "$"
-                    - NAME@5041..5042
-                        - IDENT@5041..5042 "b"
-                - COLON@5042..5043 ":"
-                - WHITESPACE@5043..5044 " "
-                - NAMED_TYPE@5044..5050
-                    - NAME@5044..5050
-                        - IDENT@5044..5050 "String"
-                - WHITESPACE@5050..5051 " "
-                - DEFAULT_VALUE@5051..5057
-                    - EQ@5051..5052 "="
-                    - WHITESPACE@5052..5053 " "
-                    - STRING_VALUE@5053..5057
-                        - STRING@5053..5057 "\"ok\""
-            - COMMA@5057..5058 ","
-            - WHITESPACE@5058..5061 "\n  "
-            - VARIABLE_DEFINITION@5061..5116
-                - VARIABLE@5061..5063
-                    - DOLLAR@5061..5062 "$"
-                    - NAME@5062..5063
-                        - IDENT@5062..5063 "c"
-                - COLON@5063..5064 ":"
-                - WHITESPACE@5064..5065 " "
-                - NAMED_TYPE@5065..5077
-                    - NAME@5065..5077
-                        - IDENT@5065..5077 "ComplexInput"
-                - WHITESPACE@5077..5078 " "
-                - DEFAULT_VALUE@5078..5116
-                    - EQ@5078..5079 "="
-                    - WHITESPACE@5079..5080 " "
-                    - OBJECT_VALUE@5080..5116
-                        - L_CURLY@5080..5081 "{"
-                        - WHITESPACE@5081..5082 " "
-                        - OBJECT_FIELD@5082..5101
-                            - NAME@5082..5095
-                                - IDENT@5082..5095 "requiredField"
-                            - COLON@5095..5096 ":"
-                            - WHITESPACE@5096..5097 " "
-                            - BOOLEAN_VALUE@5097..5101
-                                - true_KW@5097..5101 "true"
-                        - COMMA@5101..5102 ","
-                        - WHITESPACE@5102..5103 " "
-                        - OBJECT_FIELD@5103..5114
-                            - NAME@5103..5111
-                                - IDENT@5103..5111 "intField"
-                            - COLON@5111..5112 ":"
-                            - WHITESPACE@5112..5113 " "
-                            - INT_VALUE@5113..5114
-                                - INT@5113..5114 "3"
-                        - WHITESPACE@5114..5115 " "
-                        - R_CURLY@5115..5116 "}"
-            - WHITESPACE@5116..5117 "\n"
-            - R_PAREN@5117..5118 ")"
-        - WHITESPACE@5118..5119 " "
-        - SELECTION_SET@5119..5244
-            - L_CURLY@5119..5120 "{"
-            - WHITESPACE@5120..5123 "\n  "
-            - FIELD@5123..5242
-                - NAME@5123..5138
-                    - IDENT@5123..5138 "complicatedArgs"
-                - WHITESPACE@5138..5139 " "
-                - SELECTION_SET@5139..5242
-                    - L_CURLY@5139..5140 "{"
-                    - WHITESPACE@5140..5145 "\n    "
-                    - FIELD@5145..5176
-                        - NAME@5145..5160
-                            - IDENT@5145..5160 "complexArgField"
-                        - ARGUMENTS@5160..5176
-                            - L_PAREN@5160..5161 "("
-                            - ARGUMENT@5161..5175
-                                - NAME@5161..5171
-                                    - IDENT@5161..5171 "complexArg"
-                                - COLON@5171..5172 ":"
-                                - WHITESPACE@5172..5173 " "
-                                - VARIABLE@5173..5175
-                                    - DOLLAR@5173..5174 "$"
-                                    - NAME@5174..5175
-                                        - IDENT@5174..5175 "c"
-                            - R_PAREN@5175..5176 ")"
-                    - WHITESPACE@5176..5181 "\n    "
-                    - FIELD@5181..5204
-                        - NAME@5181..5192
-                            - IDENT@5181..5192 "intArgField"
-                        - ARGUMENTS@5192..5204
-                            - L_PAREN@5192..5193 "("
-                            - ARGUMENT@5193..5203
-                                - NAME@5193..5199
-                                    - IDENT@5193..5199 "intArg"
-                                - COLON@5199..5200 ":"
-                                - WHITESPACE@5200..5201 " "
-                                - VARIABLE@5201..5203
-                                    - DOLLAR@5201..5202 "$"
-                                    - NAME@5202..5203
-                                        - IDENT@5202..5203 "a"
-                            - R_PAREN@5203..5204 ")"
-                    - WHITESPACE@5204..5209 "\n    "
-                    - FIELD@5209..5238
-                        - NAME@5209..5223
-                            - IDENT@5209..5223 "stringArgField"
-                        - ARGUMENTS@5223..5238
-                            - L_PAREN@5223..5224 "("
-                            - ARGUMENT@5224..5237
-                                - NAME@5224..5233
-                                    - IDENT@5224..5233 "stringArg"
-                                - COLON@5233..5234 ":"
-                                - WHITESPACE@5234..5235 " "
-                                - VARIABLE@5235..5237
-                                    - DOLLAR@5235..5236 "$"
-                                    - NAME@5236..5237
-                                        - IDENT@5236..5237 "b"
-                            - R_PAREN@5237..5238 ")"
-                    - WHITESPACE@5238..5241 "\n  "
-                    - R_CURLY@5241..5242 "}"
-            - WHITESPACE@5242..5243 "\n"
-            - R_CURLY@5243..5244 "}"
-    - WHITESPACE@5244..5246 "\n\n"
-    - OPERATION_DEFINITION@5246..5512
-        - OPERATION_TYPE@5246..5251
-            - query_KW@5246..5251 "query"
-        - WHITESPACE@5251..5252 " "
-        - NAME@5252..5282
-            - IDENT@5252..5282 "variablesWithDefaultNullValues"
-        - VARIABLE_DEFINITIONS@5282..5385
-            - L_PAREN@5282..5283 "("
-            - WHITESPACE@5283..5286 "\n  "
-            - VARIABLE_DEFINITION@5286..5300
-                - VARIABLE@5286..5288
-                    - DOLLAR@5286..5287 "$"
-                    - NAME@5287..5288
-                        - IDENT@5287..5288 "a"
-                - COLON@5288..5289 ":"
-                - WHITESPACE@5289..5290 " "
-                - NAMED_TYPE@5290..5293
-                    - NAME@5290..5293
-                        - IDENT@5290..5293 "Int"
-                - WHITESPACE@5293..5294 " "
-                - DEFAULT_VALUE@5294..5300
-                    - EQ@5294..5295 "="
-                    - WHITESPACE@5295..5296 " "
-                    - NULL_VALUE@5296..5300
-                        - null_KW@5296..5300 "null"
-            - COMMA@5300..5301 ","
-            - WHITESPACE@5301..5304 "\n  "
-            - VARIABLE_DEFINITION@5304..5321
-                - VARIABLE@5304..5306
-                    - DOLLAR@5304..5305 "$"
-                    - NAME@5305..5306
-                        - IDENT@5305..5306 "b"
-                - COLON@5306..5307 ":"
-                - WHITESPACE@5307..5308 " "
-                - NAMED_TYPE@5308..5314
-                    - NAME@5308..5314
-                        - IDENT@5308..5314 "String"
-                - WHITESPACE@5314..5315 " "
-                - DEFAULT_VALUE@5315..5321
-                    - EQ@5315..5316 "="
-                    - WHITESPACE@5316..5317 " "
-                    - NULL_VALUE@5317..5321
-                        - null_KW@5317..5321 "null"
-            - COMMA@5321..5322 ","
-            - WHITESPACE@5322..5325 "\n  "
-            - VARIABLE_DEFINITION@5325..5383
-                - VARIABLE@5325..5327
-                    - DOLLAR@5325..5326 "$"
-                    - NAME@5326..5327
-                        - IDENT@5326..5327 "c"
-                - COLON@5327..5328 ":"
-                - WHITESPACE@5328..5329 " "
-                - NAMED_TYPE@5329..5341
-                    - NAME@5329..5341
-                        - IDENT@5329..5341 "ComplexInput"
-                - WHITESPACE@5341..5342 " "
-                - DEFAULT_VALUE@5342..5383
-                    - EQ@5342..5343 "="
-                    - WHITESPACE@5343..5344 " "
-                    - OBJECT_VALUE@5344..5383
-                        - L_CURLY@5344..5345 "{"
-                        - WHITESPACE@5345..5346 " "
-                        - OBJECT_FIELD@5346..5365
-                            - NAME@5346..5359
-                                - IDENT@5346..5359 "requiredField"
-                            - COLON@5359..5360 ":"
-                            - WHITESPACE@5360..5361 " "
-                            - BOOLEAN_VALUE@5361..5365
-                                - true_KW@5361..5365 "true"
-                        - COMMA@5365..5366 ","
-                        - WHITESPACE@5366..5367 " "
-                        - OBJECT_FIELD@5367..5381
-                            - NAME@5367..5375
-                                - IDENT@5367..5375 "intField"
-                            - COLON@5375..5376 ":"
-                            - WHITESPACE@5376..5377 " "
-                            - NULL_VALUE@5377..5381
-                                - null_KW@5377..5381 "null"
-                        - WHITESPACE@5381..5382 " "
-                        - R_CURLY@5382..5383 "}"
-            - WHITESPACE@5383..5384 "\n"
-            - R_PAREN@5384..5385 ")"
-        - WHITESPACE@5385..5386 " "
-        - SELECTION_SET@5386..5512
-            - L_CURLY@5386..5387 "{"
-            - WHITESPACE@5387..5390 "\n  "
-            - FIELD@5390..5509
-                - NAME@5390..5405
-                    - IDENT@5390..5405 "complicatedArgs"
-                - WHITESPACE@5405..5406 " "
-                - SELECTION_SET@5406..5509
-                    - L_CURLY@5406..5407 "{"
-                    - WHITESPACE@5407..5412 "\n    "
-                    - FIELD@5412..5443
-                        - NAME@5412..5427
-                            - IDENT@5412..5427 "complexArgField"
-                        - ARGUMENTS@5427..5443
-                            - L_PAREN@5427..5428 "("
-                            - ARGUMENT@5428..5442
-                                - NAME@5428..5438
-                                    - IDENT@5428..5438 "complexArg"
-                                - COLON@5438..5439 ":"
-                                - WHITESPACE@5439..5440 " "
-                                - VARIABLE@5440..5442
-                                    - DOLLAR@5440..5441 "$"
-                                    - NAME@5441..5442
-                                        - IDENT@5441..5442 "c"
-                            - R_PAREN@5442..5443 ")"
-                    - WHITESPACE@5443..5448 "\n    "
-                    - FIELD@5448..5471
-                        - NAME@5448..5459
-                            - IDENT@5448..5459 "intArgField"
-                        - ARGUMENTS@5459..5471
-                            - L_PAREN@5459..5460 "("
-                            - ARGUMENT@5460..5470
-                                - NAME@5460..5466
-                                    - IDENT@5460..5466 "intArg"
-                                - COLON@5466..5467 ":"
-                                - WHITESPACE@5467..5468 " "
-                                - VARIABLE@5468..5470
-                                    - DOLLAR@5468..5469 "$"
-                                    - NAME@5469..5470
-                                        - IDENT@5469..5470 "a"
-                            - R_PAREN@5470..5471 ")"
-                    - WHITESPACE@5471..5476 "\n    "
-                    - FIELD@5476..5505
-                        - NAME@5476..5490
-                            - IDENT@5476..5490 "stringArgField"
-                        - ARGUMENTS@5490..5505
-                            - L_PAREN@5490..5491 "("
-                            - ARGUMENT@5491..5504
-                                - NAME@5491..5500
-                                    - IDENT@5491..5500 "stringArg"
-                                - COLON@5500..5501 ":"
-                                - WHITESPACE@5501..5502 " "
-                                - VARIABLE@5502..5504
-                                    - DOLLAR@5502..5503 "$"
-                                    - NAME@5503..5504
-                                        - IDENT@5503..5504 "b"
-                            - R_PAREN@5504..5505 ")"
-                    - WHITESPACE@5505..5508 "\n  "
-                    - R_CURLY@5508..5509 "}"
-            - WHITESPACE@5509..5511 "\n\n"
-            - R_CURLY@5511..5512 "}"
+                - DIRECTIVES@5029..5045
+                    - DIRECTIVE@5029..5045
+                        - AT@5029..5030 "@"
+                        - NAME@5030..5034
+                            - IDENT@5030..5034 "skip"
+                        - ARGUMENTS@5034..5045
+                            - L_PAREN@5034..5035 "("
+                            - ARGUMENT@5035..5044
+                                - NAME@5035..5037
+                                    - IDENT@5035..5037 "if"
+                                - COLON@5037..5038 ":"
+                                - WHITESPACE@5038..5039 " "
+                                - BOOLEAN_VALUE@5039..5044
+                                    - false_KW@5039..5044 "false"
+                            - R_PAREN@5044..5045 ")"
+                - WHITESPACE@5045..5046 " "
+                - SELECTION_SET@5046..5060
+                    - L_CURLY@5046..5047 "{"
+                    - WHITESPACE@5047..5052 "\n    "
+                    - FIELD@5052..5056
+                        - NAME@5052..5056
+                            - IDENT@5052..5056 "name"
+                    - WHITESPACE@5056..5059 "\n  "
+                    - R_CURLY@5059..5060 "}"
+            - WHITESPACE@5060..5061 "\n"
+            - R_CURLY@5061..5062 "}"
+    - WHITESPACE@5062..5065 "\n\n\n"
+    - COMMENT@5065..5090 "# Variable default values"
+    - WHITESPACE@5090..5091 "\n"
+    - OPERATION_DEFINITION@5091..5337
+        - OPERATION_TYPE@5091..5096
+            - query_KW@5091..5096 "query"
+        - WHITESPACE@5096..5097 " "
+        - NAME@5097..5114
+            - IDENT@5097..5114 "withDefaultValues"
+        - VARIABLE_DEFINITIONS@5114..5211
+            - L_PAREN@5114..5115 "("
+            - WHITESPACE@5115..5118 "\n  "
+            - VARIABLE_DEFINITION@5118..5129
+                - VARIABLE@5118..5120
+                    - DOLLAR@5118..5119 "$"
+                    - NAME@5119..5120
+                        - IDENT@5119..5120 "a"
+                - COLON@5120..5121 ":"
+                - WHITESPACE@5121..5122 " "
+                - NAMED_TYPE@5122..5125
+                    - NAME@5122..5125
+                        - IDENT@5122..5125 "Int"
+                - WHITESPACE@5125..5126 " "
+                - DEFAULT_VALUE@5126..5129
+                    - EQ@5126..5127 "="
+                    - WHITESPACE@5127..5128 " "
+                    - INT_VALUE@5128..5129
+                        - INT@5128..5129 "1"
+            - COMMA@5129..5130 ","
+            - WHITESPACE@5130..5133 "\n  "
+            - VARIABLE_DEFINITION@5133..5150
+                - VARIABLE@5133..5135
+                    - DOLLAR@5133..5134 "$"
+                    - NAME@5134..5135
+                        - IDENT@5134..5135 "b"
+                - COLON@5135..5136 ":"
+                - WHITESPACE@5136..5137 " "
+                - NAMED_TYPE@5137..5143
+                    - NAME@5137..5143
+                        - IDENT@5137..5143 "String"
+                - WHITESPACE@5143..5144 " "
+                - DEFAULT_VALUE@5144..5150
+                    - EQ@5144..5145 "="
+                    - WHITESPACE@5145..5146 " "
+                    - STRING_VALUE@5146..5150
+                        - STRING@5146..5150 "\"ok\""
+            - COMMA@5150..5151 ","
+            - WHITESPACE@5151..5154 "\n  "
+            - VARIABLE_DEFINITION@5154..5209
+                - VARIABLE@5154..5156
+                    - DOLLAR@5154..5155 "$"
+                    - NAME@5155..5156
+                        - IDENT@5155..5156 "c"
+                - COLON@5156..5157 ":"
+                - WHITESPACE@5157..5158 " "
+                - NAMED_TYPE@5158..5170
+                    - NAME@5158..5170
+                        - IDENT@5158..5170 "ComplexInput"
+                - WHITESPACE@5170..5171 " "
+                - DEFAULT_VALUE@5171..5209
+                    - EQ@5171..5172 "="
+                    - WHITESPACE@5172..5173 " "
+                    - OBJECT_VALUE@5173..5209
+                        - L_CURLY@5173..5174 "{"
+                        - WHITESPACE@5174..5175 " "
+                        - OBJECT_FIELD@5175..5194
+                            - NAME@5175..5188
+                                - IDENT@5175..5188 "requiredField"
+                            - COLON@5188..5189 ":"
+                            - WHITESPACE@5189..5190 " "
+                            - BOOLEAN_VALUE@5190..5194
+                                - true_KW@5190..5194 "true"
+                        - COMMA@5194..5195 ","
+                        - WHITESPACE@5195..5196 " "
+                        - OBJECT_FIELD@5196..5207
+                            - NAME@5196..5204
+                                - IDENT@5196..5204 "intField"
+                            - COLON@5204..5205 ":"
+                            - WHITESPACE@5205..5206 " "
+                            - INT_VALUE@5206..5207
+                                - INT@5206..5207 "3"
+                        - WHITESPACE@5207..5208 " "
+                        - R_CURLY@5208..5209 "}"
+            - WHITESPACE@5209..5210 "\n"
+            - R_PAREN@5210..5211 ")"
+        - WHITESPACE@5211..5212 " "
+        - SELECTION_SET@5212..5337
+            - L_CURLY@5212..5213 "{"
+            - WHITESPACE@5213..5216 "\n  "
+            - FIELD@5216..5335
+                - NAME@5216..5231
+                    - IDENT@5216..5231 "complicatedArgs"
+                - WHITESPACE@5231..5232 " "
+                - SELECTION_SET@5232..5335
+                    - L_CURLY@5232..5233 "{"
+                    - WHITESPACE@5233..5238 "\n    "
+                    - FIELD@5238..5269
+                        - NAME@5238..5253
+                            - IDENT@5238..5253 "complexArgField"
+                        - ARGUMENTS@5253..5269
+                            - L_PAREN@5253..5254 "("
+                            - ARGUMENT@5254..5268
+                                - NAME@5254..5264
+                                    - IDENT@5254..5264 "complexArg"
+                                - COLON@5264..5265 ":"
+                                - WHITESPACE@5265..5266 " "
+                                - VARIABLE@5266..5268
+                                    - DOLLAR@5266..5267 "$"
+                                    - NAME@5267..5268
+                                        - IDENT@5267..5268 "c"
+                            - R_PAREN@5268..5269 ")"
+                    - WHITESPACE@5269..5274 "\n    "
+                    - FIELD@5274..5297
+                        - NAME@5274..5285
+                            - IDENT@5274..5285 "intArgField"
+                        - ARGUMENTS@5285..5297
+                            - L_PAREN@5285..5286 "("
+                            - ARGUMENT@5286..5296
+                                - NAME@5286..5292
+                                    - IDENT@5286..5292 "intArg"
+                                - COLON@5292..5293 ":"
+                                - WHITESPACE@5293..5294 " "
+                                - VARIABLE@5294..5296
+                                    - DOLLAR@5294..5295 "$"
+                                    - NAME@5295..5296
+                                        - IDENT@5295..5296 "a"
+                            - R_PAREN@5296..5297 ")"
+                    - WHITESPACE@5297..5302 "\n    "
+                    - FIELD@5302..5331
+                        - NAME@5302..5316
+                            - IDENT@5302..5316 "stringArgField"
+                        - ARGUMENTS@5316..5331
+                            - L_PAREN@5316..5317 "("
+                            - ARGUMENT@5317..5330
+                                - NAME@5317..5326
+                                    - IDENT@5317..5326 "stringArg"
+                                - COLON@5326..5327 ":"
+                                - WHITESPACE@5327..5328 " "
+                                - VARIABLE@5328..5330
+                                    - DOLLAR@5328..5329 "$"
+                                    - NAME@5329..5330
+                                        - IDENT@5329..5330 "b"
+                            - R_PAREN@5330..5331 ")"
+                    - WHITESPACE@5331..5334 "\n  "
+                    - R_CURLY@5334..5335 "}"
+            - WHITESPACE@5335..5336 "\n"
+            - R_CURLY@5336..5337 "}"
+    - WHITESPACE@5337..5339 "\n\n"
+    - OPERATION_DEFINITION@5339..5605
+        - OPERATION_TYPE@5339..5344
+            - query_KW@5339..5344 "query"
+        - WHITESPACE@5344..5345 " "
+        - NAME@5345..5375
+            - IDENT@5345..5375 "variablesWithDefaultNullValues"
+        - VARIABLE_DEFINITIONS@5375..5478
+            - L_PAREN@5375..5376 "("
+            - WHITESPACE@5376..5379 "\n  "
+            - VARIABLE_DEFINITION@5379..5393
+                - VARIABLE@5379..5381
+                    - DOLLAR@5379..5380 "$"
+                    - NAME@5380..5381
+                        - IDENT@5380..5381 "a"
+                - COLON@5381..5382 ":"
+                - WHITESPACE@5382..5383 " "
+                - NAMED_TYPE@5383..5386
+                    - NAME@5383..5386
+                        - IDENT@5383..5386 "Int"
+                - WHITESPACE@5386..5387 " "
+                - DEFAULT_VALUE@5387..5393
+                    - EQ@5387..5388 "="
+                    - WHITESPACE@5388..5389 " "
+                    - NULL_VALUE@5389..5393
+                        - null_KW@5389..5393 "null"
+            - COMMA@5393..5394 ","
+            - WHITESPACE@5394..5397 "\n  "
+            - VARIABLE_DEFINITION@5397..5414
+                - VARIABLE@5397..5399
+                    - DOLLAR@5397..5398 "$"
+                    - NAME@5398..5399
+                        - IDENT@5398..5399 "b"
+                - COLON@5399..5400 ":"
+                - WHITESPACE@5400..5401 " "
+                - NAMED_TYPE@5401..5407
+                    - NAME@5401..5407
+                        - IDENT@5401..5407 "String"
+                - WHITESPACE@5407..5408 " "
+                - DEFAULT_VALUE@5408..5414
+                    - EQ@5408..5409 "="
+                    - WHITESPACE@5409..5410 " "
+                    - NULL_VALUE@5410..5414
+                        - null_KW@5410..5414 "null"
+            - COMMA@5414..5415 ","
+            - WHITESPACE@5415..5418 "\n  "
+            - VARIABLE_DEFINITION@5418..5476
+                - VARIABLE@5418..5420
+                    - DOLLAR@5418..5419 "$"
+                    - NAME@5419..5420
+                        - IDENT@5419..5420 "c"
+                - COLON@5420..5421 ":"
+                - WHITESPACE@5421..5422 " "
+                - NAMED_TYPE@5422..5434
+                    - NAME@5422..5434
+                        - IDENT@5422..5434 "ComplexInput"
+                - WHITESPACE@5434..5435 " "
+                - DEFAULT_VALUE@5435..5476
+                    - EQ@5435..5436 "="
+                    - WHITESPACE@5436..5437 " "
+                    - OBJECT_VALUE@5437..5476
+                        - L_CURLY@5437..5438 "{"
+                        - WHITESPACE@5438..5439 " "
+                        - OBJECT_FIELD@5439..5458
+                            - NAME@5439..5452
+                                - IDENT@5439..5452 "requiredField"
+                            - COLON@5452..5453 ":"
+                            - WHITESPACE@5453..5454 " "
+                            - BOOLEAN_VALUE@5454..5458
+                                - true_KW@5454..5458 "true"
+                        - COMMA@5458..5459 ","
+                        - WHITESPACE@5459..5460 " "
+                        - OBJECT_FIELD@5460..5474
+                            - NAME@5460..5468
+                                - IDENT@5460..5468 "intField"
+                            - COLON@5468..5469 ":"
+                            - WHITESPACE@5469..5470 " "
+                            - NULL_VALUE@5470..5474
+                                - null_KW@5470..5474 "null"
+                        - WHITESPACE@5474..5475 " "
+                        - R_CURLY@5475..5476 "}"
+            - WHITESPACE@5476..5477 "\n"
+            - R_PAREN@5477..5478 ")"
+        - WHITESPACE@5478..5479 " "
+        - SELECTION_SET@5479..5605
+            - L_CURLY@5479..5480 "{"
+            - WHITESPACE@5480..5483 "\n  "
+            - FIELD@5483..5602
+                - NAME@5483..5498
+                    - IDENT@5483..5498 "complicatedArgs"
+                - WHITESPACE@5498..5499 " "
+                - SELECTION_SET@5499..5602
+                    - L_CURLY@5499..5500 "{"
+                    - WHITESPACE@5500..5505 "\n    "
+                    - FIELD@5505..5536
+                        - NAME@5505..5520
+                            - IDENT@5505..5520 "complexArgField"
+                        - ARGUMENTS@5520..5536
+                            - L_PAREN@5520..5521 "("
+                            - ARGUMENT@5521..5535
+                                - NAME@5521..5531
+                                    - IDENT@5521..5531 "complexArg"
+                                - COLON@5531..5532 ":"
+                                - WHITESPACE@5532..5533 " "
+                                - VARIABLE@5533..5535
+                                    - DOLLAR@5533..5534 "$"
+                                    - NAME@5534..5535
+                                        - IDENT@5534..5535 "c"
+                            - R_PAREN@5535..5536 ")"
+                    - WHITESPACE@5536..5541 "\n    "
+                    - FIELD@5541..5564
+                        - NAME@5541..5552
+                            - IDENT@5541..5552 "intArgField"
+                        - ARGUMENTS@5552..5564
+                            - L_PAREN@5552..5553 "("
+                            - ARGUMENT@5553..5563
+                                - NAME@5553..5559
+                                    - IDENT@5553..5559 "intArg"
+                                - COLON@5559..5560 ":"
+                                - WHITESPACE@5560..5561 " "
+                                - VARIABLE@5561..5563
+                                    - DOLLAR@5561..5562 "$"
+                                    - NAME@5562..5563
+                                        - IDENT@5562..5563 "a"
+                            - R_PAREN@5563..5564 ")"
+                    - WHITESPACE@5564..5569 "\n    "
+                    - FIELD@5569..5598
+                        - NAME@5569..5583
+                            - IDENT@5569..5583 "stringArgField"
+                        - ARGUMENTS@5583..5598
+                            - L_PAREN@5583..5584 "("
+                            - ARGUMENT@5584..5597
+                                - NAME@5584..5593
+                                    - IDENT@5584..5593 "stringArg"
+                                - COLON@5593..5594 ":"
+                                - WHITESPACE@5594..5595 " "
+                                - VARIABLE@5595..5597
+                                    - DOLLAR@5595..5596 "$"
+                                    - NAME@5596..5597
+                                        - IDENT@5596..5597 "b"
+                            - R_PAREN@5597..5598 ")"
+                    - WHITESPACE@5598..5601 "\n  "
+                    - R_CURLY@5601..5602 "}"
+            - WHITESPACE@5602..5604 "\n\n"
+            - R_CURLY@5604..5605 "}"
+    - WHITESPACE@5605..5607 "\n\n"
+    - COMMENT@5607..5623 "# Custom Scalars"
+    - WHITESPACE@5623..5624 "\n"
+    - OPERATION_DEFINITION@5624..5726
+        - OPERATION_TYPE@5624..5629
+            - query_KW@5624..5629 "query"
+        - WHITESPACE@5629..5630 " "
+        - NAME@5630..5657
+            - IDENT@5630..5657 "customScalarWithStringValue"
+        - WHITESPACE@5657..5658 " "
+        - SELECTION_SET@5658..5726
+            - L_CURLY@5658..5659 "{"
+            - WHITESPACE@5659..5662 "\n  "
+            - FIELD@5662..5724
+                - NAME@5662..5677
+                    - IDENT@5662..5677 "complicatedArgs"
+                - WHITESPACE@5677..5678 " "
+                - SELECTION_SET@5678..5724
+                    - L_CURLY@5678..5679 "{"
+                    - WHITESPACE@5679..5684 "\n    "
+                    - FIELD@5684..5720
+                        - NAME@5684..5696
+                            - IDENT@5684..5696 "customScalar"
+                        - ARGUMENTS@5696..5720
+                            - L_PAREN@5696..5697 "("
+                            - ARGUMENT@5697..5719
+                                - NAME@5697..5709
+                                    - IDENT@5697..5709 "customScalar"
+                                - COLON@5709..5710 ":"
+                                - WHITESPACE@5710..5711 " "
+                                - STRING_VALUE@5711..5719
+                                    - STRING@5711..5719 "\"custom\""
+                            - R_PAREN@5719..5720 ")"
+                    - WHITESPACE@5720..5723 "\n  "
+                    - R_CURLY@5723..5724 "}"
+            - WHITESPACE@5724..5725 "\n"
+            - R_CURLY@5725..5726 "}"
+    - WHITESPACE@5726..5728 "\n\n"
+    - OPERATION_DEFINITION@5728..5820
+        - OPERATION_TYPE@5728..5733
+            - query_KW@5728..5733 "query"
+        - WHITESPACE@5733..5734 " "
+        - NAME@5734..5758
+            - IDENT@5734..5758 "customScalarWithIntValue"
+        - WHITESPACE@5758..5759 " "
+        - SELECTION_SET@5759..5820
+            - L_CURLY@5759..5760 "{"
+            - WHITESPACE@5760..5763 "\n  "
+            - FIELD@5763..5818
+                - NAME@5763..5778
+                    - IDENT@5763..5778 "complicatedArgs"
+                - WHITESPACE@5778..5779 " "
+                - SELECTION_SET@5779..5818
+                    - L_CURLY@5779..5780 "{"
+                    - WHITESPACE@5780..5785 "\n    "
+                    - FIELD@5785..5814
+                        - NAME@5785..5797
+                            - IDENT@5785..5797 "customScalar"
+                        - ARGUMENTS@5797..5814
+                            - L_PAREN@5797..5798 "("
+                            - ARGUMENT@5798..5813
+                                - NAME@5798..5810
+                                    - IDENT@5798..5810 "customScalar"
+                                - COLON@5810..5811 ":"
+                                - WHITESPACE@5811..5812 " "
+                                - INT_VALUE@5812..5813
+                                    - INT@5812..5813 "4"
+                            - R_PAREN@5813..5814 ")"
+                    - WHITESPACE@5814..5817 "\n  "
+                    - R_CURLY@5817..5818 "}"
+            - WHITESPACE@5818..5819 "\n"
+            - R_CURLY@5819..5820 "}"
+    - WHITESPACE@5820..5822 "\n\n"
+    - OPERATION_DEFINITION@5822..5921
+        - OPERATION_TYPE@5822..5827
+            - query_KW@5822..5827 "query"
+        - WHITESPACE@5827..5828 " "
+        - NAME@5828..5856
+            - IDENT@5828..5856 "customScalarWithBooleanValue"
+        - WHITESPACE@5856..5857 " "
+        - SELECTION_SET@5857..5921
+            - L_CURLY@5857..5858 "{"
+            - WHITESPACE@5858..5861 "\n  "
+            - FIELD@5861..5919
+                - NAME@5861..5876
+                    - IDENT@5861..5876 "complicatedArgs"
+                - WHITESPACE@5876..5877 " "
+                - SELECTION_SET@5877..5919
+                    - L_CURLY@5877..5878 "{"
+                    - WHITESPACE@5878..5883 "\n    "
+                    - FIELD@5883..5915
+                        - NAME@5883..5895
+                            - IDENT@5883..5895 "customScalar"
+                        - ARGUMENTS@5895..5915
+                            - L_PAREN@5895..5896 "("
+                            - ARGUMENT@5896..5914
+                                - NAME@5896..5908
+                                    - IDENT@5896..5908 "customScalar"
+                                - COLON@5908..5909 ":"
+                                - WHITESPACE@5909..5910 " "
+                                - BOOLEAN_VALUE@5910..5914
+                                    - true_KW@5910..5914 "true"
+                            - R_PAREN@5914..5915 ")"
+                    - WHITESPACE@5915..5918 "\n  "
+                    - R_CURLY@5918..5919 "}"
+            - WHITESPACE@5919..5920 "\n"
+            - R_CURLY@5920..5921 "}"
+    - WHITESPACE@5921..5923 "\n\n"
+    - OPERATION_DEFINITION@5923..6019
+        - OPERATION_TYPE@5923..5928
+            - query_KW@5923..5928 "query"
+        - WHITESPACE@5928..5929 " "
+        - NAME@5929..5955
+            - IDENT@5929..5955 "customScalarWithFloatValue"
+        - WHITESPACE@5955..5956 " "
+        - SELECTION_SET@5956..6019
+            - L_CURLY@5956..5957 "{"
+            - WHITESPACE@5957..5960 "\n  "
+            - FIELD@5960..6017
+                - NAME@5960..5975
+                    - IDENT@5960..5975 "complicatedArgs"
+                - WHITESPACE@5975..5976 " "
+                - SELECTION_SET@5976..6017
+                    - L_CURLY@5976..5977 "{"
+                    - WHITESPACE@5977..5982 "\n    "
+                    - FIELD@5982..6013
+                        - NAME@5982..5994
+                            - IDENT@5982..5994 "customScalar"
+                        - ARGUMENTS@5994..6013
+                            - L_PAREN@5994..5995 "("
+                            - ARGUMENT@5995..6012
+                                - NAME@5995..6007
+                                    - IDENT@5995..6007 "customScalar"
+                                - COLON@6007..6008 ":"
+                                - WHITESPACE@6008..6009 " "
+                                - FLOAT_VALUE@6009..6012
+                                    - FLOAT@6009..6012 "4.4"
+                            - R_PAREN@6012..6013 ")"
+                    - WHITESPACE@6013..6016 "\n  "
+                    - R_CURLY@6016..6017 "}"
+            - WHITESPACE@6017..6018 "\n"
+            - R_CURLY@6018..6019 "}"
+    - WHITESPACE@6019..6021 "\n\n"
+    - OPERATION_DEFINITION@6021..6146
+        - OPERATION_TYPE@6021..6026
+            - query_KW@6021..6026 "query"
+        - WHITESPACE@6026..6027 " "
+        - NAME@6027..6056
+            - IDENT@6027..6056 "customScalarWithVariableValue"
+        - VARIABLE_DEFINITIONS@6056..6077
+            - L_PAREN@6056..6057 "("
+            - VARIABLE_DEFINITION@6057..6076
+                - VARIABLE@6057..6064
+                    - DOLLAR@6057..6058 "$"
+                    - NAME@6058..6064
+                        - IDENT@6058..6064 "custom"
+                - COLON@6064..6065 ":"
+                - WHITESPACE@6065..6066 " "
+                - NAMED_TYPE@6066..6072
+                    - NAME@6066..6072
+                        - IDENT@6066..6072 "Custom"
+                - WHITESPACE@6072..6073 " "
+                - DEFAULT_VALUE@6073..6076
+                    - EQ@6073..6074 "="
+                    - WHITESPACE@6074..6075 " "
+                    - INT_VALUE@6075..6076
+                        - INT@6075..6076 "4"
+            - R_PAREN@6076..6077 ")"
+        - WHITESPACE@6077..6078 " "
+        - SELECTION_SET@6078..6146
+            - L_CURLY@6078..6079 "{"
+            - WHITESPACE@6079..6082 "\n  "
+            - FIELD@6082..6143
+                - NAME@6082..6097
+                    - IDENT@6082..6097 "complicatedArgs"
+                - WHITESPACE@6097..6098 " "
+                - SELECTION_SET@6098..6143
+                    - L_CURLY@6098..6099 "{"
+                    - WHITESPACE@6099..6104 "\n    "
+                    - FIELD@6104..6139
+                        - NAME@6104..6116
+                            - IDENT@6104..6116 "customScalar"
+                        - ARGUMENTS@6116..6139
+                            - L_PAREN@6116..6117 "("
+                            - ARGUMENT@6117..6138
+                                - NAME@6117..6129
+                                    - IDENT@6117..6129 "customScalar"
+                                - COLON@6129..6130 ":"
+                                - WHITESPACE@6130..6131 " "
+                                - VARIABLE@6131..6138
+                                    - DOLLAR@6131..6132 "$"
+                                    - NAME@6132..6138
+                                        - IDENT@6132..6138 "custom"
+                            - R_PAREN@6138..6139 ")"
+                    - WHITESPACE@6139..6142 "\n  "
+                    - R_CURLY@6142..6143 "}"
+            - WHITESPACE@6143..6145 "\n\n"
+            - R_CURLY@6145..6146 "}"
 recursion limit: 4096, high: 3