0..153 @15 SchemaDefinition {
    description: None,
    directives: [
        7..59 @15 Directive {
            name: "core",
            arguments: [
                13..58 @15 Argument {
                    name: "feature",
                    value: 22..58 @15 String(
                        "https://specs.apollo.dev/core/v0.1",
                    ),
                },
            ],
        },
        61..113 @15 Directive {
            name: "core",
            arguments: [
                67..112 @15 Argument {
                    name: "feature",
                    value: 76..112 @15 String(
                        "https://specs.apollo.dev/join/v0.1",
                    ),
                },
            ],
        },
    ],
    root_operations: [
        118..130 @15 (
            Query,
            "Query",
        ),
        133..151 @15 (
            Mutation,
            "Mutation",
        ),
    ],
}
155..209 @15 DirectiveDefinition {
    description: None,
    name: "core",
    arguments: [
        171..187 @15 InputValueDefinition {
            description: None,
            name: "feature",
            ty: 180..187 @15 NonNullNamed(
                "String",
            ),
            default_value: None,
            directives: [],
        },
    ],
    repeatable: true,
    locations: [
        "SCHEMA",
    ],
}
210..324 @15 DirectiveDefinition {
    description: None,
    name: "join__field",
    arguments: [
        233..251 @15 InputValueDefinition {
            description: None,
            name: "graph",
            ty: 240..251 @15 Named(
                "join__Graph",
            ),
            default_value: None,
            directives: [],
        },
        253..277 @15 InputValueDefinition {
            description: None,
            name: "requires",
            ty: 263..277 @15 Named(
                "join__FieldSet",
            ),
            default_value: None,
            directives: [],
        },
        279..303 @15 InputValueDefinition {
            description: None,
            name: "provides",
            ty: 289..303 @15 Named(
                "join__FieldSet",
            ),
            default_value: None,
            directives: [],
        },
    ],
    repeatable: false,
    locations: [
        "FIELD_DEFINITION",
    ],
}
325..421 @15 DirectiveDefinition {
    description: None,
    name: "join__type",
    arguments: [
        347..366 @15 InputValueDefinition {
            description: None,
            name: "graph",
            ty: 354..366 @15 NonNullNamed(
                "join__Graph",
            ),
            default_value: None,
            directives: [],
        },
        368..387 @15 InputValueDefinition {
            description: None,
            name: "key",
            ty: 373..387 @15 Named(
                "join__FieldSet",
            ),
            default_value: None,
            directives: [],
        },
    ],
    repeatable: true,
    locations: [
        "OBJECT",
        "INTERFACE",
    ],
}
422..487 @15 DirectiveDefinition {
    description: None,
    name: "join__owner",
    arguments: [
        445..464 @15 InputValueDefinition {
            description: None,
            name: "graph",
            ty: 452..464 @15 NonNullNamed(
                "join__Graph",
            ),
            default_value: None,
            directives: [],
        },
    ],
    repeatable: false,
    locations: [
        "OBJECT",
        "INTERFACE",
    ],
}
488..553 @15 DirectiveDefinition {
    description: None,
    name: "join__graph",
    arguments: [
        511..524 @15 InputValueDefinition {
            description: None,
            name: "name",
            ty: 517..524 @15 NonNullNamed(
                "String",
            ),
            default_value: None,
            directives: [],
        },
        526..538 @15 InputValueDefinition {
            description: None,
            name: "url",
            ty: 531..538 @15 NonNullNamed(
                "String",
            ),
            default_value: None,
            directives: [],
        },
    ],
    repeatable: false,
    locations: [
        "ENUM_VALUE",
    ],
}
554..580 @15 DirectiveDefinition {
    description: None,
    name: "stream",
    arguments: [],
    repeatable: false,
    locations: [
        "FIELD",
    ],
}
581..625 @15 DirectiveDefinition {
    description: None,
    name: "transform",
    arguments: [
        602..615 @15 InputValueDefinition {
            description: None,
            name: "from",
            ty: 608..615 @15 NonNullNamed(
                "String",
            ),
            default_value: None,
            directives: [],
        },
    ],
    repeatable: false,
    locations: [
        "FIELD",
    ],
}
627..675 @15 UnionTypeDefinition {
    description: None,
    name: "AccountType",
    directives: [],
    members: [
        "PasswordAccount",
        "SMSAccount",
    ],
}
677..711 @15 ObjectTypeDefinition {
    description: None,
    name: "Amazon",
    implements_interfaces: [],
    directives: [],
    fields: [
        693..709 @15 FieldDefinition {
            description: None,
            name: "referrer",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
    ],
}
713..738 @15 UnionTypeDefinition {
    description: None,
    name: "Body",
    directives: [],
    members: [
        "Image",
        "Text",
    ],
}
740..1725 @15 ObjectTypeDefinition {
    description: None,
    name: "Book",
    implements_interfaces: [
        "Product",
    ],
    directives: [
        769..795 @15 Directive {
            name: "join__owner",
            arguments: [
                782..794 @15 Argument {
                    name: "graph",
                    value: 789..794 @15 Enum(
                        "BOOKS",
                    ),
                },
            ],
        },
        796..834 @15 Directive {
            name: "join__type",
            arguments: [
                808..820 @15 Argument {
                    name: "graph",
                    value: 815..820 @15 Enum(
                        "BOOKS",
                    ),
                },
                822..833 @15 Argument {
                    name: "key",
                    value: 827..833 @15 String(
                        "isbn",
                    ),
                },
            ],
        },
        835..877 @15 Directive {
            name: "join__type",
            arguments: [
                847..863 @15 Argument {
                    name: "graph",
                    value: 854..863 @15 Enum(
                        "INVENTORY",
                    ),
                },
                865..876 @15 Argument {
                    name: "key",
                    value: 870..876 @15 String(
                        "isbn",
                    ),
                },
            ],
        },
        878..918 @15 Directive {
            name: "join__type",
            arguments: [
                890..904 @15 Argument {
                    name: "graph",
                    value: 897..904 @15 Enum(
                        "PRODUCT",
                    ),
                },
                906..917 @15 Argument {
                    name: "key",
                    value: 911..917 @15 String(
                        "isbn",
                    ),
                },
            ],
        },
        919..959 @15 Directive {
            name: "join__type",
            arguments: [
                931..945 @15 Argument {
                    name: "graph",
                    value: 938..945 @15 Enum(
                        "REVIEWS",
                    ),
                },
                947..958 @15 Argument {
                    name: "key",
                    value: 952..958 @15 String(
                        "isbn",
                    ),
                },
            ],
        },
    ],
    fields: [
        964..1004 @15 FieldDefinition {
            description: None,
            name: "isbn",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [
                978..1004 @15 Directive {
                    name: "join__field",
                    arguments: [
                        991..1003 @15 Argument {
                            name: "graph",
                            value: 998..1003 @15 Enum(
                                "BOOKS",
                            ),
                        },
                    ],
                },
            ],
        },
        1007..1047 @15 FieldDefinition {
            description: None,
            name: "title",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                1021..1047 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1034..1046 @15 Argument {
                            name: "graph",
                            value: 1041..1046 @15 Enum(
                                "BOOKS",
                            ),
                        },
                    ],
                },
            ],
        },
        1050..1086 @15 FieldDefinition {
            description: None,
            name: "year",
            arguments: [],
            ty: Named(
                "Int",
            ),
            directives: [
                1060..1086 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1073..1085 @15 Argument {
                            name: "graph",
                            value: 1080..1085 @15 Enum(
                                "BOOKS",
                            ),
                        },
                    ],
                },
            ],
        },
        1089..1137 @15 FieldDefinition {
            description: None,
            name: "similarBooks",
            arguments: [],
            ty: NonNullList(
                Named(
                    "Book",
                ),
            ),
            directives: [
                1111..1137 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1124..1136 @15 Argument {
                            name: "graph",
                            value: 1131..1136 @15 Enum(
                                "BOOKS",
                            ),
                        },
                    ],
                },
            ],
        },
        1140..1194 @15 FieldDefinition {
            description: None,
            name: "metadata",
            arguments: [],
            ty: List(
                Named(
                    "MetadataOrError",
                ),
            ),
            directives: [
                1168..1194 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1181..1193 @15 Argument {
                            name: "graph",
                            value: 1188..1193 @15 Enum(
                                "BOOKS",
                            ),
                        },
                    ],
                },
            ],
        },
        1197..1244 @15 FieldDefinition {
            description: None,
            name: "inStock",
            arguments: [],
            ty: Named(
                "Boolean",
            ),
            directives: [
                1214..1244 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1227..1243 @15 Argument {
                            name: "graph",
                            value: 1234..1243 @15 Enum(
                                "INVENTORY",
                            ),
                        },
                    ],
                },
            ],
        },
        1247..1299 @15 FieldDefinition {
            description: None,
            name: "isCheckedOut",
            arguments: [],
            ty: Named(
                "Boolean",
            ),
            directives: [
                1269..1299 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1282..1298 @15 Argument {
                            name: "graph",
                            value: 1289..1298 @15 Enum(
                                "INVENTORY",
                            ),
                        },
                    ],
                },
            ],
        },
        1302..1343 @15 FieldDefinition {
            description: None,
            name: "upc",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [
                1315..1343 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1328..1342 @15 Argument {
                            name: "graph",
                            value: 1335..1342 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        1346..1387 @15 FieldDefinition {
            description: None,
            name: "sku",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [
                1359..1387 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1372..1386 @15 Argument {
                            name: "graph",
                            value: 1379..1386 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        1390..1480 @15 FieldDefinition {
            description: None,
            name: "name",
            arguments: [
                1395..1418 @15 InputValueDefinition {
                    description: None,
                    name: "delimeter",
                    ty: 1406..1412 @15 Named(
                        "String",
                    ),
                    default_value: Some(
                        1415..1418 @15 String(
                            " ",
                        ),
                    ),
                    directives: [],
                },
            ],
            ty: Named(
                "String",
            ),
            directives: [
                1428..1480 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1441..1455 @15 Argument {
                            name: "graph",
                            value: 1448..1455 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                        1457..1479 @15 Argument {
                            name: "requires",
                            value: 1467..1479 @15 String(
                                "title year",
                            ),
                        },
                    ],
                },
            ],
        },
        1483..1525 @15 FieldDefinition {
            description: None,
            name: "price",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                1497..1525 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1510..1524 @15 Argument {
                            name: "graph",
                            value: 1517..1524 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        1528..1584 @15 FieldDefinition {
            description: None,
            name: "details",
            arguments: [],
            ty: Named(
                "ProductDetailsBook",
            ),
            directives: [
                1556..1584 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1569..1583 @15 Argument {
                            name: "graph",
                            value: 1576..1583 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        1587..1633 @15 FieldDefinition {
            description: None,
            name: "reviews",
            arguments: [],
            ty: List(
                Named(
                    "Review",
                ),
            ),
            directives: [
                1605..1633 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1618..1632 @15 Argument {
                            name: "graph",
                            value: 1625..1632 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
        1636..1723 @15 FieldDefinition {
            description: None,
            name: "relatedReviews",
            arguments: [],
            ty: NonNullList(
                NonNullNamed(
                    "Review",
                ),
            ),
            directives: [
                1663..1723 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1676..1690 @15 Argument {
                            name: "graph",
                            value: 1683..1690 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                        1692..1722 @15 Argument {
                            name: "requires",
                            value: 1702..1722 @15 String(
                                "similarBooks{isbn}",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
1727..1754 @15 UnionTypeDefinition {
    description: None,
    name: "Brand",
    directives: [],
    members: [
        "Ikea",
        "Amazon",
    ],
}
1756..2103 @15 ObjectTypeDefinition {
    description: None,
    name: "Car",
    implements_interfaces: [
        "Vehicle",
    ],
    directives: [
        1784..1812 @15 Directive {
            name: "join__owner",
            arguments: [
                1797..1811 @15 Argument {
                    name: "graph",
                    value: 1804..1811 @15 Enum(
                        "PRODUCT",
                    ),
                },
            ],
        },
        1813..1851 @15 Directive {
            name: "join__type",
            arguments: [
                1825..1839 @15 Argument {
                    name: "graph",
                    value: 1832..1839 @15 Enum(
                        "PRODUCT",
                    ),
                },
                1841..1850 @15 Argument {
                    name: "key",
                    value: 1846..1850 @15 String(
                        "id",
                    ),
                },
            ],
        },
        1852..1890 @15 Directive {
            name: "join__type",
            arguments: [
                1864..1878 @15 Argument {
                    name: "graph",
                    value: 1871..1878 @15 Enum(
                        "REVIEWS",
                    ),
                },
                1880..1889 @15 Argument {
                    name: "key",
                    value: 1885..1889 @15 String(
                        "id",
                    ),
                },
            ],
        },
    ],
    fields: [
        1895..1935 @15 FieldDefinition {
            description: None,
            name: "id",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [
                1907..1935 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1920..1934 @15 Argument {
                            name: "graph",
                            value: 1927..1934 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        1938..1986 @15 FieldDefinition {
            description: None,
            name: "description",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                1958..1986 @15 Directive {
                    name: "join__field",
                    arguments: [
                        1971..1985 @15 Argument {
                            name: "graph",
                            value: 1978..1985 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        1989..2031 @15 FieldDefinition {
            description: None,
            name: "price",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                2003..2031 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2016..2030 @15 Argument {
                            name: "graph",
                            value: 2023..2030 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        2034..2101 @15 FieldDefinition {
            description: None,
            name: "retailPrice",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                2054..2101 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2067..2081 @15 Argument {
                            name: "graph",
                            value: 2074..2081 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                        2083..2100 @15 Argument {
                            name: "requires",
                            value: 2093..2100 @15 String(
                                "price",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
2105..2149 @15 ObjectTypeDefinition {
    description: None,
    name: "Error",
    implements_interfaces: [],
    directives: [],
    fields: [
        2120..2129 @15 FieldDefinition {
            description: None,
            name: "code",
            arguments: [],
            ty: Named(
                "Int",
            ),
            directives: [],
        },
        2132..2147 @15 FieldDefinition {
            description: None,
            name: "message",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
    ],
}
2151..2872 @15 ObjectTypeDefinition {
    description: None,
    name: "Furniture",
    implements_interfaces: [
        "Product",
    ],
    directives: [
        2185..2213 @15 Directive {
            name: "join__owner",
            arguments: [
                2198..2212 @15 Argument {
                    name: "graph",
                    value: 2205..2212 @15 Enum(
                        "PRODUCT",
                    ),
                },
            ],
        },
        2214..2253 @15 Directive {
            name: "join__type",
            arguments: [
                2226..2240 @15 Argument {
                    name: "graph",
                    value: 2233..2240 @15 Enum(
                        "PRODUCT",
                    ),
                },
                2242..2252 @15 Argument {
                    name: "key",
                    value: 2247..2252 @15 String(
                        "upc",
                    ),
                },
            ],
        },
        2254..2293 @15 Directive {
            name: "join__type",
            arguments: [
                2266..2280 @15 Argument {
                    name: "graph",
                    value: 2273..2280 @15 Enum(
                        "PRODUCT",
                    ),
                },
                2282..2292 @15 Argument {
                    name: "key",
                    value: 2287..2292 @15 String(
                        "sku",
                    ),
                },
            ],
        },
        2294..2335 @15 Directive {
            name: "join__type",
            arguments: [
                2306..2322 @15 Argument {
                    name: "graph",
                    value: 2313..2322 @15 Enum(
                        "INVENTORY",
                    ),
                },
                2324..2334 @15 Argument {
                    name: "key",
                    value: 2329..2334 @15 String(
                        "sku",
                    ),
                },
            ],
        },
        2336..2375 @15 Directive {
            name: "join__type",
            arguments: [
                2348..2362 @15 Argument {
                    name: "graph",
                    value: 2355..2362 @15 Enum(
                        "REVIEWS",
                    ),
                },
                2364..2374 @15 Argument {
                    name: "key",
                    value: 2369..2374 @15 String(
                        "upc",
                    ),
                },
            ],
        },
    ],
    fields: [
        2380..2421 @15 FieldDefinition {
            description: None,
            name: "upc",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [
                2393..2421 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2406..2420 @15 Argument {
                            name: "graph",
                            value: 2413..2420 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        2424..2465 @15 FieldDefinition {
            description: None,
            name: "sku",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [
                2437..2465 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2450..2464 @15 Argument {
                            name: "graph",
                            value: 2457..2464 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        2468..2509 @15 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                2481..2509 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2494..2508 @15 Argument {
                            name: "graph",
                            value: 2501..2508 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        2512..2554 @15 FieldDefinition {
            description: None,
            name: "price",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                2526..2554 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2539..2553 @15 Argument {
                            name: "graph",
                            value: 2546..2553 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        2557..2598 @15 FieldDefinition {
            description: None,
            name: "brand",
            arguments: [],
            ty: Named(
                "Brand",
            ),
            directives: [
                2570..2598 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2583..2597 @15 Argument {
                            name: "graph",
                            value: 2590..2597 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        2601..2657 @15 FieldDefinition {
            description: None,
            name: "metadata",
            arguments: [],
            ty: List(
                Named(
                    "MetadataOrError",
                ),
            ),
            directives: [
                2629..2657 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2642..2656 @15 Argument {
                            name: "graph",
                            value: 2649..2656 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        2660..2721 @15 FieldDefinition {
            description: None,
            name: "details",
            arguments: [],
            ty: Named(
                "ProductDetailsFurniture",
            ),
            directives: [
                2693..2721 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2706..2720 @15 Argument {
                            name: "graph",
                            value: 2713..2720 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        2724..2771 @15 FieldDefinition {
            description: None,
            name: "inStock",
            arguments: [],
            ty: Named(
                "Boolean",
            ),
            directives: [
                2741..2771 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2754..2770 @15 Argument {
                            name: "graph",
                            value: 2761..2770 @15 Enum(
                                "INVENTORY",
                            ),
                        },
                    ],
                },
            ],
        },
        2774..2821 @15 FieldDefinition {
            description: None,
            name: "isHeavy",
            arguments: [],
            ty: Named(
                "Boolean",
            ),
            directives: [
                2791..2821 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2804..2820 @15 Argument {
                            name: "graph",
                            value: 2811..2820 @15 Enum(
                                "INVENTORY",
                            ),
                        },
                    ],
                },
            ],
        },
        2824..2870 @15 FieldDefinition {
            description: None,
            name: "reviews",
            arguments: [],
            ty: List(
                Named(
                    "Review",
                ),
            ),
            directives: [
                2842..2870 @15 Directive {
                    name: "join__field",
                    arguments: [
                        2855..2869 @15 Argument {
                            name: "graph",
                            value: 2862..2869 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
2874..2900 @15 ObjectTypeDefinition {
    description: None,
    name: "Ikea",
    implements_interfaces: [],
    directives: [],
    fields: [
        2888..2898 @15 FieldDefinition {
            description: None,
            name: "asile",
            arguments: [],
            ty: Named(
                "Int",
            ),
            directives: [],
        },
    ],
}
2902..2986 @15 ObjectTypeDefinition {
    description: None,
    name: "Image",
    implements_interfaces: [
        "NamedObject",
    ],
    directives: [],
    fields: [
        2940..2953 @15 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
        2956..2984 @15 FieldDefinition {
            description: None,
            name: "attributes",
            arguments: [],
            ty: NonNullNamed(
                "ImageAttributes",
            ),
            directives: [],
        },
    ],
}
2988..3027 @15 ObjectTypeDefinition {
    description: None,
    name: "ImageAttributes",
    implements_interfaces: [],
    directives: [],
    fields: [
        3013..3025 @15 FieldDefinition {
            description: None,
            name: "url",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
    ],
}
3029..3097 @15 ScalarTypeDefinition {
    description: None,
    name: "join__FieldSet",
    directives: [
        3051..3097 @15 Directive {
            name: "specifiedBy",
            arguments: [
                3064..3096 @15 Argument {
                    name: "url",
                    value: 3069..3096 @15 String(
                        "https://spec.graphql.org/",
                    ),
                },
            ],
        },
    ],
}
3099..3401 @15 EnumTypeDefinition {
    description: None,
    name: "join__Graph",
    directives: [],
    values: [
        3118..3165 @15 EnumValueDefinition {
            description: None,
            value: "ACCOUNTS",
            directives: [
                3127..3165 @15 Directive {
                    name: "join__graph",
                    arguments: [
                        3140..3156 @15 Argument {
                            name: "name",
                            value: 3146..3156 @15 String(
                                "accounts",
                            ),
                        },
                        3157..3164 @15 Argument {
                            name: "url",
                            value: 3162..3164 @15 String(
                                "",
                            ),
                        },
                    ],
                },
            ],
        },
        3166..3207 @15 EnumValueDefinition {
            description: None,
            value: "BOOKS",
            directives: [
                3172..3207 @15 Directive {
                    name: "join__graph",
                    arguments: [
                        3185..3198 @15 Argument {
                            name: "name",
                            value: 3191..3198 @15 String(
                                "books",
                            ),
                        },
                        3199..3206 @15 Argument {
                            name: "url",
                            value: 3204..3206 @15 String(
                                "",
                            ),
                        },
                    ],
                },
            ],
        },
        3208..3257 @15 EnumValueDefinition {
            description: None,
            value: "DOCUMENTS",
            directives: [
                3218..3257 @15 Directive {
                    name: "join__graph",
                    arguments: [
                        3231..3248 @15 Argument {
                            name: "name",
                            value: 3237..3248 @15 String(
                                "documents",
                            ),
                        },
                        3249..3256 @15 Argument {
                            name: "url",
                            value: 3254..3256 @15 String(
                                "",
                            ),
                        },
                    ],
                },
            ],
        },
        3258..3307 @15 EnumValueDefinition {
            description: None,
            value: "INVENTORY",
            directives: [
                3268..3307 @15 Directive {
                    name: "join__graph",
                    arguments: [
                        3281..3298 @15 Argument {
                            name: "name",
                            value: 3287..3298 @15 String(
                                "inventory",
                            ),
                        },
                        3299..3306 @15 Argument {
                            name: "url",
                            value: 3304..3306 @15 String(
                                "",
                            ),
                        },
                    ],
                },
            ],
        },
        3308..3353 @15 EnumValueDefinition {
            description: None,
            value: "PRODUCT",
            directives: [
                3316..3353 @15 Directive {
                    name: "join__graph",
                    arguments: [
                        3329..3344 @15 Argument {
                            name: "name",
                            value: 3335..3344 @15 String(
                                "product",
                            ),
                        },
                        3345..3352 @15 Argument {
                            name: "url",
                            value: 3350..3352 @15 String(
                                "",
                            ),
                        },
                    ],
                },
            ],
        },
        3354..3399 @15 EnumValueDefinition {
            description: None,
            value: "REVIEWS",
            directives: [
                3362..3399 @15 Directive {
                    name: "join__graph",
                    arguments: [
                        3375..3390 @15 Argument {
                            name: "name",
                            value: 3381..3390 @15 String(
                                "reviews",
                            ),
                        },
                        3391..3398 @15 Argument {
                            name: "url",
                            value: 3396..3398 @15 String(
                                "",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
3403..3452 @15 ObjectTypeDefinition {
    description: None,
    name: "KeyValue",
    implements_interfaces: [],
    directives: [],
    fields: [
        3421..3433 @15 FieldDefinition {
            description: None,
            name: "key",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
        3436..3450 @15 FieldDefinition {
            description: None,
            name: "value",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
    ],
}
3454..3734 @15 ObjectTypeDefinition {
    description: None,
    name: "Library",
    implements_interfaces: [],
    directives: [
        3467..3493 @15 Directive {
            name: "join__owner",
            arguments: [
                3480..3492 @15 Argument {
                    name: "graph",
                    value: 3487..3492 @15 Enum(
                        "BOOKS",
                    ),
                },
            ],
        },
        3494..3530 @15 Directive {
            name: "join__type",
            arguments: [
                3506..3518 @15 Argument {
                    name: "graph",
                    value: 3513..3518 @15 Enum(
                        "BOOKS",
                    ),
                },
                3520..3529 @15 Argument {
                    name: "key",
                    value: 3525..3529 @15 String(
                        "id",
                    ),
                },
            ],
        },
        3531..3570 @15 Directive {
            name: "join__type",
            arguments: [
                3543..3558 @15 Argument {
                    name: "graph",
                    value: 3550..3558 @15 Enum(
                        "ACCOUNTS",
                    ),
                },
                3560..3569 @15 Argument {
                    name: "key",
                    value: 3565..3569 @15 String(
                        "id",
                    ),
                },
            ],
        },
    ],
    fields: [
        3575..3609 @15 FieldDefinition {
            description: None,
            name: "id",
            arguments: [],
            ty: NonNullNamed(
                "ID",
            ),
            directives: [
                3583..3609 @15 Directive {
                    name: "join__field",
                    arguments: [
                        3596..3608 @15 Argument {
                            name: "graph",
                            value: 3603..3608 @15 Enum(
                                "BOOKS",
                            ),
                        },
                    ],
                },
            ],
        },
        3612..3651 @15 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                3625..3651 @15 Directive {
                    name: "join__field",
                    arguments: [
                        3638..3650 @15 Argument {
                            name: "graph",
                            value: 3645..3650 @15 Enum(
                                "BOOKS",
                            ),
                        },
                    ],
                },
            ],
        },
        3654..3732 @15 FieldDefinition {
            description: None,
            name: "userAccount",
            arguments: [
                3666..3677 @15 InputValueDefinition {
                    description: None,
                    name: "id",
                    ty: 3670..3673 @15 NonNullNamed(
                        "ID",
                    ),
                    default_value: Some(
                        3676..3677 @15 Int(
                            1,
                        ),
                    ),
                    directives: [],
                },
            ],
            ty: Named(
                "User",
            ),
            directives: [
                3685..3732 @15 Directive {
                    name: "join__field",
                    arguments: [
                        3698..3713 @15 Argument {
                            name: "graph",
                            value: 3705..3713 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                        3715..3731 @15 Argument {
                            name: "requires",
                            value: 3725..3731 @15 String(
                                "name",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
3736..3776 @15 UnionTypeDefinition {
    description: None,
    name: "MetadataOrError",
    directives: [],
    members: [
        "KeyValue",
        "Error",
    ],
}
3778..4102 @15 ObjectTypeDefinition {
    description: None,
    name: "Mutation",
    implements_interfaces: [],
    directives: [],
    fields: [
        3796..3875 @15 FieldDefinition {
            description: None,
            name: "login",
            arguments: [
                3802..3819 @15 InputValueDefinition {
                    description: None,
                    name: "username",
                    ty: 3812..3819 @15 NonNullNamed(
                        "String",
                    ),
                    default_value: None,
                    directives: [],
                },
                3821..3838 @15 InputValueDefinition {
                    description: None,
                    name: "password",
                    ty: 3831..3838 @15 NonNullNamed(
                        "String",
                    ),
                    default_value: None,
                    directives: [],
                },
            ],
            ty: Named(
                "User",
            ),
            directives: [
                3846..3875 @15 Directive {
                    name: "join__field",
                    arguments: [
                        3859..3874 @15 Argument {
                            name: "graph",
                            value: 3866..3874 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                    ],
                },
            ],
        },
        3878..3958 @15 FieldDefinition {
            description: None,
            name: "reviewProduct",
            arguments: [
                3892..3904 @15 InputValueDefinition {
                    description: None,
                    name: "upc",
                    ty: 3897..3904 @15 NonNullNamed(
                        "String",
                    ),
                    default_value: None,
                    directives: [],
                },
                3906..3919 @15 InputValueDefinition {
                    description: None,
                    name: "body",
                    ty: 3912..3919 @15 NonNullNamed(
                        "String",
                    ),
                    default_value: None,
                    directives: [],
                },
            ],
            ty: Named(
                "Product",
            ),
            directives: [
                3930..3958 @15 Directive {
                    name: "join__field",
                    arguments: [
                        3943..3957 @15 Argument {
                            name: "graph",
                            value: 3950..3957 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
        3961..4038 @15 FieldDefinition {
            description: None,
            name: "updateReview",
            arguments: [
                3974..4000 @15 InputValueDefinition {
                    description: None,
                    name: "review",
                    ty: 3982..4000 @15 NonNullNamed(
                        "UpdateReviewInput",
                    ),
                    default_value: None,
                    directives: [],
                },
            ],
            ty: Named(
                "Review",
            ),
            directives: [
                4010..4038 @15 Directive {
                    name: "join__field",
                    arguments: [
                        4023..4037 @15 Argument {
                            name: "graph",
                            value: 4030..4037 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
        4041..4100 @15 FieldDefinition {
            description: None,
            name: "deleteReview",
            arguments: [
                4054..4061 @15 InputValueDefinition {
                    description: None,
                    name: "id",
                    ty: 4058..4061 @15 NonNullNamed(
                        "ID",
                    ),
                    default_value: None,
                    directives: [],
                },
            ],
            ty: Named(
                "Boolean",
            ),
            directives: [
                4072..4100 @15 Directive {
                    name: "join__field",
                    arguments: [
                        4085..4099 @15 Argument {
                            name: "graph",
                            value: 4092..4099 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
4104..4148 @15 ObjectTypeDefinition {
    description: None,
    name: "Name",
    implements_interfaces: [],
    directives: [],
    fields: [
        4118..4131 @15 FieldDefinition {
            description: None,
            name: "first",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
        4134..4146 @15 FieldDefinition {
            description: None,
            name: "last",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
    ],
}
4150..4191 @15 InterfaceTypeDefinition {
    description: None,
    name: "NamedObject",
    implements_interfaces: [],
    directives: [],
    fields: [
        4176..4189 @15 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
    ],
}
4193..4337 @15 ObjectTypeDefinition {
    description: None,
    name: "PasswordAccount",
    implements_interfaces: [],
    directives: [
        4214..4243 @15 Directive {
            name: "join__owner",
            arguments: [
                4227..4242 @15 Argument {
                    name: "graph",
                    value: 4234..4242 @15 Enum(
                        "ACCOUNTS",
                    ),
                },
            ],
        },
        4244..4286 @15 Directive {
            name: "join__type",
            arguments: [
                4256..4271 @15 Argument {
                    name: "graph",
                    value: 4263..4271 @15 Enum(
                        "ACCOUNTS",
                    ),
                },
                4273..4285 @15 Argument {
                    name: "key",
                    value: 4278..4285 @15 String(
                        "email",
                    ),
                },
            ],
        },
    ],
    fields: [
        4291..4335 @15 FieldDefinition {
            description: None,
            name: "email",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [
                4306..4335 @15 Directive {
                    name: "join__field",
                    arguments: [
                        4319..4334 @15 Argument {
                            name: "graph",
                            value: 4326..4334 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
4339..4486 @15 InterfaceTypeDefinition {
    description: None,
    name: "Product",
    implements_interfaces: [],
    directives: [],
    fields: [
        4361..4373 @15 FieldDefinition {
            description: None,
            name: "upc",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
        4376..4388 @15 FieldDefinition {
            description: None,
            name: "sku",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
        4391..4403 @15 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
        4406..4419 @15 FieldDefinition {
            description: None,
            name: "price",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
        4422..4445 @15 FieldDefinition {
            description: None,
            name: "details",
            arguments: [],
            ty: Named(
                "ProductDetails",
            ),
            directives: [],
        },
        4448..4464 @15 FieldDefinition {
            description: None,
            name: "inStock",
            arguments: [],
            ty: Named(
                "Boolean",
            ),
            directives: [],
        },
        4467..4484 @15 FieldDefinition {
            description: None,
            name: "reviews",
            arguments: [],
            ty: List(
                Named(
                    "Review",
                ),
            ),
            directives: [],
        },
    ],
}
4488..4534 @15 InterfaceTypeDefinition {
    description: None,
    name: "ProductDetails",
    implements_interfaces: [],
    directives: [],
    fields: [
        4517..4532 @15 FieldDefinition {
            description: None,
            name: "country",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
    ],
}
4536..4620 @15 ObjectTypeDefinition {
    description: None,
    name: "ProductDetailsBook",
    implements_interfaces: [
        "ProductDetails",
    ],
    directives: [],
    fields: [
        4590..4605 @15 FieldDefinition {
            description: None,
            name: "country",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
        4608..4618 @15 FieldDefinition {
            description: None,
            name: "pages",
            arguments: [],
            ty: Named(
                "Int",
            ),
            directives: [],
        },
    ],
}
4622..4714 @15 ObjectTypeDefinition {
    description: None,
    name: "ProductDetailsFurniture",
    implements_interfaces: [
        "ProductDetails",
    ],
    directives: [],
    fields: [
        4681..4696 @15 FieldDefinition {
            description: None,
            name: "country",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
        4699..4712 @15 FieldDefinition {
            description: None,
            name: "color",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
    ],
}
4716..5344 @15 ObjectTypeDefinition {
    description: None,
    name: "Query",
    implements_interfaces: [],
    directives: [],
    fields: [
        4731..4780 @15 FieldDefinition {
            description: None,
            name: "user",
            arguments: [
                4736..4743 @15 InputValueDefinition {
                    description: None,
                    name: "id",
                    ty: 4740..4743 @15 NonNullNamed(
                        "ID",
                    ),
                    default_value: None,
                    directives: [],
                },
            ],
            ty: Named(
                "User",
            ),
            directives: [
                4751..4780 @15 Directive {
                    name: "join__field",
                    arguments: [
                        4764..4779 @15 Argument {
                            name: "graph",
                            value: 4771..4779 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                    ],
                },
            ],
        },
        4783..4821 @15 FieldDefinition {
            description: None,
            name: "me",
            arguments: [],
            ty: Named(
                "User",
            ),
            directives: [
                4792..4821 @15 Directive {
                    name: "join__field",
                    arguments: [
                        4805..4820 @15 Argument {
                            name: "graph",
                            value: 4812..4820 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                    ],
                },
            ],
        },
        4824..4876 @15 FieldDefinition {
            description: None,
            name: "book",
            arguments: [
                4829..4842 @15 InputValueDefinition {
                    description: None,
                    name: "isbn",
                    ty: 4835..4842 @15 NonNullNamed(
                        "String",
                    ),
                    default_value: None,
                    directives: [],
                },
            ],
            ty: Named(
                "Book",
            ),
            directives: [
                4850..4876 @15 Directive {
                    name: "join__field",
                    arguments: [
                        4863..4875 @15 Argument {
                            name: "graph",
                            value: 4870..4875 @15 Enum(
                                "BOOKS",
                            ),
                        },
                    ],
                },
            ],
        },
        4879..4919 @15 FieldDefinition {
            description: None,
            name: "books",
            arguments: [],
            ty: List(
                Named(
                    "Book",
                ),
            ),
            directives: [
                4893..4919 @15 Directive {
                    name: "join__field",
                    arguments: [
                        4906..4918 @15 Argument {
                            name: "graph",
                            value: 4913..4918 @15 Enum(
                                "BOOKS",
                            ),
                        },
                    ],
                },
            ],
        },
        4922..4974 @15 FieldDefinition {
            description: None,
            name: "library",
            arguments: [
                4930..4937 @15 InputValueDefinition {
                    description: None,
                    name: "id",
                    ty: 4934..4937 @15 NonNullNamed(
                        "ID",
                    ),
                    default_value: None,
                    directives: [],
                },
            ],
            ty: Named(
                "Library",
            ),
            directives: [
                4948..4974 @15 Directive {
                    name: "join__field",
                    arguments: [
                        4961..4973 @15 Argument {
                            name: "graph",
                            value: 4968..4973 @15 Enum(
                                "BOOKS",
                            ),
                        },
                    ],
                },
            ],
        },
        4977..5019 @15 FieldDefinition {
            description: None,
            name: "body",
            arguments: [],
            ty: NonNullNamed(
                "Body",
            ),
            directives: [
                4989..5019 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5002..5018 @15 Argument {
                            name: "graph",
                            value: 5009..5018 @15 Enum(
                                "DOCUMENTS",
                            ),
                        },
                    ],
                },
            ],
        },
        5022..5081 @15 FieldDefinition {
            description: None,
            name: "product",
            arguments: [
                5030..5042 @15 InputValueDefinition {
                    description: None,
                    name: "upc",
                    ty: 5035..5042 @15 NonNullNamed(
                        "String",
                    ),
                    default_value: None,
                    directives: [],
                },
            ],
            ty: Named(
                "Product",
            ),
            directives: [
                5053..5081 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5066..5080 @15 Argument {
                            name: "graph",
                            value: 5073..5080 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        5084..5142 @15 FieldDefinition {
            description: None,
            name: "vehicle",
            arguments: [
                5092..5103 @15 InputValueDefinition {
                    description: None,
                    name: "id",
                    ty: 5096..5103 @15 NonNullNamed(
                        "String",
                    ),
                    default_value: None,
                    directives: [],
                },
            ],
            ty: Named(
                "Vehicle",
            ),
            directives: [
                5114..5142 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5127..5141 @15 Argument {
                            name: "graph",
                            value: 5134..5141 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        5145..5212 @15 FieldDefinition {
            description: None,
            name: "topProducts",
            arguments: [
                5157..5171 @15 InputValueDefinition {
                    description: None,
                    name: "first",
                    ty: 5164..5167 @15 Named(
                        "Int",
                    ),
                    default_value: Some(
                        5170..5171 @15 Int(
                            5,
                        ),
                    ),
                    directives: [],
                },
            ],
            ty: List(
                Named(
                    "Product",
                ),
            ),
            directives: [
                5184..5212 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5197..5211 @15 Argument {
                            name: "graph",
                            value: 5204..5211 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        5215..5274 @15 FieldDefinition {
            description: None,
            name: "topCars",
            arguments: [
                5223..5237 @15 InputValueDefinition {
                    description: None,
                    name: "first",
                    ty: 5230..5233 @15 Named(
                        "Int",
                    ),
                    default_value: Some(
                        5236..5237 @15 Int(
                            5,
                        ),
                    ),
                    directives: [],
                },
            ],
            ty: List(
                Named(
                    "Car",
                ),
            ),
            directives: [
                5246..5274 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5259..5273 @15 Argument {
                            name: "graph",
                            value: 5266..5273 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        5277..5342 @15 FieldDefinition {
            description: None,
            name: "topReviews",
            arguments: [
                5288..5302 @15 InputValueDefinition {
                    description: None,
                    name: "first",
                    ty: 5295..5298 @15 Named(
                        "Int",
                    ),
                    default_value: Some(
                        5301..5302 @15 Int(
                            5,
                        ),
                    ),
                    directives: [],
                },
            ],
            ty: List(
                Named(
                    "Review",
                ),
            ),
            directives: [
                5314..5342 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5327..5341 @15 Argument {
                            name: "graph",
                            value: 5334..5341 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
5346..5710 @15 ObjectTypeDefinition {
    description: None,
    name: "Review",
    implements_interfaces: [],
    directives: [
        5358..5386 @15 Directive {
            name: "join__owner",
            arguments: [
                5371..5385 @15 Argument {
                    name: "graph",
                    value: 5378..5385 @15 Enum(
                        "REVIEWS",
                    ),
                },
            ],
        },
        5387..5425 @15 Directive {
            name: "join__type",
            arguments: [
                5399..5413 @15 Argument {
                    name: "graph",
                    value: 5406..5413 @15 Enum(
                        "REVIEWS",
                    ),
                },
                5415..5424 @15 Argument {
                    name: "key",
                    value: 5420..5424 @15 String(
                        "id",
                    ),
                },
            ],
        },
    ],
    fields: [
        5430..5466 @15 FieldDefinition {
            description: None,
            name: "id",
            arguments: [],
            ty: NonNullNamed(
                "ID",
            ),
            directives: [
                5438..5466 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5451..5465 @15 Argument {
                            name: "graph",
                            value: 5458..5465 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
        5469..5535 @15 FieldDefinition {
            description: None,
            name: "body",
            arguments: [
                5474..5497 @15 InputValueDefinition {
                    description: None,
                    name: "format",
                    ty: 5482..5489 @15 Named(
                        "Boolean",
                    ),
                    default_value: Some(
                        5492..5497 @15 Boolean(
                            false,
                        ),
                    ),
                    directives: [],
                },
            ],
            ty: Named(
                "String",
            ),
            directives: [
                5507..5535 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5520..5534 @15 Argument {
                            name: "graph",
                            value: 5527..5534 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
        5538..5601 @15 FieldDefinition {
            description: None,
            name: "author",
            arguments: [],
            ty: Named(
                "User",
            ),
            directives: [
                5551..5601 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5564..5578 @15 Argument {
                            name: "graph",
                            value: 5571..5578 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                        5580..5600 @15 Argument {
                            name: "provides",
                            value: 5590..5600 @15 String(
                                "username",
                            ),
                        },
                    ],
                },
            ],
        },
        5604..5649 @15 FieldDefinition {
            description: None,
            name: "product",
            arguments: [],
            ty: Named(
                "Product",
            ),
            directives: [
                5621..5649 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5634..5648 @15 Argument {
                            name: "graph",
                            value: 5641..5648 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
        5652..5708 @15 FieldDefinition {
            description: None,
            name: "metadata",
            arguments: [],
            ty: List(
                Named(
                    "MetadataOrError",
                ),
            ),
            directives: [
                5680..5708 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5693..5707 @15 Argument {
                            name: "graph",
                            value: 5700..5707 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
5712..5852 @15 ObjectTypeDefinition {
    description: None,
    name: "SMSAccount",
    implements_interfaces: [],
    directives: [
        5728..5757 @15 Directive {
            name: "join__owner",
            arguments: [
                5741..5756 @15 Argument {
                    name: "graph",
                    value: 5748..5756 @15 Enum(
                        "ACCOUNTS",
                    ),
                },
            ],
        },
        5758..5801 @15 Directive {
            name: "join__type",
            arguments: [
                5770..5785 @15 Argument {
                    name: "graph",
                    value: 5777..5785 @15 Enum(
                        "ACCOUNTS",
                    ),
                },
                5787..5800 @15 Argument {
                    name: "key",
                    value: 5792..5800 @15 String(
                        "number",
                    ),
                },
            ],
        },
    ],
    fields: [
        5806..5850 @15 FieldDefinition {
            description: None,
            name: "number",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                5821..5850 @15 Directive {
                    name: "join__field",
                    arguments: [
                        5834..5849 @15 Argument {
                            name: "graph",
                            value: 5841..5849 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
5854..5936 @15 ObjectTypeDefinition {
    description: None,
    name: "Text",
    implements_interfaces: [
        "NamedObject",
    ],
    directives: [],
    fields: [
        5891..5904 @15 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
        5907..5934 @15 FieldDefinition {
            description: None,
            name: "attributes",
            arguments: [],
            ty: NonNullNamed(
                "TextAttributes",
            ),
            directives: [],
        },
    ],
}
5938..5992 @15 ObjectTypeDefinition {
    description: None,
    name: "TextAttributes",
    implements_interfaces: [],
    directives: [],
    fields: [
        5962..5975 @15 FieldDefinition {
            description: None,
            name: "bold",
            arguments: [],
            ty: Named(
                "Boolean",
            ),
            directives: [],
        },
        5978..5990 @15 FieldDefinition {
            description: None,
            name: "text",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
    ],
}
5994..6018 @15 UnionTypeDefinition {
    description: None,
    name: "Thing",
    directives: [],
    members: [
        "Car",
        "Ikea",
    ],
}
6020..6072 @15 InputObjectTypeDefinition {
    description: None,
    name: "UpdateReviewInput",
    directives: [],
    fields: [
        6048..6055 @15 InputValueDefinition {
            description: None,
            name: "id",
            ty: 6052..6055 @15 NonNullNamed(
                "ID",
            ),
            default_value: None,
            directives: [],
        },
        6058..6070 @15 InputValueDefinition {
            description: None,
            name: "body",
            ty: 6064..6070 @15 Named(
                "String",
            ),
            default_value: None,
            directives: [],
        },
    ],
}
6074..7017 @15 ObjectTypeDefinition {
    description: None,
    name: "User",
    implements_interfaces: [],
    directives: [
        6084..6113 @15 Directive {
            name: "join__owner",
            arguments: [
                6097..6112 @15 Argument {
                    name: "graph",
                    value: 6104..6112 @15 Enum(
                        "ACCOUNTS",
                    ),
                },
            ],
        },
        6114..6153 @15 Directive {
            name: "join__type",
            arguments: [
                6126..6141 @15 Argument {
                    name: "graph",
                    value: 6133..6141 @15 Enum(
                        "ACCOUNTS",
                    ),
                },
                6143..6152 @15 Argument {
                    name: "key",
                    value: 6148..6152 @15 String(
                        "id",
                    ),
                },
            ],
        },
        6154..6216 @15 Directive {
            name: "join__type",
            arguments: [
                6166..6181 @15 Argument {
                    name: "graph",
                    value: 6173..6181 @15 Enum(
                        "ACCOUNTS",
                    ),
                },
                6183..6215 @15 Argument {
                    name: "key",
                    value: 6188..6215 @15 String(
                        "username name{first last}",
                    ),
                },
            ],
        },
        6217..6257 @15 Directive {
            name: "join__type",
            arguments: [
                6229..6245 @15 Argument {
                    name: "graph",
                    value: 6236..6245 @15 Enum(
                        "INVENTORY",
                    ),
                },
                6247..6256 @15 Argument {
                    name: "key",
                    value: 6252..6256 @15 String(
                        "id",
                    ),
                },
            ],
        },
        6258..6296 @15 Directive {
            name: "join__type",
            arguments: [
                6270..6284 @15 Argument {
                    name: "graph",
                    value: 6277..6284 @15 Enum(
                        "PRODUCT",
                    ),
                },
                6286..6295 @15 Argument {
                    name: "key",
                    value: 6291..6295 @15 String(
                        "id",
                    ),
                },
            ],
        },
        6297..6335 @15 Directive {
            name: "join__type",
            arguments: [
                6309..6323 @15 Argument {
                    name: "graph",
                    value: 6316..6323 @15 Enum(
                        "REVIEWS",
                    ),
                },
                6325..6334 @15 Argument {
                    name: "key",
                    value: 6330..6334 @15 String(
                        "id",
                    ),
                },
            ],
        },
    ],
    fields: [
        6340..6377 @15 FieldDefinition {
            description: None,
            name: "id",
            arguments: [],
            ty: NonNullNamed(
                "ID",
            ),
            directives: [
                6348..6377 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6361..6376 @15 Argument {
                            name: "graph",
                            value: 6368..6376 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                    ],
                },
            ],
        },
        6380..6420 @15 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: Named(
                "Name",
            ),
            directives: [
                6391..6420 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6404..6419 @15 Argument {
                            name: "graph",
                            value: 6411..6419 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                    ],
                },
            ],
        },
        6423..6469 @15 FieldDefinition {
            description: None,
            name: "username",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                6440..6469 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6453..6468 @15 Argument {
                            name: "graph",
                            value: 6460..6468 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                    ],
                },
            ],
        },
        6472..6535 @15 FieldDefinition {
            description: None,
            name: "birthDate",
            arguments: [
                6482..6496 @15 InputValueDefinition {
                    description: None,
                    name: "locale",
                    ty: 6490..6496 @15 Named(
                        "String",
                    ),
                    default_value: None,
                    directives: [],
                },
            ],
            ty: Named(
                "String",
            ),
            directives: [
                6506..6535 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6519..6534 @15 Argument {
                            name: "graph",
                            value: 6526..6534 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                    ],
                },
            ],
        },
        6538..6588 @15 FieldDefinition {
            description: None,
            name: "account",
            arguments: [],
            ty: Named(
                "AccountType",
            ),
            directives: [
                6559..6588 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6572..6587 @15 Argument {
                            name: "graph",
                            value: 6579..6587 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                    ],
                },
            ],
        },
        6591..6645 @15 FieldDefinition {
            description: None,
            name: "metadata",
            arguments: [],
            ty: List(
                Named(
                    "UserMetadata",
                ),
            ),
            directives: [
                6616..6645 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6629..6644 @15 Argument {
                            name: "graph",
                            value: 6636..6644 @15 Enum(
                                "ACCOUNTS",
                            ),
                        },
                    ],
                },
            ],
        },
        6648..6738 @15 FieldDefinition {
            description: None,
            name: "goodDescription",
            arguments: [],
            ty: Named(
                "Boolean",
            ),
            directives: [
                6673..6738 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6686..6702 @15 Argument {
                            name: "graph",
                            value: 6693..6702 @15 Enum(
                                "INVENTORY",
                            ),
                        },
                        6704..6737 @15 Argument {
                            name: "requires",
                            value: 6714..6737 @15 String(
                                "metadata{description}",
                            ),
                        },
                    ],
                },
            ],
        },
        6741..6786 @15 FieldDefinition {
            description: None,
            name: "vehicle",
            arguments: [],
            ty: Named(
                "Vehicle",
            ),
            directives: [
                6758..6786 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6771..6785 @15 Argument {
                            name: "graph",
                            value: 6778..6785 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        6789..6830 @15 FieldDefinition {
            description: None,
            name: "thing",
            arguments: [],
            ty: Named(
                "Thing",
            ),
            directives: [
                6802..6830 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6815..6829 @15 Argument {
                            name: "graph",
                            value: 6822..6829 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        6833..6879 @15 FieldDefinition {
            description: None,
            name: "reviews",
            arguments: [],
            ty: List(
                Named(
                    "Review",
                ),
            ),
            directives: [
                6851..6879 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6864..6878 @15 Argument {
                            name: "graph",
                            value: 6871..6878 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
        6882..6932 @15 FieldDefinition {
            description: None,
            name: "numberOfReviews",
            arguments: [],
            ty: NonNullNamed(
                "Int",
            ),
            directives: [
                6904..6932 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6917..6931 @15 Argument {
                            name: "graph",
                            value: 6924..6931 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                    ],
                },
            ],
        },
        6935..7015 @15 FieldDefinition {
            description: None,
            name: "goodAddress",
            arguments: [],
            ty: Named(
                "Boolean",
            ),
            directives: [
                6956..7015 @15 Directive {
                    name: "join__field",
                    arguments: [
                        6969..6983 @15 Argument {
                            name: "graph",
                            value: 6976..6983 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                        6985..7014 @15 Argument {
                            name: "requires",
                            value: 6995..7014 @15 String(
                                "metadata{address}",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
7019..7095 @15 ObjectTypeDefinition {
    description: None,
    name: "UserMetadata",
    implements_interfaces: [],
    directives: [],
    fields: [
        7041..7053 @15 FieldDefinition {
            description: None,
            name: "name",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
        7056..7071 @15 FieldDefinition {
            description: None,
            name: "address",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
        7074..7093 @15 FieldDefinition {
            description: None,
            name: "description",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
    ],
}
7097..7444 @15 ObjectTypeDefinition {
    description: None,
    name: "Van",
    implements_interfaces: [
        "Vehicle",
    ],
    directives: [
        7125..7153 @15 Directive {
            name: "join__owner",
            arguments: [
                7138..7152 @15 Argument {
                    name: "graph",
                    value: 7145..7152 @15 Enum(
                        "PRODUCT",
                    ),
                },
            ],
        },
        7154..7192 @15 Directive {
            name: "join__type",
            arguments: [
                7166..7180 @15 Argument {
                    name: "graph",
                    value: 7173..7180 @15 Enum(
                        "PRODUCT",
                    ),
                },
                7182..7191 @15 Argument {
                    name: "key",
                    value: 7187..7191 @15 String(
                        "id",
                    ),
                },
            ],
        },
        7193..7231 @15 Directive {
            name: "join__type",
            arguments: [
                7205..7219 @15 Argument {
                    name: "graph",
                    value: 7212..7219 @15 Enum(
                        "REVIEWS",
                    ),
                },
                7221..7230 @15 Argument {
                    name: "key",
                    value: 7226..7230 @15 String(
                        "id",
                    ),
                },
            ],
        },
    ],
    fields: [
        7236..7276 @15 FieldDefinition {
            description: None,
            name: "id",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [
                7248..7276 @15 Directive {
                    name: "join__field",
                    arguments: [
                        7261..7275 @15 Argument {
                            name: "graph",
                            value: 7268..7275 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        7279..7327 @15 FieldDefinition {
            description: None,
            name: "description",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                7299..7327 @15 Directive {
                    name: "join__field",
                    arguments: [
                        7312..7326 @15 Argument {
                            name: "graph",
                            value: 7319..7326 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        7330..7372 @15 FieldDefinition {
            description: None,
            name: "price",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                7344..7372 @15 Directive {
                    name: "join__field",
                    arguments: [
                        7357..7371 @15 Argument {
                            name: "graph",
                            value: 7364..7371 @15 Enum(
                                "PRODUCT",
                            ),
                        },
                    ],
                },
            ],
        },
        7375..7442 @15 FieldDefinition {
            description: None,
            name: "retailPrice",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [
                7395..7442 @15 Directive {
                    name: "join__field",
                    arguments: [
                        7408..7422 @15 Argument {
                            name: "graph",
                            value: 7415..7422 @15 Enum(
                                "REVIEWS",
                            ),
                        },
                        7424..7441 @15 Argument {
                            name: "requires",
                            value: 7434..7441 @15 String(
                                "price",
                            ),
                        },
                    ],
                },
            ],
        },
    ],
}
7446..7541 @15 InterfaceTypeDefinition {
    description: None,
    name: "Vehicle",
    implements_interfaces: [],
    directives: [],
    fields: [
        7468..7479 @15 FieldDefinition {
            description: None,
            name: "id",
            arguments: [],
            ty: NonNullNamed(
                "String",
            ),
            directives: [],
        },
        7482..7501 @15 FieldDefinition {
            description: None,
            name: "description",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
        7504..7517 @15 FieldDefinition {
            description: None,
            name: "price",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
        7520..7539 @15 FieldDefinition {
            description: None,
            name: "retailPrice",
            arguments: [],
            ty: Named(
                "String",
            ),
            directives: [],
        },
    ],
}

