minecraft-data 3.4.0 → 3.6.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.
Files changed (38) hide show
  1. package/.github/workflows/npm-publish.yml +1 -1
  2. package/data.js +46 -1
  3. package/doc/history.md +9 -0
  4. package/index.d.ts +21 -1
  5. package/minecraft-data/README.md +2 -2
  6. package/minecraft-data/data/bedrock/1.19.1/proto.yml +3575 -0
  7. package/minecraft-data/data/bedrock/1.19.1/types.yml +1887 -0
  8. package/minecraft-data/data/bedrock/1.19.10/protocol.json +10458 -0
  9. package/minecraft-data/data/bedrock/1.19.10/version.json +6 -0
  10. package/minecraft-data/data/bedrock/common/protocolVersions.json +6 -0
  11. package/minecraft-data/data/bedrock/common/versions.json +2 -1
  12. package/minecraft-data/data/bedrock/latest/proto.yml +127 -21
  13. package/minecraft-data/data/bedrock/latest/types.yml +71 -3
  14. package/minecraft-data/data/dataPaths.json +46 -1
  15. package/minecraft-data/data/pc/1.18/blockLoot.json +3783 -1868
  16. package/minecraft-data/data/pc/1.18/entityLoot.json +23 -2
  17. package/minecraft-data/data/pc/1.18/language.json +436 -93
  18. package/minecraft-data/data/pc/1.19/biomes.json +695 -0
  19. package/minecraft-data/data/pc/1.19/blockCollisionShapes.json +120584 -0
  20. package/minecraft-data/data/pc/1.19/blockLoot.json +12419 -0
  21. package/minecraft-data/data/pc/1.19/blocks.json +34097 -0
  22. package/minecraft-data/data/pc/1.19/effects.json +200 -0
  23. package/minecraft-data/data/pc/1.19/enchantments.json +875 -0
  24. package/minecraft-data/data/pc/1.19/entities.json +1182 -0
  25. package/minecraft-data/data/pc/1.19/entityLoot.json +1218 -0
  26. package/minecraft-data/data/pc/1.19/foods.json +402 -0
  27. package/minecraft-data/data/pc/1.19/instruments.json +66 -0
  28. package/minecraft-data/data/pc/1.19/items.json +7613 -0
  29. package/minecraft-data/data/pc/1.19/language.json +5338 -0
  30. package/minecraft-data/data/pc/1.19/materials.json +154 -0
  31. package/minecraft-data/data/pc/1.19/particles.json +374 -0
  32. package/minecraft-data/data/pc/1.19/tints.json +429 -0
  33. package/minecraft-data/data/pc/1.19/version.json +5 -0
  34. package/minecraft-data/data/pc/common/protocolVersions.json +49 -0
  35. package/minecraft-data/data/pc/common/versions.json +2 -1
  36. package/minecraft-data/doc/history.md +28 -18
  37. package/minecraft-data/schemas/biomes_schema.json +0 -1
  38. package/package.json +3 -3
@@ -0,0 +1,695 @@
1
+ [
2
+ {
3
+ "id": 0,
4
+ "name": "the_void",
5
+ "category": "none",
6
+ "temperature": 0.5,
7
+ "precipitation": "none",
8
+ "dimension": "overworld",
9
+ "displayName": "The Void",
10
+ "color": 0,
11
+ "rainfall": 0.5
12
+ },
13
+ {
14
+ "id": 1,
15
+ "name": "plains",
16
+ "category": "plains",
17
+ "temperature": 0.8,
18
+ "precipitation": "rain",
19
+ "dimension": "overworld",
20
+ "displayName": "Plains",
21
+ "color": 9286496,
22
+ "rainfall": 0.4
23
+ },
24
+ {
25
+ "id": 2,
26
+ "name": "sunflower_plains",
27
+ "category": "plains",
28
+ "temperature": 0.8,
29
+ "precipitation": "rain",
30
+ "dimension": "overworld",
31
+ "displayName": "Sunflower Plains",
32
+ "color": 11918216,
33
+ "rainfall": 0.4
34
+ },
35
+ {
36
+ "id": 3,
37
+ "name": "snowy_plains",
38
+ "category": "plains",
39
+ "temperature": 0.0,
40
+ "precipitation": "snow",
41
+ "dimension": "overworld",
42
+ "displayName": "Snowy Plains",
43
+ "color": 16777215,
44
+ "rainfall": 0.5
45
+ },
46
+ {
47
+ "id": 4,
48
+ "name": "ice_spikes",
49
+ "category": "ice",
50
+ "temperature": 0.0,
51
+ "precipitation": "snow",
52
+ "dimension": "overworld",
53
+ "displayName": "Ice Spikes",
54
+ "color": 11853020,
55
+ "rainfall": 0.5
56
+ },
57
+ {
58
+ "id": 5,
59
+ "name": "desert",
60
+ "category": "desert",
61
+ "temperature": 2.0,
62
+ "precipitation": "none",
63
+ "dimension": "overworld",
64
+ "displayName": "Desert",
65
+ "color": 16421912,
66
+ "rainfall": 0.0
67
+ },
68
+ {
69
+ "id": 6,
70
+ "name": "swamp",
71
+ "category": "swamp",
72
+ "temperature": 0.8,
73
+ "precipitation": "rain",
74
+ "dimension": "overworld",
75
+ "displayName": "Swamp",
76
+ "color": 522674,
77
+ "rainfall": 0.9
78
+ },
79
+ {
80
+ "id": 7,
81
+ "name": "mangrove_swamp",
82
+ "category": "forest",
83
+ "temperature": 0.8,
84
+ "precipitation": "rain",
85
+ "dimension": "overworld",
86
+ "displayName": "Mangrove Swamp",
87
+ "color": 0,
88
+ "rainfall": 0.9
89
+ },
90
+ {
91
+ "id": 8,
92
+ "name": "forest",
93
+ "category": "forest",
94
+ "temperature": 0.7,
95
+ "precipitation": "rain",
96
+ "dimension": "overworld",
97
+ "displayName": "Forest",
98
+ "color": 353825,
99
+ "rainfall": 0.8
100
+ },
101
+ {
102
+ "id": 9,
103
+ "name": "flower_forest",
104
+ "category": "forest",
105
+ "temperature": 0.7,
106
+ "precipitation": "rain",
107
+ "dimension": "overworld",
108
+ "displayName": "Flower Forest",
109
+ "color": 2985545,
110
+ "rainfall": 0.8
111
+ },
112
+ {
113
+ "id": 10,
114
+ "name": "birch_forest",
115
+ "category": "forest",
116
+ "temperature": 0.6,
117
+ "precipitation": "rain",
118
+ "dimension": "overworld",
119
+ "displayName": "Birch Forest",
120
+ "color": 3175492,
121
+ "rainfall": 0.6
122
+ },
123
+ {
124
+ "id": 11,
125
+ "name": "dark_forest",
126
+ "category": "forest",
127
+ "temperature": 0.7,
128
+ "precipitation": "rain",
129
+ "dimension": "overworld",
130
+ "displayName": "Dark Forest",
131
+ "color": 4215066,
132
+ "rainfall": 0.8
133
+ },
134
+ {
135
+ "id": 12,
136
+ "name": "old_growth_birch_forest",
137
+ "category": "forest",
138
+ "temperature": 0.6,
139
+ "precipitation": "rain",
140
+ "dimension": "overworld",
141
+ "displayName": "Old Growth Birch Forest",
142
+ "color": 5807212,
143
+ "rainfall": 0.6
144
+ },
145
+ {
146
+ "id": 13,
147
+ "name": "old_growth_pine_taiga",
148
+ "category": "taiga",
149
+ "temperature": 0.3,
150
+ "precipitation": "rain",
151
+ "dimension": "overworld",
152
+ "displayName": "Old Growth Pine Taiga",
153
+ "color": 5858897,
154
+ "rainfall": 0.8
155
+ },
156
+ {
157
+ "id": 14,
158
+ "name": "old_growth_spruce_taiga",
159
+ "category": "taiga",
160
+ "temperature": 0.25,
161
+ "precipitation": "rain",
162
+ "dimension": "overworld",
163
+ "displayName": "Old Growth Spruce Taiga",
164
+ "color": 8490617,
165
+ "rainfall": 0.8
166
+ },
167
+ {
168
+ "id": 15,
169
+ "name": "taiga",
170
+ "category": "taiga",
171
+ "temperature": 0.25,
172
+ "precipitation": "rain",
173
+ "dimension": "overworld",
174
+ "displayName": "Taiga",
175
+ "color": 747097,
176
+ "rainfall": 0.8
177
+ },
178
+ {
179
+ "id": 16,
180
+ "name": "snowy_taiga",
181
+ "category": "taiga",
182
+ "temperature": -0.5,
183
+ "precipitation": "snow",
184
+ "dimension": "overworld",
185
+ "displayName": "Snowy Taiga",
186
+ "color": 3233098,
187
+ "rainfall": 0.4
188
+ },
189
+ {
190
+ "id": 17,
191
+ "name": "savanna",
192
+ "category": "savanna",
193
+ "temperature": 2.0,
194
+ "precipitation": "none",
195
+ "dimension": "overworld",
196
+ "displayName": "Savanna",
197
+ "color": 12431967,
198
+ "rainfall": 0.0
199
+ },
200
+ {
201
+ "id": 18,
202
+ "name": "savanna_plateau",
203
+ "category": "savanna",
204
+ "temperature": 2.0,
205
+ "precipitation": "none",
206
+ "dimension": "overworld",
207
+ "displayName": "Savanna Plateau",
208
+ "color": 10984804,
209
+ "rainfall": 0.0
210
+ },
211
+ {
212
+ "id": 19,
213
+ "name": "windswept_hills",
214
+ "category": "extreme_hills",
215
+ "temperature": 0.2,
216
+ "precipitation": "rain",
217
+ "dimension": "overworld",
218
+ "displayName": "Windswept Hills",
219
+ "color": 6316128,
220
+ "rainfall": 0.3
221
+ },
222
+ {
223
+ "id": 20,
224
+ "name": "windswept_gravelly_hills",
225
+ "category": "extreme_hills",
226
+ "temperature": 0.2,
227
+ "precipitation": "rain",
228
+ "dimension": "overworld",
229
+ "displayName": "Windswept Gravelly Hills",
230
+ "color": 8947848,
231
+ "rainfall": 0.3
232
+ },
233
+ {
234
+ "id": 21,
235
+ "name": "windswept_forest",
236
+ "category": "forest",
237
+ "temperature": 0.2,
238
+ "precipitation": "rain",
239
+ "dimension": "overworld",
240
+ "displayName": "Windswept Forest",
241
+ "color": 2250012,
242
+ "rainfall": 0.3
243
+ },
244
+ {
245
+ "id": 22,
246
+ "name": "windswept_savanna",
247
+ "category": "savanna",
248
+ "temperature": 2.0,
249
+ "precipitation": "none",
250
+ "dimension": "overworld",
251
+ "displayName": "Windswept Savanna",
252
+ "color": 15063687,
253
+ "rainfall": 0.0
254
+ },
255
+ {
256
+ "id": 23,
257
+ "name": "jungle",
258
+ "category": "jungle",
259
+ "temperature": 0.95,
260
+ "precipitation": "rain",
261
+ "dimension": "overworld",
262
+ "displayName": "Jungle",
263
+ "color": 5470985,
264
+ "rainfall": 0.9
265
+ },
266
+ {
267
+ "id": 24,
268
+ "name": "sparse_jungle",
269
+ "category": "jungle",
270
+ "temperature": 0.95,
271
+ "precipitation": "rain",
272
+ "dimension": "overworld",
273
+ "displayName": "Sparse Jungle",
274
+ "color": 6458135,
275
+ "rainfall": 0.8
276
+ },
277
+ {
278
+ "id": 25,
279
+ "name": "bamboo_jungle",
280
+ "category": "jungle",
281
+ "temperature": 0.95,
282
+ "precipitation": "rain",
283
+ "dimension": "overworld",
284
+ "displayName": "Bamboo Jungle",
285
+ "color": 7769620,
286
+ "rainfall": 0.9
287
+ },
288
+ {
289
+ "id": 26,
290
+ "name": "badlands",
291
+ "category": "mesa",
292
+ "temperature": 2.0,
293
+ "precipitation": "none",
294
+ "dimension": "overworld",
295
+ "displayName": "Badlands",
296
+ "color": 14238997,
297
+ "rainfall": 0.0
298
+ },
299
+ {
300
+ "id": 27,
301
+ "name": "eroded_badlands",
302
+ "category": "mesa",
303
+ "temperature": 2.0,
304
+ "precipitation": "none",
305
+ "dimension": "overworld",
306
+ "displayName": "Eroded Badlands",
307
+ "color": 16739645,
308
+ "rainfall": 0.0
309
+ },
310
+ {
311
+ "id": 28,
312
+ "name": "wooded_badlands",
313
+ "category": "mesa",
314
+ "temperature": 2.0,
315
+ "precipitation": "none",
316
+ "dimension": "overworld",
317
+ "displayName": "Wooded Badlands",
318
+ "color": 11573093,
319
+ "rainfall": 0.0
320
+ },
321
+ {
322
+ "id": 29,
323
+ "name": "meadow",
324
+ "category": "mountain",
325
+ "temperature": 0.5,
326
+ "precipitation": "rain",
327
+ "dimension": "overworld",
328
+ "displayName": "Meadow",
329
+ "color": 9217136,
330
+ "rainfall": 0.8
331
+ },
332
+ {
333
+ "id": 30,
334
+ "name": "grove",
335
+ "category": "forest",
336
+ "temperature": -0.2,
337
+ "precipitation": "snow",
338
+ "dimension": "overworld",
339
+ "displayName": "Grove",
340
+ "color": 14675173,
341
+ "rainfall": 0.8
342
+ },
343
+ {
344
+ "id": 31,
345
+ "name": "snowy_slopes",
346
+ "category": "mountain",
347
+ "temperature": -0.3,
348
+ "precipitation": "snow",
349
+ "dimension": "overworld",
350
+ "displayName": "Snowy Slopes",
351
+ "color": 14348785,
352
+ "rainfall": 0.9
353
+ },
354
+ {
355
+ "id": 32,
356
+ "name": "frozen_peaks",
357
+ "category": "ice",
358
+ "temperature": -0.7,
359
+ "precipitation": "snow",
360
+ "dimension": "overworld",
361
+ "displayName": "Frozen Peaks",
362
+ "color": 15399931,
363
+ "rainfall": 0.9
364
+ },
365
+ {
366
+ "id": 33,
367
+ "name": "jagged_peaks",
368
+ "category": "mountain",
369
+ "temperature": -0.7,
370
+ "precipitation": "snow",
371
+ "dimension": "overworld",
372
+ "displayName": "Jagged Peaks",
373
+ "color": 14937325,
374
+ "rainfall": 0.9
375
+ },
376
+ {
377
+ "id": 34,
378
+ "name": "stony_peaks",
379
+ "category": "mountain",
380
+ "temperature": 1.0,
381
+ "precipitation": "rain",
382
+ "dimension": "overworld",
383
+ "displayName": "Stony Peaks",
384
+ "color": 13750737,
385
+ "rainfall": 0.3
386
+ },
387
+ {
388
+ "id": 35,
389
+ "name": "river",
390
+ "category": "river",
391
+ "temperature": 0.5,
392
+ "precipitation": "rain",
393
+ "dimension": "overworld",
394
+ "displayName": "River",
395
+ "color": 255,
396
+ "rainfall": 0.5
397
+ },
398
+ {
399
+ "id": 36,
400
+ "name": "frozen_river",
401
+ "category": "ice",
402
+ "temperature": 0.0,
403
+ "precipitation": "snow",
404
+ "dimension": "overworld",
405
+ "displayName": "Frozen River",
406
+ "color": 10526975,
407
+ "rainfall": 0.5
408
+ },
409
+ {
410
+ "id": 37,
411
+ "name": "beach",
412
+ "category": "beach",
413
+ "temperature": 0.8,
414
+ "precipitation": "rain",
415
+ "dimension": "overworld",
416
+ "displayName": "Beach",
417
+ "color": 16440917,
418
+ "rainfall": 0.4
419
+ },
420
+ {
421
+ "id": 38,
422
+ "name": "snowy_beach",
423
+ "category": "beach",
424
+ "temperature": 0.05,
425
+ "precipitation": "snow",
426
+ "dimension": "overworld",
427
+ "displayName": "Snowy Beach",
428
+ "color": 16445632,
429
+ "rainfall": 0.3
430
+ },
431
+ {
432
+ "id": 39,
433
+ "name": "stony_shore",
434
+ "category": "beach",
435
+ "temperature": 0.2,
436
+ "precipitation": "rain",
437
+ "dimension": "overworld",
438
+ "displayName": "Stony Shore",
439
+ "color": 10658436,
440
+ "rainfall": 0.3
441
+ },
442
+ {
443
+ "id": 40,
444
+ "name": "warm_ocean",
445
+ "category": "ocean",
446
+ "temperature": 0.5,
447
+ "precipitation": "rain",
448
+ "dimension": "overworld",
449
+ "displayName": "Warm Ocean",
450
+ "color": 172,
451
+ "rainfall": 0.5
452
+ },
453
+ {
454
+ "id": 41,
455
+ "name": "lukewarm_ocean",
456
+ "category": "ocean",
457
+ "temperature": 0.5,
458
+ "precipitation": "rain",
459
+ "dimension": "overworld",
460
+ "displayName": "Lukewarm Ocean",
461
+ "color": 144,
462
+ "rainfall": 0.5
463
+ },
464
+ {
465
+ "id": 42,
466
+ "name": "deep_lukewarm_ocean",
467
+ "category": "ocean",
468
+ "temperature": 0.5,
469
+ "precipitation": "rain",
470
+ "dimension": "overworld",
471
+ "displayName": "Deep Lukewarm Ocean",
472
+ "color": 64,
473
+ "rainfall": 0.5
474
+ },
475
+ {
476
+ "id": 43,
477
+ "name": "ocean",
478
+ "category": "ocean",
479
+ "temperature": 0.5,
480
+ "precipitation": "rain",
481
+ "dimension": "overworld",
482
+ "displayName": "Ocean",
483
+ "color": 112,
484
+ "rainfall": 0.5
485
+ },
486
+ {
487
+ "id": 44,
488
+ "name": "deep_ocean",
489
+ "category": "ocean",
490
+ "temperature": 0.5,
491
+ "precipitation": "rain",
492
+ "dimension": "overworld",
493
+ "displayName": "Deep Ocean",
494
+ "color": 48,
495
+ "rainfall": 0.5
496
+ },
497
+ {
498
+ "id": 45,
499
+ "name": "cold_ocean",
500
+ "category": "ocean",
501
+ "temperature": 0.5,
502
+ "precipitation": "rain",
503
+ "dimension": "overworld",
504
+ "displayName": "Cold Ocean",
505
+ "color": 2105456,
506
+ "rainfall": 0.5
507
+ },
508
+ {
509
+ "id": 46,
510
+ "name": "deep_cold_ocean",
511
+ "category": "ocean",
512
+ "temperature": 0.5,
513
+ "precipitation": "rain",
514
+ "dimension": "overworld",
515
+ "displayName": "Deep Cold Ocean",
516
+ "color": 2105400,
517
+ "rainfall": 0.5
518
+ },
519
+ {
520
+ "id": 47,
521
+ "name": "frozen_ocean",
522
+ "category": "ocean",
523
+ "temperature": 0.0,
524
+ "precipitation": "snow",
525
+ "dimension": "overworld",
526
+ "displayName": "Frozen Ocean",
527
+ "color": 7368918,
528
+ "rainfall": 0.5
529
+ },
530
+ {
531
+ "id": 48,
532
+ "name": "deep_frozen_ocean",
533
+ "category": "ocean",
534
+ "temperature": 0.5,
535
+ "precipitation": "rain",
536
+ "dimension": "overworld",
537
+ "displayName": "Deep Frozen Ocean",
538
+ "color": 4210832,
539
+ "rainfall": 0.5
540
+ },
541
+ {
542
+ "id": 49,
543
+ "name": "mushroom_fields",
544
+ "category": "mushroom",
545
+ "temperature": 0.9,
546
+ "precipitation": "rain",
547
+ "dimension": "overworld",
548
+ "displayName": "Mushroom Fields",
549
+ "color": 16711935,
550
+ "rainfall": 1.0
551
+ },
552
+ {
553
+ "id": 50,
554
+ "name": "dripstone_caves",
555
+ "category": "underground",
556
+ "temperature": 0.8,
557
+ "precipitation": "rain",
558
+ "dimension": "overworld",
559
+ "displayName": "Dripstone Caves",
560
+ "color": 12690831,
561
+ "rainfall": 0.4
562
+ },
563
+ {
564
+ "id": 51,
565
+ "name": "lush_caves",
566
+ "category": "underground",
567
+ "temperature": 0.5,
568
+ "precipitation": "rain",
569
+ "dimension": "overworld",
570
+ "displayName": "Lush Caves",
571
+ "color": 14652980,
572
+ "rainfall": 0.5
573
+ },
574
+ {
575
+ "id": 52,
576
+ "name": "deep_dark",
577
+ "category": "underground",
578
+ "temperature": 0.8,
579
+ "precipitation": "rain",
580
+ "dimension": "overworld",
581
+ "displayName": "Deep Dark",
582
+ "color": 0,
583
+ "rainfall": 0.4
584
+ },
585
+ {
586
+ "id": 53,
587
+ "name": "nether_wastes",
588
+ "category": "nether",
589
+ "temperature": 2.0,
590
+ "precipitation": "none",
591
+ "dimension": "nether",
592
+ "displayName": "Nether Wastes",
593
+ "color": 12532539,
594
+ "rainfall": 0.0
595
+ },
596
+ {
597
+ "id": 54,
598
+ "name": "warped_forest",
599
+ "category": "nether",
600
+ "temperature": 2.0,
601
+ "precipitation": "none",
602
+ "dimension": "nether",
603
+ "displayName": "Warped Forest",
604
+ "color": 4821115,
605
+ "rainfall": 0.0
606
+ },
607
+ {
608
+ "id": 55,
609
+ "name": "crimson_forest",
610
+ "category": "nether",
611
+ "temperature": 2.0,
612
+ "precipitation": "none",
613
+ "dimension": "nether",
614
+ "displayName": "Crimson Forest",
615
+ "color": 14485512,
616
+ "rainfall": 0.0
617
+ },
618
+ {
619
+ "id": 56,
620
+ "name": "soul_sand_valley",
621
+ "category": "nether",
622
+ "temperature": 2.0,
623
+ "precipitation": "none",
624
+ "dimension": "nether",
625
+ "displayName": "Soul Sand Valley",
626
+ "color": 6174768,
627
+ "rainfall": 0.0
628
+ },
629
+ {
630
+ "id": 57,
631
+ "name": "basalt_deltas",
632
+ "category": "nether",
633
+ "temperature": 2.0,
634
+ "precipitation": "none",
635
+ "dimension": "nether",
636
+ "displayName": "Basalt Deltas",
637
+ "color": 4208182,
638
+ "rainfall": 0.0
639
+ },
640
+ {
641
+ "id": 58,
642
+ "name": "the_end",
643
+ "category": "the_end",
644
+ "temperature": 0.5,
645
+ "precipitation": "none",
646
+ "dimension": "end",
647
+ "displayName": "The End",
648
+ "color": 8421631,
649
+ "rainfall": 0.5
650
+ },
651
+ {
652
+ "id": 59,
653
+ "name": "end_highlands",
654
+ "category": "the_end",
655
+ "temperature": 0.5,
656
+ "precipitation": "none",
657
+ "dimension": "end",
658
+ "displayName": "End Highlands",
659
+ "color": 12828041,
660
+ "rainfall": 0.5
661
+ },
662
+ {
663
+ "id": 60,
664
+ "name": "end_midlands",
665
+ "category": "the_end",
666
+ "temperature": 0.5,
667
+ "precipitation": "none",
668
+ "dimension": "end",
669
+ "displayName": "End Midlands",
670
+ "color": 15464630,
671
+ "rainfall": 0.5
672
+ },
673
+ {
674
+ "id": 61,
675
+ "name": "small_end_islands",
676
+ "category": "the_end",
677
+ "temperature": 0.5,
678
+ "precipitation": "none",
679
+ "dimension": "end",
680
+ "displayName": "Small End Islands",
681
+ "color": 42,
682
+ "rainfall": 0.5
683
+ },
684
+ {
685
+ "id": 62,
686
+ "name": "end_barrens",
687
+ "category": "the_end",
688
+ "temperature": 0.5,
689
+ "precipitation": "none",
690
+ "dimension": "end",
691
+ "displayName": "End Barrens",
692
+ "color": 9474162,
693
+ "rainfall": 0.5
694
+ }
695
+ ]