@retropak/types 1.0.0-draft → 1.0.0-draft10

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
175
  physicalMedia?: PhysicalMediaImage[];
158
- logo?: Image3;
159
- backdrop?: Image4;
160
- titleScreen?: Image5;
176
+ logo?: Image4;
177
+ backdrop?: Image5;
178
+ titleScreen?: Image6;
161
179
  /**
162
180
  * Gameplay screenshots.
163
181
  */
164
- gameplay?: Image6[];
182
+ gameplay?: Image7[];
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,7 +382,19 @@ export interface Image2 {
368
382
  * Alternative text describing the image for accessibility.
369
383
  */
370
384
  alt?: string;
371
- [k: string]: unknown;
385
+ }
386
+ /**
387
+ * Box/case spine image.
388
+ */
389
+ export interface Image3 {
390
+ /**
391
+ * Path to the image file.
392
+ */
393
+ file: string;
394
+ /**
395
+ * Alternative text describing the image for accessibility.
396
+ */
397
+ alt?: string;
372
398
  }
373
399
  /**
374
400
  * An image of physical media (cartridge, disc, tape, etc.).
@@ -382,17 +408,12 @@ export interface PhysicalMediaImage {
382
408
  * Alternative text describing the image for accessibility.
383
409
  */
384
410
  alt?: string;
385
- /**
386
- * References the 'id' field of a media item, if specific to one disc/cart.
387
- */
388
- mediaId?: string;
389
411
  type?: MediaType;
390
- [k: string]: unknown;
391
412
  }
392
413
  /**
393
414
  * Logo/wordmark with transparent background.
394
415
  */
395
- export interface Image3 {
416
+ export interface Image4 {
396
417
  /**
397
418
  * Path to the image file.
398
419
  */
@@ -401,12 +422,11 @@ export interface Image3 {
401
422
  * Alternative text describing the image for accessibility.
402
423
  */
403
424
  alt?: string;
404
- [k: string]: unknown;
405
425
  }
406
426
  /**
407
427
  * Widescreen background artwork for TV/big screen interfaces. Should be free of text or logos.
408
428
  */
409
- export interface Image4 {
429
+ export interface Image5 {
410
430
  /**
411
431
  * Path to the image file.
412
432
  */
@@ -415,12 +435,11 @@ export interface Image4 {
415
435
  * Alternative text describing the image for accessibility.
416
436
  */
417
437
  alt?: string;
418
- [k: string]: unknown;
419
438
  }
420
439
  /**
421
440
  * Title screen screenshot.
422
441
  */
423
- export interface Image5 {
442
+ export interface Image6 {
424
443
  /**
425
444
  * Path to the image file.
426
445
  */
@@ -429,12 +448,11 @@ export interface Image5 {
429
448
  * Alternative text describing the image for accessibility.
430
449
  */
431
450
  alt?: string;
432
- [k: string]: unknown;
433
451
  }
434
452
  /**
435
453
  * An image file with optional alt text for accessibility.
436
454
  */
437
- export interface Image6 {
455
+ export interface Image7 {
438
456
  /**
439
457
  * Path to the image file.
440
458
  */
@@ -443,12 +461,11 @@ export interface Image6 {
443
461
  * Alternative text describing the image for accessibility.
444
462
  */
445
463
  alt?: string;
446
- [k: string]: unknown;
447
464
  }
448
465
  /**
449
466
  * An image file with optional alt text for accessibility.
450
467
  */
451
- export interface Image7 {
468
+ export interface Image8 {
452
469
  /**
453
470
  * Path to the image file.
454
471
  */
@@ -457,7 +474,6 @@ export interface Image7 {
457
474
  * Alternative text describing the image for accessibility.
458
475
  */
459
476
  alt?: string;
460
- [k: string]: unknown;
461
477
  }
462
478
  /**
463
479
  * A soundtrack or audio file from the title.
@@ -475,7 +491,6 @@ export interface MusicTrack {
475
491
  * Whether this track is suitable for background/menu music when browsing titles.
476
492
  */
477
493
  background?: boolean;
478
- [k: string]: unknown;
479
494
  }
480
495
  /**
481
496
  * An external configuration file for emulator or platform-specific settings.
@@ -493,5 +508,4 @@ export interface ConfigFile {
493
508
  * What this config file does or overrides.
494
509
  */
495
510
  description?: string;
496
- [k: string]: unknown;
497
511
  }
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-draft10",
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
531
  physicalMedia?: PhysicalMediaImage[];
489
- logo?: Image3;
490
- backdrop?: Image4;
491
- titleScreen?: Image5;
532
+ logo?: Image4;
533
+ backdrop?: Image5;
534
+ titleScreen?: Image6;
492
535
  /**
493
536
  * Gameplay screenshots.
494
537
  */
495
- gameplay?: Image6[];
538
+ gameplay?: Image7[];
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,7 +738,19 @@ export interface Image2 {
699
738
  * Alternative text describing the image for accessibility.
700
739
  */
701
740
  alt?: string;
702
- [k: string]: unknown;
741
+ }
742
+ /**
743
+ * Box/case spine image.
744
+ */
745
+ export interface Image3 {
746
+ /**
747
+ * Path to the image file.
748
+ */
749
+ file: string;
750
+ /**
751
+ * Alternative text describing the image for accessibility.
752
+ */
753
+ alt?: string;
703
754
  }
704
755
  /**
705
756
  * An image of physical media (cartridge, disc, tape, etc.).
@@ -713,17 +764,12 @@ export interface PhysicalMediaImage {
713
764
  * Alternative text describing the image for accessibility.
714
765
  */
715
766
  alt?: string;
716
- /**
717
- * References the 'id' field of a media item, if specific to one disc/cart.
718
- */
719
- mediaId?: string;
720
767
  type?: MediaType;
721
- [k: string]: unknown;
722
768
  }
723
769
  /**
724
770
  * Logo/wordmark with transparent background.
725
771
  */
726
- export interface Image3 {
772
+ export interface Image4 {
727
773
  /**
728
774
  * Path to the image file.
729
775
  */
@@ -732,12 +778,11 @@ export interface Image3 {
732
778
  * Alternative text describing the image for accessibility.
733
779
  */
734
780
  alt?: string;
735
- [k: string]: unknown;
736
781
  }
737
782
  /**
738
783
  * Widescreen background artwork for TV/big screen interfaces. Should be free of text or logos.
739
784
  */
740
- export interface Image4 {
785
+ export interface Image5 {
741
786
  /**
742
787
  * Path to the image file.
743
788
  */
@@ -746,12 +791,11 @@ export interface Image4 {
746
791
  * Alternative text describing the image for accessibility.
747
792
  */
748
793
  alt?: string;
749
- [k: string]: unknown;
750
794
  }
751
795
  /**
752
796
  * Title screen screenshot.
753
797
  */
754
- export interface Image5 {
798
+ export interface Image6 {
755
799
  /**
756
800
  * Path to the image file.
757
801
  */
@@ -760,12 +804,11 @@ export interface Image5 {
760
804
  * Alternative text describing the image for accessibility.
761
805
  */
762
806
  alt?: string;
763
- [k: string]: unknown;
764
807
  }
765
808
  /**
766
809
  * An image file with optional alt text for accessibility.
767
810
  */
768
- export interface Image6 {
811
+ export interface Image7 {
769
812
  /**
770
813
  * Path to the image file.
771
814
  */
@@ -774,12 +817,11 @@ export interface Image6 {
774
817
  * Alternative text describing the image for accessibility.
775
818
  */
776
819
  alt?: string;
777
- [k: string]: unknown;
778
820
  }
779
821
  /**
780
822
  * An image file with optional alt text for accessibility.
781
823
  */
782
- export interface Image7 {
824
+ export interface Image8 {
783
825
  /**
784
826
  * Path to the image file.
785
827
  */
@@ -788,7 +830,6 @@ export interface Image7 {
788
830
  * Alternative text describing the image for accessibility.
789
831
  */
790
832
  alt?: string;
791
- [k: string]: unknown;
792
833
  }
793
834
  /**
794
835
  * A soundtrack or audio file from the title.
@@ -806,7 +847,6 @@ export interface MusicTrack {
806
847
  * Whether this track is suitable for background/menu music when browsing titles.
807
848
  */
808
849
  background?: boolean;
809
- [k: string]: unknown;
810
850
  }
811
851
  /**
812
852
  * An external configuration file for emulator or platform-specific settings.
@@ -824,5 +864,4 @@ export interface ConfigFile {
824
864
  * What this config file does or overrides.
825
865
  */
826
866
  description?: string;
827
- [k: string]: unknown;
828
867
  }