@retropak/schema 1.0.0-draft4 → 1.0.0-draft7

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 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-draft4",
3
+ "version": "1.0.0-draft7",
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,
@@ -635,6 +658,11 @@
635
658
  "pattern": "^[a-fA-F0-9]{40}$",
636
659
  "description": "SHA-1 checksum of the media file for verification."
637
660
  },
661
+ "sha256": {
662
+ "type": "string",
663
+ "pattern": "^[a-fA-F0-9]{64}$",
664
+ "description": "SHA-256 checksum of the media file for verification."
665
+ },
638
666
  "crc32": {
639
667
  "type": "string",
640
668
  "pattern": "^[a-fA-F0-9]{8}$",
@@ -655,9 +683,9 @@
655
683
  "type": "string",
656
684
  "description": "Source database or group that verified the dump (e.g. 'No-Intro', 'Redump', 'TOSEC')."
657
685
  },
658
- "serial": {
686
+ "productCode": {
659
687
  "type": "string",
660
- "description": "Official product serial/catalog number from the original media."
688
+ "description": "Official product code or catalog number from the original media (e.g. 'SLUS-00594', 'MK-1491', 'DOL-GALE-USA')."
661
689
  },
662
690
  "notes": {
663
691
  "type": "string",
@@ -853,6 +881,30 @@
853
881
  "rating": {
854
882
  "$ref": "#/$defs/ageRating"
855
883
  },
884
+ "license": {
885
+ "$ref": "#/$defs/license",
886
+ "description": "The software license (e.g., 'freeware', 'shareware', 'commercial', 'gpl', 'mit')."
887
+ },
888
+ "ean": {
889
+ "type": "string",
890
+ "pattern": "^[0-9]{13}$",
891
+ "description": "European Article Number (EAN-13) barcode from product packaging. Also covers JAN (Japanese Article Number)."
892
+ },
893
+ "upc": {
894
+ "type": "string",
895
+ "pattern": "^[0-9]{12}$",
896
+ "description": "Universal Product Code (UPC-A) barcode from product packaging."
897
+ },
898
+ "isbn": {
899
+ "type": "string",
900
+ "pattern": "^(97[89][0-9]{10}|[0-9]{9}[0-9X])$",
901
+ "description": "International Standard Book Number (ISBN-10 or ISBN-13) if applicable."
902
+ },
903
+ "issn": {
904
+ "type": "string",
905
+ "pattern": "^[0-9]{4}-[0-9]{3}[0-9X]$",
906
+ "description": "International Standard Serial Number (ISSN) for magazine coverdisks."
907
+ },
856
908
  "notes": {
857
909
  "type": "string",
858
910
  "description": "Additional notes, warnings, or information (e.g. access codes, compatibility notes, copy protection details)."