|
1 | 1 | { |
2 | 2 | "$schema": "http://json-schema.org/draft-07/schema#", |
3 | | - "$id": "https://seedsearcher.app/jaml.schema.json", |
4 | | - "version": "2.0.0", |
| 3 | + "$id": "https://seedfinder.app/jaml.schema.json", |
| 4 | + "version": "2.2.0", |
5 | 5 | "title": "JAML - Jimbo's Ante Markup Language", |
6 | | - "description": "Schema for Balatro seed filter configuration files (.jaml). v2.0.0 adds Event type-as-key shorthand and full source support (Judgement, RiffRaff, Seance, SixthSense, Emperor, PurpleSealOrEightBall, RareTag, UncommonTag).", |
| 6 | + "description": "Schema for Balatro seed filter configuration files (.jaml)", |
7 | 7 | "type": "object", |
8 | 8 | "properties": { |
9 | 9 | "name": { |
|
84 | 84 | ], |
85 | 85 | "description": "Default antes to check if not specified in clause" |
86 | 86 | }, |
87 | | - "packSlots": { |
| 87 | + "boosterPacks": { |
88 | 88 | "type": "array", |
89 | 89 | "items": { |
90 | 90 | "type": "integer", |
|
101 | 101 | ], |
102 | 102 | "description": "Default pack slots (ante 1 limited to 0-3, ante 2+ uses 0-5)" |
103 | 103 | }, |
104 | | - "shopSlots": { |
| 104 | + "shopItems": { |
105 | 105 | "type": "array", |
106 | 106 | "items": { |
107 | 107 | "type": "integer", |
|
147 | 147 | "items": { |
148 | 148 | "$ref": "#/definitions/clause" |
149 | 149 | } |
150 | | - }, |
151 | | - "seeds": { |
152 | | - "type": "array", |
153 | | - "description": "Pre-specified seeds for this filter (optional). These seeds will be loaded into the seed list for viewing while searching runs.", |
154 | | - "items": { |
155 | | - "type": "string", |
156 | | - "pattern": "^[1-9A-Z]{1,8}$", |
157 | | - "description": "Balatro seed (1-8 alphanumeric characters, no zeros)" |
158 | | - } |
159 | 150 | } |
160 | 151 | }, |
161 | 152 | "definitions": { |
|
213 | 204 | }, |
214 | 205 | "event": { |
215 | 206 | "type": "string", |
216 | | - "enum": [ |
217 | | - "LuckyMoney", |
218 | | - "LuckyMult", |
219 | | - "MisprintMult", |
220 | | - "WheelOfFortune", |
221 | | - "CavendishExtinct", |
222 | | - "GrosMichelExtinct" |
223 | | - ], |
224 | | - "description": "Shorthand for Event type (type-as-key). Example: 'event: LuckyMoney' is equivalent to 'type: Event, value: LuckyMoney'. Use with 'rolls' to specify which occurrences to check." |
| 207 | + "description": "Shorthand for Event type (type-as-key). Example: 'event: LuckyMoney'" |
| 208 | + }, |
| 209 | + "joker": { |
| 210 | + "type": "string", |
| 211 | + "description": "Shorthand for Joker type. Example: 'joker: Blueprint'" |
| 212 | + }, |
| 213 | + "legendaryJoker": { |
| 214 | + "type": "string", |
| 215 | + "description": "Shorthand for SoulJoker type. Example: 'legendaryJoker: Perkeo'" |
| 216 | + }, |
| 217 | + "voucher": { |
| 218 | + "type": "string", |
| 219 | + "description": "Shorthand for Voucher type." |
| 220 | + }, |
| 221 | + "tarot": { |
| 222 | + "type": "string", |
| 223 | + "description": "Shorthand for TarotCard type." |
| 224 | + }, |
| 225 | + "tarotCard": { |
| 226 | + "type": "string", |
| 227 | + "description": "Shorthand for TarotCard type." |
| 228 | + }, |
| 229 | + "planet": { |
| 230 | + "type": "string", |
| 231 | + "description": "Shorthand for PlanetCard type." |
| 232 | + }, |
| 233 | + "planetCard": { |
| 234 | + "type": "string", |
| 235 | + "description": "Shorthand for PlanetCard type." |
| 236 | + }, |
| 237 | + "spectral": { |
| 238 | + "type": "string", |
| 239 | + "description": "Shorthand for SpectralCard type." |
| 240 | + }, |
| 241 | + "spectralCard": { |
| 242 | + "type": "string", |
| 243 | + "description": "Shorthand for SpectralCard type." |
| 244 | + }, |
| 245 | + "standardCard": { |
| 246 | + "type": "string", |
| 247 | + "description": "Shorthand for StandardCard type." |
| 248 | + }, |
| 249 | + "boss": { |
| 250 | + "type": "string", |
| 251 | + "description": "Shorthand for Boss type." |
| 252 | + }, |
| 253 | + "tag": { |
| 254 | + "type": "string", |
| 255 | + "description": "Shorthand for Tag type." |
| 256 | + }, |
| 257 | + "smallBlindTag": { |
| 258 | + "type": "string", |
| 259 | + "description": "Shorthand for SmallBlindTag type." |
| 260 | + }, |
| 261 | + "bigBlindTag": { |
| 262 | + "type": "string", |
| 263 | + "description": "Shorthand for BigBlindTag type." |
| 264 | + }, |
| 265 | + "erraticRank": { |
| 266 | + "type": "string", |
| 267 | + "description": "Shorthand for ErraticRank type." |
| 268 | + }, |
| 269 | + "erraticSuit": { |
| 270 | + "type": "string", |
| 271 | + "description": "Shorthand for ErraticSuit type." |
| 272 | + }, |
| 273 | + "erraticCard": { |
| 274 | + "type": "string", |
| 275 | + "description": "Shorthand for ErraticCard type." |
225 | 276 | }, |
226 | 277 | "antes": { |
227 | 278 | "type": "array", |
|
312 | 363 | "sources": { |
313 | 364 | "type": "object", |
314 | 365 | "properties": { |
315 | | - "shopSlots": { |
| 366 | + "shopItems": { |
316 | 367 | "type": "array", |
317 | 368 | "items": { |
318 | 369 | "type": "integer" |
319 | 370 | }, |
320 | | - "description": "Shop slot indices (0-based). If empty array [], will be populated from minShopSlot/maxShopSlot if provided." |
| 371 | + "description": "Shop slot indices (0-based). If empty array [], will be populated from minshopItem/maxshopItem if provided." |
321 | 372 | }, |
322 | | - "packSlots": { |
| 373 | + "boosterPacks": { |
323 | 374 | "type": "array", |
324 | 375 | "items": { |
325 | 376 | "type": "integer" |
326 | 377 | }, |
327 | | - "description": "Pack slot indices (0-based). If empty array [], will be populated from minPackSlot/maxPackSlot if provided." |
| 378 | + "description": "Pack slot indices (0-based). If empty array [], will be populated from minboosterPack/maxboosterPack if provided." |
328 | 379 | }, |
329 | | - "minShopSlot": { |
| 380 | + "minshopItem": { |
330 | 381 | "type": "integer", |
331 | 382 | "minimum": 0, |
332 | 383 | "maximum": 1023, |
333 | | - "description": "Minimum shop slot index (inclusive). If specified with maxShopSlot, generates shopSlots array [minShopSlot..maxShopSlot]." |
| 384 | + "description": "Minimum shop slot index (inclusive). If specified with maxshopItem, generates shopItems array [minshopItem..maxshopItem]." |
334 | 385 | }, |
335 | | - "maxShopSlot": { |
| 386 | + "maxshopItem": { |
336 | 387 | "type": "integer", |
337 | 388 | "minimum": 0, |
338 | 389 | "maximum": 1023, |
339 | | - "description": "Maximum shop slot index (inclusive). If specified with minShopSlot, generates shopSlots array [minShopSlot..maxShopSlot]." |
| 390 | + "description": "Maximum shop slot index (inclusive). If specified with minshopItem, generates shopItems array [minshopItem..maxshopItem]." |
340 | 391 | }, |
341 | | - "minPackSlot": { |
| 392 | + "minboosterPack": { |
342 | 393 | "type": "integer", |
343 | 394 | "minimum": 0, |
344 | 395 | "maximum": 5, |
345 | | - "description": "Minimum pack slot index (inclusive). If specified with maxPackSlot, generates packSlots array [minPackSlot..maxPackSlot]." |
| 396 | + "description": "Minimum pack slot index (inclusive). If specified with maxboosterPack, generates boosterPacks array [minboosterPack..maxboosterPack]." |
346 | 397 | }, |
347 | | - "maxPackSlot": { |
| 398 | + "maxboosterPack": { |
348 | 399 | "type": "integer", |
349 | 400 | "minimum": 0, |
350 | 401 | "maximum": 5, |
351 | | - "description": "Maximum pack slot index (inclusive). If specified with minPackSlot, generates packSlots array [minPackSlot..maxPackSlot]." |
| 402 | + "description": "Maximum pack slot index (inclusive). If specified with minboosterPack, generates boosterPacks array [minboosterPack..maxboosterPack]." |
352 | 403 | }, |
353 | 404 | "tags": { |
354 | 405 | "type": "boolean", |
|
0 commit comments