Introduce several commands for making and tracking prediction markets. Along the lines of:
!makemarket name: str, question: str, outcomes: List[str], end_date: Date
Name is a string ID to make it easier to reference. Question is the actual thing being bet on. Outcomes is the set being bet on. For correctness reasons outcomes should always have a "Something else" option appended to it.
!seemarkets
Print a table of on going prediction markets
!betmarket name: str, probabilities: List[float]
Make a bet on the given market. probabilities must sum to 1 and be the same length as the corresponding markets outcomes list.
!resolvemarket name: str, outcome: int
Resolve the given market with the given outcome (e.g. resolve_market foo 1 resolves market foo with outcome 1 as the true outcome). Plausibly should check market ownership and that market end date has passed. Print the Brier scores of all market participants.
Is this to tie into an actual crypto-backed prediction market service, or are you requesting that nova create an entire one of those?