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