|
16 | 16 | {"type": "boolean"}
|
17 | 17 | ]
|
18 | 18 | },
|
| 19 | + "stringOrNumber": { |
| 20 | + "oneOf": [ |
| 21 | + {"type": "string"}, |
| 22 | + {"type": "number"} |
| 23 | + ] |
| 24 | + }, |
| 25 | + "scalarVal": { |
| 26 | + "oneOf": [ |
| 27 | + {"$ref":"#/definitions/stringOrNumber"}, |
| 28 | + {"type": "boolean"} |
| 29 | + ] |
| 30 | + }, |
19 | 31 | "assetId": {
|
20 | 32 | "type": "string",
|
21 | 33 | "pattern": "^[a-fA-F0-9]{32}$"
|
|
29 | 41 | },
|
30 | 42 | "dataFormat": {
|
31 | 43 | "type": "string",
|
32 |
| - "enum": ["png", "PNG", "svg", "SVG", "jpeg", "JPEG", "jpg", "JPG", "bmp", "BMP"] |
| 44 | + "enum": ["png", "svg", "jpeg", "jpg", "bmp", "gif"] |
33 | 45 | },
|
34 | 46 | "md5ext": {
|
35 | 47 | "type": "string",
|
|
59 | 71 | "assetId": { "$ref": "#/definitions/assetId"},
|
60 | 72 | "dataFormat": {
|
61 | 73 | "type": "string",
|
62 |
| - "enum": ["wav", "WAV", "wave", "WAVE", "mp3", "MP3"] |
| 74 | + "enum": ["wav", "wave", "mp3"] |
63 | 75 | },
|
64 | 76 | "format": {
|
65 | 77 | "type": "string",
|
66 | 78 | "enum": ["", "adpcm"]
|
67 | 79 | },
|
68 | 80 | "md5ext": {
|
69 | 81 | "type": "string",
|
70 |
| - "pattern": "^[a-fA-F0-9]{32}.[a-zA-Z]+$" |
| 82 | + "pattern": "^[a-fA-F0-9]{32}.[a-zA-Z0-9]+$" |
71 | 83 | },
|
72 | 84 | "name": {
|
73 | 85 | "type": "string"
|
|
87 | 99 | ]
|
88 | 100 | },
|
89 | 101 | "scalar_variable": {
|
90 |
| - "type": "object", |
91 |
| - "properties": { |
92 |
| - "name": { |
93 |
| - "type": "string" |
94 |
| - }, |
95 |
| - "type": { |
96 |
| - "type": "string", |
97 |
| - "enum": ["", "scalar"] |
98 |
| - }, |
99 |
| - "value": { |
100 |
| - "oneOf": [ |
101 |
| - {"type": "string"}, |
102 |
| - {"type": "number"} |
103 |
| - ] |
104 |
| - } |
105 |
| - } |
| 102 | + "type": "array", |
| 103 | + "items": [ |
| 104 | + {"type": "string", "description": "name of the variable"}, |
| 105 | + {"$ref":"#/definitions/scalarVal", "description": "value of the variable"} |
| 106 | + ], |
| 107 | + "additionalItems": {"type": "boolean", "enum": [true], "description": "Whether this is a cloud variable"}, |
| 108 | + "maxItems": 3 |
106 | 109 | },
|
107 | 110 | "list": {
|
108 |
| - "type": "object", |
109 |
| - "properties": { |
110 |
| - "name": { |
111 |
| - "type": "string" |
112 |
| - }, |
113 |
| - "type": { |
114 |
| - "type": "string", |
115 |
| - "enum": ["list"] |
116 |
| - }, |
117 |
| - "value": { |
118 |
| - "type": "array" |
| 111 | + "type": "array", |
| 112 | + "items": [ |
| 113 | + {"type":"string", "description": "name of the list"}, |
| 114 | + { |
| 115 | + "type": "array", |
| 116 | + "description": "contents of the list", |
| 117 | + "items": {"$ref":"#/definitions/scalarVal"} |
119 | 118 | }
|
120 |
| - } |
| 119 | + ], |
| 120 | + "additionalItems": false |
121 | 121 | },
|
122 | 122 | "broadcast_message": {
|
123 |
| - "type": "object", |
124 |
| - "properties": { |
125 |
| - "name": { |
126 |
| - "type": "string" |
| 123 | + "type": "string", |
| 124 | + "description": "the message being broadcasted" |
| 125 | + }, |
| 126 | + "num_primitive": { |
| 127 | + "type": "array", |
| 128 | + "items": [ |
| 129 | + { |
| 130 | + "type": "number", |
| 131 | + "enum": [4,5,6,7,8] |
127 | 132 | },
|
128 |
| - "type": { |
129 |
| - "type": "string", |
130 |
| - "enum": ["broadcast_msg"] |
| 133 | + {"$ref":"#/definitions/stringOrNumber"} |
| 134 | + ], |
| 135 | + "additionalItems": false |
| 136 | + }, |
| 137 | + "color_primitive": { |
| 138 | + "type": "array", |
| 139 | + "items": [ |
| 140 | + { |
| 141 | + "type": "number", |
| 142 | + "enum": [9] |
131 | 143 | },
|
132 |
| - "value": { |
| 144 | + { |
133 | 145 | "type": "string",
|
134 |
| - "not": {"enum": [""]} |
| 146 | + "pattern": "^#[a-fA-F0-9]{6}$" |
135 | 147 | }
|
136 |
| - } |
| 148 | + ], |
| 149 | + "additionalItems": false |
| 150 | + }, |
| 151 | + "text_primitive": { |
| 152 | + "type": "array", |
| 153 | + "items": [ |
| 154 | + { |
| 155 | + "type": "number", |
| 156 | + "enum": [10] |
| 157 | + }, |
| 158 | + {"$ref":"#/definitions/stringOrNumber"} |
| 159 | + ], |
| 160 | + "additionalItems": false |
| 161 | + }, |
| 162 | + "broadcast_primitive": { |
| 163 | + "type": "array", |
| 164 | + "items": [ |
| 165 | + { |
| 166 | + "type": "number", |
| 167 | + "enum": [11] |
| 168 | + }, |
| 169 | + {"type": "string", "description": "broadcast message"}, |
| 170 | + {"type": "string", "description": "broadcast message id"} |
| 171 | + ], |
| 172 | + "additionalItems": false |
| 173 | + }, |
| 174 | + "variable_primitive": { |
| 175 | + "type": "array", |
| 176 | + "items": [ |
| 177 | + { |
| 178 | + "type": "number", |
| 179 | + "enum": [12] |
| 180 | + }, |
| 181 | + {"type": "string", "description": "variable name"}, |
| 182 | + {"type": "string", "description": "variable id"} |
| 183 | + ], |
| 184 | + "additionalItems": { |
| 185 | + "type": "number" |
| 186 | + }, |
| 187 | + "minItems": 3, |
| 188 | + "maxItems": 5 |
| 189 | + }, |
| 190 | + "list_primitive": { |
| 191 | + "type": "array", |
| 192 | + "items": [ |
| 193 | + { |
| 194 | + "type": "number", |
| 195 | + "enum": [13] |
| 196 | + }, |
| 197 | + {"type": "string", "description": "list name"}, |
| 198 | + {"type": "string", "description": "list id"} |
| 199 | + ], |
| 200 | + "additionalItems": { |
| 201 | + "type": "number" |
| 202 | + }, |
| 203 | + "minItems": 3, |
| 204 | + "maxItems": 5 |
| 205 | + }, |
| 206 | + "topLevelPrimitive": { |
| 207 | + "oneOf": [ |
| 208 | + {"$ref":"#/definitions/variable_primitive"}, |
| 209 | + {"$ref":"#/definitions/list_primitive"} |
| 210 | + ] |
| 211 | + }, |
| 212 | + "inputPrimitive": { |
| 213 | + "oneOf": [ |
| 214 | + {"$ref":"#/definitions/num_primitive"}, |
| 215 | + {"$ref":"#/definitions/color_primitive"}, |
| 216 | + {"$ref":"#/definitions/text_primitive"}, |
| 217 | + {"$ref":"#/definitions/broadcast_primitive"}, |
| 218 | + {"$ref":"#/definitions/variable_primitive"}, |
| 219 | + {"$ref":"#/definitions/list_primitive"} |
| 220 | + ] |
137 | 221 | },
|
138 | 222 | "block": {
|
139 | 223 | "type": "object",
|
140 | 224 | "properties": {
|
141 |
| - "id": { |
142 |
| - "type": "string" |
143 |
| - }, |
144 | 225 | "opcode": {
|
145 | 226 | "type": "string"
|
146 | 227 | },
|
147 | 228 | "inputs": {
|
148 | 229 | "type": "object",
|
149 | 230 | "additionalProperties": {
|
150 |
| - "type": "object", |
151 |
| - "properties": { |
152 |
| - "name": { |
153 |
| - "type": "string" |
154 |
| - }, |
155 |
| - "block": {"$ref":"#/definitions/optionalString"}, |
156 |
| - "shadow": {"$ref":"#/definitions/optionalString"}, |
157 |
| - "value": { |
158 |
| - "oneOf": [ |
159 |
| - {"type": "string"}, |
160 |
| - {"type": "number"} |
161 |
| - ] |
| 231 | + "type": "array", |
| 232 | + "items": [ |
| 233 | + { |
| 234 | + "type":"number", |
| 235 | + "enum":[1,2,3], |
| 236 | + "description": "1 = unobscured shadow, 2 = no shadow, 3 = obscured shadow" |
162 | 237 | }
|
| 238 | + ], |
| 239 | + "additionalItems": { |
| 240 | + "oneOf": [ |
| 241 | + {"$ref":"#/definitions/optionalString"}, |
| 242 | + {"$ref":"#/definitions/inputPrimitive"} |
| 243 | + ] |
163 | 244 | }
|
164 | 245 | }
|
165 | 246 | },
|
166 | 247 | "fields": {
|
167 |
| - "type": "object", |
168 |
| - "additionalProperties": { |
169 |
| - "type": "object", |
170 |
| - "properties": { |
171 |
| - "name": { |
172 |
| - "type": "string" |
173 |
| - }, |
174 |
| - "value": { |
175 |
| - "oneOf": [ |
176 |
| - {"type": "string"}, |
177 |
| - {"type": "number"} |
178 |
| - ] |
179 |
| - } |
180 |
| - } |
181 |
| - } |
| 248 | + "type": "object" |
182 | 249 | },
|
183 | 250 | "next": {"$ref":"#/definitions/optionalString"},
|
184 | 251 | "topLevel": {
|
|
216 | 283 | }
|
217 | 284 | },
|
218 | 285 | "required": [
|
219 |
| - "id", |
220 | 286 | "opcode"
|
221 | 287 | ]
|
222 | 288 | },
|
|
231 | 297 | "isStage": {
|
232 | 298 | "type": "boolean",
|
233 | 299 | "enum": [true]
|
| 300 | + }, |
| 301 | + "tempo": { |
| 302 | + "type": "number" |
| 303 | + }, |
| 304 | + "videoTransparency": { |
| 305 | + "type": "number" |
| 306 | + }, |
| 307 | + "videoState": { |
| 308 | + "type": "string", |
| 309 | + "enum": ["on", "off", "on-flipped"] |
234 | 310 | }
|
235 |
| - } |
| 311 | + }, |
| 312 | + "required": [ |
| 313 | + "name", |
| 314 | + "isStage" |
| 315 | + ] |
236 | 316 | },
|
237 | 317 | "sprite": {
|
238 | 318 | "type": "object",
|
|
283 | 363 | "minimum": 0
|
284 | 364 | },
|
285 | 365 | "blocks": {
|
286 |
| - "type": "object", |
287 |
| - "additionalProperties": {"$ref":"#/definitions/block"} |
288 |
| - }, |
289 |
| - "variables": { |
290 | 366 | "type": "object",
|
291 | 367 | "additionalProperties": {
|
292 | 368 | "oneOf": [
|
293 |
| - {"$ref":"#/definitions/scalar_variable"}, |
294 |
| - {"$ref":"#/definitions/list"}, |
295 |
| - {"$ref":"#/definitions/broadcast_message"} |
| 369 | + {"$ref":"#/definitions/block"}, |
| 370 | + {"$ref":"#/definitions/topLevelPrimitive"} |
296 | 371 | ]
|
297 | 372 | }
|
298 | 373 | },
|
| 374 | + "variables": { |
| 375 | + "type": "object", |
| 376 | + "additionalProperties": {"$ref":"#/definitions/scalar_variable"} |
| 377 | + }, |
| 378 | + "lists": { |
| 379 | + "type": "object", |
| 380 | + "additionalProperties": {"$ref":"#/definitions/list"} |
| 381 | + }, |
| 382 | + "broadcasts": { |
| 383 | + "type": "object", |
| 384 | + "additionalProperties": {"$ref":"#/definitions/broadcast_message"} |
| 385 | + }, |
299 | 386 | "costumes": {
|
300 | 387 | "type": "array",
|
301 | 388 | "items": {"$ref":"#/definitions/costume"},
|
302 | 389 | "minItems": 1,
|
303 | 390 | "uniqueItems": true
|
304 | 391 | },
|
305 |
| - "sounds":{ |
| 392 | + "sounds": { |
306 | 393 | "type": "array",
|
307 | 394 | "items": {"$ref":"#/definitions/sound"},
|
308 | 395 | "uniqueItems": true
|
| 396 | + }, |
| 397 | + "volume": { |
| 398 | + "type": "number" |
309 | 399 | }
|
310 | 400 | },
|
311 | 401 | "required": [
|
|
0 commit comments