@retropak/types 1.0.0-draft → 1.0.0-draft11

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.
@@ -6,7 +6,7 @@
6
6
  /**
7
7
  * A classification for the type/nature of the software.
8
8
  */
9
- export type Category = "addon" | "application" | "beta" | "bios" | "compilation" | "coverdisk" | "demo" | "educational" | "firmware" | "freeware" | "game" | "homebrew" | "multimedia" | "promotional" | "prototype" | "scene_demo" | "shareware" | "unlicensed" | "utility";
9
+ export type Category = "addon" | "application" | "beta" | "bios" | "compilation" | "coverdisk" | "demo" | "educational" | "enhanced" | "firmware" | "freeware" | "game" | "homebrew" | "multimedia" | "port" | "promotional" | "prototype" | "remake" | "remaster" | "rerelease" | "scene_demo" | "shareware" | "unlicensed" | "utility";
10
10
  /**
11
11
  * Genre classification.
12
12
  */
@@ -129,14 +129,32 @@ export interface RetropakManifest {
129
129
  * GameFAQs ID.
130
130
  */
131
131
  gamefaqs?: number;
132
- [k: string]: unknown;
133
132
  };
134
133
  rating?: AgeRating;
134
+ /**
135
+ * The software license (e.g., 'freeware', 'shareware', 'commercial', 'gpl', 'mit').
136
+ */
137
+ license?: "commercial" | "freeware" | "shareware" | "public_domain" | "open_source" | "gpl" | "gpl2" | "gpl3" | "lgpl" | "mit" | "bsd" | "apache" | "creative_commons" | "cc_by" | "cc_by_sa" | "cc_by_nc" | "cc_by_nc_sa" | "cc0" | "proprietary" | "unknown";
138
+ /**
139
+ * European Article Number (EAN-13) barcode from product packaging. Also covers JAN (Japanese Article Number).
140
+ */
141
+ ean?: string;
142
+ /**
143
+ * Universal Product Code (UPC-A) barcode from product packaging.
144
+ */
145
+ upc?: string;
146
+ /**
147
+ * International Standard Book Number (ISBN-10 or ISBN-13) if applicable.
148
+ */
149
+ isbn?: string;
150
+ /**
151
+ * International Standard Serial Number (ISSN) for magazine coverdisks.
152
+ */
153
+ issn?: string;
135
154
  /**
136
155
  * Additional notes, warnings, or information (e.g. access codes, compatibility notes, copy protection details).
137
156
  */
138
157
  notes?: string;
139
- [k: string]: unknown;
140
158
  };
141
159
  /**
142
160
  * The media files (ROMs, disc images, tapes, etc.) included in this package.
@@ -148,36 +166,34 @@ export interface RetropakManifest {
148
166
  * Artwork, documentation, and other supplementary files.
149
167
  */
150
168
  assets?: {
151
- boxFront?: Image;
152
- boxBack?: Image1;
153
- boxSpine?: Image2;
169
+ boxFront?: Image1;
170
+ boxBack?: Image2;
171
+ boxSpine?: Image3;
154
172
  /**
155
173
  * Images of the physical media (cartridge, disc, tape, floppy, etc.).
156
174
  */
157
- physicalMedia?: PhysicalMediaImage[];
158
- logo?: Image3;
159
- backdrop?: Image4;
160
- titleScreen?: Image5;
175
+ physicalMedia?: Image4[];
176
+ logo?: Image5;
177
+ backdrop?: Image6;
178
+ titleScreen?: Image7;
161
179
  /**
162
180
  * Gameplay screenshots.
163
181
  */
164
- gameplay?: Image6[];
182
+ gameplay?: Image4[];
165
183
  /**
166
184
  * Path to the manual (PDF, image, html or text).
167
185
  */
168
186
  manual?: string;
169
- map?: Image7;
187
+ map?: Image8;
170
188
  /**
171
189
  * Soundtrack or audio files from the game.
172
190
  */
173
191
  music?: MusicTrack[];
174
- [k: string]: unknown;
175
192
  };
176
193
  /**
177
194
  * External configuration files for emulators or platforms.
178
195
  */
179
196
  config?: ConfigFile[];
180
- [k: string]: unknown;
181
197
  }
182
198
  /**
183
199
  * Multiplayer capabilities.
@@ -195,7 +211,6 @@ export interface Players {
195
211
  * Whether cooperative play is supported.
196
212
  */
197
213
  coop?: boolean;
198
- [k: string]: unknown;
199
214
  }
200
215
  /**
201
216
  * Input devices, peripherals, and capabilities.
@@ -209,7 +224,6 @@ export interface Features {
209
224
  * Optional features the title supports.
210
225
  */
211
226
  supported?: Feature[];
212
- [k: string]: unknown;
213
227
  }
214
228
  /**
215
229
  * A person credited for work on the title.
@@ -223,7 +237,10 @@ export interface CreditEntry {
223
237
  * Job titles or roles (e.g. 'Director', 'Lead Programmer', 'Composer').
224
238
  */
225
239
  roles?: string[];
226
- [k: string]: unknown;
240
+ /**
241
+ * Character names portrayed by this person (for voice actors, motion capture actors, etc.).
242
+ */
243
+ characters?: string[];
227
244
  }
228
245
  /**
229
246
  * Age/content ratings from various rating boards.
@@ -265,16 +282,11 @@ export interface AgeRating {
265
282
  * BBFC rating (United Kingdom).
266
283
  */
267
284
  bbfc?: "u" | "pg" | "12" | "12a" | "15" | "18" | "r18";
268
- [k: string]: unknown;
269
285
  }
270
286
  /**
271
287
  * A media file (ROM, disc image, tape, etc.).
272
288
  */
273
289
  export interface MediaItem {
274
- /**
275
- * Unique identifier for this media item, used for referencing in other fields.
276
- */
277
- id?: string;
278
290
  /**
279
291
  * Relative path to the media file within the archive.
280
292
  */
@@ -301,6 +313,10 @@ export interface MediaItem {
301
313
  * SHA-1 checksum of the media file for verification.
302
314
  */
303
315
  sha1?: string;
316
+ /**
317
+ * SHA-256 checksum of the media file for verification.
318
+ */
319
+ sha256?: string;
304
320
  /**
305
321
  * CRC32 checksum of the media file for verification.
306
322
  */
@@ -319,17 +335,17 @@ export interface MediaItem {
319
335
  */
320
336
  source?: string;
321
337
  /**
322
- * Official product serial/catalog number from the original media.
338
+ * Official product code or catalog number from the original media (e.g. 'SLUS-00594', 'MK-1491', 'DOL-GALE-USA').
323
339
  */
324
- serial?: string;
340
+ productCode?: string;
325
341
  /**
326
342
  * Additional notes about this specific media file (e.g. distribution method, requirements, known issues).
327
343
  */
328
344
  notes?: string;
329
- [k: string]: unknown;
345
+ labelImage?: Image;
330
346
  }
331
347
  /**
332
- * Front box/case cover image.
348
+ * Image of the media label (e.g. disc label, cartridge label, cassette label).
333
349
  */
334
350
  export interface Image {
335
351
  /**
@@ -340,10 +356,9 @@ export interface Image {
340
356
  * Alternative text describing the image for accessibility.
341
357
  */
342
358
  alt?: string;
343
- [k: string]: unknown;
344
359
  }
345
360
  /**
346
- * Back box/case cover image.
361
+ * Front box/case cover image.
347
362
  */
348
363
  export interface Image1 {
349
364
  /**
@@ -354,10 +369,9 @@ export interface Image1 {
354
369
  * Alternative text describing the image for accessibility.
355
370
  */
356
371
  alt?: string;
357
- [k: string]: unknown;
358
372
  }
359
373
  /**
360
- * Box/case spine image.
374
+ * Back box/case cover image.
361
375
  */
362
376
  export interface Image2 {
363
377
  /**
@@ -368,31 +382,24 @@ export interface Image2 {
368
382
  * Alternative text describing the image for accessibility.
369
383
  */
370
384
  alt?: string;
371
- [k: string]: unknown;
372
385
  }
373
386
  /**
374
- * An image of physical media (cartridge, disc, tape, etc.).
387
+ * Box/case spine image.
375
388
  */
376
- export interface PhysicalMediaImage {
389
+ export interface Image3 {
377
390
  /**
378
- * Path to the physical media image file.
391
+ * Path to the image file.
379
392
  */
380
393
  file: string;
381
394
  /**
382
395
  * Alternative text describing the image for accessibility.
383
396
  */
384
397
  alt?: string;
385
- /**
386
- * References the 'id' field of a media item, if specific to one disc/cart.
387
- */
388
- mediaId?: string;
389
- type?: MediaType;
390
- [k: string]: unknown;
391
398
  }
392
399
  /**
393
- * Logo/wordmark with transparent background.
400
+ * An image file with optional alt text for accessibility.
394
401
  */
395
- export interface Image3 {
402
+ export interface Image4 {
396
403
  /**
397
404
  * Path to the image file.
398
405
  */
@@ -401,12 +408,11 @@ export interface Image3 {
401
408
  * Alternative text describing the image for accessibility.
402
409
  */
403
410
  alt?: string;
404
- [k: string]: unknown;
405
411
  }
406
412
  /**
407
- * Widescreen background artwork for TV/big screen interfaces. Should be free of text or logos.
413
+ * An image file with optional alt text for accessibility.
408
414
  */
409
- export interface Image4 {
415
+ export interface Image5 {
410
416
  /**
411
417
  * Path to the image file.
412
418
  */
@@ -415,12 +421,11 @@ export interface Image4 {
415
421
  * Alternative text describing the image for accessibility.
416
422
  */
417
423
  alt?: string;
418
- [k: string]: unknown;
419
424
  }
420
425
  /**
421
- * Title screen screenshot.
426
+ * An image file with optional alt text for accessibility.
422
427
  */
423
- export interface Image5 {
428
+ export interface Image6 {
424
429
  /**
425
430
  * Path to the image file.
426
431
  */
@@ -429,12 +434,11 @@ export interface Image5 {
429
434
  * Alternative text describing the image for accessibility.
430
435
  */
431
436
  alt?: string;
432
- [k: string]: unknown;
433
437
  }
434
438
  /**
435
439
  * An image file with optional alt text for accessibility.
436
440
  */
437
- export interface Image6 {
441
+ export interface Image7 {
438
442
  /**
439
443
  * Path to the image file.
440
444
  */
@@ -443,12 +447,11 @@ export interface Image6 {
443
447
  * Alternative text describing the image for accessibility.
444
448
  */
445
449
  alt?: string;
446
- [k: string]: unknown;
447
450
  }
448
451
  /**
449
452
  * An image file with optional alt text for accessibility.
450
453
  */
451
- export interface Image7 {
454
+ export interface Image8 {
452
455
  /**
453
456
  * Path to the image file.
454
457
  */
@@ -457,7 +460,6 @@ export interface Image7 {
457
460
  * Alternative text describing the image for accessibility.
458
461
  */
459
462
  alt?: string;
460
- [k: string]: unknown;
461
463
  }
462
464
  /**
463
465
  * A soundtrack or audio file from the title.
@@ -475,7 +477,6 @@ export interface MusicTrack {
475
477
  * Whether this track is suitable for background/menu music when browsing titles.
476
478
  */
477
479
  background?: boolean;
478
- [k: string]: unknown;
479
480
  }
480
481
  /**
481
482
  * An external configuration file for emulator or platform-specific settings.
@@ -493,5 +494,4 @@ export interface ConfigFile {
493
494
  * What this config file does or overrides.
494
495
  */
495
496
  description?: string;
496
- [k: string]: unknown;
497
497
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@retropak/types",
3
- "version": "1.0.0-draft",
3
+ "version": "1.0.0-draft11",
4
4
  "description": "TypeScript type definitions for Retropak manifests",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/generated.ts CHANGED
@@ -17,13 +17,18 @@ export type Category =
17
17
  | "coverdisk"
18
18
  | "demo"
19
19
  | "educational"
20
+ | "enhanced"
20
21
  | "firmware"
21
22
  | "freeware"
22
23
  | "game"
23
24
  | "homebrew"
24
25
  | "multimedia"
26
+ | "port"
25
27
  | "promotional"
26
28
  | "prototype"
29
+ | "remake"
30
+ | "remaster"
31
+ | "rerelease"
27
32
  | "scene_demo"
28
33
  | "shareware"
29
34
  | "unlicensed"
@@ -460,14 +465,52 @@ export interface RetropakManifest {
460
465
  * GameFAQs ID.
461
466
  */
462
467
  gamefaqs?: number;
463
- [k: string]: unknown;
464
468
  };
465
469
  rating?: AgeRating;
470
+ /**
471
+ * The software license (e.g., 'freeware', 'shareware', 'commercial', 'gpl', 'mit').
472
+ */
473
+ license?:
474
+ | "commercial"
475
+ | "freeware"
476
+ | "shareware"
477
+ | "public_domain"
478
+ | "open_source"
479
+ | "gpl"
480
+ | "gpl2"
481
+ | "gpl3"
482
+ | "lgpl"
483
+ | "mit"
484
+ | "bsd"
485
+ | "apache"
486
+ | "creative_commons"
487
+ | "cc_by"
488
+ | "cc_by_sa"
489
+ | "cc_by_nc"
490
+ | "cc_by_nc_sa"
491
+ | "cc0"
492
+ | "proprietary"
493
+ | "unknown";
494
+ /**
495
+ * European Article Number (EAN-13) barcode from product packaging. Also covers JAN (Japanese Article Number).
496
+ */
497
+ ean?: string;
498
+ /**
499
+ * Universal Product Code (UPC-A) barcode from product packaging.
500
+ */
501
+ upc?: string;
502
+ /**
503
+ * International Standard Book Number (ISBN-10 or ISBN-13) if applicable.
504
+ */
505
+ isbn?: string;
506
+ /**
507
+ * International Standard Serial Number (ISSN) for magazine coverdisks.
508
+ */
509
+ issn?: string;
466
510
  /**
467
511
  * Additional notes, warnings, or information (e.g. access codes, compatibility notes, copy protection details).
468
512
  */
469
513
  notes?: string;
470
- [k: string]: unknown;
471
514
  };
472
515
  /**
473
516
  * The media files (ROMs, disc images, tapes, etc.) included in this package.
@@ -479,36 +522,34 @@ export interface RetropakManifest {
479
522
  * Artwork, documentation, and other supplementary files.
480
523
  */
481
524
  assets?: {
482
- boxFront?: Image;
483
- boxBack?: Image1;
484
- boxSpine?: Image2;
525
+ boxFront?: Image1;
526
+ boxBack?: Image2;
527
+ boxSpine?: Image3;
485
528
  /**
486
529
  * Images of the physical media (cartridge, disc, tape, floppy, etc.).
487
530
  */
488
- physicalMedia?: PhysicalMediaImage[];
489
- logo?: Image3;
490
- backdrop?: Image4;
491
- titleScreen?: Image5;
531
+ physicalMedia?: Image4[];
532
+ logo?: Image5;
533
+ backdrop?: Image6;
534
+ titleScreen?: Image7;
492
535
  /**
493
536
  * Gameplay screenshots.
494
537
  */
495
- gameplay?: Image6[];
538
+ gameplay?: Image4[];
496
539
  /**
497
540
  * Path to the manual (PDF, image, html or text).
498
541
  */
499
542
  manual?: string;
500
- map?: Image7;
543
+ map?: Image8;
501
544
  /**
502
545
  * Soundtrack or audio files from the game.
503
546
  */
504
547
  music?: MusicTrack[];
505
- [k: string]: unknown;
506
548
  };
507
549
  /**
508
550
  * External configuration files for emulators or platforms.
509
551
  */
510
552
  config?: ConfigFile[];
511
- [k: string]: unknown;
512
553
  }
513
554
  /**
514
555
  * Multiplayer capabilities.
@@ -526,7 +567,6 @@ export interface Players {
526
567
  * Whether cooperative play is supported.
527
568
  */
528
569
  coop?: boolean;
529
- [k: string]: unknown;
530
570
  }
531
571
  /**
532
572
  * Input devices, peripherals, and capabilities.
@@ -540,7 +580,6 @@ export interface Features {
540
580
  * Optional features the title supports.
541
581
  */
542
582
  supported?: Feature[];
543
- [k: string]: unknown;
544
583
  }
545
584
  /**
546
585
  * A person credited for work on the title.
@@ -554,7 +593,10 @@ export interface CreditEntry {
554
593
  * Job titles or roles (e.g. 'Director', 'Lead Programmer', 'Composer').
555
594
  */
556
595
  roles?: string[];
557
- [k: string]: unknown;
596
+ /**
597
+ * Character names portrayed by this person (for voice actors, motion capture actors, etc.).
598
+ */
599
+ characters?: string[];
558
600
  }
559
601
  /**
560
602
  * Age/content ratings from various rating boards.
@@ -596,16 +638,11 @@ export interface AgeRating {
596
638
  * BBFC rating (United Kingdom).
597
639
  */
598
640
  bbfc?: "u" | "pg" | "12" | "12a" | "15" | "18" | "r18";
599
- [k: string]: unknown;
600
641
  }
601
642
  /**
602
643
  * A media file (ROM, disc image, tape, etc.).
603
644
  */
604
645
  export interface MediaItem {
605
- /**
606
- * Unique identifier for this media item, used for referencing in other fields.
607
- */
608
- id?: string;
609
646
  /**
610
647
  * Relative path to the media file within the archive.
611
648
  */
@@ -632,6 +669,10 @@ export interface MediaItem {
632
669
  * SHA-1 checksum of the media file for verification.
633
670
  */
634
671
  sha1?: string;
672
+ /**
673
+ * SHA-256 checksum of the media file for verification.
674
+ */
675
+ sha256?: string;
635
676
  /**
636
677
  * CRC32 checksum of the media file for verification.
637
678
  */
@@ -650,17 +691,17 @@ export interface MediaItem {
650
691
  */
651
692
  source?: string;
652
693
  /**
653
- * Official product serial/catalog number from the original media.
694
+ * Official product code or catalog number from the original media (e.g. 'SLUS-00594', 'MK-1491', 'DOL-GALE-USA').
654
695
  */
655
- serial?: string;
696
+ productCode?: string;
656
697
  /**
657
698
  * Additional notes about this specific media file (e.g. distribution method, requirements, known issues).
658
699
  */
659
700
  notes?: string;
660
- [k: string]: unknown;
701
+ labelImage?: Image;
661
702
  }
662
703
  /**
663
- * Front box/case cover image.
704
+ * Image of the media label (e.g. disc label, cartridge label, cassette label).
664
705
  */
665
706
  export interface Image {
666
707
  /**
@@ -671,10 +712,9 @@ export interface Image {
671
712
  * Alternative text describing the image for accessibility.
672
713
  */
673
714
  alt?: string;
674
- [k: string]: unknown;
675
715
  }
676
716
  /**
677
- * Back box/case cover image.
717
+ * Front box/case cover image.
678
718
  */
679
719
  export interface Image1 {
680
720
  /**
@@ -685,10 +725,9 @@ export interface Image1 {
685
725
  * Alternative text describing the image for accessibility.
686
726
  */
687
727
  alt?: string;
688
- [k: string]: unknown;
689
728
  }
690
729
  /**
691
- * Box/case spine image.
730
+ * Back box/case cover image.
692
731
  */
693
732
  export interface Image2 {
694
733
  /**
@@ -699,31 +738,24 @@ export interface Image2 {
699
738
  * Alternative text describing the image for accessibility.
700
739
  */
701
740
  alt?: string;
702
- [k: string]: unknown;
703
741
  }
704
742
  /**
705
- * An image of physical media (cartridge, disc, tape, etc.).
743
+ * Box/case spine image.
706
744
  */
707
- export interface PhysicalMediaImage {
745
+ export interface Image3 {
708
746
  /**
709
- * Path to the physical media image file.
747
+ * Path to the image file.
710
748
  */
711
749
  file: string;
712
750
  /**
713
751
  * Alternative text describing the image for accessibility.
714
752
  */
715
753
  alt?: string;
716
- /**
717
- * References the 'id' field of a media item, if specific to one disc/cart.
718
- */
719
- mediaId?: string;
720
- type?: MediaType;
721
- [k: string]: unknown;
722
754
  }
723
755
  /**
724
- * Logo/wordmark with transparent background.
756
+ * An image file with optional alt text for accessibility.
725
757
  */
726
- export interface Image3 {
758
+ export interface Image4 {
727
759
  /**
728
760
  * Path to the image file.
729
761
  */
@@ -732,12 +764,11 @@ export interface Image3 {
732
764
  * Alternative text describing the image for accessibility.
733
765
  */
734
766
  alt?: string;
735
- [k: string]: unknown;
736
767
  }
737
768
  /**
738
- * Widescreen background artwork for TV/big screen interfaces. Should be free of text or logos.
769
+ * An image file with optional alt text for accessibility.
739
770
  */
740
- export interface Image4 {
771
+ export interface Image5 {
741
772
  /**
742
773
  * Path to the image file.
743
774
  */
@@ -746,12 +777,11 @@ export interface Image4 {
746
777
  * Alternative text describing the image for accessibility.
747
778
  */
748
779
  alt?: string;
749
- [k: string]: unknown;
750
780
  }
751
781
  /**
752
- * Title screen screenshot.
782
+ * An image file with optional alt text for accessibility.
753
783
  */
754
- export interface Image5 {
784
+ export interface Image6 {
755
785
  /**
756
786
  * Path to the image file.
757
787
  */
@@ -760,12 +790,11 @@ export interface Image5 {
760
790
  * Alternative text describing the image for accessibility.
761
791
  */
762
792
  alt?: string;
763
- [k: string]: unknown;
764
793
  }
765
794
  /**
766
795
  * An image file with optional alt text for accessibility.
767
796
  */
768
- export interface Image6 {
797
+ export interface Image7 {
769
798
  /**
770
799
  * Path to the image file.
771
800
  */
@@ -774,12 +803,11 @@ export interface Image6 {
774
803
  * Alternative text describing the image for accessibility.
775
804
  */
776
805
  alt?: string;
777
- [k: string]: unknown;
778
806
  }
779
807
  /**
780
808
  * An image file with optional alt text for accessibility.
781
809
  */
782
- export interface Image7 {
810
+ export interface Image8 {
783
811
  /**
784
812
  * Path to the image file.
785
813
  */
@@ -788,7 +816,6 @@ export interface Image7 {
788
816
  * Alternative text describing the image for accessibility.
789
817
  */
790
818
  alt?: string;
791
- [k: string]: unknown;
792
819
  }
793
820
  /**
794
821
  * A soundtrack or audio file from the title.
@@ -806,7 +833,6 @@ export interface MusicTrack {
806
833
  * Whether this track is suitable for background/menu music when browsing titles.
807
834
  */
808
835
  background?: boolean;
809
- [k: string]: unknown;
810
836
  }
811
837
  /**
812
838
  * An external configuration file for emulator or platform-specific settings.
@@ -824,5 +850,4 @@ export interface ConfigFile {
824
850
  * What this config file does or overrides.
825
851
  */
826
852
  description?: string;
827
- [k: string]: unknown;
828
853
  }