type House implements Node { id: ID! name: String! power_data(after: String, first: Int, before: String, last: Int): [PowerDatum] habitants(after: String, first: Int, before: String, last: Int): [User] } interface Node { id: ID! } type PowerDatum implements Node { id: ID! power: Float time: Int } type Query { node(id: ID!): Node viewer: User } type User implements Node { id: ID! username: String! house: House }