@retropak/schema 1.0.0-draft4 → 1.0.0-draft6
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.
- package/locales/en.json +27 -0
- package/package.json +1 -5
- package/schemas/v1/retropak.schema.json +57 -10
package/locales/en.json
CHANGED
|
@@ -226,13 +226,18 @@
|
|
|
226
226
|
"coverdisk": "Coverdisk",
|
|
227
227
|
"demo": "Demo",
|
|
228
228
|
"educational": "Educational",
|
|
229
|
+
"enhanced": "Enhanced Edition",
|
|
229
230
|
"firmware": "Firmware",
|
|
230
231
|
"freeware": "Freeware",
|
|
231
232
|
"game": "Game",
|
|
232
233
|
"homebrew": "Homebrew",
|
|
233
234
|
"multimedia": "Multimedia",
|
|
235
|
+
"port": "Port",
|
|
234
236
|
"promotional": "Promotional",
|
|
235
237
|
"prototype": "Prototype",
|
|
238
|
+
"remake": "Remake",
|
|
239
|
+
"remaster": "Remaster",
|
|
240
|
+
"rerelease": "Re-release",
|
|
236
241
|
"scene_demo": "Scene Demo",
|
|
237
242
|
"shareware": "Shareware",
|
|
238
243
|
"unlicensed": "Unlicensed",
|
|
@@ -341,6 +346,28 @@
|
|
|
341
346
|
"unknown": "Unknown",
|
|
342
347
|
"unlicensed": "Unlicensed"
|
|
343
348
|
},
|
|
349
|
+
"license": {
|
|
350
|
+
"commercial": "Commercial",
|
|
351
|
+
"freeware": "Freeware",
|
|
352
|
+
"shareware": "Shareware",
|
|
353
|
+
"public_domain": "Public Domain",
|
|
354
|
+
"open_source": "Open Source",
|
|
355
|
+
"gpl": "GNU GPL",
|
|
356
|
+
"gpl2": "GNU GPL v2",
|
|
357
|
+
"gpl3": "GNU GPL v3",
|
|
358
|
+
"lgpl": "GNU LGPL",
|
|
359
|
+
"mit": "MIT License",
|
|
360
|
+
"bsd": "BSD License",
|
|
361
|
+
"apache": "Apache License",
|
|
362
|
+
"creative_commons": "Creative Commons",
|
|
363
|
+
"cc_by": "Creative Commons BY",
|
|
364
|
+
"cc_by_sa": "Creative Commons BY-SA",
|
|
365
|
+
"cc_by_nc": "Creative Commons BY-NC",
|
|
366
|
+
"cc_by_nc_sa": "Creative Commons BY-NC-SA",
|
|
367
|
+
"cc0": "Creative Commons CC0",
|
|
368
|
+
"proprietary": "Proprietary",
|
|
369
|
+
"unknown": "Unknown"
|
|
370
|
+
},
|
|
344
371
|
"esrb": {
|
|
345
372
|
"ec": "Early Childhood",
|
|
346
373
|
"e": "Everyone",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@retropak/schema",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-draft6",
|
|
4
4
|
"description": "Metadata specification for Retropak software containers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./schemas/v1/retropak.schema.json",
|
|
@@ -13,10 +13,6 @@
|
|
|
13
13
|
"schemas",
|
|
14
14
|
"locales"
|
|
15
15
|
],
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": "echo 'Schema package has no build step'",
|
|
18
|
-
"validate": "node --input-type=module -e \"import Ajv from 'ajv'; const ajv = new Ajv(); const schema = await import('./schemas/v1/retropak.schema.json', { assert: { type: 'json' } }); const valid = ajv.compile(schema.default); console.log('Schema is valid:', valid.schema.$id);\""
|
|
19
|
-
},
|
|
20
16
|
"keywords": [
|
|
21
17
|
"retropak",
|
|
22
18
|
"schema",
|
|
@@ -243,13 +243,18 @@
|
|
|
243
243
|
"coverdisk",
|
|
244
244
|
"demo",
|
|
245
245
|
"educational",
|
|
246
|
+
"enhanced",
|
|
246
247
|
"firmware",
|
|
247
248
|
"freeware",
|
|
248
249
|
"game",
|
|
249
250
|
"homebrew",
|
|
250
251
|
"multimedia",
|
|
252
|
+
"port",
|
|
251
253
|
"promotional",
|
|
252
254
|
"prototype",
|
|
255
|
+
"remake",
|
|
256
|
+
"remaster",
|
|
257
|
+
"rerelease",
|
|
253
258
|
"scene_demo",
|
|
254
259
|
"shareware",
|
|
255
260
|
"unlicensed",
|
|
@@ -375,6 +380,32 @@
|
|
|
375
380
|
"unlicensed"
|
|
376
381
|
]
|
|
377
382
|
},
|
|
383
|
+
"license": {
|
|
384
|
+
"type": "string",
|
|
385
|
+
"description": "Software license type.",
|
|
386
|
+
"enum": [
|
|
387
|
+
"commercial",
|
|
388
|
+
"freeware",
|
|
389
|
+
"shareware",
|
|
390
|
+
"public_domain",
|
|
391
|
+
"open_source",
|
|
392
|
+
"gpl",
|
|
393
|
+
"gpl2",
|
|
394
|
+
"gpl3",
|
|
395
|
+
"lgpl",
|
|
396
|
+
"mit",
|
|
397
|
+
"bsd",
|
|
398
|
+
"apache",
|
|
399
|
+
"creative_commons",
|
|
400
|
+
"cc_by",
|
|
401
|
+
"cc_by_sa",
|
|
402
|
+
"cc_by_nc",
|
|
403
|
+
"cc_by_nc_sa",
|
|
404
|
+
"cc0",
|
|
405
|
+
"proprietary",
|
|
406
|
+
"unknown"
|
|
407
|
+
]
|
|
408
|
+
},
|
|
378
409
|
"ageRating": {
|
|
379
410
|
"type": "object",
|
|
380
411
|
"description": "Age/content ratings from various rating boards.",
|
|
@@ -579,10 +610,6 @@
|
|
|
579
610
|
"type": "string",
|
|
580
611
|
"description": "Alternative text describing the image for accessibility."
|
|
581
612
|
},
|
|
582
|
-
"mediaId": {
|
|
583
|
-
"type": "string",
|
|
584
|
-
"description": "References the 'id' field of a media item, if specific to one disc/cart."
|
|
585
|
-
},
|
|
586
613
|
"type": {
|
|
587
614
|
"$ref": "#/$defs/mediaType"
|
|
588
615
|
}
|
|
@@ -597,10 +624,6 @@
|
|
|
597
624
|
"type"
|
|
598
625
|
],
|
|
599
626
|
"properties": {
|
|
600
|
-
"id": {
|
|
601
|
-
"type": "string",
|
|
602
|
-
"description": "Unique identifier for this media item, used for referencing in other fields."
|
|
603
|
-
},
|
|
604
627
|
"filename": {
|
|
605
628
|
"type": "string",
|
|
606
629
|
"minLength": 1,
|
|
@@ -655,9 +678,9 @@
|
|
|
655
678
|
"type": "string",
|
|
656
679
|
"description": "Source database or group that verified the dump (e.g. 'No-Intro', 'Redump', 'TOSEC')."
|
|
657
680
|
},
|
|
658
|
-
"
|
|
681
|
+
"productCode": {
|
|
659
682
|
"type": "string",
|
|
660
|
-
"description": "Official product
|
|
683
|
+
"description": "Official product code or catalog number from the original media (e.g. 'SLUS-00594', 'MK-1491', 'DOL-GALE-USA')."
|
|
661
684
|
},
|
|
662
685
|
"notes": {
|
|
663
686
|
"type": "string",
|
|
@@ -853,6 +876,30 @@
|
|
|
853
876
|
"rating": {
|
|
854
877
|
"$ref": "#/$defs/ageRating"
|
|
855
878
|
},
|
|
879
|
+
"license": {
|
|
880
|
+
"$ref": "#/$defs/license",
|
|
881
|
+
"description": "The software license (e.g., 'freeware', 'shareware', 'commercial', 'gpl', 'mit')."
|
|
882
|
+
},
|
|
883
|
+
"ean": {
|
|
884
|
+
"type": "string",
|
|
885
|
+
"pattern": "^[0-9]{13}$",
|
|
886
|
+
"description": "European Article Number (EAN-13) barcode from product packaging. Also covers JAN (Japanese Article Number)."
|
|
887
|
+
},
|
|
888
|
+
"upc": {
|
|
889
|
+
"type": "string",
|
|
890
|
+
"pattern": "^[0-9]{12}$",
|
|
891
|
+
"description": "Universal Product Code (UPC-A) barcode from product packaging."
|
|
892
|
+
},
|
|
893
|
+
"isbn": {
|
|
894
|
+
"type": "string",
|
|
895
|
+
"pattern": "^(97[89][0-9]{10}|[0-9]{9}[0-9X])$",
|
|
896
|
+
"description": "International Standard Book Number (ISBN-10 or ISBN-13) if applicable."
|
|
897
|
+
},
|
|
898
|
+
"issn": {
|
|
899
|
+
"type": "string",
|
|
900
|
+
"pattern": "^[0-9]{4}-[0-9]{3}[0-9X]$",
|
|
901
|
+
"description": "International Standard Serial Number (ISSN) for magazine coverdisks."
|
|
902
|
+
},
|
|
856
903
|
"notes": {
|
|
857
904
|
"type": "string",
|
|
858
905
|
"description": "Additional notes, warnings, or information (e.g. access codes, compatibility notes, copy protection details)."
|