app.matakite.question

matakite.app

Schema Diff

+6 -6

From

CID
bafyreie4twiksmh...
Indexed At
2026-07-11 20:49 UTC
View this version

To

CID
bafyreifgptl5dyz...
Indexed At
2026-07-16 15:12 UTC
View this version

Compatibility Analysis

Backward Compatible

No changes detected.

1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "dateParams": {
5 -
      "description": "Reserved (v2). Date question parameters — 'when will X happen?'. Resolves to the datetime the event occurred.",
5 +
      "description": "Date question parameters — 'when will X happen?'. Resolves to the datetime the event occurred.",
6 6
      "properties": {
7 7
        "max": {
8 8
          "description": "Latest representable resolution datetime (UTC ISO 8601). Must be >= min.",
9 9
          "format": "datetime",
10 10
          "type": "string"
11 11
        },
12 12
        "min": {
13 13
          "description": "Earliest representable resolution datetime (UTC ISO 8601).",
14 14
          "format": "datetime",
15 15
          "type": "string"
16 16
        },
17 17
        "openLower": {
18 18
          "description": "If true, resolution before min is representable.",
19 19
          "type": "boolean"
20 20
        },
21 21
        "openUpper": {
22 22
          "description": "If true, resolution after max is representable.",
23 23
          "type": "boolean"
24 24
        }
25 25
      },
26 26
      "required": [
27 27
        "min",
28 28
        "max"
29 29
      ],
30 30
      "type": "object"
31 31
    },
32 32
    "main": {
33 33
      "description": "A resolvable forecasting question. Immutability contract: editing this record after forecasts exist changes its CID; forecasts reference the question by strongRef (uri+cid), so appviews detect and flag post-forecast edits.",
34 34
      "key": "tid",
35 35
      "record": {
36 36
        "properties": {
37 37
          "background": {
38 38
            "description": "Optional context for forecasters. Not part of the resolution rule.",
39 39
            "maxGraphemes": 3000,
40 40
            "maxLength": 30000,
41 41
            "type": "string"
42 42
          },
43 43
          "closesAt": {
44 44
            "description": "Last moment forecasts count for scoring. All datetimes are UTC (ISO 8601).",
45 45
            "format": "datetime",
46 46
            "type": "string"
47 47
          },
48 48
          "createdAt": {
49 49
            "format": "datetime",
50 50
            "type": "string"
51 51
          },
52 52
          "date": {
53 -
            "description": "Required iff questionType is 'date'. Reserved for v2.",
53 +
            "description": "Required iff questionType is 'date'.",
54 54
            "ref": "#dateParams",
55 55
            "type": "ref"
56 56
          },
57 57
          "domain": {
58 58
            "description": "Optional curated top-level subject area (author-selected). Feeds per-domain reputation and filtering. Open set: clients may encounter values they don't recognize and should tolerate them.",
59 59
            "knownValues": [
60 60
              "politics",
61 61
              "geopolitics",
62 62
              "economics",
63 63
              "finance",
64 64
              "crypto",
65 65
              "tech",
66 66
              "science",
67 67
              "health",
68 68
              "climate",
69 69
              "sports",
70 70
              "culture"
71 71
            ],
72 72
            "type": "string"
73 73
          },
74 74
          "finePrint": {
75 75
            "description": "Optional edge cases: source-unavailable fallbacks, rescheduling, tie-breaks, timezone specifics.",
76 76
            "maxGraphemes": 3000,
77 77
            "maxLength": 30000,
78 78
            "type": "string"
79 79
          },
80 80
          "inspiredBy": {
81 81
            "description": "Optional AT-URI of the post that prompted this question (the 'formalize this take' flow). Weak ref by design: the referenced post may be edited or deleted.",
82 82
            "format": "at-uri",
83 83
            "type": "string"
84 84
          },
85 85
          "multi": {
86 -
            "description": "Required iff questionType is 'multi'. Reserved for v2.",
86 +
            "description": "Required iff questionType is 'multi'.",
87 87
            "ref": "#multiParams",
88 88
            "type": "ref"
89 89
          },
90 90
          "numeric": {
91 -
            "description": "Required iff questionType is 'numeric'. Reserved for v2.",
91 +
            "description": "Required iff questionType is 'numeric'.",
92 92
            "ref": "#numericParams",
93 93
            "type": "ref"
94 94
          },
95 95
          "questionType": {
96 -
            "description": "v1 appviews support 'binary' only. 'multi', 'numeric', and 'date' are reserved; records using them should be skipped, not rejected, by clients that don't understand them.",
96 +
            "description": "One of 'binary', 'multi', 'numeric', or 'date'. Clients that don't understand a value should skip the record, not reject it.",
97 97
            "knownValues": [
98 98
              "binary",
99 99
              "multi",
100 100
              "numeric",
101 101
              "date"
102 102
            ],
103 103
            "type": "string"
104 104
          },
105 105
          "resolutionCriteria": {
106 106
            "description": "The precise rule determining the outcome. Must pass the Clairvoyance Test: a reader at resolution time can determine the outcome definitively from this text plus the sources.",
107 107
            "maxGraphemes": 3000,
108 108
            "maxLength": 30000,
109 109
            "type": "string"
110 110
          },
111 111
          "resolutionSources": {
112 112
            "description": "Authoritative sources for resolution, in priority order. First is primary; the rest are fallbacks.",
113 113
            "items": {
114 114
              "ref": "#source",
115 115
              "type": "ref"
116 116
            },
117 117
            "maxLength": 10,
118 118
            "type": "array"
119 119
          },
120 120
          "resolver": {
121 121
            "description": "DID designated to resolve this question. v1: typically the question creator. Appviews apply their own trust policy to resolutions.",
122 122
            "format": "did",
123 123
            "type": "string"
124 124
          },
125 125
          "resolvesAt": {
126 126
            "description": "Expected resolution time. Must be >= closesAt. Informational; actual resolution is a separate record.",
127 127
            "format": "datetime",
128 128
            "type": "string"
129 129
          },
130 130
          "tags": {
131 131
            "description": "Free-form topic tags for discovery and filtering.",
132 132
            "items": {
133 133
              "maxGraphemes": 64,
134 134
              "maxLength": 640,
135 135
              "type": "string"
136 136
            },
137 137
            "maxLength": 8,
138 138
            "type": "array"
139 139
          },
140 140
          "text": {
141 141
            "description": "The headline question. Convention: 'Will X happen by DATE per SOURCE?'",
142 142
            "maxGraphemes": 300,
143 143
            "maxLength": 3000,
144 144
            "type": "string"
145 145
          }
146 146
        },
147 147
        "required": [
148 148
          "text",
149 149
          "resolutionCriteria",
150 150
          "questionType",
151 151
          "closesAt",
152 152
          "resolvesAt",
153 153
          "resolver",
154 154
          "createdAt"
155 155
        ],
156 156
        "type": "object"
157 157
      },
158 158
      "type": "record"
159 159
    },
160 160
    "multiParams": {
161 161
      "description": "Multiple-choice question parameters. New questions that accept forecasts include optionIds aligned one-to-one with options; appviews require the ids to be unique and stable within the cid-pinned question version.",
162 162
      "properties": {
163 163
        "optionIds": {
164 164
          "description": "Opaque stable identifiers aligned by index with options. Required by the reference app for forecastable multi questions; optional in the Lexicon so previously published records remain valid. Labels may change in a new question version, but forecasts refer to these ids and pin the version by cid.",
165 165
          "items": {
166 166
            "maxGraphemes": 64,
167 167
            "maxLength": 640,
168 168
            "minGraphemes": 1,
169 169
            "minLength": 1,
170 170
            "type": "string"
171 171
          },
172 172
          "maxLength": 50,
173 173
          "minLength": 2,
174 174
          "type": "array"
175 175
        },
176 176
        "options": {
177 177
          "items": {
178 178
            "maxGraphemes": 100,
179 179
            "maxLength": 1000,
180 180
            "type": "string"
181 181
          },
182 182
          "maxLength": 50,
183 183
          "minLength": 2,
184 184
          "type": "array"
185 185
        },
186 186
        "sumToOne": {
187 187
          "description": "If true, options are mutually exclusive and exactly one resolves yes (Kalshi mutually_exclusive / Polymarket negRisk semantics).",
188 188
          "type": "boolean"
189 189
        }
190 190
      },
191 191
      "required": [
192 192
        "options"
193 193
      ],
194 194
      "type": "object"
195 195
    },
196 196
    "numericParams": {
197 -
      "description": "Reserved (v2). Numeric range question parameters.",
197 +
      "description": "Numeric range question parameters.",
198 198
      "properties": {
199 199
        "logScale": {
200 200
          "type": "boolean"
201 201
        },
202 202
        "max": {
203 203
          "description": "Decimal string. Upper bound.",
204 204
          "type": "string"
205 205
        },
206 206
        "min": {
207 207
          "description": "Decimal string. Lower bound.",
208 208
          "type": "string"
209 209
        },
210 210
        "openLower": {
211 211
          "description": "If true, resolution below min is representable.",
212 212
          "type": "boolean"
213 213
        },
214 214
        "openUpper": {
215 215
          "description": "If true, resolution above max is representable.",
216 216
          "type": "boolean"
217 217
        },
218 218
        "unit": {
219 219
          "maxGraphemes": 32,
220 220
          "maxLength": 320,
221 221
          "type": "string"
222 222
        }
223 223
      },
224 224
      "required": [
225 225
        "min",
226 226
        "max"
227 227
      ],
228 228
      "type": "object"
229 229
    },
230 230
    "source": {
231 231
      "properties": {
232 232
        "name": {
233 233
          "maxGraphemes": 64,
234 234
          "maxLength": 640,
235 235
          "type": "string"
236 236
        },
237 237
        "url": {
238 238
          "format": "uri",
239 239
          "type": "string"
240 240
        }
241 241
      },
242 242
      "required": [
243 243
        "name"
244 244
      ],
245 245
      "type": "object"
246 246
    }
247 247
  },
248 248
  "id": "app.matakite.question",
249 249
  "lexicon": 1
250 250
}

Compare Other Versions

Lexicon Garden

@