scalar Time
scalar Map

type Connection @goModel(model: "go.sour.is/pkg/gql.Connection") {
    paging: PageInfo!
    edges: [Edge!]!
}
input PageInput  @goModel(model: "go.sour.is/pkg/gql.PageInput") {
    after:  Int = 0
    before: Int
    count:  Int = 30
}
type PageInfo  @goModel(model: "go.sour.is/pkg/gql.PageInfo") {
    next: Boolean!
    prev: Boolean!

    begin: Int!
    end:   Int!
}
interface Edge @goModel(model: "go.sour.is/pkg/gql.Edge"){
    id: ID!
}

directive @goModel(
	model: String
	models: [String!]
) on OBJECT | INPUT_OBJECT | SCALAR | ENUM | INTERFACE | UNION

directive @goField(
	forceResolver: Boolean
	name: String
) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION

directive @goTag(
	key: String!
	value: String
) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION