type Meta @goModel(model: "go.sour.is/ev/pkg/event.Meta") { eventID: String! @goField(name: "getEventID") streamID: String! @goField(name: "ActualStreamID") position: Int! @goField(name: "ActualPosition") created: Time! } extend type Query { events(streamID: String! paging: PageInput): Connection! } extend type Mutation { truncateStream(streamID: String! index:Int!): Boolean! } extend type Subscription { """after == 0 start from begining, after == -1 start from end""" eventAdded(streamID: String! after: Int! = -1): Event } type Event implements Edge @goModel(model: "go.sour.is/ev/pkg/es.GQLEvent") { id: ID! eventID: String! streamID: String! position: Int! values: Map! bytes: String! type: String! created: Time! meta: Meta! linked: Event }