@chalksurf/cli 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2308 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "oneOf": [
4
+ {
5
+ "type": "object",
6
+ "properties": {
7
+ "schemaVersion": {
8
+ "type": "string",
9
+ "const": "v1"
10
+ },
11
+ "operation": {
12
+ "type": "string",
13
+ "const": "exercise.solution.generate"
14
+ },
15
+ "items": {
16
+ "minItems": 1,
17
+ "maxItems": 100,
18
+ "type": "array",
19
+ "items": {
20
+ "type": "object",
21
+ "properties": {
22
+ "itemId": {
23
+ "type": "string",
24
+ "minLength": 1,
25
+ "maxLength": 100
26
+ },
27
+ "id": {
28
+ "type": "string",
29
+ "format": "uuid",
30
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
31
+ },
32
+ "targetSheetId": {
33
+ "type": "string",
34
+ "format": "uuid",
35
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
36
+ },
37
+ "allowSharedExerciseUpdate": {
38
+ "type": "boolean"
39
+ },
40
+ "replaceExisting": {
41
+ "type": "boolean"
42
+ }
43
+ },
44
+ "required": [
45
+ "itemId",
46
+ "id"
47
+ ],
48
+ "additionalProperties": false
49
+ }
50
+ }
51
+ },
52
+ "required": [
53
+ "schemaVersion",
54
+ "operation",
55
+ "items"
56
+ ],
57
+ "additionalProperties": false
58
+ },
59
+ {
60
+ "type": "object",
61
+ "properties": {
62
+ "schemaVersion": {
63
+ "type": "string",
64
+ "const": "v1"
65
+ },
66
+ "operation": {
67
+ "type": "string",
68
+ "const": "sheet.solution.generate"
69
+ },
70
+ "items": {
71
+ "minItems": 1,
72
+ "maxItems": 100,
73
+ "type": "array",
74
+ "items": {
75
+ "type": "object",
76
+ "properties": {
77
+ "itemId": {
78
+ "type": "string",
79
+ "minLength": 1,
80
+ "maxLength": 100
81
+ },
82
+ "id": {
83
+ "type": "string",
84
+ "format": "uuid",
85
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
86
+ },
87
+ "allowSharedExerciseUpdate": {
88
+ "type": "boolean"
89
+ },
90
+ "replaceExisting": {
91
+ "type": "boolean"
92
+ }
93
+ },
94
+ "required": [
95
+ "itemId",
96
+ "id"
97
+ ],
98
+ "additionalProperties": false
99
+ }
100
+ }
101
+ },
102
+ "required": [
103
+ "schemaVersion",
104
+ "operation",
105
+ "items"
106
+ ],
107
+ "additionalProperties": false
108
+ },
109
+ {
110
+ "type": "object",
111
+ "properties": {
112
+ "schemaVersion": {
113
+ "type": "string",
114
+ "const": "v1"
115
+ },
116
+ "operation": {
117
+ "type": "string",
118
+ "const": "exercise.description.generate"
119
+ },
120
+ "items": {
121
+ "minItems": 1,
122
+ "maxItems": 100,
123
+ "type": "array",
124
+ "items": {
125
+ "type": "object",
126
+ "properties": {
127
+ "itemId": {
128
+ "type": "string",
129
+ "minLength": 1,
130
+ "maxLength": 100
131
+ },
132
+ "id": {
133
+ "type": "string",
134
+ "format": "uuid",
135
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
136
+ },
137
+ "targetSheetId": {
138
+ "type": "string",
139
+ "format": "uuid",
140
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
141
+ },
142
+ "allowSharedExerciseUpdate": {
143
+ "type": "boolean"
144
+ }
145
+ },
146
+ "required": [
147
+ "itemId",
148
+ "id"
149
+ ],
150
+ "additionalProperties": false
151
+ }
152
+ }
153
+ },
154
+ "required": [
155
+ "schemaVersion",
156
+ "operation",
157
+ "items"
158
+ ],
159
+ "additionalProperties": false
160
+ },
161
+ {
162
+ "type": "object",
163
+ "properties": {
164
+ "schemaVersion": {
165
+ "type": "string",
166
+ "const": "v1"
167
+ },
168
+ "operation": {
169
+ "type": "string",
170
+ "const": "exercise.translation.generate"
171
+ },
172
+ "items": {
173
+ "minItems": 1,
174
+ "maxItems": 100,
175
+ "type": "array",
176
+ "items": {
177
+ "type": "object",
178
+ "properties": {
179
+ "itemId": {
180
+ "type": "string",
181
+ "minLength": 1,
182
+ "maxLength": 100
183
+ },
184
+ "id": {
185
+ "type": "string",
186
+ "format": "uuid",
187
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
188
+ },
189
+ "targetLanguages": {
190
+ "minItems": 1,
191
+ "type": "array",
192
+ "items": {
193
+ "type": "string",
194
+ "enum": [
195
+ "english",
196
+ "hungarian",
197
+ "german",
198
+ "french",
199
+ "spanish",
200
+ "italian"
201
+ ]
202
+ }
203
+ }
204
+ },
205
+ "required": [
206
+ "itemId",
207
+ "id",
208
+ "targetLanguages"
209
+ ],
210
+ "additionalProperties": false
211
+ }
212
+ }
213
+ },
214
+ "required": [
215
+ "schemaVersion",
216
+ "operation",
217
+ "items"
218
+ ],
219
+ "additionalProperties": false
220
+ },
221
+ {
222
+ "type": "object",
223
+ "properties": {
224
+ "schemaVersion": {
225
+ "type": "string",
226
+ "const": "v1"
227
+ },
228
+ "operation": {
229
+ "type": "string",
230
+ "const": "sheet.translation.generate"
231
+ },
232
+ "items": {
233
+ "minItems": 1,
234
+ "maxItems": 100,
235
+ "type": "array",
236
+ "items": {
237
+ "type": "object",
238
+ "properties": {
239
+ "itemId": {
240
+ "type": "string",
241
+ "minLength": 1,
242
+ "maxLength": 100
243
+ },
244
+ "id": {
245
+ "type": "string",
246
+ "format": "uuid",
247
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
248
+ },
249
+ "targetLanguages": {
250
+ "minItems": 1,
251
+ "type": "array",
252
+ "items": {
253
+ "type": "string",
254
+ "enum": [
255
+ "english",
256
+ "hungarian",
257
+ "german",
258
+ "french",
259
+ "spanish",
260
+ "italian"
261
+ ]
262
+ }
263
+ },
264
+ "sourceLanguage": {
265
+ "type": "string",
266
+ "enum": [
267
+ "english",
268
+ "hungarian",
269
+ "german",
270
+ "french",
271
+ "spanish",
272
+ "italian"
273
+ ]
274
+ }
275
+ },
276
+ "required": [
277
+ "itemId",
278
+ "id",
279
+ "targetLanguages"
280
+ ],
281
+ "additionalProperties": false
282
+ }
283
+ }
284
+ },
285
+ "required": [
286
+ "schemaVersion",
287
+ "operation",
288
+ "items"
289
+ ],
290
+ "additionalProperties": false
291
+ },
292
+ {
293
+ "type": "object",
294
+ "properties": {
295
+ "schemaVersion": {
296
+ "type": "string",
297
+ "const": "v1"
298
+ },
299
+ "operation": {
300
+ "type": "string",
301
+ "const": "exercise.update"
302
+ },
303
+ "items": {
304
+ "minItems": 1,
305
+ "maxItems": 100,
306
+ "type": "array",
307
+ "items": {
308
+ "type": "object",
309
+ "properties": {
310
+ "id": {
311
+ "type": "string",
312
+ "format": "uuid",
313
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
314
+ },
315
+ "expectedUpdatedAt": {
316
+ "type": "string",
317
+ "minLength": 1
318
+ },
319
+ "targetSheetId": {
320
+ "anyOf": [
321
+ {
322
+ "type": "string",
323
+ "format": "uuid",
324
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
325
+ },
326
+ {
327
+ "type": "null"
328
+ }
329
+ ]
330
+ },
331
+ "allowSharedExerciseUpdate": {
332
+ "default": false,
333
+ "type": "boolean"
334
+ },
335
+ "patch": {
336
+ "type": "object",
337
+ "properties": {
338
+ "subject": {
339
+ "type": "string",
340
+ "enum": [
341
+ "math",
342
+ "physics",
343
+ "chemistry"
344
+ ]
345
+ },
346
+ "difficulty": {
347
+ "anyOf": [
348
+ {
349
+ "type": "number",
350
+ "minimum": 1,
351
+ "maximum": 100
352
+ },
353
+ {
354
+ "type": "null"
355
+ }
356
+ ]
357
+ },
358
+ "min_age": {
359
+ "anyOf": [
360
+ {
361
+ "type": "number",
362
+ "minimum": 0,
363
+ "maximum": 100
364
+ },
365
+ {
366
+ "type": "null"
367
+ }
368
+ ]
369
+ },
370
+ "max_age": {
371
+ "anyOf": [
372
+ {
373
+ "type": "number",
374
+ "minimum": 0,
375
+ "maximum": 100
376
+ },
377
+ {
378
+ "type": "null"
379
+ }
380
+ ]
381
+ },
382
+ "source": {
383
+ "anyOf": [
384
+ {
385
+ "type": "string",
386
+ "minLength": 1
387
+ },
388
+ {
389
+ "type": "null"
390
+ }
391
+ ]
392
+ },
393
+ "metadata": {
394
+ "type": "object",
395
+ "properties": {
396
+ "sourceUrl": {
397
+ "anyOf": [
398
+ {
399
+ "type": "string"
400
+ },
401
+ {
402
+ "type": "null"
403
+ }
404
+ ]
405
+ },
406
+ "solutionUrl": {
407
+ "anyOf": [
408
+ {
409
+ "type": "string"
410
+ },
411
+ {
412
+ "type": "null"
413
+ }
414
+ ]
415
+ }
416
+ },
417
+ "additionalProperties": false
418
+ },
419
+ "labels": {
420
+ "type": "array",
421
+ "items": {
422
+ "type": "string"
423
+ }
424
+ },
425
+ "private_notes": {
426
+ "anyOf": [
427
+ {
428
+ "type": "string"
429
+ },
430
+ {
431
+ "type": "null"
432
+ }
433
+ ]
434
+ },
435
+ "translations": {
436
+ "type": "object",
437
+ "properties": {
438
+ "english": {
439
+ "type": "object",
440
+ "properties": {
441
+ "exercise_text": {
442
+ "anyOf": [
443
+ {
444
+ "type": "string"
445
+ },
446
+ {
447
+ "type": "null"
448
+ }
449
+ ]
450
+ },
451
+ "description": {
452
+ "anyOf": [
453
+ {
454
+ "type": "string"
455
+ },
456
+ {
457
+ "type": "null"
458
+ }
459
+ ]
460
+ },
461
+ "hint": {
462
+ "anyOf": [
463
+ {
464
+ "type": "string"
465
+ },
466
+ {
467
+ "type": "null"
468
+ }
469
+ ]
470
+ },
471
+ "answer": {
472
+ "anyOf": [
473
+ {
474
+ "type": "string"
475
+ },
476
+ {
477
+ "type": "null"
478
+ }
479
+ ]
480
+ },
481
+ "scaffold": {
482
+ "anyOf": [
483
+ {
484
+ "type": "string"
485
+ },
486
+ {
487
+ "type": "null"
488
+ }
489
+ ]
490
+ },
491
+ "detailed_solution": {
492
+ "anyOf": [
493
+ {
494
+ "type": "string"
495
+ },
496
+ {
497
+ "type": "null"
498
+ }
499
+ ]
500
+ }
501
+ },
502
+ "additionalProperties": false
503
+ },
504
+ "hungarian": {
505
+ "type": "object",
506
+ "properties": {
507
+ "exercise_text": {
508
+ "anyOf": [
509
+ {
510
+ "type": "string"
511
+ },
512
+ {
513
+ "type": "null"
514
+ }
515
+ ]
516
+ },
517
+ "description": {
518
+ "anyOf": [
519
+ {
520
+ "type": "string"
521
+ },
522
+ {
523
+ "type": "null"
524
+ }
525
+ ]
526
+ },
527
+ "hint": {
528
+ "anyOf": [
529
+ {
530
+ "type": "string"
531
+ },
532
+ {
533
+ "type": "null"
534
+ }
535
+ ]
536
+ },
537
+ "answer": {
538
+ "anyOf": [
539
+ {
540
+ "type": "string"
541
+ },
542
+ {
543
+ "type": "null"
544
+ }
545
+ ]
546
+ },
547
+ "scaffold": {
548
+ "anyOf": [
549
+ {
550
+ "type": "string"
551
+ },
552
+ {
553
+ "type": "null"
554
+ }
555
+ ]
556
+ },
557
+ "detailed_solution": {
558
+ "anyOf": [
559
+ {
560
+ "type": "string"
561
+ },
562
+ {
563
+ "type": "null"
564
+ }
565
+ ]
566
+ }
567
+ },
568
+ "additionalProperties": false
569
+ },
570
+ "german": {
571
+ "type": "object",
572
+ "properties": {
573
+ "exercise_text": {
574
+ "anyOf": [
575
+ {
576
+ "type": "string"
577
+ },
578
+ {
579
+ "type": "null"
580
+ }
581
+ ]
582
+ },
583
+ "description": {
584
+ "anyOf": [
585
+ {
586
+ "type": "string"
587
+ },
588
+ {
589
+ "type": "null"
590
+ }
591
+ ]
592
+ },
593
+ "hint": {
594
+ "anyOf": [
595
+ {
596
+ "type": "string"
597
+ },
598
+ {
599
+ "type": "null"
600
+ }
601
+ ]
602
+ },
603
+ "answer": {
604
+ "anyOf": [
605
+ {
606
+ "type": "string"
607
+ },
608
+ {
609
+ "type": "null"
610
+ }
611
+ ]
612
+ },
613
+ "scaffold": {
614
+ "anyOf": [
615
+ {
616
+ "type": "string"
617
+ },
618
+ {
619
+ "type": "null"
620
+ }
621
+ ]
622
+ },
623
+ "detailed_solution": {
624
+ "anyOf": [
625
+ {
626
+ "type": "string"
627
+ },
628
+ {
629
+ "type": "null"
630
+ }
631
+ ]
632
+ }
633
+ },
634
+ "additionalProperties": false
635
+ },
636
+ "french": {
637
+ "type": "object",
638
+ "properties": {
639
+ "exercise_text": {
640
+ "anyOf": [
641
+ {
642
+ "type": "string"
643
+ },
644
+ {
645
+ "type": "null"
646
+ }
647
+ ]
648
+ },
649
+ "description": {
650
+ "anyOf": [
651
+ {
652
+ "type": "string"
653
+ },
654
+ {
655
+ "type": "null"
656
+ }
657
+ ]
658
+ },
659
+ "hint": {
660
+ "anyOf": [
661
+ {
662
+ "type": "string"
663
+ },
664
+ {
665
+ "type": "null"
666
+ }
667
+ ]
668
+ },
669
+ "answer": {
670
+ "anyOf": [
671
+ {
672
+ "type": "string"
673
+ },
674
+ {
675
+ "type": "null"
676
+ }
677
+ ]
678
+ },
679
+ "scaffold": {
680
+ "anyOf": [
681
+ {
682
+ "type": "string"
683
+ },
684
+ {
685
+ "type": "null"
686
+ }
687
+ ]
688
+ },
689
+ "detailed_solution": {
690
+ "anyOf": [
691
+ {
692
+ "type": "string"
693
+ },
694
+ {
695
+ "type": "null"
696
+ }
697
+ ]
698
+ }
699
+ },
700
+ "additionalProperties": false
701
+ },
702
+ "spanish": {
703
+ "type": "object",
704
+ "properties": {
705
+ "exercise_text": {
706
+ "anyOf": [
707
+ {
708
+ "type": "string"
709
+ },
710
+ {
711
+ "type": "null"
712
+ }
713
+ ]
714
+ },
715
+ "description": {
716
+ "anyOf": [
717
+ {
718
+ "type": "string"
719
+ },
720
+ {
721
+ "type": "null"
722
+ }
723
+ ]
724
+ },
725
+ "hint": {
726
+ "anyOf": [
727
+ {
728
+ "type": "string"
729
+ },
730
+ {
731
+ "type": "null"
732
+ }
733
+ ]
734
+ },
735
+ "answer": {
736
+ "anyOf": [
737
+ {
738
+ "type": "string"
739
+ },
740
+ {
741
+ "type": "null"
742
+ }
743
+ ]
744
+ },
745
+ "scaffold": {
746
+ "anyOf": [
747
+ {
748
+ "type": "string"
749
+ },
750
+ {
751
+ "type": "null"
752
+ }
753
+ ]
754
+ },
755
+ "detailed_solution": {
756
+ "anyOf": [
757
+ {
758
+ "type": "string"
759
+ },
760
+ {
761
+ "type": "null"
762
+ }
763
+ ]
764
+ }
765
+ },
766
+ "additionalProperties": false
767
+ },
768
+ "italian": {
769
+ "type": "object",
770
+ "properties": {
771
+ "exercise_text": {
772
+ "anyOf": [
773
+ {
774
+ "type": "string"
775
+ },
776
+ {
777
+ "type": "null"
778
+ }
779
+ ]
780
+ },
781
+ "description": {
782
+ "anyOf": [
783
+ {
784
+ "type": "string"
785
+ },
786
+ {
787
+ "type": "null"
788
+ }
789
+ ]
790
+ },
791
+ "hint": {
792
+ "anyOf": [
793
+ {
794
+ "type": "string"
795
+ },
796
+ {
797
+ "type": "null"
798
+ }
799
+ ]
800
+ },
801
+ "answer": {
802
+ "anyOf": [
803
+ {
804
+ "type": "string"
805
+ },
806
+ {
807
+ "type": "null"
808
+ }
809
+ ]
810
+ },
811
+ "scaffold": {
812
+ "anyOf": [
813
+ {
814
+ "type": "string"
815
+ },
816
+ {
817
+ "type": "null"
818
+ }
819
+ ]
820
+ },
821
+ "detailed_solution": {
822
+ "anyOf": [
823
+ {
824
+ "type": "string"
825
+ },
826
+ {
827
+ "type": "null"
828
+ }
829
+ ]
830
+ }
831
+ },
832
+ "additionalProperties": false
833
+ }
834
+ },
835
+ "additionalProperties": false
836
+ }
837
+ },
838
+ "additionalProperties": false
839
+ },
840
+ "itemId": {
841
+ "type": "string",
842
+ "minLength": 1,
843
+ "maxLength": 100
844
+ }
845
+ },
846
+ "required": [
847
+ "id",
848
+ "expectedUpdatedAt",
849
+ "patch",
850
+ "itemId"
851
+ ],
852
+ "additionalProperties": false
853
+ }
854
+ }
855
+ },
856
+ "required": [
857
+ "schemaVersion",
858
+ "operation",
859
+ "items"
860
+ ],
861
+ "additionalProperties": false
862
+ },
863
+ {
864
+ "type": "object",
865
+ "properties": {
866
+ "schemaVersion": {
867
+ "type": "string",
868
+ "const": "v1"
869
+ },
870
+ "operation": {
871
+ "type": "string",
872
+ "const": "sheet.update"
873
+ },
874
+ "items": {
875
+ "minItems": 1,
876
+ "maxItems": 100,
877
+ "type": "array",
878
+ "items": {
879
+ "type": "object",
880
+ "properties": {
881
+ "id": {
882
+ "type": "string",
883
+ "format": "uuid",
884
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
885
+ },
886
+ "expectedUpdatedAt": {
887
+ "type": "string",
888
+ "minLength": 1
889
+ },
890
+ "expectedSeriesAssignments": {
891
+ "type": "array",
892
+ "items": {
893
+ "type": "object",
894
+ "properties": {
895
+ "seriesPath": {
896
+ "type": "string",
897
+ "minLength": 1
898
+ },
899
+ "editionYear": {
900
+ "type": "integer",
901
+ "minimum": 1000,
902
+ "maximum": 9999
903
+ }
904
+ },
905
+ "required": [
906
+ "seriesPath",
907
+ "editionYear"
908
+ ],
909
+ "additionalProperties": false
910
+ }
911
+ },
912
+ "patch": {
913
+ "type": "object",
914
+ "properties": {
915
+ "subject": {
916
+ "type": "string",
917
+ "enum": [
918
+ "math",
919
+ "physics",
920
+ "chemistry"
921
+ ]
922
+ },
923
+ "folderId": {
924
+ "anyOf": [
925
+ {
926
+ "type": "string",
927
+ "format": "uuid",
928
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
929
+ },
930
+ {
931
+ "type": "null"
932
+ }
933
+ ]
934
+ },
935
+ "private_notes": {
936
+ "anyOf": [
937
+ {
938
+ "type": "string"
939
+ },
940
+ {
941
+ "type": "null"
942
+ }
943
+ ]
944
+ },
945
+ "scoringEnabled": {
946
+ "type": "boolean"
947
+ },
948
+ "translations": {
949
+ "type": "object",
950
+ "properties": {
951
+ "english": {
952
+ "type": "object",
953
+ "properties": {
954
+ "name": {
955
+ "type": "string",
956
+ "minLength": 1
957
+ },
958
+ "title": {
959
+ "anyOf": [
960
+ {
961
+ "type": "string"
962
+ },
963
+ {
964
+ "type": "null"
965
+ }
966
+ ]
967
+ },
968
+ "description": {
969
+ "anyOf": [
970
+ {
971
+ "type": "string"
972
+ },
973
+ {
974
+ "type": "null"
975
+ }
976
+ ]
977
+ }
978
+ },
979
+ "additionalProperties": false
980
+ },
981
+ "hungarian": {
982
+ "type": "object",
983
+ "properties": {
984
+ "name": {
985
+ "type": "string",
986
+ "minLength": 1
987
+ },
988
+ "title": {
989
+ "anyOf": [
990
+ {
991
+ "type": "string"
992
+ },
993
+ {
994
+ "type": "null"
995
+ }
996
+ ]
997
+ },
998
+ "description": {
999
+ "anyOf": [
1000
+ {
1001
+ "type": "string"
1002
+ },
1003
+ {
1004
+ "type": "null"
1005
+ }
1006
+ ]
1007
+ }
1008
+ },
1009
+ "additionalProperties": false
1010
+ },
1011
+ "german": {
1012
+ "type": "object",
1013
+ "properties": {
1014
+ "name": {
1015
+ "type": "string",
1016
+ "minLength": 1
1017
+ },
1018
+ "title": {
1019
+ "anyOf": [
1020
+ {
1021
+ "type": "string"
1022
+ },
1023
+ {
1024
+ "type": "null"
1025
+ }
1026
+ ]
1027
+ },
1028
+ "description": {
1029
+ "anyOf": [
1030
+ {
1031
+ "type": "string"
1032
+ },
1033
+ {
1034
+ "type": "null"
1035
+ }
1036
+ ]
1037
+ }
1038
+ },
1039
+ "additionalProperties": false
1040
+ },
1041
+ "french": {
1042
+ "type": "object",
1043
+ "properties": {
1044
+ "name": {
1045
+ "type": "string",
1046
+ "minLength": 1
1047
+ },
1048
+ "title": {
1049
+ "anyOf": [
1050
+ {
1051
+ "type": "string"
1052
+ },
1053
+ {
1054
+ "type": "null"
1055
+ }
1056
+ ]
1057
+ },
1058
+ "description": {
1059
+ "anyOf": [
1060
+ {
1061
+ "type": "string"
1062
+ },
1063
+ {
1064
+ "type": "null"
1065
+ }
1066
+ ]
1067
+ }
1068
+ },
1069
+ "additionalProperties": false
1070
+ },
1071
+ "spanish": {
1072
+ "type": "object",
1073
+ "properties": {
1074
+ "name": {
1075
+ "type": "string",
1076
+ "minLength": 1
1077
+ },
1078
+ "title": {
1079
+ "anyOf": [
1080
+ {
1081
+ "type": "string"
1082
+ },
1083
+ {
1084
+ "type": "null"
1085
+ }
1086
+ ]
1087
+ },
1088
+ "description": {
1089
+ "anyOf": [
1090
+ {
1091
+ "type": "string"
1092
+ },
1093
+ {
1094
+ "type": "null"
1095
+ }
1096
+ ]
1097
+ }
1098
+ },
1099
+ "additionalProperties": false
1100
+ },
1101
+ "italian": {
1102
+ "type": "object",
1103
+ "properties": {
1104
+ "name": {
1105
+ "type": "string",
1106
+ "minLength": 1
1107
+ },
1108
+ "title": {
1109
+ "anyOf": [
1110
+ {
1111
+ "type": "string"
1112
+ },
1113
+ {
1114
+ "type": "null"
1115
+ }
1116
+ ]
1117
+ },
1118
+ "description": {
1119
+ "anyOf": [
1120
+ {
1121
+ "type": "string"
1122
+ },
1123
+ {
1124
+ "type": "null"
1125
+ }
1126
+ ]
1127
+ }
1128
+ },
1129
+ "additionalProperties": false
1130
+ }
1131
+ },
1132
+ "additionalProperties": false
1133
+ },
1134
+ "seriesAssignments": {
1135
+ "type": "array",
1136
+ "items": {
1137
+ "type": "object",
1138
+ "properties": {
1139
+ "seriesPath": {
1140
+ "type": "string",
1141
+ "minLength": 1
1142
+ },
1143
+ "editionYear": {
1144
+ "type": "integer",
1145
+ "minimum": 1000,
1146
+ "maximum": 9999
1147
+ }
1148
+ },
1149
+ "required": [
1150
+ "seriesPath",
1151
+ "editionYear"
1152
+ ],
1153
+ "additionalProperties": false
1154
+ }
1155
+ }
1156
+ },
1157
+ "additionalProperties": false
1158
+ },
1159
+ "itemId": {
1160
+ "type": "string",
1161
+ "minLength": 1,
1162
+ "maxLength": 100
1163
+ }
1164
+ },
1165
+ "required": [
1166
+ "id",
1167
+ "expectedUpdatedAt",
1168
+ "patch",
1169
+ "itemId"
1170
+ ],
1171
+ "additionalProperties": false
1172
+ }
1173
+ }
1174
+ },
1175
+ "required": [
1176
+ "schemaVersion",
1177
+ "operation",
1178
+ "items"
1179
+ ],
1180
+ "additionalProperties": false
1181
+ },
1182
+ {
1183
+ "type": "object",
1184
+ "properties": {
1185
+ "schemaVersion": {
1186
+ "type": "string",
1187
+ "const": "v1"
1188
+ },
1189
+ "operation": {
1190
+ "type": "string",
1191
+ "const": "exercise.import"
1192
+ },
1193
+ "items": {
1194
+ "minItems": 1,
1195
+ "maxItems": 100,
1196
+ "type": "array",
1197
+ "items": {
1198
+ "type": "object",
1199
+ "properties": {
1200
+ "itemId": {
1201
+ "type": "string",
1202
+ "minLength": 1,
1203
+ "maxLength": 100
1204
+ },
1205
+ "exerciseSheetId": {
1206
+ "type": "string",
1207
+ "format": "uuid",
1208
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1209
+ },
1210
+ "sources": {
1211
+ "minItems": 1,
1212
+ "type": "array",
1213
+ "items": {
1214
+ "oneOf": [
1215
+ {
1216
+ "type": "object",
1217
+ "properties": {
1218
+ "kind": {
1219
+ "type": "string",
1220
+ "const": "local"
1221
+ },
1222
+ "path": {
1223
+ "type": "string",
1224
+ "minLength": 1
1225
+ },
1226
+ "relativePath": {
1227
+ "type": "string",
1228
+ "minLength": 1
1229
+ },
1230
+ "sourceId": {
1231
+ "type": "string",
1232
+ "minLength": 1
1233
+ }
1234
+ },
1235
+ "required": [
1236
+ "kind",
1237
+ "path"
1238
+ ],
1239
+ "additionalProperties": false
1240
+ },
1241
+ {
1242
+ "type": "object",
1243
+ "properties": {
1244
+ "kind": {
1245
+ "type": "string",
1246
+ "const": "directory"
1247
+ },
1248
+ "path": {
1249
+ "type": "string",
1250
+ "minLength": 1
1251
+ },
1252
+ "relativeRoot": {
1253
+ "type": "string",
1254
+ "minLength": 1
1255
+ },
1256
+ "sourceId": {
1257
+ "type": "string",
1258
+ "minLength": 1
1259
+ }
1260
+ },
1261
+ "required": [
1262
+ "kind",
1263
+ "path"
1264
+ ],
1265
+ "additionalProperties": false
1266
+ },
1267
+ {
1268
+ "type": "object",
1269
+ "properties": {
1270
+ "kind": {
1271
+ "type": "string",
1272
+ "const": "url"
1273
+ },
1274
+ "url": {
1275
+ "type": "string",
1276
+ "format": "uri"
1277
+ },
1278
+ "relativePath": {
1279
+ "type": "string",
1280
+ "minLength": 1
1281
+ },
1282
+ "sourceId": {
1283
+ "type": "string",
1284
+ "minLength": 1
1285
+ }
1286
+ },
1287
+ "required": [
1288
+ "kind",
1289
+ "url"
1290
+ ],
1291
+ "additionalProperties": false
1292
+ }
1293
+ ]
1294
+ }
1295
+ },
1296
+ "targetLanguages": {
1297
+ "minItems": 1,
1298
+ "type": "array",
1299
+ "items": {
1300
+ "type": "string",
1301
+ "enum": [
1302
+ "english",
1303
+ "hungarian",
1304
+ "german",
1305
+ "french",
1306
+ "spanish",
1307
+ "italian"
1308
+ ]
1309
+ }
1310
+ }
1311
+ },
1312
+ "required": [
1313
+ "itemId",
1314
+ "sources"
1315
+ ],
1316
+ "additionalProperties": false
1317
+ }
1318
+ }
1319
+ },
1320
+ "required": [
1321
+ "schemaVersion",
1322
+ "operation",
1323
+ "items"
1324
+ ],
1325
+ "additionalProperties": false
1326
+ },
1327
+ {
1328
+ "type": "object",
1329
+ "properties": {
1330
+ "schemaVersion": {
1331
+ "type": "string",
1332
+ "const": "v1"
1333
+ },
1334
+ "operation": {
1335
+ "type": "string",
1336
+ "const": "exercise.solution.import"
1337
+ },
1338
+ "items": {
1339
+ "minItems": 1,
1340
+ "maxItems": 100,
1341
+ "type": "array",
1342
+ "items": {
1343
+ "type": "object",
1344
+ "properties": {
1345
+ "itemId": {
1346
+ "type": "string",
1347
+ "minLength": 1,
1348
+ "maxLength": 100
1349
+ },
1350
+ "sources": {
1351
+ "minItems": 1,
1352
+ "type": "array",
1353
+ "items": {
1354
+ "oneOf": [
1355
+ {
1356
+ "type": "object",
1357
+ "properties": {
1358
+ "kind": {
1359
+ "type": "string",
1360
+ "const": "local"
1361
+ },
1362
+ "path": {
1363
+ "type": "string",
1364
+ "minLength": 1
1365
+ },
1366
+ "relativePath": {
1367
+ "type": "string",
1368
+ "minLength": 1
1369
+ },
1370
+ "sourceId": {
1371
+ "type": "string",
1372
+ "minLength": 1
1373
+ }
1374
+ },
1375
+ "required": [
1376
+ "kind",
1377
+ "path"
1378
+ ],
1379
+ "additionalProperties": false
1380
+ },
1381
+ {
1382
+ "type": "object",
1383
+ "properties": {
1384
+ "kind": {
1385
+ "type": "string",
1386
+ "const": "directory"
1387
+ },
1388
+ "path": {
1389
+ "type": "string",
1390
+ "minLength": 1
1391
+ },
1392
+ "relativeRoot": {
1393
+ "type": "string",
1394
+ "minLength": 1
1395
+ },
1396
+ "sourceId": {
1397
+ "type": "string",
1398
+ "minLength": 1
1399
+ }
1400
+ },
1401
+ "required": [
1402
+ "kind",
1403
+ "path"
1404
+ ],
1405
+ "additionalProperties": false
1406
+ },
1407
+ {
1408
+ "type": "object",
1409
+ "properties": {
1410
+ "kind": {
1411
+ "type": "string",
1412
+ "const": "url"
1413
+ },
1414
+ "url": {
1415
+ "type": "string",
1416
+ "format": "uri"
1417
+ },
1418
+ "relativePath": {
1419
+ "type": "string",
1420
+ "minLength": 1
1421
+ },
1422
+ "sourceId": {
1423
+ "type": "string",
1424
+ "minLength": 1
1425
+ }
1426
+ },
1427
+ "required": [
1428
+ "kind",
1429
+ "url"
1430
+ ],
1431
+ "additionalProperties": false
1432
+ }
1433
+ ]
1434
+ }
1435
+ },
1436
+ "exerciseId": {
1437
+ "type": "string",
1438
+ "format": "uuid",
1439
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1440
+ }
1441
+ },
1442
+ "required": [
1443
+ "itemId",
1444
+ "sources",
1445
+ "exerciseId"
1446
+ ],
1447
+ "additionalProperties": false
1448
+ }
1449
+ }
1450
+ },
1451
+ "required": [
1452
+ "schemaVersion",
1453
+ "operation",
1454
+ "items"
1455
+ ],
1456
+ "additionalProperties": false
1457
+ },
1458
+ {
1459
+ "type": "object",
1460
+ "properties": {
1461
+ "schemaVersion": {
1462
+ "type": "string",
1463
+ "const": "v1"
1464
+ },
1465
+ "operation": {
1466
+ "type": "string",
1467
+ "const": "sheet.solution.import"
1468
+ },
1469
+ "items": {
1470
+ "minItems": 1,
1471
+ "maxItems": 100,
1472
+ "type": "array",
1473
+ "items": {
1474
+ "type": "object",
1475
+ "properties": {
1476
+ "itemId": {
1477
+ "type": "string",
1478
+ "minLength": 1,
1479
+ "maxLength": 100
1480
+ },
1481
+ "exerciseSheetId": {
1482
+ "type": "string",
1483
+ "format": "uuid",
1484
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1485
+ },
1486
+ "sources": {
1487
+ "minItems": 1,
1488
+ "type": "array",
1489
+ "items": {
1490
+ "oneOf": [
1491
+ {
1492
+ "type": "object",
1493
+ "properties": {
1494
+ "kind": {
1495
+ "type": "string",
1496
+ "const": "local"
1497
+ },
1498
+ "path": {
1499
+ "type": "string",
1500
+ "minLength": 1
1501
+ },
1502
+ "relativePath": {
1503
+ "type": "string",
1504
+ "minLength": 1
1505
+ },
1506
+ "sourceId": {
1507
+ "type": "string",
1508
+ "minLength": 1
1509
+ }
1510
+ },
1511
+ "required": [
1512
+ "kind",
1513
+ "path"
1514
+ ],
1515
+ "additionalProperties": false
1516
+ },
1517
+ {
1518
+ "type": "object",
1519
+ "properties": {
1520
+ "kind": {
1521
+ "type": "string",
1522
+ "const": "directory"
1523
+ },
1524
+ "path": {
1525
+ "type": "string",
1526
+ "minLength": 1
1527
+ },
1528
+ "relativeRoot": {
1529
+ "type": "string",
1530
+ "minLength": 1
1531
+ },
1532
+ "sourceId": {
1533
+ "type": "string",
1534
+ "minLength": 1
1535
+ }
1536
+ },
1537
+ "required": [
1538
+ "kind",
1539
+ "path"
1540
+ ],
1541
+ "additionalProperties": false
1542
+ },
1543
+ {
1544
+ "type": "object",
1545
+ "properties": {
1546
+ "kind": {
1547
+ "type": "string",
1548
+ "const": "url"
1549
+ },
1550
+ "url": {
1551
+ "type": "string",
1552
+ "format": "uri"
1553
+ },
1554
+ "relativePath": {
1555
+ "type": "string",
1556
+ "minLength": 1
1557
+ },
1558
+ "sourceId": {
1559
+ "type": "string",
1560
+ "minLength": 1
1561
+ }
1562
+ },
1563
+ "required": [
1564
+ "kind",
1565
+ "url"
1566
+ ],
1567
+ "additionalProperties": false
1568
+ }
1569
+ ]
1570
+ }
1571
+ }
1572
+ },
1573
+ "required": [
1574
+ "itemId",
1575
+ "exerciseSheetId",
1576
+ "sources"
1577
+ ],
1578
+ "additionalProperties": false
1579
+ }
1580
+ }
1581
+ },
1582
+ "required": [
1583
+ "schemaVersion",
1584
+ "operation",
1585
+ "items"
1586
+ ],
1587
+ "additionalProperties": false
1588
+ },
1589
+ {
1590
+ "type": "object",
1591
+ "properties": {
1592
+ "schemaVersion": {
1593
+ "type": "string",
1594
+ "const": "v1"
1595
+ },
1596
+ "operation": {
1597
+ "type": "string",
1598
+ "const": "sheet.translation.import"
1599
+ },
1600
+ "items": {
1601
+ "minItems": 1,
1602
+ "maxItems": 100,
1603
+ "type": "array",
1604
+ "items": {
1605
+ "type": "object",
1606
+ "properties": {
1607
+ "itemId": {
1608
+ "type": "string",
1609
+ "minLength": 1,
1610
+ "maxLength": 100
1611
+ },
1612
+ "exerciseSheetId": {
1613
+ "type": "string",
1614
+ "format": "uuid",
1615
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
1616
+ },
1617
+ "sources": {
1618
+ "minItems": 1,
1619
+ "type": "array",
1620
+ "items": {
1621
+ "oneOf": [
1622
+ {
1623
+ "type": "object",
1624
+ "properties": {
1625
+ "kind": {
1626
+ "type": "string",
1627
+ "const": "local"
1628
+ },
1629
+ "path": {
1630
+ "type": "string",
1631
+ "minLength": 1
1632
+ },
1633
+ "relativePath": {
1634
+ "type": "string",
1635
+ "minLength": 1
1636
+ },
1637
+ "sourceId": {
1638
+ "type": "string",
1639
+ "minLength": 1
1640
+ }
1641
+ },
1642
+ "required": [
1643
+ "kind",
1644
+ "path"
1645
+ ],
1646
+ "additionalProperties": false
1647
+ },
1648
+ {
1649
+ "type": "object",
1650
+ "properties": {
1651
+ "kind": {
1652
+ "type": "string",
1653
+ "const": "directory"
1654
+ },
1655
+ "path": {
1656
+ "type": "string",
1657
+ "minLength": 1
1658
+ },
1659
+ "relativeRoot": {
1660
+ "type": "string",
1661
+ "minLength": 1
1662
+ },
1663
+ "sourceId": {
1664
+ "type": "string",
1665
+ "minLength": 1
1666
+ }
1667
+ },
1668
+ "required": [
1669
+ "kind",
1670
+ "path"
1671
+ ],
1672
+ "additionalProperties": false
1673
+ },
1674
+ {
1675
+ "type": "object",
1676
+ "properties": {
1677
+ "kind": {
1678
+ "type": "string",
1679
+ "const": "url"
1680
+ },
1681
+ "url": {
1682
+ "type": "string",
1683
+ "format": "uri"
1684
+ },
1685
+ "relativePath": {
1686
+ "type": "string",
1687
+ "minLength": 1
1688
+ },
1689
+ "sourceId": {
1690
+ "type": "string",
1691
+ "minLength": 1
1692
+ }
1693
+ },
1694
+ "required": [
1695
+ "kind",
1696
+ "url"
1697
+ ],
1698
+ "additionalProperties": false
1699
+ }
1700
+ ]
1701
+ }
1702
+ },
1703
+ "sourceLanguage": {
1704
+ "type": "string",
1705
+ "enum": [
1706
+ "english",
1707
+ "hungarian",
1708
+ "german",
1709
+ "french",
1710
+ "spanish",
1711
+ "italian"
1712
+ ]
1713
+ },
1714
+ "targetLanguage": {
1715
+ "type": "string",
1716
+ "enum": [
1717
+ "english",
1718
+ "hungarian",
1719
+ "german",
1720
+ "french",
1721
+ "spanish",
1722
+ "italian"
1723
+ ]
1724
+ }
1725
+ },
1726
+ "required": [
1727
+ "itemId",
1728
+ "exerciseSheetId",
1729
+ "sources",
1730
+ "sourceLanguage",
1731
+ "targetLanguage"
1732
+ ],
1733
+ "additionalProperties": false
1734
+ }
1735
+ }
1736
+ },
1737
+ "required": [
1738
+ "schemaVersion",
1739
+ "operation",
1740
+ "items"
1741
+ ],
1742
+ "additionalProperties": false
1743
+ },
1744
+ {
1745
+ "type": "object",
1746
+ "properties": {
1747
+ "schemaVersion": {
1748
+ "type": "string",
1749
+ "const": "v1"
1750
+ },
1751
+ "operation": {
1752
+ "type": "string",
1753
+ "const": "sheet.import"
1754
+ },
1755
+ "items": {
1756
+ "minItems": 1,
1757
+ "maxItems": 20,
1758
+ "type": "array",
1759
+ "items": {
1760
+ "anyOf": [
1761
+ {
1762
+ "type": "object",
1763
+ "properties": {
1764
+ "itemId": {
1765
+ "type": "string",
1766
+ "minLength": 1,
1767
+ "maxLength": 100
1768
+ },
1769
+ "targetFolderPath": {
1770
+ "anyOf": [
1771
+ {
1772
+ "type": "string",
1773
+ "minLength": 1
1774
+ },
1775
+ {
1776
+ "type": "null"
1777
+ }
1778
+ ]
1779
+ },
1780
+ "title": {
1781
+ "type": "string",
1782
+ "minLength": 1
1783
+ },
1784
+ "targetLanguages": {
1785
+ "minItems": 1,
1786
+ "type": "array",
1787
+ "items": {
1788
+ "type": "string",
1789
+ "enum": [
1790
+ "english",
1791
+ "hungarian",
1792
+ "german",
1793
+ "french",
1794
+ "spanish",
1795
+ "italian"
1796
+ ]
1797
+ }
1798
+ },
1799
+ "sources": {
1800
+ "minItems": 1,
1801
+ "type": "array",
1802
+ "items": {
1803
+ "oneOf": [
1804
+ {
1805
+ "type": "object",
1806
+ "properties": {
1807
+ "kind": {
1808
+ "type": "string",
1809
+ "const": "local"
1810
+ },
1811
+ "path": {
1812
+ "type": "string",
1813
+ "minLength": 1
1814
+ },
1815
+ "relativePath": {
1816
+ "type": "string",
1817
+ "minLength": 1
1818
+ },
1819
+ "sourceId": {
1820
+ "type": "string",
1821
+ "minLength": 1
1822
+ }
1823
+ },
1824
+ "required": [
1825
+ "kind",
1826
+ "path"
1827
+ ],
1828
+ "additionalProperties": false
1829
+ },
1830
+ {
1831
+ "type": "object",
1832
+ "properties": {
1833
+ "kind": {
1834
+ "type": "string",
1835
+ "const": "directory"
1836
+ },
1837
+ "path": {
1838
+ "type": "string",
1839
+ "minLength": 1
1840
+ },
1841
+ "relativeRoot": {
1842
+ "type": "string",
1843
+ "minLength": 1
1844
+ },
1845
+ "sourceId": {
1846
+ "type": "string",
1847
+ "minLength": 1
1848
+ }
1849
+ },
1850
+ "required": [
1851
+ "kind",
1852
+ "path"
1853
+ ],
1854
+ "additionalProperties": false
1855
+ },
1856
+ {
1857
+ "type": "object",
1858
+ "properties": {
1859
+ "kind": {
1860
+ "type": "string",
1861
+ "const": "url"
1862
+ },
1863
+ "url": {
1864
+ "type": "string",
1865
+ "format": "uri"
1866
+ },
1867
+ "relativePath": {
1868
+ "type": "string",
1869
+ "minLength": 1
1870
+ },
1871
+ "sourceId": {
1872
+ "type": "string",
1873
+ "minLength": 1
1874
+ }
1875
+ },
1876
+ "required": [
1877
+ "kind",
1878
+ "url"
1879
+ ],
1880
+ "additionalProperties": false
1881
+ }
1882
+ ]
1883
+ }
1884
+ }
1885
+ },
1886
+ "required": [
1887
+ "itemId",
1888
+ "sources"
1889
+ ],
1890
+ "additionalProperties": false
1891
+ },
1892
+ {
1893
+ "type": "object",
1894
+ "properties": {
1895
+ "itemId": {
1896
+ "type": "string",
1897
+ "minLength": 1,
1898
+ "maxLength": 100
1899
+ },
1900
+ "sources": {
1901
+ "minItems": 1,
1902
+ "type": "array",
1903
+ "items": {
1904
+ "oneOf": [
1905
+ {
1906
+ "type": "object",
1907
+ "properties": {
1908
+ "kind": {
1909
+ "type": "string",
1910
+ "const": "local"
1911
+ },
1912
+ "path": {
1913
+ "type": "string",
1914
+ "minLength": 1
1915
+ },
1916
+ "relativePath": {
1917
+ "type": "string",
1918
+ "minLength": 1
1919
+ },
1920
+ "sourceId": {
1921
+ "type": "string",
1922
+ "minLength": 1
1923
+ }
1924
+ },
1925
+ "required": [
1926
+ "kind",
1927
+ "path"
1928
+ ],
1929
+ "additionalProperties": false
1930
+ },
1931
+ {
1932
+ "type": "object",
1933
+ "properties": {
1934
+ "kind": {
1935
+ "type": "string",
1936
+ "const": "directory"
1937
+ },
1938
+ "path": {
1939
+ "type": "string",
1940
+ "minLength": 1
1941
+ },
1942
+ "relativeRoot": {
1943
+ "type": "string",
1944
+ "minLength": 1
1945
+ },
1946
+ "sourceId": {
1947
+ "type": "string",
1948
+ "minLength": 1
1949
+ }
1950
+ },
1951
+ "required": [
1952
+ "kind",
1953
+ "path"
1954
+ ],
1955
+ "additionalProperties": false
1956
+ },
1957
+ {
1958
+ "type": "object",
1959
+ "properties": {
1960
+ "kind": {
1961
+ "type": "string",
1962
+ "const": "url"
1963
+ },
1964
+ "url": {
1965
+ "type": "string",
1966
+ "format": "uri"
1967
+ },
1968
+ "relativePath": {
1969
+ "type": "string",
1970
+ "minLength": 1
1971
+ },
1972
+ "sourceId": {
1973
+ "type": "string",
1974
+ "minLength": 1
1975
+ }
1976
+ },
1977
+ "required": [
1978
+ "kind",
1979
+ "url"
1980
+ ],
1981
+ "additionalProperties": false
1982
+ }
1983
+ ]
1984
+ }
1985
+ },
1986
+ "components": {
1987
+ "minItems": 1,
1988
+ "maxItems": 100,
1989
+ "type": "array",
1990
+ "items": {
1991
+ "type": "object",
1992
+ "properties": {
1993
+ "componentId": {
1994
+ "type": "string",
1995
+ "pattern": "^[a-zA-Z0-9_-]{1,80}$"
1996
+ },
1997
+ "description": {
1998
+ "type": "string",
1999
+ "minLength": 1
2000
+ },
2001
+ "targetFolderPath": {
2002
+ "anyOf": [
2003
+ {
2004
+ "type": "string",
2005
+ "minLength": 1
2006
+ },
2007
+ {
2008
+ "type": "null"
2009
+ }
2010
+ ]
2011
+ },
2012
+ "title": {
2013
+ "type": "string",
2014
+ "minLength": 1
2015
+ },
2016
+ "targetLanguages": {
2017
+ "minItems": 1,
2018
+ "type": "array",
2019
+ "items": {
2020
+ "type": "string",
2021
+ "enum": [
2022
+ "english",
2023
+ "hungarian",
2024
+ "german",
2025
+ "french",
2026
+ "spanish",
2027
+ "italian"
2028
+ ]
2029
+ }
2030
+ }
2031
+ },
2032
+ "required": [
2033
+ "componentId",
2034
+ "description"
2035
+ ],
2036
+ "additionalProperties": false
2037
+ }
2038
+ }
2039
+ },
2040
+ "required": [
2041
+ "itemId",
2042
+ "sources",
2043
+ "components"
2044
+ ],
2045
+ "additionalProperties": false
2046
+ },
2047
+ {
2048
+ "type": "object",
2049
+ "properties": {
2050
+ "itemId": {
2051
+ "type": "string",
2052
+ "minLength": 1,
2053
+ "maxLength": 100
2054
+ },
2055
+ "targetFolderPath": {
2056
+ "anyOf": [
2057
+ {
2058
+ "type": "string",
2059
+ "minLength": 1
2060
+ },
2061
+ {
2062
+ "type": "null"
2063
+ }
2064
+ ]
2065
+ },
2066
+ "title": {
2067
+ "type": "string",
2068
+ "minLength": 1
2069
+ },
2070
+ "base": {
2071
+ "type": "object",
2072
+ "properties": {
2073
+ "language": {
2074
+ "type": "string",
2075
+ "enum": [
2076
+ "english",
2077
+ "hungarian",
2078
+ "german",
2079
+ "french",
2080
+ "spanish",
2081
+ "italian"
2082
+ ]
2083
+ },
2084
+ "sources": {
2085
+ "minItems": 1,
2086
+ "type": "array",
2087
+ "items": {
2088
+ "oneOf": [
2089
+ {
2090
+ "type": "object",
2091
+ "properties": {
2092
+ "kind": {
2093
+ "type": "string",
2094
+ "const": "local"
2095
+ },
2096
+ "path": {
2097
+ "type": "string",
2098
+ "minLength": 1
2099
+ },
2100
+ "relativePath": {
2101
+ "type": "string",
2102
+ "minLength": 1
2103
+ },
2104
+ "sourceId": {
2105
+ "type": "string",
2106
+ "minLength": 1
2107
+ }
2108
+ },
2109
+ "required": [
2110
+ "kind",
2111
+ "path"
2112
+ ],
2113
+ "additionalProperties": false
2114
+ },
2115
+ {
2116
+ "type": "object",
2117
+ "properties": {
2118
+ "kind": {
2119
+ "type": "string",
2120
+ "const": "directory"
2121
+ },
2122
+ "path": {
2123
+ "type": "string",
2124
+ "minLength": 1
2125
+ },
2126
+ "relativeRoot": {
2127
+ "type": "string",
2128
+ "minLength": 1
2129
+ },
2130
+ "sourceId": {
2131
+ "type": "string",
2132
+ "minLength": 1
2133
+ }
2134
+ },
2135
+ "required": [
2136
+ "kind",
2137
+ "path"
2138
+ ],
2139
+ "additionalProperties": false
2140
+ },
2141
+ {
2142
+ "type": "object",
2143
+ "properties": {
2144
+ "kind": {
2145
+ "type": "string",
2146
+ "const": "url"
2147
+ },
2148
+ "url": {
2149
+ "type": "string",
2150
+ "format": "uri"
2151
+ },
2152
+ "relativePath": {
2153
+ "type": "string",
2154
+ "minLength": 1
2155
+ },
2156
+ "sourceId": {
2157
+ "type": "string",
2158
+ "minLength": 1
2159
+ }
2160
+ },
2161
+ "required": [
2162
+ "kind",
2163
+ "url"
2164
+ ],
2165
+ "additionalProperties": false
2166
+ }
2167
+ ]
2168
+ }
2169
+ }
2170
+ },
2171
+ "required": [
2172
+ "language",
2173
+ "sources"
2174
+ ],
2175
+ "additionalProperties": false
2176
+ },
2177
+ "translations": {
2178
+ "minItems": 1,
2179
+ "type": "array",
2180
+ "items": {
2181
+ "type": "object",
2182
+ "properties": {
2183
+ "language": {
2184
+ "type": "string",
2185
+ "enum": [
2186
+ "english",
2187
+ "hungarian",
2188
+ "german",
2189
+ "french",
2190
+ "spanish",
2191
+ "italian"
2192
+ ]
2193
+ },
2194
+ "sources": {
2195
+ "minItems": 1,
2196
+ "type": "array",
2197
+ "items": {
2198
+ "oneOf": [
2199
+ {
2200
+ "type": "object",
2201
+ "properties": {
2202
+ "kind": {
2203
+ "type": "string",
2204
+ "const": "local"
2205
+ },
2206
+ "path": {
2207
+ "type": "string",
2208
+ "minLength": 1
2209
+ },
2210
+ "relativePath": {
2211
+ "type": "string",
2212
+ "minLength": 1
2213
+ },
2214
+ "sourceId": {
2215
+ "type": "string",
2216
+ "minLength": 1
2217
+ }
2218
+ },
2219
+ "required": [
2220
+ "kind",
2221
+ "path"
2222
+ ],
2223
+ "additionalProperties": false
2224
+ },
2225
+ {
2226
+ "type": "object",
2227
+ "properties": {
2228
+ "kind": {
2229
+ "type": "string",
2230
+ "const": "directory"
2231
+ },
2232
+ "path": {
2233
+ "type": "string",
2234
+ "minLength": 1
2235
+ },
2236
+ "relativeRoot": {
2237
+ "type": "string",
2238
+ "minLength": 1
2239
+ },
2240
+ "sourceId": {
2241
+ "type": "string",
2242
+ "minLength": 1
2243
+ }
2244
+ },
2245
+ "required": [
2246
+ "kind",
2247
+ "path"
2248
+ ],
2249
+ "additionalProperties": false
2250
+ },
2251
+ {
2252
+ "type": "object",
2253
+ "properties": {
2254
+ "kind": {
2255
+ "type": "string",
2256
+ "const": "url"
2257
+ },
2258
+ "url": {
2259
+ "type": "string",
2260
+ "format": "uri"
2261
+ },
2262
+ "relativePath": {
2263
+ "type": "string",
2264
+ "minLength": 1
2265
+ },
2266
+ "sourceId": {
2267
+ "type": "string",
2268
+ "minLength": 1
2269
+ }
2270
+ },
2271
+ "required": [
2272
+ "kind",
2273
+ "url"
2274
+ ],
2275
+ "additionalProperties": false
2276
+ }
2277
+ ]
2278
+ }
2279
+ }
2280
+ },
2281
+ "required": [
2282
+ "language",
2283
+ "sources"
2284
+ ],
2285
+ "additionalProperties": false
2286
+ }
2287
+ }
2288
+ },
2289
+ "required": [
2290
+ "itemId",
2291
+ "base",
2292
+ "translations"
2293
+ ],
2294
+ "additionalProperties": false
2295
+ }
2296
+ ]
2297
+ }
2298
+ }
2299
+ },
2300
+ "required": [
2301
+ "schemaVersion",
2302
+ "operation",
2303
+ "items"
2304
+ ],
2305
+ "additionalProperties": false
2306
+ }
2307
+ ]
2308
+ }