input CreateDashboardInput { """ The creator of the dashboard, e.g. "Peter Parker" """ creator: String """The longer description of the dashboard""" description: String """List of question ids""" ids: [ID!]! """The title of the dashboard""" title: String! } type CreateDashboardResult { dashboard: Dashboard! } type Dashboard { """ The creator of the dashboard, e.g. "Peter Parker" """ creator: String! """The longer description of the dashboard""" description: String! id: ID! """The list of questions on the dashboard""" questions: [Question!]! """The title of the dashboard""" title: String! } """Date serialized as the Unix timestamp.""" scalar Date type History implements QuestionShape { description: String! """History items are identified by their integer ids""" id: ID! options: [ProbabilityOption!]! platform: Platform! qualityIndicators: QualityIndicators! """Unique string which identifies the question""" questionId: ID! """Timestamp at which metaforecast fetched the question""" timestamp: Date! title: String! """ Non-unique, a very small number of platforms have a page for more than one prediction """ url: String! } type Mutation { """ Create a new dashboard; if the dashboard with given ids already exists then it will be returned instead. """ createDashboard(input: CreateDashboardInput!): CreateDashboardResult! } type PageInfo { endCursor: String hasNextPage: Boolean! hasPreviousPage: Boolean! startCursor: String } """Forecasting platform supported by Metaforecast""" type Platform { """ Short unique platform name, e.g. "xrisk" """ id: ID! """ Platform name for displaying on frontend etc., e.g. "X-risk estimates" """ label: String! lastUpdated: Date } type ProbabilityOption { name: String """0 to 1""" probability: Float } """Various indicators of the question's quality""" type QualityIndicators { liquidity: Float numForecasters: Int numForecasts: Int openInterest: Float sharesVolume: Float spread: Float """0 to 5""" stars: Int! tradeVolume: Float volume: Float } type Query { """Look up a single dashboard by its id""" dashboard(id: ID!): Dashboard! """Get a list of questions that are currently on the frontpage""" frontpage: [Question!]! platforms: [Platform!]! """Look up a single question by its id""" question(id: ID!): Question! questions(after: String, before: String, first: Int, last: Int): QueryQuestionsConnection! """ Search for questions; uses Algolia instead of the primary metaforecast database """ searchQuestions(input: SearchInput!): [Question!]! } type QueryQuestionsConnection { edges: [QueryQuestionsConnectionEdge]! pageInfo: PageInfo! } type QueryQuestionsConnectionEdge { cursor: String! node: Question! } type Question implements QuestionShape { description: String! history: [History!]! """Unique string which identifies the question""" id: ID! options: [ProbabilityOption!]! platform: Platform! qualityIndicators: QualityIndicators! """Timestamp at which metaforecast fetched the question""" timestamp: Date! title: String! """ Non-unique, a very small number of platforms have a page for more than one prediction """ url: String! visualization: String } interface QuestionShape { description: String! options: [ProbabilityOption!]! platform: Platform! qualityIndicators: QualityIndicators! """Timestamp at which metaforecast fetched the question""" timestamp: Date! title: String! """ Non-unique, a very small number of platforms have a page for more than one prediction """ url: String! } input SearchInput { """List of platform ids to filter by""" forecastingPlatforms: [String!] """Minimum number of forecasts on a question""" forecastsThreshold: Int limit: Int query: String! """Minimum number of stars on a question""" starsThreshold: Int }