schema {
query: RootSchemaQuery
}
directive @filter(op: String!, value: [String!]) repeatable on FIELD | INLINE_FRAGMENT
directive @tag(name: String) on FIELD
directive @output(name: String) on FIELD
directive @optional on FIELD
directive @recurse(depth: Int!) on FIELD
directive @fold on FIELD
directive @transform(op: String!) on FIELD
type RootSchemaQuery {
Number(min: Int! = 0, max: Int!): [Number!]
# same as Number(min, max), just testing
# the "implicit null default" behavior for nullable edge parameters
NumberImplicitNullDefault(min: Int, max: Int!): [Number!]
Zero: Number!
One: Number!
Two: Prime!
Four: Composite!
}
interface Named {
name: String
}
interface Number implements Named {
name: String
value: Int
vowelsInName: [String]
predecessor: Number
successor: Number!
multiple(max: Int!): [Composite!]
}
type Neither implements Number & Named {
name: String
value: Int
vowelsInName: [String]
predecessor: Number
successor: Number!
multiple(max: Int!): [Composite!]
}
type Prime implements Number & Named {
name: String
value: Int
vowelsInName: [String]
predecessor: Number
successor: Number!
multiple(max: Int!): [Composite!]
}
type Composite implements Number & Named {
name: String
value: Int
vowelsInName: [String]
predecessor: Number
successor: Number!
multiple(max: Int!): [Composite!]
divisor: [Number!]!
primeFactor: [Prime!]!
}
type Letter implements Named {
name: String
}