schema { query: Query } enum LineType { OtherLineType BulletTrain Normal Subway Tram MonorailOrAGT } enum TrainTypeKind { Default Branch Rapid Express LimitedExpress HighSpeedRapid } enum OperationStatus { InOperation NotOpened Closed } enum StopCondition { All Not Partial Weekday Holiday PartialStop } enum CompanyType { OtherCompany JR Private Major SemiMajor } enum TrainDirection { Both Inbound Outbound } type Query { station(id: Int!): Station stations(ids: [Int!]!): [Station!]! stationsNearby(latitude: Float!, longitude: Float!, limit: Int): [Station!]! stationsByName(name: String!, limit: Int, fromStationGroupId: Int): [Station!]! stationGroupStations(groupId: Int!): [Station!]! lineGroupStations(lineGroupId: Int!): [Station!]! line(lineId: Int!): Line linesByName(name: String!, limit: Int): [Line!]! lineStations(lineId: Int!, stationId: Int): [Station!]! stationTrainTypes(stationId: Int!): [TrainType!]! routes(fromStationGroupId: Int!, toStationGroupId: Int!, pageSize: Int, pageToken: String): RoutePage! routeTypes(fromStationGroupId: Int!, toStationGroupId: Int!, pageSize: Int, pageToken: String): RouteTypePage! connectedRoutes(fromStationGroupId: Int!, toStationGroupId: Int!): [Route!]! } type RoutePage { routes: [Route!] nextPageToken: String } type RouteTypePage { trainTypes: [TrainType!] nextPageToken: String } type Station { id: Int groupId: Int name: String nameKatakana: String nameRoman: String nameChinese: String nameKorean: String threeLetterCode: String prefectureId: Int postalCode: String address: String latitude: Float longitude: Float openedAt: String closedAt: String status: OperationStatus stationNumbers: [StationNumber!] stopCondition: StopCondition distance: Float hasTrainTypes: Boolean trainType: TrainTypeNested lines: [LineNested!] line: LineNested } type StationNested { id: Int groupId: Int name: String nameKatakana: String nameRoman: String nameChinese: String nameKorean: String threeLetterCode: String prefectureId: Int postalCode: String address: String latitude: Float longitude: Float openedAt: String closedAt: String status: OperationStatus stationNumbers: [StationNumber!] stopCondition: StopCondition distance: Float hasTrainTypes: Boolean trainType: TrainTypeNested lines: [LineNested!] line: LineNested } type StationNumber { lineSymbol: String lineSymbolColor: String lineSymbolShape: String stationNumber: String } type Line { id: Int nameShort: String nameKatakana: String nameFull: String nameRoman: String nameChinese: String nameKorean: String color: String lineType: LineType lineSymbols: [LineSymbol!] status: OperationStatus station: StationNested company: Company trainType: TrainTypeNested averageDistance: Float } type LineNested { id: Int nameShort: String nameKatakana: String nameFull: String nameRoman: String nameChinese: String nameKorean: String color: String lineType: LineType lineSymbols: [LineSymbol!] status: OperationStatus station: StationNested company: Company trainType: TrainTypeNested averageDistance: Float } type LineSymbol { symbol: String color: String shape: String } type Company { id: Int railroadId: Int nameShort: String nameKatakana: String nameFull: String nameEnglishShort: String nameEnglishFull: String url: String type: CompanyType status: OperationStatus name: String } type TrainType { id: Int typeId: Int groupId: Int name: String nameKatakana: String nameRoman: String nameChinese: String nameKorean: String color: String lines: [LineNested!] line: LineNested direction: TrainDirection kind: TrainTypeKind } type TrainTypeNested { id: Int typeId: Int groupId: Int name: String nameKatakana: String nameRoman: String nameChinese: String nameKorean: String color: String lines: [LineNested!] line: LineNested direction: TrainDirection kind: TrainTypeKind } type Route { id: Int stops: [StationNested!] }