cfbd 5.0.0-alpha.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.
@@ -0,0 +1,4830 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+
3
+ export const $Venue = {
4
+ properties: {
5
+ id: {
6
+ type: 'integer',
7
+ format: 'int32',
8
+ nullable: true
9
+ },
10
+ name: {
11
+ type: 'string',
12
+ nullable: true
13
+ },
14
+ city: {
15
+ type: 'string',
16
+ nullable: true
17
+ },
18
+ state: {
19
+ type: 'string',
20
+ nullable: true
21
+ },
22
+ zip: {
23
+ type: 'string',
24
+ nullable: true
25
+ },
26
+ countryCode: {
27
+ type: 'string',
28
+ nullable: true
29
+ },
30
+ timezone: {
31
+ type: 'string',
32
+ nullable: true
33
+ },
34
+ latitude: {
35
+ type: 'number',
36
+ format: 'double',
37
+ nullable: true
38
+ },
39
+ longitude: {
40
+ type: 'number',
41
+ format: 'double',
42
+ nullable: true
43
+ },
44
+ elevation: {
45
+ type: 'string',
46
+ nullable: true
47
+ },
48
+ capacity: {
49
+ type: 'integer',
50
+ format: 'int32',
51
+ nullable: true
52
+ },
53
+ constructionYear: {
54
+ type: 'integer',
55
+ format: 'int32',
56
+ nullable: true
57
+ },
58
+ grass: {
59
+ type: 'boolean',
60
+ nullable: true
61
+ },
62
+ dome: {
63
+ type: 'boolean',
64
+ nullable: true
65
+ }
66
+ },
67
+ required: ['id', 'name', 'city', 'state', 'zip', 'countryCode', 'timezone', 'latitude', 'longitude', 'elevation', 'capacity', 'constructionYear'],
68
+ type: 'object',
69
+ additionalProperties: false
70
+ } as const;
71
+
72
+ export const $Team = {
73
+ properties: {
74
+ id: {
75
+ type: 'integer',
76
+ format: 'int32'
77
+ },
78
+ school: {
79
+ type: 'string'
80
+ },
81
+ mascot: {
82
+ type: 'string',
83
+ nullable: true
84
+ },
85
+ abbreviation: {
86
+ type: 'string',
87
+ nullable: true
88
+ },
89
+ alternateNames: {
90
+ items: {
91
+ type: 'string'
92
+ },
93
+ type: 'array',
94
+ nullable: true
95
+ },
96
+ conference: {
97
+ type: 'string',
98
+ nullable: true
99
+ },
100
+ division: {
101
+ type: 'string',
102
+ nullable: true
103
+ },
104
+ classification: {
105
+ type: 'string',
106
+ nullable: true
107
+ },
108
+ color: {
109
+ type: 'string',
110
+ nullable: true
111
+ },
112
+ alternateColor: {
113
+ type: 'string',
114
+ nullable: true
115
+ },
116
+ logos: {
117
+ items: {
118
+ type: 'string'
119
+ },
120
+ type: 'array',
121
+ nullable: true
122
+ },
123
+ twitter: {
124
+ type: 'string',
125
+ nullable: true
126
+ },
127
+ location: {
128
+ allOf: [
129
+ {
130
+ '$ref': '#/components/schemas/Venue'
131
+ }
132
+ ],
133
+ nullable: true
134
+ }
135
+ },
136
+ required: ['id', 'school', 'mascot', 'abbreviation', 'alternateNames', 'conference', 'division', 'classification', 'color', 'alternateColor', 'logos', 'twitter', 'location'],
137
+ type: 'object',
138
+ additionalProperties: false
139
+ } as const;
140
+
141
+ export const $MatchupGame = {
142
+ properties: {
143
+ season: {
144
+ type: 'integer',
145
+ format: 'int32'
146
+ },
147
+ week: {
148
+ type: 'integer',
149
+ format: 'int32'
150
+ },
151
+ seasonType: {
152
+ type: 'string'
153
+ },
154
+ date: {
155
+ type: 'string'
156
+ },
157
+ neutralSite: {
158
+ type: 'boolean'
159
+ },
160
+ venue: {
161
+ type: 'string'
162
+ },
163
+ homeTeam: {
164
+ type: 'string'
165
+ },
166
+ homeScore: {
167
+ type: 'integer',
168
+ format: 'int32'
169
+ },
170
+ awayTeam: {
171
+ type: 'string'
172
+ },
173
+ awayScore: {
174
+ type: 'integer',
175
+ format: 'int32'
176
+ },
177
+ winner: {
178
+ type: 'string',
179
+ nullable: true
180
+ }
181
+ },
182
+ required: ['season', 'week', 'seasonType', 'date', 'neutralSite', 'venue', 'homeTeam', 'homeScore', 'awayTeam', 'awayScore', 'winner'],
183
+ type: 'object',
184
+ additionalProperties: false
185
+ } as const;
186
+
187
+ export const $Matchup = {
188
+ properties: {
189
+ team1: {
190
+ type: 'string'
191
+ },
192
+ team2: {
193
+ type: 'string'
194
+ },
195
+ startYear: {
196
+ type: 'integer',
197
+ format: 'int32'
198
+ },
199
+ endYear: {
200
+ type: 'integer',
201
+ format: 'int32'
202
+ },
203
+ team1Wins: {
204
+ type: 'integer',
205
+ format: 'int32'
206
+ },
207
+ team2Wins: {
208
+ type: 'integer',
209
+ format: 'int32'
210
+ },
211
+ ties: {
212
+ type: 'integer',
213
+ format: 'int32'
214
+ },
215
+ games: {
216
+ items: {
217
+ '$ref': '#/components/schemas/MatchupGame'
218
+ },
219
+ type: 'array'
220
+ }
221
+ },
222
+ required: ['team1', 'team2', 'team1Wins', 'team2Wins', 'ties', 'games'],
223
+ type: 'object',
224
+ additionalProperties: false
225
+ } as const;
226
+
227
+ export const $RosterPlayer = {
228
+ properties: {
229
+ id: {
230
+ type: 'string'
231
+ },
232
+ firstName: {
233
+ type: 'string'
234
+ },
235
+ lastName: {
236
+ type: 'string'
237
+ },
238
+ team: {
239
+ type: 'string'
240
+ },
241
+ height: {
242
+ type: 'integer',
243
+ format: 'int32',
244
+ nullable: true
245
+ },
246
+ weight: {
247
+ type: 'integer',
248
+ format: 'int32',
249
+ nullable: true
250
+ },
251
+ jersey: {
252
+ type: 'integer',
253
+ format: 'int32',
254
+ nullable: true
255
+ },
256
+ year: {
257
+ type: 'integer',
258
+ format: 'int32'
259
+ },
260
+ position: {
261
+ type: 'string',
262
+ nullable: true
263
+ },
264
+ homeCity: {
265
+ type: 'string',
266
+ nullable: true
267
+ },
268
+ homeState: {
269
+ type: 'string',
270
+ nullable: true
271
+ },
272
+ homeCountry: {
273
+ type: 'string',
274
+ nullable: true
275
+ },
276
+ homeLatitude: {
277
+ type: 'number',
278
+ format: 'double',
279
+ nullable: true
280
+ },
281
+ homeLongitude: {
282
+ type: 'number',
283
+ format: 'double',
284
+ nullable: true
285
+ },
286
+ homeCountyFIPS: {
287
+ type: 'string',
288
+ nullable: true
289
+ },
290
+ recruitIds: {
291
+ items: {
292
+ type: 'string'
293
+ },
294
+ type: 'array',
295
+ nullable: true
296
+ }
297
+ },
298
+ required: ['id', 'firstName', 'lastName', 'team', 'height', 'weight', 'jersey', 'year', 'position', 'homeCity', 'homeState', 'homeCountry', 'homeLatitude', 'homeLongitude', 'homeCountyFIPS', 'recruitIds'],
299
+ type: 'object',
300
+ additionalProperties: false
301
+ } as const;
302
+
303
+ export const $DivisionClassification = {
304
+ enum: ['fbs', 'fcs', 'ii', 'iii'],
305
+ type: 'string'
306
+ } as const;
307
+
308
+ export const $Conference = {
309
+ properties: {
310
+ id: {
311
+ type: 'integer',
312
+ format: 'int32'
313
+ },
314
+ name: {
315
+ type: 'string'
316
+ },
317
+ shortName: {
318
+ type: 'string',
319
+ nullable: true
320
+ },
321
+ abbreviation: {
322
+ type: 'string',
323
+ nullable: true
324
+ },
325
+ classification: {
326
+ allOf: [
327
+ {
328
+ '$ref': '#/components/schemas/DivisionClassification'
329
+ }
330
+ ],
331
+ nullable: true
332
+ }
333
+ },
334
+ required: ['id', 'name', 'shortName', 'abbreviation', 'classification'],
335
+ type: 'object',
336
+ additionalProperties: false
337
+ } as const;
338
+
339
+ export const $TeamTalent = {
340
+ properties: {
341
+ year: {
342
+ type: 'integer',
343
+ format: 'int32'
344
+ },
345
+ team: {
346
+ type: 'string'
347
+ },
348
+ talent: {
349
+ type: 'number',
350
+ format: 'double'
351
+ }
352
+ },
353
+ required: ['year', 'team', 'talent'],
354
+ type: 'object',
355
+ additionalProperties: false
356
+ } as const;
357
+
358
+ export const $PlayerStat = {
359
+ properties: {
360
+ season: {
361
+ type: 'integer',
362
+ format: 'int32'
363
+ },
364
+ playerId: {
365
+ type: 'string'
366
+ },
367
+ player: {
368
+ type: 'string'
369
+ },
370
+ team: {
371
+ type: 'string'
372
+ },
373
+ conference: {
374
+ type: 'string'
375
+ },
376
+ category: {
377
+ type: 'string'
378
+ },
379
+ statType: {
380
+ type: 'string'
381
+ },
382
+ stat: {
383
+ type: 'number',
384
+ format: 'double'
385
+ }
386
+ },
387
+ required: ['season', 'playerId', 'player', 'team', 'conference', 'category', 'statType', 'stat'],
388
+ type: 'object',
389
+ additionalProperties: false
390
+ } as const;
391
+
392
+ export const $SeasonType = {
393
+ enum: ['regular', 'postseason', 'both', 'allstar', 'spring_regular', 'spring_postseason'],
394
+ type: 'string'
395
+ } as const;
396
+
397
+ export const $TeamStat = {
398
+ properties: {
399
+ season: {
400
+ type: 'integer',
401
+ format: 'int32'
402
+ },
403
+ team: {
404
+ type: 'string'
405
+ },
406
+ conference: {
407
+ type: 'string'
408
+ },
409
+ statName: {
410
+ type: 'string'
411
+ },
412
+ statValue: {
413
+ anyOf: [
414
+ {
415
+ type: 'string'
416
+ },
417
+ {
418
+ type: 'number',
419
+ format: 'double'
420
+ }
421
+ ]
422
+ }
423
+ },
424
+ required: ['season', 'team', 'conference', 'statName', 'statValue'],
425
+ type: 'object',
426
+ additionalProperties: false
427
+ } as const;
428
+
429
+ export const $AdvancedSeasonStat = {
430
+ properties: {
431
+ season: {
432
+ type: 'integer',
433
+ format: 'int32'
434
+ },
435
+ team: {
436
+ type: 'string'
437
+ },
438
+ conference: {
439
+ type: 'string'
440
+ },
441
+ offense: {
442
+ properties: {
443
+ passingPlays: {
444
+ properties: {
445
+ explosiveness: {
446
+ type: 'number',
447
+ format: 'double'
448
+ },
449
+ successRate: {
450
+ type: 'number',
451
+ format: 'double'
452
+ },
453
+ totalPPA: {
454
+ type: 'number',
455
+ format: 'double'
456
+ },
457
+ ppa: {
458
+ type: 'number',
459
+ format: 'double'
460
+ },
461
+ rate: {
462
+ type: 'number',
463
+ format: 'double'
464
+ }
465
+ },
466
+ required: ['explosiveness', 'successRate', 'totalPPA', 'ppa', 'rate'],
467
+ type: 'object'
468
+ },
469
+ rushingPlays: {
470
+ properties: {
471
+ explosiveness: {
472
+ type: 'number',
473
+ format: 'double'
474
+ },
475
+ successRate: {
476
+ type: 'number',
477
+ format: 'double'
478
+ },
479
+ totalPPA: {
480
+ type: 'number',
481
+ format: 'double'
482
+ },
483
+ ppa: {
484
+ type: 'number',
485
+ format: 'double'
486
+ },
487
+ rate: {
488
+ type: 'number',
489
+ format: 'double'
490
+ }
491
+ },
492
+ required: ['explosiveness', 'successRate', 'totalPPA', 'ppa', 'rate'],
493
+ type: 'object'
494
+ },
495
+ passingDowns: {
496
+ properties: {
497
+ explosiveness: {
498
+ type: 'number',
499
+ format: 'double'
500
+ },
501
+ successRate: {
502
+ type: 'number',
503
+ format: 'double'
504
+ },
505
+ ppa: {
506
+ type: 'number',
507
+ format: 'double'
508
+ },
509
+ rate: {
510
+ type: 'number',
511
+ format: 'double'
512
+ }
513
+ },
514
+ required: ['explosiveness', 'successRate', 'ppa', 'rate'],
515
+ type: 'object'
516
+ },
517
+ standardDowns: {
518
+ properties: {
519
+ explosiveness: {
520
+ type: 'number',
521
+ format: 'double'
522
+ },
523
+ successRate: {
524
+ type: 'number',
525
+ format: 'double'
526
+ },
527
+ ppa: {
528
+ type: 'number',
529
+ format: 'double'
530
+ },
531
+ rate: {
532
+ type: 'number',
533
+ format: 'double'
534
+ }
535
+ },
536
+ required: ['explosiveness', 'successRate', 'ppa', 'rate'],
537
+ type: 'object'
538
+ },
539
+ havoc: {
540
+ properties: {
541
+ db: {
542
+ type: 'number',
543
+ format: 'double',
544
+ nullable: true
545
+ },
546
+ frontSeven: {
547
+ type: 'number',
548
+ format: 'double',
549
+ nullable: true
550
+ },
551
+ total: {
552
+ type: 'number',
553
+ format: 'double',
554
+ nullable: true
555
+ }
556
+ },
557
+ required: ['db', 'frontSeven', 'total'],
558
+ type: 'object'
559
+ },
560
+ fieldPosition: {
561
+ properties: {
562
+ averagePredictedPoints: {
563
+ type: 'number',
564
+ format: 'double',
565
+ nullable: true
566
+ },
567
+ averageStart: {
568
+ type: 'number',
569
+ format: 'double',
570
+ nullable: true
571
+ }
572
+ },
573
+ required: ['averagePredictedPoints', 'averageStart'],
574
+ type: 'object'
575
+ },
576
+ pointsPerOpportunity: {
577
+ type: 'number',
578
+ format: 'double'
579
+ },
580
+ totalOpportunies: {
581
+ type: 'integer',
582
+ format: 'int32'
583
+ },
584
+ openFieldYardsTotal: {
585
+ type: 'integer',
586
+ format: 'int32'
587
+ },
588
+ openFieldYards: {
589
+ type: 'number',
590
+ format: 'double'
591
+ },
592
+ secondLevelYardsTotal: {
593
+ type: 'integer',
594
+ format: 'int32'
595
+ },
596
+ secondLevelYards: {
597
+ type: 'number',
598
+ format: 'double'
599
+ },
600
+ lineYardsTotal: {
601
+ type: 'integer',
602
+ format: 'int32'
603
+ },
604
+ lineYards: {
605
+ type: 'number',
606
+ format: 'double'
607
+ },
608
+ stuffRate: {
609
+ type: 'number',
610
+ format: 'double'
611
+ },
612
+ powerSuccess: {
613
+ type: 'number',
614
+ format: 'double'
615
+ },
616
+ explosiveness: {
617
+ type: 'number',
618
+ format: 'double'
619
+ },
620
+ successRate: {
621
+ type: 'number',
622
+ format: 'double'
623
+ },
624
+ totalPPA: {
625
+ type: 'number',
626
+ format: 'double'
627
+ },
628
+ ppa: {
629
+ type: 'number',
630
+ format: 'double'
631
+ },
632
+ drives: {
633
+ type: 'integer',
634
+ format: 'int32'
635
+ },
636
+ plays: {
637
+ type: 'integer',
638
+ format: 'int32'
639
+ }
640
+ },
641
+ required: ['passingPlays', 'rushingPlays', 'passingDowns', 'standardDowns', 'havoc', 'fieldPosition', 'pointsPerOpportunity', 'totalOpportunies', 'openFieldYardsTotal', 'openFieldYards', 'secondLevelYardsTotal', 'secondLevelYards', 'lineYardsTotal', 'lineYards', 'stuffRate', 'powerSuccess', 'explosiveness', 'successRate', 'totalPPA', 'ppa', 'drives', 'plays'],
642
+ type: 'object'
643
+ },
644
+ defense: {
645
+ properties: {
646
+ passingPlays: {
647
+ properties: {
648
+ explosiveness: {
649
+ type: 'number',
650
+ format: 'double'
651
+ },
652
+ successRate: {
653
+ type: 'number',
654
+ format: 'double'
655
+ },
656
+ totalPPA: {
657
+ type: 'number',
658
+ format: 'double'
659
+ },
660
+ ppa: {
661
+ type: 'number',
662
+ format: 'double'
663
+ },
664
+ rate: {
665
+ type: 'number',
666
+ format: 'double'
667
+ }
668
+ },
669
+ required: ['explosiveness', 'successRate', 'totalPPA', 'ppa', 'rate'],
670
+ type: 'object'
671
+ },
672
+ rushingPlays: {
673
+ properties: {
674
+ explosiveness: {
675
+ type: 'number',
676
+ format: 'double'
677
+ },
678
+ successRate: {
679
+ type: 'number',
680
+ format: 'double'
681
+ },
682
+ totalPPA: {
683
+ type: 'number',
684
+ format: 'double'
685
+ },
686
+ ppa: {
687
+ type: 'number',
688
+ format: 'double'
689
+ },
690
+ rate: {
691
+ type: 'number',
692
+ format: 'double'
693
+ }
694
+ },
695
+ required: ['explosiveness', 'successRate', 'totalPPA', 'ppa', 'rate'],
696
+ type: 'object'
697
+ },
698
+ passingDowns: {
699
+ properties: {
700
+ explosiveness: {
701
+ type: 'number',
702
+ format: 'double'
703
+ },
704
+ successRate: {
705
+ type: 'number',
706
+ format: 'double'
707
+ },
708
+ totalPPA: {
709
+ type: 'number',
710
+ format: 'double'
711
+ },
712
+ ppa: {
713
+ type: 'number',
714
+ format: 'double'
715
+ },
716
+ rate: {
717
+ type: 'number',
718
+ format: 'double'
719
+ }
720
+ },
721
+ required: ['explosiveness', 'successRate', 'totalPPA', 'ppa', 'rate'],
722
+ type: 'object'
723
+ },
724
+ standardDowns: {
725
+ properties: {
726
+ explosiveness: {
727
+ type: 'number',
728
+ format: 'double'
729
+ },
730
+ successRate: {
731
+ type: 'number',
732
+ format: 'double'
733
+ },
734
+ ppa: {
735
+ type: 'number',
736
+ format: 'double'
737
+ },
738
+ rate: {
739
+ type: 'number',
740
+ format: 'double'
741
+ }
742
+ },
743
+ required: ['explosiveness', 'successRate', 'ppa', 'rate'],
744
+ type: 'object'
745
+ },
746
+ havoc: {
747
+ properties: {
748
+ db: {
749
+ type: 'number',
750
+ format: 'double',
751
+ nullable: true
752
+ },
753
+ frontSeven: {
754
+ type: 'number',
755
+ format: 'double',
756
+ nullable: true
757
+ },
758
+ total: {
759
+ type: 'number',
760
+ format: 'double',
761
+ nullable: true
762
+ }
763
+ },
764
+ required: ['db', 'frontSeven', 'total'],
765
+ type: 'object'
766
+ },
767
+ fieldPosition: {
768
+ properties: {
769
+ averagePredictedPoints: {
770
+ type: 'number',
771
+ format: 'double',
772
+ nullable: true
773
+ },
774
+ averageStart: {
775
+ type: 'number',
776
+ format: 'double',
777
+ nullable: true
778
+ }
779
+ },
780
+ required: ['averagePredictedPoints', 'averageStart'],
781
+ type: 'object'
782
+ },
783
+ pointsPerOpportunity: {
784
+ type: 'number',
785
+ format: 'double'
786
+ },
787
+ totalOpportunies: {
788
+ type: 'integer',
789
+ format: 'int32'
790
+ },
791
+ openFieldYardsTotal: {
792
+ type: 'integer',
793
+ format: 'int32'
794
+ },
795
+ openFieldYards: {
796
+ type: 'number',
797
+ format: 'double'
798
+ },
799
+ secondLevelYardsTotal: {
800
+ type: 'integer',
801
+ format: 'int32'
802
+ },
803
+ secondLevelYards: {
804
+ type: 'number',
805
+ format: 'double'
806
+ },
807
+ lineYardsTotal: {
808
+ type: 'integer',
809
+ format: 'int32'
810
+ },
811
+ lineYards: {
812
+ type: 'number',
813
+ format: 'double'
814
+ },
815
+ stuffRate: {
816
+ type: 'number',
817
+ format: 'double'
818
+ },
819
+ powerSuccess: {
820
+ type: 'number',
821
+ format: 'double'
822
+ },
823
+ explosiveness: {
824
+ type: 'number',
825
+ format: 'double'
826
+ },
827
+ successRate: {
828
+ type: 'number',
829
+ format: 'double'
830
+ },
831
+ totalPPA: {
832
+ type: 'number',
833
+ format: 'double'
834
+ },
835
+ ppa: {
836
+ type: 'number',
837
+ format: 'double'
838
+ },
839
+ drives: {
840
+ type: 'integer',
841
+ format: 'int32'
842
+ },
843
+ plays: {
844
+ type: 'integer',
845
+ format: 'int32'
846
+ }
847
+ },
848
+ required: ['passingPlays', 'rushingPlays', 'passingDowns', 'standardDowns', 'havoc', 'fieldPosition', 'pointsPerOpportunity', 'totalOpportunies', 'openFieldYardsTotal', 'openFieldYards', 'secondLevelYardsTotal', 'secondLevelYards', 'lineYardsTotal', 'lineYards', 'stuffRate', 'powerSuccess', 'explosiveness', 'successRate', 'totalPPA', 'ppa', 'drives', 'plays'],
849
+ type: 'object'
850
+ }
851
+ },
852
+ required: ['season', 'team', 'conference', 'offense', 'defense'],
853
+ type: 'object',
854
+ additionalProperties: false
855
+ } as const;
856
+
857
+ export const $AdvancedGameStat = {
858
+ properties: {
859
+ gameId: {
860
+ type: 'integer',
861
+ format: 'int32'
862
+ },
863
+ season: {
864
+ type: 'integer',
865
+ format: 'int32'
866
+ },
867
+ week: {
868
+ type: 'integer',
869
+ format: 'int32'
870
+ },
871
+ team: {
872
+ type: 'string'
873
+ },
874
+ opponent: {
875
+ type: 'string'
876
+ },
877
+ offense: {
878
+ properties: {
879
+ passingPlays: {
880
+ properties: {
881
+ explosiveness: {
882
+ type: 'number',
883
+ format: 'double'
884
+ },
885
+ successRate: {
886
+ type: 'number',
887
+ format: 'double'
888
+ },
889
+ totalPPA: {
890
+ type: 'number',
891
+ format: 'double'
892
+ },
893
+ ppa: {
894
+ type: 'number',
895
+ format: 'double'
896
+ }
897
+ },
898
+ required: ['explosiveness', 'successRate', 'totalPPA', 'ppa'],
899
+ type: 'object'
900
+ },
901
+ rushingPlays: {
902
+ properties: {
903
+ explosiveness: {
904
+ type: 'number',
905
+ format: 'double'
906
+ },
907
+ successRate: {
908
+ type: 'number',
909
+ format: 'double'
910
+ },
911
+ totalPPA: {
912
+ type: 'number',
913
+ format: 'double'
914
+ },
915
+ ppa: {
916
+ type: 'number',
917
+ format: 'double'
918
+ }
919
+ },
920
+ required: ['explosiveness', 'successRate', 'totalPPA', 'ppa'],
921
+ type: 'object'
922
+ },
923
+ passingDowns: {
924
+ properties: {
925
+ explosiveness: {
926
+ type: 'number',
927
+ format: 'double'
928
+ },
929
+ successRate: {
930
+ type: 'number',
931
+ format: 'double'
932
+ },
933
+ ppa: {
934
+ type: 'number',
935
+ format: 'double'
936
+ }
937
+ },
938
+ required: ['explosiveness', 'successRate', 'ppa'],
939
+ type: 'object'
940
+ },
941
+ standardDowns: {
942
+ properties: {
943
+ explosiveness: {
944
+ type: 'number',
945
+ format: 'double'
946
+ },
947
+ successRate: {
948
+ type: 'number',
949
+ format: 'double'
950
+ },
951
+ ppa: {
952
+ type: 'number',
953
+ format: 'double'
954
+ }
955
+ },
956
+ required: ['explosiveness', 'successRate', 'ppa'],
957
+ type: 'object'
958
+ },
959
+ openFieldYardsTotal: {
960
+ type: 'integer',
961
+ format: 'int32'
962
+ },
963
+ openFieldYards: {
964
+ type: 'number',
965
+ format: 'double'
966
+ },
967
+ secondLevelYardsTotal: {
968
+ type: 'integer',
969
+ format: 'int32'
970
+ },
971
+ secondLevelYards: {
972
+ type: 'number',
973
+ format: 'double'
974
+ },
975
+ lineYardsTotal: {
976
+ type: 'integer',
977
+ format: 'int32'
978
+ },
979
+ lineYards: {
980
+ type: 'number',
981
+ format: 'double'
982
+ },
983
+ stuffRate: {
984
+ type: 'number',
985
+ format: 'double'
986
+ },
987
+ powerSuccess: {
988
+ type: 'number',
989
+ format: 'double'
990
+ },
991
+ explosiveness: {
992
+ type: 'number',
993
+ format: 'double'
994
+ },
995
+ successRate: {
996
+ type: 'number',
997
+ format: 'double'
998
+ },
999
+ totalPPA: {
1000
+ type: 'number',
1001
+ format: 'double'
1002
+ },
1003
+ ppa: {
1004
+ type: 'number',
1005
+ format: 'double'
1006
+ },
1007
+ drives: {
1008
+ type: 'integer',
1009
+ format: 'int32'
1010
+ },
1011
+ plays: {
1012
+ type: 'integer',
1013
+ format: 'int32'
1014
+ }
1015
+ },
1016
+ required: ['passingPlays', 'rushingPlays', 'passingDowns', 'standardDowns', 'openFieldYardsTotal', 'openFieldYards', 'secondLevelYardsTotal', 'secondLevelYards', 'lineYardsTotal', 'lineYards', 'stuffRate', 'powerSuccess', 'explosiveness', 'successRate', 'totalPPA', 'ppa', 'drives', 'plays'],
1017
+ type: 'object'
1018
+ },
1019
+ defense: {
1020
+ properties: {
1021
+ passingPlays: {
1022
+ properties: {
1023
+ explosiveness: {
1024
+ type: 'number',
1025
+ format: 'double'
1026
+ },
1027
+ successRate: {
1028
+ type: 'number',
1029
+ format: 'double'
1030
+ },
1031
+ totalPPA: {
1032
+ type: 'number',
1033
+ format: 'double'
1034
+ },
1035
+ ppa: {
1036
+ type: 'number',
1037
+ format: 'double'
1038
+ }
1039
+ },
1040
+ required: ['explosiveness', 'successRate', 'totalPPA', 'ppa'],
1041
+ type: 'object'
1042
+ },
1043
+ rushingPlays: {
1044
+ properties: {
1045
+ explosiveness: {
1046
+ type: 'number',
1047
+ format: 'double'
1048
+ },
1049
+ successRate: {
1050
+ type: 'number',
1051
+ format: 'double'
1052
+ },
1053
+ totalPPA: {
1054
+ type: 'number',
1055
+ format: 'double'
1056
+ },
1057
+ ppa: {
1058
+ type: 'number',
1059
+ format: 'double'
1060
+ }
1061
+ },
1062
+ required: ['explosiveness', 'successRate', 'totalPPA', 'ppa'],
1063
+ type: 'object'
1064
+ },
1065
+ passingDowns: {
1066
+ properties: {
1067
+ explosiveness: {
1068
+ type: 'number',
1069
+ format: 'double'
1070
+ },
1071
+ successRate: {
1072
+ type: 'number',
1073
+ format: 'double'
1074
+ },
1075
+ ppa: {
1076
+ type: 'number',
1077
+ format: 'double'
1078
+ }
1079
+ },
1080
+ required: ['explosiveness', 'successRate', 'ppa'],
1081
+ type: 'object'
1082
+ },
1083
+ standardDowns: {
1084
+ properties: {
1085
+ explosiveness: {
1086
+ type: 'number',
1087
+ format: 'double'
1088
+ },
1089
+ successRate: {
1090
+ type: 'number',
1091
+ format: 'double'
1092
+ },
1093
+ ppa: {
1094
+ type: 'number',
1095
+ format: 'double'
1096
+ }
1097
+ },
1098
+ required: ['explosiveness', 'successRate', 'ppa'],
1099
+ type: 'object'
1100
+ },
1101
+ openFieldYardsTotal: {
1102
+ type: 'integer',
1103
+ format: 'int32'
1104
+ },
1105
+ openFieldYards: {
1106
+ type: 'number',
1107
+ format: 'double'
1108
+ },
1109
+ secondLevelYardsTotal: {
1110
+ type: 'integer',
1111
+ format: 'int32'
1112
+ },
1113
+ secondLevelYards: {
1114
+ type: 'number',
1115
+ format: 'double'
1116
+ },
1117
+ lineYardsTotal: {
1118
+ type: 'integer',
1119
+ format: 'int32'
1120
+ },
1121
+ lineYards: {
1122
+ type: 'number',
1123
+ format: 'double'
1124
+ },
1125
+ stuffRate: {
1126
+ type: 'number',
1127
+ format: 'double'
1128
+ },
1129
+ powerSuccess: {
1130
+ type: 'number',
1131
+ format: 'double'
1132
+ },
1133
+ explosiveness: {
1134
+ type: 'number',
1135
+ format: 'double'
1136
+ },
1137
+ successRate: {
1138
+ type: 'number',
1139
+ format: 'double'
1140
+ },
1141
+ totalPPA: {
1142
+ type: 'number',
1143
+ format: 'double'
1144
+ },
1145
+ ppa: {
1146
+ type: 'number',
1147
+ format: 'double'
1148
+ },
1149
+ drives: {
1150
+ type: 'integer',
1151
+ format: 'int32'
1152
+ },
1153
+ plays: {
1154
+ type: 'integer',
1155
+ format: 'int32'
1156
+ }
1157
+ },
1158
+ required: ['passingPlays', 'rushingPlays', 'passingDowns', 'standardDowns', 'openFieldYardsTotal', 'openFieldYards', 'secondLevelYardsTotal', 'secondLevelYards', 'lineYardsTotal', 'lineYards', 'stuffRate', 'powerSuccess', 'explosiveness', 'successRate', 'totalPPA', 'ppa', 'drives', 'plays'],
1159
+ type: 'object'
1160
+ }
1161
+ },
1162
+ required: ['gameId', 'season', 'week', 'team', 'opponent', 'offense', 'defense'],
1163
+ type: 'object',
1164
+ additionalProperties: false
1165
+ } as const;
1166
+
1167
+ export const $RecruitClassification = {
1168
+ enum: ['JUCO', 'PrepSchool', 'HighSchool'],
1169
+ type: 'string'
1170
+ } as const;
1171
+
1172
+ export const $Recruit = {
1173
+ properties: {
1174
+ id: {
1175
+ type: 'string'
1176
+ },
1177
+ athleteId: {
1178
+ type: 'string',
1179
+ nullable: true
1180
+ },
1181
+ recruitType: {
1182
+ '$ref': '#/components/schemas/RecruitClassification'
1183
+ },
1184
+ year: {
1185
+ type: 'integer',
1186
+ format: 'int32'
1187
+ },
1188
+ ranking: {
1189
+ type: 'integer',
1190
+ format: 'int32',
1191
+ nullable: true
1192
+ },
1193
+ name: {
1194
+ type: 'string'
1195
+ },
1196
+ school: {
1197
+ type: 'string',
1198
+ nullable: true
1199
+ },
1200
+ committedTo: {
1201
+ type: 'string',
1202
+ nullable: true
1203
+ },
1204
+ position: {
1205
+ type: 'string',
1206
+ nullable: true
1207
+ },
1208
+ height: {
1209
+ type: 'integer',
1210
+ format: 'int32',
1211
+ nullable: true
1212
+ },
1213
+ weight: {
1214
+ type: 'integer',
1215
+ format: 'int32',
1216
+ nullable: true
1217
+ },
1218
+ stars: {
1219
+ type: 'integer',
1220
+ format: 'int32'
1221
+ },
1222
+ rating: {
1223
+ type: 'number',
1224
+ format: 'double'
1225
+ },
1226
+ city: {
1227
+ type: 'string',
1228
+ nullable: true
1229
+ },
1230
+ stateProvince: {
1231
+ type: 'string',
1232
+ nullable: true
1233
+ },
1234
+ country: {
1235
+ type: 'string',
1236
+ nullable: true
1237
+ },
1238
+ hometownInfo: {
1239
+ properties: {
1240
+ fipsCode: {
1241
+ type: 'string',
1242
+ nullable: true
1243
+ },
1244
+ longitude: {
1245
+ type: 'number',
1246
+ format: 'double',
1247
+ nullable: true
1248
+ },
1249
+ latitude: {
1250
+ type: 'number',
1251
+ format: 'double',
1252
+ nullable: true
1253
+ }
1254
+ },
1255
+ required: ['fipsCode', 'longitude', 'latitude'],
1256
+ type: 'object'
1257
+ }
1258
+ },
1259
+ required: ['id', 'athleteId', 'recruitType', 'year', 'ranking', 'name', 'school', 'committedTo', 'position', 'height', 'weight', 'stars', 'rating', 'city', 'stateProvince', 'country', 'hometownInfo'],
1260
+ type: 'object',
1261
+ additionalProperties: false
1262
+ } as const;
1263
+
1264
+ export const $TeamRecruitingRanking = {
1265
+ properties: {
1266
+ year: {
1267
+ type: 'integer',
1268
+ format: 'int32'
1269
+ },
1270
+ rank: {
1271
+ type: 'integer',
1272
+ format: 'int32'
1273
+ },
1274
+ team: {
1275
+ type: 'string'
1276
+ },
1277
+ points: {
1278
+ type: 'number',
1279
+ format: 'double'
1280
+ }
1281
+ },
1282
+ required: ['year', 'rank', 'team', 'points'],
1283
+ type: 'object',
1284
+ additionalProperties: false
1285
+ } as const;
1286
+
1287
+ export const $AggregatedTeamRecruiting = {
1288
+ properties: {
1289
+ team: {
1290
+ type: 'string'
1291
+ },
1292
+ conference: {
1293
+ type: 'string'
1294
+ },
1295
+ positionGroup: {
1296
+ type: 'string',
1297
+ nullable: true
1298
+ },
1299
+ averageRating: {
1300
+ type: 'number',
1301
+ format: 'double'
1302
+ },
1303
+ totalRating: {
1304
+ type: 'number',
1305
+ format: 'double'
1306
+ },
1307
+ commits: {
1308
+ type: 'integer',
1309
+ format: 'int32'
1310
+ },
1311
+ averageStars: {
1312
+ type: 'number',
1313
+ format: 'double'
1314
+ }
1315
+ },
1316
+ required: ['team', 'conference', 'positionGroup', 'averageRating', 'totalRating', 'commits', 'averageStars'],
1317
+ type: 'object',
1318
+ additionalProperties: false
1319
+ } as const;
1320
+
1321
+ export const $TeamSP = {
1322
+ properties: {
1323
+ year: {
1324
+ type: 'integer',
1325
+ format: 'int32'
1326
+ },
1327
+ team: {
1328
+ type: 'string'
1329
+ },
1330
+ conference: {
1331
+ type: 'string'
1332
+ },
1333
+ rating: {
1334
+ type: 'number',
1335
+ format: 'double'
1336
+ },
1337
+ ranking: {
1338
+ type: 'integer',
1339
+ format: 'int32'
1340
+ },
1341
+ secondOrderWins: {
1342
+ type: 'number',
1343
+ format: 'double',
1344
+ nullable: true
1345
+ },
1346
+ sos: {
1347
+ type: 'number',
1348
+ format: 'double',
1349
+ nullable: true
1350
+ },
1351
+ offense: {
1352
+ properties: {
1353
+ pace: {
1354
+ type: 'number',
1355
+ format: 'double',
1356
+ nullable: true
1357
+ },
1358
+ runRate: {
1359
+ type: 'number',
1360
+ format: 'double',
1361
+ nullable: true
1362
+ },
1363
+ passingDowns: {
1364
+ type: 'number',
1365
+ format: 'double',
1366
+ nullable: true
1367
+ },
1368
+ standardDowns: {
1369
+ type: 'number',
1370
+ format: 'double',
1371
+ nullable: true
1372
+ },
1373
+ passing: {
1374
+ type: 'number',
1375
+ format: 'double',
1376
+ nullable: true
1377
+ },
1378
+ rushing: {
1379
+ type: 'number',
1380
+ format: 'double',
1381
+ nullable: true
1382
+ },
1383
+ explosiveness: {
1384
+ type: 'number',
1385
+ format: 'double',
1386
+ nullable: true
1387
+ },
1388
+ success: {
1389
+ type: 'number',
1390
+ format: 'double',
1391
+ nullable: true
1392
+ },
1393
+ rating: {
1394
+ type: 'number',
1395
+ format: 'double'
1396
+ },
1397
+ ranking: {
1398
+ type: 'integer',
1399
+ format: 'int32'
1400
+ }
1401
+ },
1402
+ required: ['pace', 'runRate', 'passingDowns', 'standardDowns', 'passing', 'rushing', 'explosiveness', 'success', 'rating', 'ranking'],
1403
+ type: 'object'
1404
+ },
1405
+ defense: {
1406
+ properties: {
1407
+ havoc: {
1408
+ properties: {
1409
+ db: {
1410
+ type: 'number',
1411
+ format: 'double',
1412
+ nullable: true
1413
+ },
1414
+ frontSeven: {
1415
+ type: 'number',
1416
+ format: 'double',
1417
+ nullable: true
1418
+ },
1419
+ total: {
1420
+ type: 'number',
1421
+ format: 'double',
1422
+ nullable: true
1423
+ }
1424
+ },
1425
+ required: ['db', 'frontSeven', 'total'],
1426
+ type: 'object'
1427
+ },
1428
+ passingDowns: {
1429
+ type: 'number',
1430
+ format: 'double',
1431
+ nullable: true
1432
+ },
1433
+ standardDowns: {
1434
+ type: 'number',
1435
+ format: 'double',
1436
+ nullable: true
1437
+ },
1438
+ passing: {
1439
+ type: 'number',
1440
+ format: 'double',
1441
+ nullable: true
1442
+ },
1443
+ rushing: {
1444
+ type: 'number',
1445
+ format: 'double',
1446
+ nullable: true
1447
+ },
1448
+ explosiveness: {
1449
+ type: 'number',
1450
+ format: 'double',
1451
+ nullable: true
1452
+ },
1453
+ success: {
1454
+ type: 'number',
1455
+ format: 'double',
1456
+ nullable: true
1457
+ },
1458
+ rating: {
1459
+ type: 'number',
1460
+ format: 'double'
1461
+ },
1462
+ ranking: {
1463
+ type: 'integer',
1464
+ format: 'int32'
1465
+ }
1466
+ },
1467
+ required: ['havoc', 'passingDowns', 'standardDowns', 'passing', 'rushing', 'explosiveness', 'success', 'rating', 'ranking'],
1468
+ type: 'object'
1469
+ },
1470
+ specialTeams: {
1471
+ properties: {
1472
+ rating: {
1473
+ type: 'number',
1474
+ format: 'double',
1475
+ nullable: true
1476
+ }
1477
+ },
1478
+ required: ['rating'],
1479
+ type: 'object'
1480
+ }
1481
+ },
1482
+ required: ['year', 'team', 'conference', 'rating', 'ranking', 'secondOrderWins', 'sos', 'offense', 'defense', 'specialTeams'],
1483
+ type: 'object',
1484
+ additionalProperties: false
1485
+ } as const;
1486
+
1487
+ export const $ConferenceSP = {
1488
+ properties: {
1489
+ year: {
1490
+ type: 'integer',
1491
+ format: 'int32'
1492
+ },
1493
+ conference: {
1494
+ type: 'string'
1495
+ },
1496
+ rating: {
1497
+ type: 'number',
1498
+ format: 'double'
1499
+ },
1500
+ secondOrderWins: {
1501
+ type: 'number',
1502
+ format: 'double',
1503
+ nullable: true
1504
+ },
1505
+ sos: {
1506
+ type: 'number',
1507
+ format: 'double',
1508
+ nullable: true
1509
+ },
1510
+ offense: {
1511
+ properties: {
1512
+ pace: {
1513
+ type: 'number',
1514
+ format: 'double',
1515
+ nullable: true
1516
+ },
1517
+ runRate: {
1518
+ type: 'number',
1519
+ format: 'double',
1520
+ nullable: true
1521
+ },
1522
+ passingDowns: {
1523
+ type: 'number',
1524
+ format: 'double',
1525
+ nullable: true
1526
+ },
1527
+ standardDowns: {
1528
+ type: 'number',
1529
+ format: 'double',
1530
+ nullable: true
1531
+ },
1532
+ passing: {
1533
+ type: 'number',
1534
+ format: 'double',
1535
+ nullable: true
1536
+ },
1537
+ rushing: {
1538
+ type: 'number',
1539
+ format: 'double',
1540
+ nullable: true
1541
+ },
1542
+ explosiveness: {
1543
+ type: 'number',
1544
+ format: 'double',
1545
+ nullable: true
1546
+ },
1547
+ success: {
1548
+ type: 'number',
1549
+ format: 'double',
1550
+ nullable: true
1551
+ },
1552
+ rating: {
1553
+ type: 'number',
1554
+ format: 'double'
1555
+ }
1556
+ },
1557
+ required: ['pace', 'runRate', 'passingDowns', 'standardDowns', 'passing', 'rushing', 'explosiveness', 'success', 'rating'],
1558
+ type: 'object'
1559
+ },
1560
+ defense: {
1561
+ properties: {
1562
+ havoc: {
1563
+ properties: {
1564
+ db: {
1565
+ type: 'number',
1566
+ format: 'double',
1567
+ nullable: true
1568
+ },
1569
+ frontSeven: {
1570
+ type: 'number',
1571
+ format: 'double',
1572
+ nullable: true
1573
+ },
1574
+ total: {
1575
+ type: 'number',
1576
+ format: 'double',
1577
+ nullable: true
1578
+ }
1579
+ },
1580
+ required: ['db', 'frontSeven', 'total'],
1581
+ type: 'object'
1582
+ },
1583
+ passingDowns: {
1584
+ type: 'number',
1585
+ format: 'double',
1586
+ nullable: true
1587
+ },
1588
+ standardDowns: {
1589
+ type: 'number',
1590
+ format: 'double',
1591
+ nullable: true
1592
+ },
1593
+ passing: {
1594
+ type: 'number',
1595
+ format: 'double',
1596
+ nullable: true
1597
+ },
1598
+ rushing: {
1599
+ type: 'number',
1600
+ format: 'double',
1601
+ nullable: true
1602
+ },
1603
+ explosiveness: {
1604
+ type: 'number',
1605
+ format: 'double',
1606
+ nullable: true
1607
+ },
1608
+ success: {
1609
+ type: 'number',
1610
+ format: 'double',
1611
+ nullable: true
1612
+ },
1613
+ rating: {
1614
+ type: 'number',
1615
+ format: 'double'
1616
+ }
1617
+ },
1618
+ required: ['havoc', 'passingDowns', 'standardDowns', 'passing', 'rushing', 'explosiveness', 'success', 'rating'],
1619
+ type: 'object'
1620
+ },
1621
+ specialTeams: {
1622
+ properties: {
1623
+ rating: {
1624
+ type: 'number',
1625
+ format: 'double',
1626
+ nullable: true
1627
+ }
1628
+ },
1629
+ required: ['rating'],
1630
+ type: 'object'
1631
+ }
1632
+ },
1633
+ required: ['year', 'conference', 'rating', 'secondOrderWins', 'sos', 'offense', 'defense', 'specialTeams'],
1634
+ type: 'object',
1635
+ additionalProperties: false
1636
+ } as const;
1637
+
1638
+ export const $TeamSRS = {
1639
+ properties: {
1640
+ year: {
1641
+ type: 'integer',
1642
+ format: 'int32'
1643
+ },
1644
+ team: {
1645
+ type: 'string'
1646
+ },
1647
+ conference: {
1648
+ type: 'string',
1649
+ nullable: true
1650
+ },
1651
+ division: {
1652
+ type: 'string',
1653
+ nullable: true
1654
+ },
1655
+ rating: {
1656
+ type: 'number',
1657
+ format: 'double'
1658
+ },
1659
+ ranking: {
1660
+ type: 'integer',
1661
+ format: 'int32'
1662
+ }
1663
+ },
1664
+ required: ['year', 'team', 'conference', 'division', 'rating', 'ranking'],
1665
+ type: 'object',
1666
+ additionalProperties: false
1667
+ } as const;
1668
+
1669
+ export const $TeamElo = {
1670
+ properties: {
1671
+ year: {
1672
+ type: 'integer',
1673
+ format: 'int32'
1674
+ },
1675
+ team: {
1676
+ type: 'string'
1677
+ },
1678
+ conference: {
1679
+ type: 'string'
1680
+ },
1681
+ elo: {
1682
+ type: 'integer',
1683
+ format: 'int32',
1684
+ nullable: true
1685
+ }
1686
+ },
1687
+ required: ['year', 'team', 'conference', 'elo'],
1688
+ type: 'object',
1689
+ additionalProperties: false
1690
+ } as const;
1691
+
1692
+ export const $TeamFPI = {
1693
+ properties: {
1694
+ year: {
1695
+ type: 'integer',
1696
+ format: 'int32'
1697
+ },
1698
+ team: {
1699
+ type: 'string'
1700
+ },
1701
+ conference: {
1702
+ type: 'string',
1703
+ nullable: true
1704
+ },
1705
+ fpi: {
1706
+ type: 'number',
1707
+ format: 'double',
1708
+ nullable: true
1709
+ },
1710
+ resumeRanks: {
1711
+ properties: {
1712
+ gameControl: {
1713
+ type: 'integer',
1714
+ format: 'int32',
1715
+ nullable: true
1716
+ },
1717
+ remainingStrengthOfSchedule: {
1718
+ type: 'integer',
1719
+ format: 'int32',
1720
+ nullable: true
1721
+ },
1722
+ strengthOfSchedule: {
1723
+ type: 'integer',
1724
+ format: 'int32',
1725
+ nullable: true
1726
+ },
1727
+ averageWinProbability: {
1728
+ type: 'integer',
1729
+ format: 'int32',
1730
+ nullable: true
1731
+ },
1732
+ fpi: {
1733
+ type: 'integer',
1734
+ format: 'int32',
1735
+ nullable: true
1736
+ },
1737
+ strengthOfRecord: {
1738
+ type: 'integer',
1739
+ format: 'int32',
1740
+ nullable: true
1741
+ }
1742
+ },
1743
+ required: ['gameControl', 'remainingStrengthOfSchedule', 'strengthOfSchedule', 'averageWinProbability', 'fpi', 'strengthOfRecord'],
1744
+ type: 'object'
1745
+ },
1746
+ efficiencies: {
1747
+ properties: {
1748
+ specialTeams: {
1749
+ type: 'number',
1750
+ format: 'double',
1751
+ nullable: true
1752
+ },
1753
+ defense: {
1754
+ type: 'number',
1755
+ format: 'double',
1756
+ nullable: true
1757
+ },
1758
+ offense: {
1759
+ type: 'number',
1760
+ format: 'double',
1761
+ nullable: true
1762
+ },
1763
+ overall: {
1764
+ type: 'number',
1765
+ format: 'double',
1766
+ nullable: true
1767
+ }
1768
+ },
1769
+ required: ['specialTeams', 'defense', 'offense', 'overall'],
1770
+ type: 'object'
1771
+ }
1772
+ },
1773
+ required: ['year', 'team', 'conference', 'fpi', 'resumeRanks', 'efficiencies'],
1774
+ type: 'object',
1775
+ additionalProperties: false
1776
+ } as const;
1777
+
1778
+ export const $PollRank = {
1779
+ properties: {
1780
+ rank: {
1781
+ type: 'integer',
1782
+ format: 'int32',
1783
+ nullable: true
1784
+ },
1785
+ school: {
1786
+ type: 'string'
1787
+ },
1788
+ conference: {
1789
+ type: 'string',
1790
+ nullable: true
1791
+ },
1792
+ firstPlaceVotes: {
1793
+ type: 'integer',
1794
+ format: 'int32',
1795
+ nullable: true
1796
+ },
1797
+ points: {
1798
+ type: 'integer',
1799
+ format: 'int32',
1800
+ nullable: true
1801
+ }
1802
+ },
1803
+ required: ['rank', 'school', 'conference', 'firstPlaceVotes', 'points'],
1804
+ type: 'object',
1805
+ additionalProperties: false
1806
+ } as const;
1807
+
1808
+ export const $Poll = {
1809
+ properties: {
1810
+ poll: {
1811
+ type: 'string'
1812
+ },
1813
+ ranks: {
1814
+ items: {
1815
+ '$ref': '#/components/schemas/PollRank'
1816
+ },
1817
+ type: 'array'
1818
+ }
1819
+ },
1820
+ required: ['poll', 'ranks'],
1821
+ type: 'object',
1822
+ additionalProperties: false
1823
+ } as const;
1824
+
1825
+ export const $PollWeek = {
1826
+ properties: {
1827
+ season: {
1828
+ type: 'integer',
1829
+ format: 'int32'
1830
+ },
1831
+ seasonType: {
1832
+ '$ref': '#/components/schemas/SeasonType'
1833
+ },
1834
+ week: {
1835
+ type: 'integer',
1836
+ format: 'int32'
1837
+ },
1838
+ polls: {
1839
+ items: {
1840
+ '$ref': '#/components/schemas/Poll'
1841
+ },
1842
+ type: 'array'
1843
+ }
1844
+ },
1845
+ required: ['season', 'seasonType', 'week', 'polls'],
1846
+ type: 'object',
1847
+ additionalProperties: false
1848
+ } as const;
1849
+
1850
+ export const $Play = {
1851
+ properties: {
1852
+ id: {
1853
+ type: 'string'
1854
+ },
1855
+ driveId: {
1856
+ type: 'string'
1857
+ },
1858
+ gameId: {
1859
+ type: 'integer',
1860
+ format: 'int32'
1861
+ },
1862
+ driveNumber: {
1863
+ type: 'integer',
1864
+ format: 'int32',
1865
+ nullable: true
1866
+ },
1867
+ playNumber: {
1868
+ type: 'integer',
1869
+ format: 'int32',
1870
+ nullable: true
1871
+ },
1872
+ offense: {
1873
+ type: 'string'
1874
+ },
1875
+ offenseConference: {
1876
+ type: 'string',
1877
+ nullable: true
1878
+ },
1879
+ offenseScore: {
1880
+ type: 'integer',
1881
+ format: 'int32'
1882
+ },
1883
+ defense: {
1884
+ type: 'string'
1885
+ },
1886
+ home: {
1887
+ type: 'string'
1888
+ },
1889
+ away: {
1890
+ type: 'string'
1891
+ },
1892
+ defenseConference: {
1893
+ type: 'string',
1894
+ nullable: true
1895
+ },
1896
+ defenseScore: {
1897
+ type: 'integer',
1898
+ format: 'int32'
1899
+ },
1900
+ period: {
1901
+ type: 'integer',
1902
+ format: 'int32'
1903
+ },
1904
+ clock: {
1905
+ properties: {
1906
+ seconds: {
1907
+ type: 'integer',
1908
+ format: 'int32',
1909
+ nullable: true
1910
+ },
1911
+ minutes: {
1912
+ type: 'integer',
1913
+ format: 'int32',
1914
+ nullable: true
1915
+ }
1916
+ },
1917
+ required: ['seconds', 'minutes'],
1918
+ type: 'object'
1919
+ },
1920
+ offenseTimeouts: {
1921
+ type: 'integer',
1922
+ format: 'int32',
1923
+ nullable: true
1924
+ },
1925
+ defenseTimeouts: {
1926
+ type: 'integer',
1927
+ format: 'int32',
1928
+ nullable: true
1929
+ },
1930
+ yardline: {
1931
+ type: 'integer',
1932
+ format: 'int32'
1933
+ },
1934
+ yardsToGoal: {
1935
+ type: 'integer',
1936
+ format: 'int32'
1937
+ },
1938
+ down: {
1939
+ type: 'integer',
1940
+ format: 'int32'
1941
+ },
1942
+ distance: {
1943
+ type: 'integer',
1944
+ format: 'int32'
1945
+ },
1946
+ yardsGained: {
1947
+ type: 'integer',
1948
+ format: 'int32'
1949
+ },
1950
+ scoring: {
1951
+ type: 'boolean'
1952
+ },
1953
+ playType: {
1954
+ type: 'string'
1955
+ },
1956
+ playText: {
1957
+ type: 'string',
1958
+ nullable: true
1959
+ },
1960
+ ppa: {
1961
+ type: 'number',
1962
+ format: 'double',
1963
+ nullable: true
1964
+ },
1965
+ wallclock: {
1966
+ type: 'string',
1967
+ nullable: true
1968
+ }
1969
+ },
1970
+ required: ['id', 'driveId', 'gameId', 'driveNumber', 'playNumber', 'offense', 'offenseConference', 'offenseScore', 'defense', 'home', 'away', 'defenseConference', 'defenseScore', 'period', 'clock', 'offenseTimeouts', 'defenseTimeouts', 'yardline', 'yardsToGoal', 'down', 'distance', 'yardsGained', 'scoring', 'playType', 'playText', 'ppa', 'wallclock'],
1971
+ type: 'object',
1972
+ additionalProperties: false
1973
+ } as const;
1974
+
1975
+ export const $PlayType = {
1976
+ properties: {
1977
+ id: {
1978
+ type: 'integer',
1979
+ format: 'int32'
1980
+ },
1981
+ text: {
1982
+ type: 'string'
1983
+ },
1984
+ abbreviation: {
1985
+ type: 'string',
1986
+ nullable: true
1987
+ }
1988
+ },
1989
+ required: ['id', 'text', 'abbreviation'],
1990
+ type: 'object',
1991
+ additionalProperties: false
1992
+ } as const;
1993
+
1994
+ export const $PlayStat = {
1995
+ properties: {
1996
+ gameId: {
1997
+ type: 'number',
1998
+ format: 'double'
1999
+ },
2000
+ season: {
2001
+ type: 'number',
2002
+ format: 'double'
2003
+ },
2004
+ week: {
2005
+ type: 'number',
2006
+ format: 'double'
2007
+ },
2008
+ team: {
2009
+ type: 'string'
2010
+ },
2011
+ conference: {
2012
+ type: 'string'
2013
+ },
2014
+ opponent: {
2015
+ type: 'string'
2016
+ },
2017
+ teamScore: {
2018
+ type: 'number',
2019
+ format: 'double'
2020
+ },
2021
+ opponentScore: {
2022
+ type: 'number',
2023
+ format: 'double'
2024
+ },
2025
+ driveId: {
2026
+ type: 'string'
2027
+ },
2028
+ playId: {
2029
+ type: 'string'
2030
+ },
2031
+ period: {
2032
+ type: 'number',
2033
+ format: 'double'
2034
+ },
2035
+ clock: {
2036
+ properties: {
2037
+ seconds: {
2038
+ type: 'number',
2039
+ format: 'double',
2040
+ nullable: true
2041
+ },
2042
+ minutes: {
2043
+ type: 'number',
2044
+ format: 'double',
2045
+ nullable: true
2046
+ }
2047
+ },
2048
+ required: ['seconds', 'minutes'],
2049
+ type: 'object'
2050
+ },
2051
+ yardsToGoal: {
2052
+ type: 'number',
2053
+ format: 'double'
2054
+ },
2055
+ down: {
2056
+ type: 'number',
2057
+ format: 'double'
2058
+ },
2059
+ distance: {
2060
+ type: 'number',
2061
+ format: 'double'
2062
+ },
2063
+ athleteId: {
2064
+ type: 'string'
2065
+ },
2066
+ athleteName: {
2067
+ type: 'string'
2068
+ },
2069
+ statType: {
2070
+ type: 'string'
2071
+ },
2072
+ stat: {
2073
+ type: 'number',
2074
+ format: 'double'
2075
+ }
2076
+ },
2077
+ required: ['gameId', 'season', 'week', 'team', 'conference', 'opponent', 'teamScore', 'opponentScore', 'driveId', 'playId', 'period', 'clock', 'yardsToGoal', 'down', 'distance', 'athleteId', 'athleteName', 'statType', 'stat'],
2078
+ type: 'object',
2079
+ additionalProperties: false
2080
+ } as const;
2081
+
2082
+ export const $PlayStatType = {
2083
+ properties: {
2084
+ id: {
2085
+ type: 'integer',
2086
+ format: 'int32'
2087
+ },
2088
+ name: {
2089
+ type: 'string'
2090
+ }
2091
+ },
2092
+ required: ['id', 'name'],
2093
+ type: 'object',
2094
+ additionalProperties: false
2095
+ } as const;
2096
+
2097
+ export const $PlayerSearchResult = {
2098
+ properties: {
2099
+ id: {
2100
+ type: 'string'
2101
+ },
2102
+ team: {
2103
+ type: 'string'
2104
+ },
2105
+ name: {
2106
+ type: 'string'
2107
+ },
2108
+ firstName: {
2109
+ type: 'string',
2110
+ nullable: true
2111
+ },
2112
+ lastName: {
2113
+ type: 'string',
2114
+ nullable: true
2115
+ },
2116
+ weight: {
2117
+ type: 'integer',
2118
+ format: 'int32',
2119
+ nullable: true
2120
+ },
2121
+ height: {
2122
+ type: 'integer',
2123
+ format: 'int32',
2124
+ nullable: true
2125
+ },
2126
+ jersey: {
2127
+ type: 'integer',
2128
+ format: 'int32',
2129
+ nullable: true
2130
+ },
2131
+ position: {
2132
+ type: 'string'
2133
+ },
2134
+ hometown: {
2135
+ type: 'string'
2136
+ },
2137
+ teamColor: {
2138
+ type: 'string'
2139
+ },
2140
+ teamColorSecondary: {
2141
+ type: 'string'
2142
+ }
2143
+ },
2144
+ required: ['id', 'team', 'name', 'firstName', 'lastName', 'weight', 'height', 'jersey', 'position', 'hometown', 'teamColor', 'teamColorSecondary'],
2145
+ type: 'object',
2146
+ additionalProperties: false
2147
+ } as const;
2148
+
2149
+ export const $PlayerPPAChartItem = {
2150
+ properties: {
2151
+ playNumber: {
2152
+ type: 'integer',
2153
+ format: 'int32'
2154
+ },
2155
+ avgPPA: {
2156
+ type: 'number',
2157
+ format: 'double'
2158
+ }
2159
+ },
2160
+ required: ['playNumber', 'avgPPA'],
2161
+ type: 'object',
2162
+ additionalProperties: false
2163
+ } as const;
2164
+
2165
+ export const $PlayerUsage = {
2166
+ properties: {
2167
+ season: {
2168
+ type: 'integer',
2169
+ format: 'int32'
2170
+ },
2171
+ id: {
2172
+ type: 'string'
2173
+ },
2174
+ name: {
2175
+ type: 'string'
2176
+ },
2177
+ position: {
2178
+ type: 'string'
2179
+ },
2180
+ team: {
2181
+ type: 'string'
2182
+ },
2183
+ conference: {
2184
+ type: 'string'
2185
+ },
2186
+ usage: {
2187
+ properties: {
2188
+ passingDowns: {
2189
+ type: 'number',
2190
+ format: 'double'
2191
+ },
2192
+ standardDowns: {
2193
+ type: 'number',
2194
+ format: 'double'
2195
+ },
2196
+ thirdDown: {
2197
+ type: 'number',
2198
+ format: 'double'
2199
+ },
2200
+ secondDown: {
2201
+ type: 'number',
2202
+ format: 'double'
2203
+ },
2204
+ firstDown: {
2205
+ type: 'number',
2206
+ format: 'double'
2207
+ },
2208
+ rush: {
2209
+ type: 'number',
2210
+ format: 'double'
2211
+ },
2212
+ pass: {
2213
+ type: 'number',
2214
+ format: 'double'
2215
+ },
2216
+ overall: {
2217
+ type: 'number',
2218
+ format: 'double'
2219
+ }
2220
+ },
2221
+ required: ['passingDowns', 'standardDowns', 'thirdDown', 'secondDown', 'firstDown', 'rush', 'pass', 'overall'],
2222
+ type: 'object'
2223
+ }
2224
+ },
2225
+ required: ['season', 'id', 'name', 'position', 'team', 'conference', 'usage'],
2226
+ type: 'object',
2227
+ additionalProperties: false
2228
+ } as const;
2229
+
2230
+ export const $ReturningProduction = {
2231
+ properties: {
2232
+ season: {
2233
+ type: 'integer',
2234
+ format: 'int32'
2235
+ },
2236
+ team: {
2237
+ type: 'string'
2238
+ },
2239
+ conference: {
2240
+ type: 'string'
2241
+ },
2242
+ totalPPA: {
2243
+ type: 'number',
2244
+ format: 'double'
2245
+ },
2246
+ totalPassingPPA: {
2247
+ type: 'number',
2248
+ format: 'double'
2249
+ },
2250
+ totalReceivingPPA: {
2251
+ type: 'number',
2252
+ format: 'double'
2253
+ },
2254
+ totalRushingPPA: {
2255
+ type: 'number',
2256
+ format: 'double'
2257
+ },
2258
+ percentPPA: {
2259
+ type: 'number',
2260
+ format: 'double'
2261
+ },
2262
+ percentPassingPPA: {
2263
+ type: 'number',
2264
+ format: 'double'
2265
+ },
2266
+ percentReceivingPPA: {
2267
+ type: 'number',
2268
+ format: 'double'
2269
+ },
2270
+ percentRushingPPA: {
2271
+ type: 'number',
2272
+ format: 'double'
2273
+ },
2274
+ usage: {
2275
+ type: 'number',
2276
+ format: 'double'
2277
+ },
2278
+ passingUsage: {
2279
+ type: 'number',
2280
+ format: 'double'
2281
+ },
2282
+ receivingUsage: {
2283
+ type: 'number',
2284
+ format: 'double'
2285
+ },
2286
+ rushingUsage: {
2287
+ type: 'number',
2288
+ format: 'double'
2289
+ }
2290
+ },
2291
+ required: ['season', 'team', 'conference', 'totalPPA', 'totalPassingPPA', 'totalReceivingPPA', 'totalRushingPPA', 'percentPPA', 'percentPassingPPA', 'percentReceivingPPA', 'percentRushingPPA', 'usage', 'passingUsage', 'receivingUsage', 'rushingUsage'],
2292
+ type: 'object',
2293
+ additionalProperties: false
2294
+ } as const;
2295
+
2296
+ export const $TransferEligibility = {
2297
+ enum: ['Withdrawn', 'TBD', 'PendingAppeal', 'SittingOne', 'Immediate'],
2298
+ type: 'string'
2299
+ } as const;
2300
+
2301
+ export const $PlayerTransfer = {
2302
+ properties: {
2303
+ season: {
2304
+ type: 'integer',
2305
+ format: 'int32'
2306
+ },
2307
+ firstName: {
2308
+ type: 'string'
2309
+ },
2310
+ lastName: {
2311
+ type: 'string'
2312
+ },
2313
+ position: {
2314
+ type: 'string'
2315
+ },
2316
+ origin: {
2317
+ type: 'string'
2318
+ },
2319
+ destination: {
2320
+ type: 'string',
2321
+ nullable: true
2322
+ },
2323
+ transferDate: {
2324
+ type: 'string',
2325
+ format: 'date-time',
2326
+ nullable: true
2327
+ },
2328
+ rating: {
2329
+ type: 'number',
2330
+ format: 'double',
2331
+ nullable: true
2332
+ },
2333
+ stars: {
2334
+ type: 'integer',
2335
+ format: 'int32',
2336
+ nullable: true
2337
+ },
2338
+ eligibility: {
2339
+ allOf: [
2340
+ {
2341
+ '$ref': '#/components/schemas/TransferEligibility'
2342
+ }
2343
+ ],
2344
+ nullable: true
2345
+ }
2346
+ },
2347
+ required: ['season', 'firstName', 'lastName', 'position', 'origin', 'destination', 'transferDate', 'rating', 'stars', 'eligibility'],
2348
+ type: 'object',
2349
+ additionalProperties: false
2350
+ } as const;
2351
+
2352
+ export const $PredictedPointsValue = {
2353
+ properties: {
2354
+ yardLine: {
2355
+ type: 'integer',
2356
+ format: 'int32'
2357
+ },
2358
+ predictedPoints: {
2359
+ type: 'number',
2360
+ format: 'double'
2361
+ }
2362
+ },
2363
+ required: ['yardLine', 'predictedPoints'],
2364
+ type: 'object',
2365
+ additionalProperties: false
2366
+ } as const;
2367
+
2368
+ export const $TeamSeasonPredictedPointsAdded = {
2369
+ properties: {
2370
+ season: {
2371
+ type: 'integer',
2372
+ format: 'int32'
2373
+ },
2374
+ conference: {
2375
+ type: 'string'
2376
+ },
2377
+ team: {
2378
+ type: 'string'
2379
+ },
2380
+ offense: {
2381
+ properties: {
2382
+ cumulative: {
2383
+ properties: {
2384
+ rushing: {
2385
+ type: 'number',
2386
+ format: 'double'
2387
+ },
2388
+ passing: {
2389
+ type: 'number',
2390
+ format: 'double'
2391
+ },
2392
+ total: {
2393
+ type: 'number',
2394
+ format: 'double'
2395
+ }
2396
+ },
2397
+ required: ['rushing', 'passing', 'total'],
2398
+ type: 'object'
2399
+ },
2400
+ thirdDown: {
2401
+ type: 'number',
2402
+ format: 'double'
2403
+ },
2404
+ secondDown: {
2405
+ type: 'number',
2406
+ format: 'double'
2407
+ },
2408
+ firstDown: {
2409
+ type: 'number',
2410
+ format: 'double'
2411
+ },
2412
+ rushing: {
2413
+ type: 'number',
2414
+ format: 'double'
2415
+ },
2416
+ passing: {
2417
+ type: 'number',
2418
+ format: 'double'
2419
+ },
2420
+ overall: {
2421
+ type: 'number',
2422
+ format: 'double'
2423
+ }
2424
+ },
2425
+ required: ['cumulative', 'thirdDown', 'secondDown', 'firstDown', 'rushing', 'passing', 'overall'],
2426
+ type: 'object'
2427
+ },
2428
+ defense: {
2429
+ properties: {
2430
+ cumulative: {
2431
+ properties: {
2432
+ rushing: {
2433
+ type: 'number',
2434
+ format: 'double'
2435
+ },
2436
+ passing: {
2437
+ type: 'number',
2438
+ format: 'double'
2439
+ },
2440
+ total: {
2441
+ type: 'number',
2442
+ format: 'double'
2443
+ }
2444
+ },
2445
+ required: ['rushing', 'passing', 'total'],
2446
+ type: 'object'
2447
+ },
2448
+ thirdDown: {
2449
+ type: 'number',
2450
+ format: 'double'
2451
+ },
2452
+ secondDown: {
2453
+ type: 'number',
2454
+ format: 'double'
2455
+ },
2456
+ firstDown: {
2457
+ type: 'number',
2458
+ format: 'double'
2459
+ },
2460
+ rushing: {
2461
+ type: 'number',
2462
+ format: 'double'
2463
+ },
2464
+ passing: {
2465
+ type: 'number',
2466
+ format: 'double'
2467
+ },
2468
+ overall: {
2469
+ type: 'number',
2470
+ format: 'double'
2471
+ }
2472
+ },
2473
+ required: ['cumulative', 'thirdDown', 'secondDown', 'firstDown', 'rushing', 'passing', 'overall'],
2474
+ type: 'object'
2475
+ }
2476
+ },
2477
+ required: ['season', 'conference', 'team', 'offense', 'defense'],
2478
+ type: 'object',
2479
+ additionalProperties: false
2480
+ } as const;
2481
+
2482
+ export const $TeamGamePredictedPointsAdded = {
2483
+ properties: {
2484
+ gameId: {
2485
+ type: 'integer',
2486
+ format: 'int32'
2487
+ },
2488
+ season: {
2489
+ type: 'integer',
2490
+ format: 'int32'
2491
+ },
2492
+ week: {
2493
+ type: 'integer',
2494
+ format: 'int32'
2495
+ },
2496
+ seasonType: {
2497
+ '$ref': '#/components/schemas/SeasonType'
2498
+ },
2499
+ team: {
2500
+ type: 'string'
2501
+ },
2502
+ conference: {
2503
+ type: 'string'
2504
+ },
2505
+ opponent: {
2506
+ type: 'string'
2507
+ },
2508
+ offense: {
2509
+ properties: {
2510
+ thirdDown: {
2511
+ type: 'number',
2512
+ format: 'double'
2513
+ },
2514
+ secondDown: {
2515
+ type: 'number',
2516
+ format: 'double'
2517
+ },
2518
+ firstDown: {
2519
+ type: 'number',
2520
+ format: 'double'
2521
+ },
2522
+ rushing: {
2523
+ type: 'number',
2524
+ format: 'double'
2525
+ },
2526
+ passing: {
2527
+ type: 'number',
2528
+ format: 'double'
2529
+ },
2530
+ overall: {
2531
+ type: 'number',
2532
+ format: 'double'
2533
+ }
2534
+ },
2535
+ required: ['thirdDown', 'secondDown', 'firstDown', 'rushing', 'passing', 'overall'],
2536
+ type: 'object'
2537
+ },
2538
+ defense: {
2539
+ properties: {
2540
+ thirdDown: {
2541
+ type: 'number',
2542
+ format: 'double'
2543
+ },
2544
+ secondDown: {
2545
+ type: 'number',
2546
+ format: 'double'
2547
+ },
2548
+ firstDown: {
2549
+ type: 'number',
2550
+ format: 'double'
2551
+ },
2552
+ rushing: {
2553
+ type: 'number',
2554
+ format: 'double'
2555
+ },
2556
+ passing: {
2557
+ type: 'number',
2558
+ format: 'double'
2559
+ },
2560
+ overall: {
2561
+ type: 'number',
2562
+ format: 'double'
2563
+ }
2564
+ },
2565
+ required: ['thirdDown', 'secondDown', 'firstDown', 'rushing', 'passing', 'overall'],
2566
+ type: 'object'
2567
+ }
2568
+ },
2569
+ required: ['gameId', 'season', 'week', 'seasonType', 'team', 'conference', 'opponent', 'offense', 'defense'],
2570
+ type: 'object',
2571
+ additionalProperties: false
2572
+ } as const;
2573
+
2574
+ export const $PlayerGamePredictedPointsAdded = {
2575
+ properties: {
2576
+ season: {
2577
+ type: 'integer',
2578
+ format: 'int32'
2579
+ },
2580
+ week: {
2581
+ type: 'integer',
2582
+ format: 'int32'
2583
+ },
2584
+ seasonType: {
2585
+ '$ref': '#/components/schemas/SeasonType'
2586
+ },
2587
+ id: {
2588
+ type: 'string'
2589
+ },
2590
+ name: {
2591
+ type: 'string'
2592
+ },
2593
+ position: {
2594
+ type: 'string'
2595
+ },
2596
+ team: {
2597
+ type: 'string'
2598
+ },
2599
+ opponent: {
2600
+ type: 'string'
2601
+ },
2602
+ averagePPA: {
2603
+ properties: {
2604
+ rush: {
2605
+ type: 'number',
2606
+ format: 'double'
2607
+ },
2608
+ pass: {
2609
+ type: 'number',
2610
+ format: 'double'
2611
+ },
2612
+ all: {
2613
+ type: 'number',
2614
+ format: 'double'
2615
+ }
2616
+ },
2617
+ required: ['all'],
2618
+ type: 'object'
2619
+ }
2620
+ },
2621
+ required: ['season', 'week', 'seasonType', 'id', 'name', 'position', 'team', 'opponent', 'averagePPA'],
2622
+ type: 'object',
2623
+ additionalProperties: false
2624
+ } as const;
2625
+
2626
+ export const $PlayerSeasonPredictedPointsAdded = {
2627
+ properties: {
2628
+ season: {
2629
+ type: 'integer',
2630
+ format: 'int32'
2631
+ },
2632
+ id: {
2633
+ type: 'string'
2634
+ },
2635
+ name: {
2636
+ type: 'string'
2637
+ },
2638
+ position: {
2639
+ type: 'string'
2640
+ },
2641
+ team: {
2642
+ type: 'string'
2643
+ },
2644
+ conference: {
2645
+ type: 'string'
2646
+ },
2647
+ averagePPA: {
2648
+ properties: {
2649
+ passingDowns: {
2650
+ type: 'number',
2651
+ format: 'double'
2652
+ },
2653
+ standardDowns: {
2654
+ type: 'number',
2655
+ format: 'double'
2656
+ },
2657
+ thirdDown: {
2658
+ type: 'number',
2659
+ format: 'double'
2660
+ },
2661
+ secondDown: {
2662
+ type: 'number',
2663
+ format: 'double'
2664
+ },
2665
+ firstDown: {
2666
+ type: 'number',
2667
+ format: 'double'
2668
+ },
2669
+ rush: {
2670
+ type: 'number',
2671
+ format: 'double'
2672
+ },
2673
+ pass: {
2674
+ type: 'number',
2675
+ format: 'double'
2676
+ },
2677
+ all: {
2678
+ type: 'number',
2679
+ format: 'double'
2680
+ }
2681
+ },
2682
+ required: ['all'],
2683
+ type: 'object'
2684
+ },
2685
+ totalPPA: {
2686
+ properties: {
2687
+ passingDowns: {
2688
+ type: 'number',
2689
+ format: 'double'
2690
+ },
2691
+ standardDowns: {
2692
+ type: 'number',
2693
+ format: 'double'
2694
+ },
2695
+ thirdDown: {
2696
+ type: 'number',
2697
+ format: 'double'
2698
+ },
2699
+ secondDown: {
2700
+ type: 'number',
2701
+ format: 'double'
2702
+ },
2703
+ firstDown: {
2704
+ type: 'number',
2705
+ format: 'double'
2706
+ },
2707
+ rush: {
2708
+ type: 'number',
2709
+ format: 'double'
2710
+ },
2711
+ pass: {
2712
+ type: 'number',
2713
+ format: 'double'
2714
+ },
2715
+ all: {
2716
+ type: 'number',
2717
+ format: 'double'
2718
+ }
2719
+ },
2720
+ required: ['all'],
2721
+ type: 'object'
2722
+ }
2723
+ },
2724
+ required: ['season', 'id', 'name', 'position', 'team', 'conference', 'averagePPA', 'totalPPA'],
2725
+ type: 'object',
2726
+ additionalProperties: false
2727
+ } as const;
2728
+
2729
+ export const $PlayWinProbability = {
2730
+ properties: {
2731
+ gameId: {
2732
+ type: 'integer',
2733
+ format: 'int32'
2734
+ },
2735
+ playId: {
2736
+ type: 'string'
2737
+ },
2738
+ playText: {
2739
+ type: 'string'
2740
+ },
2741
+ homeId: {
2742
+ type: 'integer',
2743
+ format: 'int32'
2744
+ },
2745
+ home: {
2746
+ type: 'string'
2747
+ },
2748
+ awayId: {
2749
+ type: 'integer',
2750
+ format: 'int32'
2751
+ },
2752
+ away: {
2753
+ type: 'string'
2754
+ },
2755
+ spread: {
2756
+ type: 'number',
2757
+ format: 'double'
2758
+ },
2759
+ homeBall: {
2760
+ type: 'boolean'
2761
+ },
2762
+ homeScore: {
2763
+ type: 'integer',
2764
+ format: 'int32'
2765
+ },
2766
+ awayScore: {
2767
+ type: 'integer',
2768
+ format: 'int32'
2769
+ },
2770
+ yardLine: {
2771
+ type: 'integer',
2772
+ format: 'int32'
2773
+ },
2774
+ down: {
2775
+ type: 'integer',
2776
+ format: 'int32'
2777
+ },
2778
+ distance: {
2779
+ type: 'integer',
2780
+ format: 'int32'
2781
+ },
2782
+ homeWinProbability: {
2783
+ type: 'number',
2784
+ format: 'double'
2785
+ },
2786
+ playNumber: {
2787
+ type: 'integer',
2788
+ format: 'int32'
2789
+ }
2790
+ },
2791
+ required: ['gameId', 'playId', 'playText', 'homeId', 'home', 'awayId', 'away', 'spread', 'homeBall', 'homeScore', 'awayScore', 'yardLine', 'down', 'distance', 'homeWinProbability', 'playNumber'],
2792
+ type: 'object',
2793
+ additionalProperties: false
2794
+ } as const;
2795
+
2796
+ export const $PregameWinProbability = {
2797
+ properties: {
2798
+ season: {
2799
+ type: 'integer',
2800
+ format: 'int32'
2801
+ },
2802
+ seasonType: {
2803
+ '$ref': '#/components/schemas/SeasonType'
2804
+ },
2805
+ week: {
2806
+ type: 'integer',
2807
+ format: 'int32'
2808
+ },
2809
+ gameId: {
2810
+ type: 'integer',
2811
+ format: 'int32'
2812
+ },
2813
+ homeTeam: {
2814
+ type: 'string'
2815
+ },
2816
+ awayTeam: {
2817
+ type: 'string'
2818
+ },
2819
+ spread: {
2820
+ type: 'number',
2821
+ format: 'double'
2822
+ },
2823
+ homeWinProbability: {
2824
+ type: 'number',
2825
+ format: 'double'
2826
+ }
2827
+ },
2828
+ required: ['season', 'seasonType', 'week', 'gameId', 'homeTeam', 'awayTeam', 'spread', 'homeWinProbability'],
2829
+ type: 'object',
2830
+ additionalProperties: false
2831
+ } as const;
2832
+
2833
+ export const $FieldGoalEP = {
2834
+ properties: {
2835
+ yardsToGoal: {
2836
+ type: 'integer',
2837
+ format: 'int32'
2838
+ },
2839
+ distance: {
2840
+ type: 'integer',
2841
+ format: 'int32'
2842
+ },
2843
+ expectedPoints: {
2844
+ type: 'number',
2845
+ format: 'double'
2846
+ }
2847
+ },
2848
+ required: ['yardsToGoal', 'distance', 'expectedPoints'],
2849
+ type: 'object',
2850
+ additionalProperties: false
2851
+ } as const;
2852
+
2853
+ export const $LiveGameTeam = {
2854
+ properties: {
2855
+ teamId: {
2856
+ type: 'integer',
2857
+ format: 'int32'
2858
+ },
2859
+ team: {
2860
+ type: 'string'
2861
+ },
2862
+ homeAway: {
2863
+ type: 'string',
2864
+ enum: ['home', 'away']
2865
+ },
2866
+ lineScores: {
2867
+ items: {
2868
+ type: 'integer',
2869
+ format: 'int32'
2870
+ },
2871
+ type: 'array'
2872
+ },
2873
+ points: {
2874
+ type: 'integer',
2875
+ format: 'int32'
2876
+ },
2877
+ drives: {
2878
+ type: 'integer',
2879
+ format: 'int32'
2880
+ },
2881
+ scoringOpportunities: {
2882
+ type: 'integer',
2883
+ format: 'int32'
2884
+ },
2885
+ pointsPerOpportunity: {
2886
+ type: 'number',
2887
+ format: 'double'
2888
+ },
2889
+ plays: {
2890
+ type: 'integer',
2891
+ format: 'int32'
2892
+ },
2893
+ lineYards: {
2894
+ type: 'number',
2895
+ format: 'double'
2896
+ },
2897
+ lineYardsPerRush: {
2898
+ type: 'number',
2899
+ format: 'double'
2900
+ },
2901
+ secondLevelYards: {
2902
+ type: 'number',
2903
+ format: 'double'
2904
+ },
2905
+ secondLevelYardsPerRush: {
2906
+ type: 'number',
2907
+ format: 'double'
2908
+ },
2909
+ openFieldYards: {
2910
+ type: 'number',
2911
+ format: 'double'
2912
+ },
2913
+ openFieldYardsPerRush: {
2914
+ type: 'number',
2915
+ format: 'double'
2916
+ },
2917
+ epaPerPlay: {
2918
+ type: 'number',
2919
+ format: 'double'
2920
+ },
2921
+ totalEpa: {
2922
+ type: 'number',
2923
+ format: 'double'
2924
+ },
2925
+ passingEpa: {
2926
+ type: 'number',
2927
+ format: 'double'
2928
+ },
2929
+ epaPerPass: {
2930
+ type: 'number',
2931
+ format: 'double'
2932
+ },
2933
+ rushingEpa: {
2934
+ type: 'number',
2935
+ format: 'double'
2936
+ },
2937
+ epaPerRush: {
2938
+ type: 'number',
2939
+ format: 'double'
2940
+ },
2941
+ successRate: {
2942
+ type: 'number',
2943
+ format: 'double'
2944
+ },
2945
+ standardDownSuccessRate: {
2946
+ type: 'number',
2947
+ format: 'double'
2948
+ },
2949
+ passingDownSuccessRate: {
2950
+ type: 'number',
2951
+ format: 'double'
2952
+ },
2953
+ explosiveness: {
2954
+ type: 'number',
2955
+ format: 'double'
2956
+ }
2957
+ },
2958
+ required: ['teamId', 'team', 'homeAway', 'lineScores', 'points', 'drives', 'scoringOpportunities', 'pointsPerOpportunity', 'plays', 'lineYards', 'lineYardsPerRush', 'secondLevelYards', 'secondLevelYardsPerRush', 'openFieldYards', 'openFieldYardsPerRush', 'epaPerPlay', 'totalEpa', 'passingEpa', 'epaPerPass', 'rushingEpa', 'epaPerRush', 'successRate', 'standardDownSuccessRate', 'passingDownSuccessRate', 'explosiveness'],
2959
+ type: 'object',
2960
+ additionalProperties: false
2961
+ } as const;
2962
+
2963
+ export const $LiveGamePlay = {
2964
+ properties: {
2965
+ id: {
2966
+ type: 'string'
2967
+ },
2968
+ homeScore: {
2969
+ type: 'integer',
2970
+ format: 'int32'
2971
+ },
2972
+ awayScore: {
2973
+ type: 'integer',
2974
+ format: 'int32'
2975
+ },
2976
+ period: {
2977
+ type: 'integer',
2978
+ format: 'int32'
2979
+ },
2980
+ clock: {
2981
+ type: 'string'
2982
+ },
2983
+ wallClock: {
2984
+ type: 'string',
2985
+ format: 'date-time'
2986
+ },
2987
+ teamId: {
2988
+ type: 'integer',
2989
+ format: 'int32'
2990
+ },
2991
+ team: {
2992
+ type: 'string'
2993
+ },
2994
+ down: {
2995
+ type: 'integer',
2996
+ format: 'int32'
2997
+ },
2998
+ distance: {
2999
+ type: 'integer',
3000
+ format: 'int32'
3001
+ },
3002
+ yardsToGoal: {
3003
+ type: 'integer',
3004
+ format: 'int32'
3005
+ },
3006
+ yardsGained: {
3007
+ type: 'integer',
3008
+ format: 'int32'
3009
+ },
3010
+ playTypeId: {
3011
+ type: 'integer',
3012
+ format: 'int32'
3013
+ },
3014
+ playType: {
3015
+ type: 'string'
3016
+ },
3017
+ epa: {
3018
+ type: 'number',
3019
+ format: 'double',
3020
+ nullable: true
3021
+ },
3022
+ garbageTime: {
3023
+ type: 'boolean'
3024
+ },
3025
+ success: {
3026
+ type: 'boolean'
3027
+ },
3028
+ rushPash: {
3029
+ type: 'string',
3030
+ enum: ['rush', 'pass', 'other']
3031
+ },
3032
+ downType: {
3033
+ type: 'string',
3034
+ enum: ['passing', 'standard']
3035
+ },
3036
+ playText: {
3037
+ type: 'string'
3038
+ }
3039
+ },
3040
+ required: ['id', 'homeScore', 'awayScore', 'period', 'clock', 'wallClock', 'teamId', 'team', 'down', 'distance', 'yardsToGoal', 'yardsGained', 'playTypeId', 'playType', 'epa', 'garbageTime', 'success', 'rushPash', 'downType', 'playText'],
3041
+ type: 'object',
3042
+ additionalProperties: false
3043
+ } as const;
3044
+
3045
+ export const $LiveGameDrive = {
3046
+ properties: {
3047
+ id: {
3048
+ type: 'string'
3049
+ },
3050
+ offenseId: {
3051
+ type: 'integer',
3052
+ format: 'int32'
3053
+ },
3054
+ offense: {
3055
+ type: 'string'
3056
+ },
3057
+ defenseId: {
3058
+ type: 'integer',
3059
+ format: 'int32'
3060
+ },
3061
+ defense: {
3062
+ type: 'string'
3063
+ },
3064
+ playCount: {
3065
+ type: 'integer',
3066
+ format: 'int32'
3067
+ },
3068
+ yards: {
3069
+ type: 'integer',
3070
+ format: 'int32'
3071
+ },
3072
+ startPeriod: {
3073
+ type: 'integer',
3074
+ format: 'int32'
3075
+ },
3076
+ startClock: {
3077
+ type: 'string',
3078
+ nullable: true
3079
+ },
3080
+ startYardsToGoal: {
3081
+ type: 'integer',
3082
+ format: 'int32'
3083
+ },
3084
+ endPeriod: {
3085
+ type: 'integer',
3086
+ format: 'int32',
3087
+ nullable: true
3088
+ },
3089
+ endClock: {
3090
+ type: 'string',
3091
+ nullable: true
3092
+ },
3093
+ endYardsToGoal: {
3094
+ type: 'integer',
3095
+ format: 'int32',
3096
+ nullable: true
3097
+ },
3098
+ duration: {
3099
+ type: 'string',
3100
+ nullable: true
3101
+ },
3102
+ scoringOpportunity: {
3103
+ type: 'boolean'
3104
+ },
3105
+ result: {
3106
+ type: 'string'
3107
+ },
3108
+ pointsGained: {
3109
+ type: 'integer',
3110
+ format: 'int32'
3111
+ },
3112
+ plays: {
3113
+ items: {
3114
+ '$ref': '#/components/schemas/LiveGamePlay'
3115
+ },
3116
+ type: 'array'
3117
+ }
3118
+ },
3119
+ required: ['id', 'offenseId', 'offense', 'defenseId', 'defense', 'playCount', 'yards', 'startPeriod', 'startClock', 'startYardsToGoal', 'endPeriod', 'endClock', 'endYardsToGoal', 'duration', 'scoringOpportunity', 'result', 'pointsGained', 'plays'],
3120
+ type: 'object',
3121
+ additionalProperties: false
3122
+ } as const;
3123
+
3124
+ export const $LiveGame = {
3125
+ properties: {
3126
+ id: {
3127
+ type: 'integer',
3128
+ format: 'int32'
3129
+ },
3130
+ status: {
3131
+ type: 'string'
3132
+ },
3133
+ period: {
3134
+ type: 'integer',
3135
+ format: 'int32',
3136
+ nullable: true
3137
+ },
3138
+ clock: {
3139
+ type: 'string'
3140
+ },
3141
+ possession: {
3142
+ type: 'string'
3143
+ },
3144
+ down: {
3145
+ type: 'integer',
3146
+ format: 'int32',
3147
+ nullable: true
3148
+ },
3149
+ distance: {
3150
+ type: 'integer',
3151
+ format: 'int32',
3152
+ nullable: true
3153
+ },
3154
+ yardsToGoal: {
3155
+ type: 'integer',
3156
+ format: 'int32',
3157
+ nullable: true
3158
+ },
3159
+ teams: {
3160
+ items: {
3161
+ '$ref': '#/components/schemas/LiveGameTeam'
3162
+ },
3163
+ type: 'array'
3164
+ },
3165
+ drives: {
3166
+ items: {
3167
+ '$ref': '#/components/schemas/LiveGameDrive'
3168
+ },
3169
+ type: 'array'
3170
+ }
3171
+ },
3172
+ required: ['id', 'status', 'period', 'clock', 'possession', 'down', 'distance', 'yardsToGoal', 'teams', 'drives'],
3173
+ type: 'object',
3174
+ additionalProperties: false
3175
+ } as const;
3176
+
3177
+ export const $GameLine = {
3178
+ properties: {
3179
+ provider: {
3180
+ type: 'string'
3181
+ },
3182
+ spread: {
3183
+ type: 'number',
3184
+ format: 'double',
3185
+ nullable: true
3186
+ },
3187
+ formattedSpread: {
3188
+ type: 'string'
3189
+ },
3190
+ spreadOpen: {
3191
+ type: 'number',
3192
+ format: 'double',
3193
+ nullable: true
3194
+ },
3195
+ overUnder: {
3196
+ type: 'number',
3197
+ format: 'double',
3198
+ nullable: true
3199
+ },
3200
+ overUnderOpen: {
3201
+ type: 'number',
3202
+ format: 'double',
3203
+ nullable: true
3204
+ },
3205
+ homeMoneyline: {
3206
+ type: 'number',
3207
+ format: 'double',
3208
+ nullable: true
3209
+ },
3210
+ awayMoneyline: {
3211
+ type: 'number',
3212
+ format: 'double',
3213
+ nullable: true
3214
+ }
3215
+ },
3216
+ required: ['provider', 'spread', 'formattedSpread', 'spreadOpen', 'overUnder', 'overUnderOpen', 'homeMoneyline', 'awayMoneyline'],
3217
+ type: 'object',
3218
+ additionalProperties: false
3219
+ } as const;
3220
+
3221
+ export const $BettingGame = {
3222
+ properties: {
3223
+ id: {
3224
+ type: 'integer',
3225
+ format: 'int32'
3226
+ },
3227
+ season: {
3228
+ type: 'integer',
3229
+ format: 'int32'
3230
+ },
3231
+ seasonType: {
3232
+ '$ref': '#/components/schemas/SeasonType'
3233
+ },
3234
+ week: {
3235
+ type: 'integer',
3236
+ format: 'int32'
3237
+ },
3238
+ startDate: {
3239
+ type: 'string',
3240
+ format: 'date-time'
3241
+ },
3242
+ homeTeam: {
3243
+ type: 'string'
3244
+ },
3245
+ homeConference: {
3246
+ type: 'string',
3247
+ nullable: true
3248
+ },
3249
+ homeClassification: {
3250
+ allOf: [
3251
+ {
3252
+ '$ref': '#/components/schemas/DivisionClassification'
3253
+ }
3254
+ ],
3255
+ nullable: true
3256
+ },
3257
+ homeScore: {
3258
+ type: 'integer',
3259
+ format: 'int32',
3260
+ nullable: true
3261
+ },
3262
+ awayTeam: {
3263
+ type: 'string'
3264
+ },
3265
+ awayConference: {
3266
+ type: 'string',
3267
+ nullable: true
3268
+ },
3269
+ awayClassification: {
3270
+ allOf: [
3271
+ {
3272
+ '$ref': '#/components/schemas/DivisionClassification'
3273
+ }
3274
+ ],
3275
+ nullable: true
3276
+ },
3277
+ awayScore: {
3278
+ type: 'integer',
3279
+ format: 'int32',
3280
+ nullable: true
3281
+ },
3282
+ lines: {
3283
+ items: {
3284
+ '$ref': '#/components/schemas/GameLine'
3285
+ },
3286
+ type: 'array'
3287
+ }
3288
+ },
3289
+ required: ['id', 'season', 'seasonType', 'week', 'startDate', 'homeTeam', 'homeConference', 'homeClassification', 'homeScore', 'awayTeam', 'awayConference', 'awayClassification', 'awayScore', 'lines'],
3290
+ type: 'object',
3291
+ additionalProperties: false
3292
+ } as const;
3293
+
3294
+ export const $Game = {
3295
+ properties: {
3296
+ id: {
3297
+ type: 'integer',
3298
+ format: 'int32'
3299
+ },
3300
+ season: {
3301
+ type: 'integer',
3302
+ format: 'int32'
3303
+ },
3304
+ week: {
3305
+ type: 'integer',
3306
+ format: 'int32'
3307
+ },
3308
+ seasonType: {
3309
+ '$ref': '#/components/schemas/SeasonType'
3310
+ },
3311
+ startDate: {
3312
+ type: 'string',
3313
+ format: 'date-time'
3314
+ },
3315
+ startTimeTBD: {
3316
+ type: 'boolean'
3317
+ },
3318
+ completed: {
3319
+ type: 'boolean'
3320
+ },
3321
+ neutralSite: {
3322
+ type: 'boolean'
3323
+ },
3324
+ conferenceGame: {
3325
+ type: 'boolean'
3326
+ },
3327
+ attendance: {
3328
+ type: 'integer',
3329
+ format: 'int32',
3330
+ nullable: true
3331
+ },
3332
+ venueId: {
3333
+ type: 'integer',
3334
+ format: 'int32',
3335
+ nullable: true
3336
+ },
3337
+ venue: {
3338
+ type: 'string',
3339
+ nullable: true
3340
+ },
3341
+ homeId: {
3342
+ type: 'integer',
3343
+ format: 'int32'
3344
+ },
3345
+ homeTeam: {
3346
+ type: 'string'
3347
+ },
3348
+ homeConference: {
3349
+ type: 'string',
3350
+ nullable: true
3351
+ },
3352
+ homeClassification: {
3353
+ allOf: [
3354
+ {
3355
+ '$ref': '#/components/schemas/DivisionClassification'
3356
+ }
3357
+ ],
3358
+ nullable: true
3359
+ },
3360
+ homePoints: {
3361
+ type: 'integer',
3362
+ format: 'int32',
3363
+ nullable: true
3364
+ },
3365
+ homeLineScores: {
3366
+ items: {
3367
+ type: 'number',
3368
+ format: 'double'
3369
+ },
3370
+ type: 'array',
3371
+ nullable: true,
3372
+ minItems: 4
3373
+ },
3374
+ homePostgameWinProbability: {
3375
+ type: 'number',
3376
+ format: 'double',
3377
+ nullable: true
3378
+ },
3379
+ homePregameElo: {
3380
+ type: 'integer',
3381
+ format: 'int32',
3382
+ nullable: true
3383
+ },
3384
+ homePostgameElo: {
3385
+ type: 'integer',
3386
+ format: 'int32',
3387
+ nullable: true
3388
+ },
3389
+ awayId: {
3390
+ type: 'integer',
3391
+ format: 'int32'
3392
+ },
3393
+ awayTeam: {
3394
+ type: 'string'
3395
+ },
3396
+ awayConference: {
3397
+ type: 'string',
3398
+ nullable: true
3399
+ },
3400
+ awayClassification: {
3401
+ allOf: [
3402
+ {
3403
+ '$ref': '#/components/schemas/DivisionClassification'
3404
+ }
3405
+ ],
3406
+ nullable: true
3407
+ },
3408
+ awayPoints: {
3409
+ type: 'integer',
3410
+ format: 'int32',
3411
+ nullable: true
3412
+ },
3413
+ awayLineScores: {
3414
+ items: {
3415
+ type: 'number',
3416
+ format: 'double'
3417
+ },
3418
+ type: 'array',
3419
+ nullable: true,
3420
+ minItems: 4
3421
+ },
3422
+ awayPostgameWinProbability: {
3423
+ type: 'number',
3424
+ format: 'double',
3425
+ nullable: true
3426
+ },
3427
+ awayPregameElo: {
3428
+ type: 'integer',
3429
+ format: 'int32',
3430
+ nullable: true
3431
+ },
3432
+ awayPostgameElo: {
3433
+ type: 'integer',
3434
+ format: 'int32',
3435
+ nullable: true
3436
+ },
3437
+ excitementIndex: {
3438
+ type: 'number',
3439
+ format: 'double',
3440
+ nullable: true
3441
+ },
3442
+ highlights: {
3443
+ type: 'string',
3444
+ nullable: true
3445
+ },
3446
+ notes: {
3447
+ type: 'string',
3448
+ nullable: true
3449
+ }
3450
+ },
3451
+ required: ['id', 'season', 'week', 'seasonType', 'startDate', 'startTimeTBD', 'completed', 'neutralSite', 'conferenceGame', 'attendance', 'venueId', 'venue', 'homeId', 'homeTeam', 'homeConference', 'homeClassification', 'homePoints', 'homeLineScores', 'homePostgameWinProbability', 'homePregameElo', 'homePostgameElo', 'awayId', 'awayTeam', 'awayConference', 'awayClassification', 'awayPoints', 'awayLineScores', 'awayPostgameWinProbability', 'awayPregameElo', 'awayPostgameElo', 'excitementIndex', 'highlights', 'notes'],
3452
+ type: 'object',
3453
+ additionalProperties: false
3454
+ } as const;
3455
+
3456
+ export const $GameTeamStatsTeamStat = {
3457
+ properties: {
3458
+ category: {
3459
+ type: 'string'
3460
+ },
3461
+ stat: {
3462
+ type: 'string'
3463
+ }
3464
+ },
3465
+ required: ['category', 'stat'],
3466
+ type: 'object',
3467
+ additionalProperties: false
3468
+ } as const;
3469
+
3470
+ export const $GameTeamStatsTeam = {
3471
+ properties: {
3472
+ teamId: {
3473
+ type: 'integer',
3474
+ format: 'int32'
3475
+ },
3476
+ team: {
3477
+ type: 'string'
3478
+ },
3479
+ conference: {
3480
+ type: 'string',
3481
+ nullable: true
3482
+ },
3483
+ homeAway: {
3484
+ type: 'string',
3485
+ enum: ['home', 'away']
3486
+ },
3487
+ points: {
3488
+ type: 'integer',
3489
+ format: 'int32',
3490
+ nullable: true
3491
+ },
3492
+ stats: {
3493
+ items: {
3494
+ '$ref': '#/components/schemas/GameTeamStatsTeamStat'
3495
+ },
3496
+ type: 'array'
3497
+ }
3498
+ },
3499
+ required: ['teamId', 'team', 'conference', 'homeAway', 'points', 'stats'],
3500
+ type: 'object',
3501
+ additionalProperties: false
3502
+ } as const;
3503
+
3504
+ export const $GameTeamStats = {
3505
+ properties: {
3506
+ id: {
3507
+ type: 'integer',
3508
+ format: 'int32'
3509
+ },
3510
+ teams: {
3511
+ items: {
3512
+ '$ref': '#/components/schemas/GameTeamStatsTeam'
3513
+ },
3514
+ type: 'array'
3515
+ }
3516
+ },
3517
+ required: ['id', 'teams'],
3518
+ type: 'object',
3519
+ additionalProperties: false
3520
+ } as const;
3521
+
3522
+ export const $GamePlayerStatPlayer = {
3523
+ properties: {
3524
+ id: {
3525
+ type: 'string'
3526
+ },
3527
+ name: {
3528
+ type: 'string'
3529
+ },
3530
+ stat: {
3531
+ type: 'string'
3532
+ }
3533
+ },
3534
+ required: ['id', 'name', 'stat'],
3535
+ type: 'object',
3536
+ additionalProperties: false
3537
+ } as const;
3538
+
3539
+ export const $GamePlayerStatTypes = {
3540
+ properties: {
3541
+ name: {
3542
+ type: 'string'
3543
+ },
3544
+ athletes: {
3545
+ items: {
3546
+ '$ref': '#/components/schemas/GamePlayerStatPlayer'
3547
+ },
3548
+ type: 'array'
3549
+ }
3550
+ },
3551
+ required: ['name', 'athletes'],
3552
+ type: 'object',
3553
+ additionalProperties: false
3554
+ } as const;
3555
+
3556
+ export const $GamePlayerStatCategories = {
3557
+ properties: {
3558
+ name: {
3559
+ type: 'string'
3560
+ },
3561
+ types: {
3562
+ items: {
3563
+ '$ref': '#/components/schemas/GamePlayerStatTypes'
3564
+ },
3565
+ type: 'array'
3566
+ }
3567
+ },
3568
+ required: ['name', 'types'],
3569
+ type: 'object',
3570
+ additionalProperties: false
3571
+ } as const;
3572
+
3573
+ export const $GamePlayerStatsTeam = {
3574
+ properties: {
3575
+ team: {
3576
+ type: 'string'
3577
+ },
3578
+ conference: {
3579
+ type: 'string',
3580
+ nullable: true
3581
+ },
3582
+ homeAway: {
3583
+ type: 'string',
3584
+ enum: ['home', 'away']
3585
+ },
3586
+ points: {
3587
+ type: 'integer',
3588
+ format: 'int32',
3589
+ nullable: true
3590
+ },
3591
+ categories: {
3592
+ items: {
3593
+ '$ref': '#/components/schemas/GamePlayerStatCategories'
3594
+ },
3595
+ type: 'array'
3596
+ }
3597
+ },
3598
+ required: ['team', 'conference', 'homeAway', 'points', 'categories'],
3599
+ type: 'object',
3600
+ additionalProperties: false
3601
+ } as const;
3602
+
3603
+ export const $GamePlayerStats = {
3604
+ properties: {
3605
+ id: {
3606
+ type: 'integer',
3607
+ format: 'int32'
3608
+ },
3609
+ teams: {
3610
+ items: {
3611
+ '$ref': '#/components/schemas/GamePlayerStatsTeam'
3612
+ },
3613
+ type: 'array'
3614
+ }
3615
+ },
3616
+ required: ['id', 'teams'],
3617
+ type: 'object',
3618
+ additionalProperties: false
3619
+ } as const;
3620
+
3621
+ export const $MediaType = {
3622
+ enum: ['tv', 'radio', 'web', 'ppv', 'mobile'],
3623
+ type: 'string'
3624
+ } as const;
3625
+
3626
+ export const $GameMedia = {
3627
+ properties: {
3628
+ id: {
3629
+ type: 'integer',
3630
+ format: 'int32'
3631
+ },
3632
+ season: {
3633
+ type: 'integer',
3634
+ format: 'int32'
3635
+ },
3636
+ week: {
3637
+ type: 'integer',
3638
+ format: 'int32'
3639
+ },
3640
+ seasonType: {
3641
+ '$ref': '#/components/schemas/SeasonType'
3642
+ },
3643
+ startTime: {
3644
+ type: 'string',
3645
+ format: 'date-time'
3646
+ },
3647
+ isStartTimeTBD: {
3648
+ type: 'boolean'
3649
+ },
3650
+ homeTeam: {
3651
+ type: 'string'
3652
+ },
3653
+ homeConference: {
3654
+ type: 'string',
3655
+ nullable: true
3656
+ },
3657
+ awayTeam: {
3658
+ type: 'string'
3659
+ },
3660
+ awayConference: {
3661
+ type: 'string',
3662
+ nullable: true
3663
+ },
3664
+ mediaType: {
3665
+ '$ref': '#/components/schemas/MediaType'
3666
+ },
3667
+ outlet: {
3668
+ type: 'string'
3669
+ }
3670
+ },
3671
+ required: ['id', 'season', 'week', 'seasonType', 'startTime', 'isStartTimeTBD', 'homeTeam', 'homeConference', 'awayTeam', 'awayConference', 'mediaType', 'outlet'],
3672
+ type: 'object',
3673
+ additionalProperties: false
3674
+ } as const;
3675
+
3676
+ export const $GameWeather = {
3677
+ properties: {
3678
+ id: {
3679
+ type: 'integer',
3680
+ format: 'int32'
3681
+ },
3682
+ season: {
3683
+ type: 'integer',
3684
+ format: 'int32'
3685
+ },
3686
+ week: {
3687
+ type: 'integer',
3688
+ format: 'int32'
3689
+ },
3690
+ seasonType: {
3691
+ '$ref': '#/components/schemas/SeasonType'
3692
+ },
3693
+ startTime: {
3694
+ type: 'string',
3695
+ format: 'date-time'
3696
+ },
3697
+ gameIndoors: {
3698
+ type: 'boolean'
3699
+ },
3700
+ homeTeam: {
3701
+ type: 'string'
3702
+ },
3703
+ homeConference: {
3704
+ type: 'string',
3705
+ nullable: true
3706
+ },
3707
+ awayTeam: {
3708
+ type: 'string'
3709
+ },
3710
+ awayConference: {
3711
+ type: 'string',
3712
+ nullable: true
3713
+ },
3714
+ venueId: {
3715
+ type: 'integer',
3716
+ format: 'int32'
3717
+ },
3718
+ venue: {
3719
+ type: 'string'
3720
+ },
3721
+ temperature: {
3722
+ type: 'number',
3723
+ format: 'double',
3724
+ nullable: true
3725
+ },
3726
+ dewPoint: {
3727
+ type: 'number',
3728
+ format: 'double',
3729
+ nullable: true
3730
+ },
3731
+ humidity: {
3732
+ type: 'number',
3733
+ format: 'double',
3734
+ nullable: true
3735
+ },
3736
+ precipitation: {
3737
+ type: 'number',
3738
+ format: 'double',
3739
+ nullable: true
3740
+ },
3741
+ snowfall: {
3742
+ type: 'number',
3743
+ format: 'double',
3744
+ nullable: true
3745
+ },
3746
+ windDirection: {
3747
+ type: 'number',
3748
+ format: 'double',
3749
+ nullable: true
3750
+ },
3751
+ windSpeed: {
3752
+ type: 'number',
3753
+ format: 'double',
3754
+ nullable: true
3755
+ },
3756
+ pressure: {
3757
+ type: 'number',
3758
+ format: 'double',
3759
+ nullable: true
3760
+ },
3761
+ weatherConditionCode: {
3762
+ type: 'number',
3763
+ format: 'double',
3764
+ nullable: true
3765
+ },
3766
+ weatherCondition: {
3767
+ type: 'string',
3768
+ nullable: true
3769
+ }
3770
+ },
3771
+ required: ['id', 'season', 'week', 'seasonType', 'startTime', 'gameIndoors', 'homeTeam', 'homeConference', 'awayTeam', 'awayConference', 'venueId', 'venue', 'temperature', 'dewPoint', 'humidity', 'precipitation', 'snowfall', 'windDirection', 'windSpeed', 'pressure', 'weatherConditionCode', 'weatherCondition'],
3772
+ type: 'object',
3773
+ additionalProperties: false
3774
+ } as const;
3775
+
3776
+ export const $TeamRecord = {
3777
+ properties: {
3778
+ games: {
3779
+ type: 'integer',
3780
+ format: 'int32'
3781
+ },
3782
+ wins: {
3783
+ type: 'integer',
3784
+ format: 'int32'
3785
+ },
3786
+ losses: {
3787
+ type: 'integer',
3788
+ format: 'int32'
3789
+ },
3790
+ ties: {
3791
+ type: 'integer',
3792
+ format: 'int32'
3793
+ }
3794
+ },
3795
+ required: ['games', 'wins', 'losses', 'ties'],
3796
+ type: 'object',
3797
+ additionalProperties: false
3798
+ } as const;
3799
+
3800
+ export const $TeamRecords = {
3801
+ properties: {
3802
+ year: {
3803
+ type: 'integer',
3804
+ format: 'int32'
3805
+ },
3806
+ teamId: {
3807
+ type: 'integer',
3808
+ format: 'int32'
3809
+ },
3810
+ team: {
3811
+ type: 'string'
3812
+ },
3813
+ classification: {
3814
+ allOf: [
3815
+ {
3816
+ '$ref': '#/components/schemas/DivisionClassification'
3817
+ }
3818
+ ],
3819
+ nullable: true
3820
+ },
3821
+ conference: {
3822
+ type: 'string'
3823
+ },
3824
+ division: {
3825
+ type: 'string'
3826
+ },
3827
+ expectedWins: {
3828
+ type: 'number',
3829
+ format: 'double'
3830
+ },
3831
+ total: {
3832
+ '$ref': '#/components/schemas/TeamRecord'
3833
+ },
3834
+ conferenceGames: {
3835
+ '$ref': '#/components/schemas/TeamRecord'
3836
+ },
3837
+ homeGames: {
3838
+ '$ref': '#/components/schemas/TeamRecord'
3839
+ },
3840
+ awayGames: {
3841
+ '$ref': '#/components/schemas/TeamRecord'
3842
+ },
3843
+ neutralSiteGames: {
3844
+ '$ref': '#/components/schemas/TeamRecord'
3845
+ }
3846
+ },
3847
+ required: ['year', 'teamId', 'team', 'classification', 'conference', 'division', 'expectedWins', 'total', 'conferenceGames', 'homeGames', 'awayGames', 'neutralSiteGames'],
3848
+ type: 'object',
3849
+ additionalProperties: false
3850
+ } as const;
3851
+
3852
+ export const $CalendarWeek = {
3853
+ properties: {
3854
+ season: {
3855
+ type: 'integer',
3856
+ format: 'int32'
3857
+ },
3858
+ week: {
3859
+ type: 'integer',
3860
+ format: 'int32'
3861
+ },
3862
+ seasonType: {
3863
+ '$ref': '#/components/schemas/SeasonType'
3864
+ },
3865
+ firstGameStart: {
3866
+ type: 'string',
3867
+ format: 'date-time'
3868
+ },
3869
+ lastGameStart: {
3870
+ type: 'string',
3871
+ format: 'date-time'
3872
+ }
3873
+ },
3874
+ required: ['season', 'week', 'seasonType', 'firstGameStart', 'lastGameStart'],
3875
+ type: 'object',
3876
+ additionalProperties: false
3877
+ } as const;
3878
+
3879
+ export const $GameStatus = {
3880
+ enum: ['scheduled', 'in_progress', 'completed'],
3881
+ type: 'string'
3882
+ } as const;
3883
+
3884
+ export const $ScoreboardGame = {
3885
+ properties: {
3886
+ id: {
3887
+ type: 'integer',
3888
+ format: 'int32'
3889
+ },
3890
+ startDate: {
3891
+ type: 'string',
3892
+ format: 'date-time'
3893
+ },
3894
+ startTimeTBD: {
3895
+ type: 'boolean'
3896
+ },
3897
+ tv: {
3898
+ type: 'string',
3899
+ nullable: true
3900
+ },
3901
+ neutralSite: {
3902
+ type: 'boolean'
3903
+ },
3904
+ conferenceGame: {
3905
+ type: 'boolean'
3906
+ },
3907
+ status: {
3908
+ '$ref': '#/components/schemas/GameStatus'
3909
+ },
3910
+ period: {
3911
+ type: 'integer',
3912
+ format: 'int32',
3913
+ nullable: true
3914
+ },
3915
+ clock: {
3916
+ type: 'string',
3917
+ nullable: true
3918
+ },
3919
+ situation: {
3920
+ type: 'string',
3921
+ nullable: true
3922
+ },
3923
+ possession: {
3924
+ type: 'string',
3925
+ nullable: true
3926
+ },
3927
+ venue: {
3928
+ properties: {
3929
+ state: {
3930
+ type: 'string',
3931
+ nullable: true
3932
+ },
3933
+ city: {
3934
+ type: 'string',
3935
+ nullable: true
3936
+ },
3937
+ name: {
3938
+ type: 'string'
3939
+ }
3940
+ },
3941
+ required: ['state', 'city', 'name'],
3942
+ type: 'object'
3943
+ },
3944
+ homeTeam: {
3945
+ properties: {
3946
+ points: {
3947
+ type: 'integer',
3948
+ format: 'int32',
3949
+ nullable: true
3950
+ },
3951
+ classification: {
3952
+ allOf: [
3953
+ {
3954
+ '$ref': '#/components/schemas/DivisionClassification'
3955
+ }
3956
+ ],
3957
+ nullable: true
3958
+ },
3959
+ conference: {
3960
+ type: 'string',
3961
+ nullable: true
3962
+ },
3963
+ name: {
3964
+ type: 'string'
3965
+ },
3966
+ id: {
3967
+ type: 'integer',
3968
+ format: 'int32'
3969
+ }
3970
+ },
3971
+ required: ['points', 'classification', 'conference', 'name', 'id'],
3972
+ type: 'object'
3973
+ },
3974
+ awayTeam: {
3975
+ properties: {
3976
+ points: {
3977
+ type: 'integer',
3978
+ format: 'int32',
3979
+ nullable: true
3980
+ },
3981
+ classification: {
3982
+ allOf: [
3983
+ {
3984
+ '$ref': '#/components/schemas/DivisionClassification'
3985
+ }
3986
+ ],
3987
+ nullable: true
3988
+ },
3989
+ conference: {
3990
+ type: 'string',
3991
+ nullable: true
3992
+ },
3993
+ name: {
3994
+ type: 'string'
3995
+ },
3996
+ id: {
3997
+ type: 'integer',
3998
+ format: 'int32'
3999
+ }
4000
+ },
4001
+ required: ['points', 'classification', 'conference', 'name', 'id'],
4002
+ type: 'object'
4003
+ },
4004
+ weather: {
4005
+ properties: {
4006
+ windDirection: {
4007
+ type: 'number',
4008
+ format: 'double',
4009
+ nullable: true
4010
+ },
4011
+ windSpeed: {
4012
+ type: 'number',
4013
+ format: 'double',
4014
+ nullable: true
4015
+ },
4016
+ description: {
4017
+ type: 'string',
4018
+ nullable: true
4019
+ },
4020
+ temperature: {
4021
+ type: 'number',
4022
+ format: 'double',
4023
+ nullable: true
4024
+ }
4025
+ },
4026
+ required: ['windDirection', 'windSpeed', 'description', 'temperature'],
4027
+ type: 'object'
4028
+ },
4029
+ betting: {
4030
+ properties: {
4031
+ awayMoneyline: {
4032
+ type: 'number',
4033
+ format: 'double',
4034
+ nullable: true
4035
+ },
4036
+ homeMoneyline: {
4037
+ type: 'number',
4038
+ format: 'double',
4039
+ nullable: true
4040
+ },
4041
+ overUnder: {
4042
+ type: 'number',
4043
+ format: 'double',
4044
+ nullable: true
4045
+ },
4046
+ spread: {
4047
+ type: 'number',
4048
+ format: 'double',
4049
+ nullable: true
4050
+ }
4051
+ },
4052
+ required: ['awayMoneyline', 'homeMoneyline', 'overUnder', 'spread'],
4053
+ type: 'object'
4054
+ }
4055
+ },
4056
+ required: ['id', 'startDate', 'startTimeTBD', 'tv', 'neutralSite', 'conferenceGame', 'status', 'period', 'clock', 'situation', 'possession', 'venue', 'homeTeam', 'awayTeam', 'weather', 'betting'],
4057
+ type: 'object',
4058
+ additionalProperties: false
4059
+ } as const;
4060
+
4061
+ export const $Drive = {
4062
+ properties: {
4063
+ offense: {
4064
+ type: 'string'
4065
+ },
4066
+ offenseConference: {
4067
+ type: 'string',
4068
+ nullable: true
4069
+ },
4070
+ defense: {
4071
+ type: 'string'
4072
+ },
4073
+ defenseConference: {
4074
+ type: 'string',
4075
+ nullable: true
4076
+ },
4077
+ gameId: {
4078
+ type: 'integer',
4079
+ format: 'int32'
4080
+ },
4081
+ id: {
4082
+ type: 'string'
4083
+ },
4084
+ driveNumber: {
4085
+ type: 'integer',
4086
+ format: 'int32',
4087
+ nullable: true
4088
+ },
4089
+ scoring: {
4090
+ type: 'boolean'
4091
+ },
4092
+ startPeriod: {
4093
+ type: 'integer',
4094
+ format: 'int32'
4095
+ },
4096
+ startYardline: {
4097
+ type: 'integer',
4098
+ format: 'int32'
4099
+ },
4100
+ startYardsToGoal: {
4101
+ type: 'integer',
4102
+ format: 'int32'
4103
+ },
4104
+ startTime: {
4105
+ properties: {
4106
+ seconds: {
4107
+ type: 'integer',
4108
+ format: 'int32',
4109
+ nullable: true
4110
+ },
4111
+ minutes: {
4112
+ type: 'integer',
4113
+ format: 'int32',
4114
+ nullable: true
4115
+ }
4116
+ },
4117
+ required: ['seconds', 'minutes'],
4118
+ type: 'object'
4119
+ },
4120
+ endPeriod: {
4121
+ type: 'integer',
4122
+ format: 'int32'
4123
+ },
4124
+ endYardline: {
4125
+ type: 'integer',
4126
+ format: 'int32'
4127
+ },
4128
+ endYardsToGoal: {
4129
+ type: 'integer',
4130
+ format: 'int32'
4131
+ },
4132
+ endTime: {
4133
+ properties: {
4134
+ seconds: {
4135
+ type: 'integer',
4136
+ format: 'int32',
4137
+ nullable: true
4138
+ },
4139
+ minutes: {
4140
+ type: 'integer',
4141
+ format: 'int32',
4142
+ nullable: true
4143
+ }
4144
+ },
4145
+ required: ['seconds', 'minutes'],
4146
+ type: 'object'
4147
+ },
4148
+ plays: {
4149
+ type: 'integer',
4150
+ format: 'int32'
4151
+ },
4152
+ yards: {
4153
+ type: 'integer',
4154
+ format: 'int32'
4155
+ },
4156
+ driveResult: {
4157
+ type: 'string'
4158
+ },
4159
+ isHomeOffense: {
4160
+ type: 'boolean'
4161
+ },
4162
+ startOffenseScore: {
4163
+ type: 'integer',
4164
+ format: 'int32'
4165
+ },
4166
+ startDefenseScore: {
4167
+ type: 'integer',
4168
+ format: 'int32'
4169
+ },
4170
+ endOffenseScore: {
4171
+ type: 'integer',
4172
+ format: 'int32'
4173
+ },
4174
+ endDefenseScore: {
4175
+ type: 'integer',
4176
+ format: 'int32'
4177
+ }
4178
+ },
4179
+ required: ['offense', 'offenseConference', 'defense', 'defenseConference', 'gameId', 'id', 'driveNumber', 'scoring', 'startPeriod', 'startYardline', 'startYardsToGoal', 'startTime', 'endPeriod', 'endYardline', 'endYardsToGoal', 'endTime', 'plays', 'yards', 'driveResult', 'isHomeOffense', 'startOffenseScore', 'startDefenseScore', 'endOffenseScore', 'endDefenseScore'],
4180
+ type: 'object',
4181
+ additionalProperties: false
4182
+ } as const;
4183
+
4184
+ export const $DraftTeam = {
4185
+ properties: {
4186
+ location: {
4187
+ type: 'string'
4188
+ },
4189
+ nickname: {
4190
+ type: 'string',
4191
+ nullable: true
4192
+ },
4193
+ displayName: {
4194
+ type: 'string',
4195
+ nullable: true
4196
+ },
4197
+ logo: {
4198
+ type: 'string',
4199
+ nullable: true
4200
+ }
4201
+ },
4202
+ required: ['location', 'nickname', 'displayName', 'logo'],
4203
+ type: 'object',
4204
+ additionalProperties: false
4205
+ } as const;
4206
+
4207
+ export const $DraftPosition = {
4208
+ properties: {
4209
+ name: {
4210
+ type: 'string'
4211
+ },
4212
+ abbreviation: {
4213
+ type: 'string'
4214
+ }
4215
+ },
4216
+ required: ['name', 'abbreviation'],
4217
+ type: 'object',
4218
+ additionalProperties: false
4219
+ } as const;
4220
+
4221
+ export const $DraftPick = {
4222
+ properties: {
4223
+ collegeAthleteId: {
4224
+ type: 'integer',
4225
+ format: 'int32',
4226
+ nullable: true
4227
+ },
4228
+ nflAthleteId: {
4229
+ type: 'integer',
4230
+ format: 'int32'
4231
+ },
4232
+ collegeId: {
4233
+ type: 'integer',
4234
+ format: 'int32'
4235
+ },
4236
+ collegeTeam: {
4237
+ type: 'string'
4238
+ },
4239
+ collegeConference: {
4240
+ type: 'string',
4241
+ nullable: true
4242
+ },
4243
+ nflTeamId: {
4244
+ type: 'integer',
4245
+ format: 'int32'
4246
+ },
4247
+ nflTeam: {
4248
+ type: 'string'
4249
+ },
4250
+ year: {
4251
+ type: 'integer',
4252
+ format: 'int32'
4253
+ },
4254
+ overall: {
4255
+ type: 'integer',
4256
+ format: 'int32'
4257
+ },
4258
+ round: {
4259
+ type: 'integer',
4260
+ format: 'int32'
4261
+ },
4262
+ pick: {
4263
+ type: 'integer',
4264
+ format: 'int32'
4265
+ },
4266
+ name: {
4267
+ type: 'string'
4268
+ },
4269
+ position: {
4270
+ type: 'string'
4271
+ },
4272
+ height: {
4273
+ type: 'integer',
4274
+ format: 'int32',
4275
+ nullable: true
4276
+ },
4277
+ weight: {
4278
+ type: 'integer',
4279
+ format: 'int32',
4280
+ nullable: true
4281
+ },
4282
+ preDraftRanking: {
4283
+ type: 'integer',
4284
+ format: 'int32',
4285
+ nullable: true
4286
+ },
4287
+ preDraftPositionRanking: {
4288
+ type: 'integer',
4289
+ format: 'int32',
4290
+ nullable: true
4291
+ },
4292
+ preDraftGrade: {
4293
+ type: 'integer',
4294
+ format: 'int32',
4295
+ nullable: true
4296
+ },
4297
+ hometownInfo: {
4298
+ properties: {
4299
+ countyFips: {
4300
+ type: 'string',
4301
+ nullable: true
4302
+ },
4303
+ longitude: {
4304
+ type: 'string',
4305
+ nullable: true
4306
+ },
4307
+ latitude: {
4308
+ type: 'string',
4309
+ nullable: true
4310
+ },
4311
+ country: {
4312
+ type: 'string',
4313
+ nullable: true
4314
+ },
4315
+ state: {
4316
+ type: 'string',
4317
+ nullable: true
4318
+ },
4319
+ city: {
4320
+ type: 'string',
4321
+ nullable: true
4322
+ }
4323
+ },
4324
+ required: ['countyFips', 'longitude', 'latitude', 'country', 'state', 'city'],
4325
+ type: 'object'
4326
+ }
4327
+ },
4328
+ required: ['collegeAthleteId', 'nflAthleteId', 'collegeId', 'collegeTeam', 'collegeConference', 'nflTeamId', 'nflTeam', 'year', 'overall', 'round', 'pick', 'name', 'position', 'height', 'weight', 'preDraftRanking', 'preDraftPositionRanking', 'preDraftGrade', 'hometownInfo'],
4329
+ type: 'object',
4330
+ additionalProperties: false
4331
+ } as const;
4332
+
4333
+ export const $CoachSeason = {
4334
+ properties: {
4335
+ school: {
4336
+ type: 'string'
4337
+ },
4338
+ year: {
4339
+ type: 'integer',
4340
+ format: 'int32'
4341
+ },
4342
+ games: {
4343
+ type: 'integer',
4344
+ format: 'int32'
4345
+ },
4346
+ wins: {
4347
+ type: 'integer',
4348
+ format: 'int32'
4349
+ },
4350
+ losses: {
4351
+ type: 'integer',
4352
+ format: 'int32'
4353
+ },
4354
+ ties: {
4355
+ type: 'integer',
4356
+ format: 'int32'
4357
+ },
4358
+ preseasonRank: {
4359
+ type: 'integer',
4360
+ format: 'int32',
4361
+ nullable: true
4362
+ },
4363
+ postseasonRank: {
4364
+ type: 'integer',
4365
+ format: 'int32',
4366
+ nullable: true
4367
+ },
4368
+ srs: {
4369
+ type: 'number',
4370
+ format: 'double',
4371
+ nullable: true
4372
+ },
4373
+ spOverall: {
4374
+ type: 'number',
4375
+ format: 'double',
4376
+ nullable: true
4377
+ },
4378
+ spOffense: {
4379
+ type: 'number',
4380
+ format: 'double',
4381
+ nullable: true
4382
+ },
4383
+ spDefense: {
4384
+ type: 'number',
4385
+ format: 'double',
4386
+ nullable: true
4387
+ }
4388
+ },
4389
+ required: ['school', 'year', 'games', 'wins', 'losses', 'ties', 'preseasonRank', 'postseasonRank', 'srs', 'spOverall', 'spOffense', 'spDefense'],
4390
+ type: 'object',
4391
+ additionalProperties: false
4392
+ } as const;
4393
+
4394
+ export const $Coach = {
4395
+ properties: {
4396
+ firstName: {
4397
+ type: 'string'
4398
+ },
4399
+ lastName: {
4400
+ type: 'string'
4401
+ },
4402
+ hireDate: {
4403
+ type: 'string',
4404
+ format: 'date',
4405
+ nullable: true
4406
+ },
4407
+ seasons: {
4408
+ items: {
4409
+ '$ref': '#/components/schemas/CoachSeason'
4410
+ },
4411
+ type: 'array'
4412
+ }
4413
+ },
4414
+ required: ['firstName', 'lastName', 'hireDate', 'seasons'],
4415
+ type: 'object',
4416
+ additionalProperties: false
4417
+ } as const;
4418
+
4419
+ export const $StatsByQuarter = {
4420
+ properties: {
4421
+ total: {
4422
+ type: 'number',
4423
+ format: 'double'
4424
+ },
4425
+ quarter1: {
4426
+ type: 'number',
4427
+ format: 'double'
4428
+ },
4429
+ quarter2: {
4430
+ type: 'number',
4431
+ format: 'double'
4432
+ },
4433
+ quarter3: {
4434
+ type: 'number',
4435
+ format: 'double'
4436
+ },
4437
+ quarter4: {
4438
+ type: 'number',
4439
+ format: 'double'
4440
+ }
4441
+ },
4442
+ required: ['total', 'quarter1', 'quarter2', 'quarter3', 'quarter4'],
4443
+ type: 'object',
4444
+ additionalProperties: false
4445
+ } as const;
4446
+
4447
+ export const $TeamPPA = {
4448
+ properties: {
4449
+ team: {
4450
+ type: 'string'
4451
+ },
4452
+ plays: {
4453
+ type: 'integer',
4454
+ format: 'int32'
4455
+ },
4456
+ overall: {
4457
+ '$ref': '#/components/schemas/StatsByQuarter'
4458
+ },
4459
+ passing: {
4460
+ '$ref': '#/components/schemas/StatsByQuarter'
4461
+ },
4462
+ rushing: {
4463
+ '$ref': '#/components/schemas/StatsByQuarter'
4464
+ }
4465
+ },
4466
+ required: ['team', 'plays', 'overall', 'passing', 'rushing'],
4467
+ type: 'object',
4468
+ additionalProperties: false
4469
+ } as const;
4470
+
4471
+ export const $TeamSuccessRates = {
4472
+ properties: {
4473
+ team: {
4474
+ type: 'string'
4475
+ },
4476
+ overall: {
4477
+ '$ref': '#/components/schemas/StatsByQuarter'
4478
+ },
4479
+ standardDowns: {
4480
+ '$ref': '#/components/schemas/StatsByQuarter'
4481
+ },
4482
+ passingDowns: {
4483
+ '$ref': '#/components/schemas/StatsByQuarter'
4484
+ }
4485
+ },
4486
+ required: ['team', 'overall', 'standardDowns', 'passingDowns'],
4487
+ type: 'object',
4488
+ additionalProperties: false
4489
+ } as const;
4490
+
4491
+ export const $TeamExplosiveness = {
4492
+ properties: {
4493
+ team: {
4494
+ type: 'string'
4495
+ },
4496
+ overall: {
4497
+ '$ref': '#/components/schemas/StatsByQuarter'
4498
+ }
4499
+ },
4500
+ required: ['team', 'overall'],
4501
+ type: 'object',
4502
+ additionalProperties: false
4503
+ } as const;
4504
+
4505
+ export const $TeamRushingStats = {
4506
+ properties: {
4507
+ team: {
4508
+ type: 'string'
4509
+ },
4510
+ powerSuccess: {
4511
+ type: 'number',
4512
+ format: 'double'
4513
+ },
4514
+ stuffRate: {
4515
+ type: 'number',
4516
+ format: 'double'
4517
+ },
4518
+ lineYards: {
4519
+ type: 'number',
4520
+ format: 'double'
4521
+ },
4522
+ lineYardsAverage: {
4523
+ type: 'number',
4524
+ format: 'double'
4525
+ },
4526
+ secondLevelYards: {
4527
+ type: 'number',
4528
+ format: 'double'
4529
+ },
4530
+ secondLevelYardsAverage: {
4531
+ type: 'number',
4532
+ format: 'double'
4533
+ },
4534
+ openFieldYards: {
4535
+ type: 'number',
4536
+ format: 'double'
4537
+ },
4538
+ openFieldYardsAverage: {
4539
+ type: 'number',
4540
+ format: 'double'
4541
+ }
4542
+ },
4543
+ required: ['team', 'powerSuccess', 'stuffRate', 'lineYards', 'lineYardsAverage', 'secondLevelYards', 'secondLevelYardsAverage', 'openFieldYards', 'openFieldYardsAverage'],
4544
+ type: 'object',
4545
+ additionalProperties: false
4546
+ } as const;
4547
+
4548
+ export const $TeamHavoc = {
4549
+ properties: {
4550
+ team: {
4551
+ type: 'string'
4552
+ },
4553
+ total: {
4554
+ type: 'number',
4555
+ format: 'double'
4556
+ },
4557
+ frontSeven: {
4558
+ type: 'number',
4559
+ format: 'double'
4560
+ },
4561
+ db: {
4562
+ type: 'number',
4563
+ format: 'double'
4564
+ }
4565
+ },
4566
+ required: ['team', 'total', 'frontSeven', 'db'],
4567
+ type: 'object',
4568
+ additionalProperties: false
4569
+ } as const;
4570
+
4571
+ export const $TeamScoringOpportunities = {
4572
+ properties: {
4573
+ team: {
4574
+ type: 'string'
4575
+ },
4576
+ opportunities: {
4577
+ type: 'integer',
4578
+ format: 'int32'
4579
+ },
4580
+ points: {
4581
+ type: 'integer',
4582
+ format: 'int32'
4583
+ },
4584
+ pointsPerOpportunity: {
4585
+ type: 'number',
4586
+ format: 'double'
4587
+ }
4588
+ },
4589
+ required: ['team', 'opportunities', 'points', 'pointsPerOpportunity'],
4590
+ type: 'object',
4591
+ additionalProperties: false
4592
+ } as const;
4593
+
4594
+ export const $TeamFieldPosition = {
4595
+ properties: {
4596
+ team: {
4597
+ type: 'string'
4598
+ },
4599
+ averageStart: {
4600
+ type: 'number',
4601
+ format: 'double'
4602
+ },
4603
+ averageStartingPredictedPoints: {
4604
+ type: 'number',
4605
+ format: 'double'
4606
+ }
4607
+ },
4608
+ required: ['team', 'averageStart', 'averageStartingPredictedPoints'],
4609
+ type: 'object',
4610
+ additionalProperties: false
4611
+ } as const;
4612
+
4613
+ export const $PlayerGameUsage = {
4614
+ properties: {
4615
+ total: {
4616
+ type: 'number',
4617
+ format: 'double'
4618
+ },
4619
+ quarter1: {
4620
+ type: 'number',
4621
+ format: 'double'
4622
+ },
4623
+ quarter2: {
4624
+ type: 'number',
4625
+ format: 'double'
4626
+ },
4627
+ quarter3: {
4628
+ type: 'number',
4629
+ format: 'double'
4630
+ },
4631
+ quarter4: {
4632
+ type: 'number',
4633
+ format: 'double'
4634
+ },
4635
+ rushing: {
4636
+ type: 'number',
4637
+ format: 'double'
4638
+ },
4639
+ passing: {
4640
+ type: 'number',
4641
+ format: 'double'
4642
+ },
4643
+ player: {
4644
+ type: 'string'
4645
+ },
4646
+ team: {
4647
+ type: 'string'
4648
+ },
4649
+ position: {
4650
+ type: 'string'
4651
+ }
4652
+ },
4653
+ required: ['total', 'quarter1', 'quarter2', 'quarter3', 'quarter4', 'rushing', 'passing', 'player', 'team', 'position'],
4654
+ type: 'object',
4655
+ additionalProperties: false
4656
+ } as const;
4657
+
4658
+ export const $PlayerStatsByQuarter = {
4659
+ properties: {
4660
+ total: {
4661
+ type: 'number',
4662
+ format: 'double'
4663
+ },
4664
+ quarter1: {
4665
+ type: 'number',
4666
+ format: 'double'
4667
+ },
4668
+ quarter2: {
4669
+ type: 'number',
4670
+ format: 'double'
4671
+ },
4672
+ quarter3: {
4673
+ type: 'number',
4674
+ format: 'double'
4675
+ },
4676
+ quarter4: {
4677
+ type: 'number',
4678
+ format: 'double'
4679
+ },
4680
+ rushing: {
4681
+ type: 'number',
4682
+ format: 'double'
4683
+ },
4684
+ passing: {
4685
+ type: 'number',
4686
+ format: 'double'
4687
+ }
4688
+ },
4689
+ required: ['total', 'quarter1', 'quarter2', 'quarter3', 'quarter4', 'rushing', 'passing'],
4690
+ type: 'object',
4691
+ additionalProperties: false
4692
+ } as const;
4693
+
4694
+ export const $PlayerPPA = {
4695
+ properties: {
4696
+ player: {
4697
+ type: 'string'
4698
+ },
4699
+ team: {
4700
+ type: 'string'
4701
+ },
4702
+ position: {
4703
+ type: 'string'
4704
+ },
4705
+ average: {
4706
+ '$ref': '#/components/schemas/PlayerStatsByQuarter'
4707
+ },
4708
+ cumulative: {
4709
+ '$ref': '#/components/schemas/PlayerStatsByQuarter'
4710
+ }
4711
+ },
4712
+ required: ['player', 'team', 'position', 'average', 'cumulative'],
4713
+ type: 'object',
4714
+ additionalProperties: false
4715
+ } as const;
4716
+
4717
+ export const $AdvancedBoxScore = {
4718
+ properties: {
4719
+ gameInfo: {
4720
+ properties: {
4721
+ excitement: {
4722
+ type: 'number',
4723
+ format: 'double'
4724
+ },
4725
+ homeWinner: {
4726
+ type: 'boolean'
4727
+ },
4728
+ awayWinProb: {
4729
+ type: 'number',
4730
+ format: 'double'
4731
+ },
4732
+ awayPoints: {
4733
+ type: 'integer',
4734
+ format: 'int32'
4735
+ },
4736
+ awayTeam: {
4737
+ type: 'string'
4738
+ },
4739
+ homeWinProb: {
4740
+ type: 'number',
4741
+ format: 'double'
4742
+ },
4743
+ homePoints: {
4744
+ type: 'integer',
4745
+ format: 'int32'
4746
+ },
4747
+ homeTeam: {
4748
+ type: 'string'
4749
+ }
4750
+ },
4751
+ required: ['excitement', 'homeWinner', 'awayWinProb', 'awayPoints', 'awayTeam', 'homeWinProb', 'homePoints', 'homeTeam'],
4752
+ type: 'object'
4753
+ },
4754
+ teams: {
4755
+ properties: {
4756
+ fieldPosition: {
4757
+ items: {
4758
+ '$ref': '#/components/schemas/TeamFieldPosition'
4759
+ },
4760
+ type: 'array'
4761
+ },
4762
+ scoringOpportunities: {
4763
+ items: {
4764
+ '$ref': '#/components/schemas/TeamScoringOpportunities'
4765
+ },
4766
+ type: 'array'
4767
+ },
4768
+ havoc: {
4769
+ items: {
4770
+ '$ref': '#/components/schemas/TeamHavoc'
4771
+ },
4772
+ type: 'array'
4773
+ },
4774
+ rushing: {
4775
+ items: {
4776
+ '$ref': '#/components/schemas/TeamRushingStats'
4777
+ },
4778
+ type: 'array'
4779
+ },
4780
+ explosiveness: {
4781
+ items: {
4782
+ '$ref': '#/components/schemas/TeamExplosiveness'
4783
+ },
4784
+ type: 'array'
4785
+ },
4786
+ successRates: {
4787
+ items: {
4788
+ '$ref': '#/components/schemas/TeamSuccessRates'
4789
+ },
4790
+ type: 'array'
4791
+ },
4792
+ cumulativePpa: {
4793
+ items: {
4794
+ '$ref': '#/components/schemas/TeamPPA'
4795
+ },
4796
+ type: 'array'
4797
+ },
4798
+ ppa: {
4799
+ items: {
4800
+ '$ref': '#/components/schemas/TeamPPA'
4801
+ },
4802
+ type: 'array'
4803
+ }
4804
+ },
4805
+ required: ['fieldPosition', 'scoringOpportunities', 'havoc', 'rushing', 'explosiveness', 'successRates', 'cumulativePpa', 'ppa'],
4806
+ type: 'object'
4807
+ },
4808
+ players: {
4809
+ properties: {
4810
+ ppa: {
4811
+ items: {
4812
+ '$ref': '#/components/schemas/PlayerPPA'
4813
+ },
4814
+ type: 'array'
4815
+ },
4816
+ usage: {
4817
+ items: {
4818
+ '$ref': '#/components/schemas/PlayerGameUsage'
4819
+ },
4820
+ type: 'array'
4821
+ }
4822
+ },
4823
+ required: ['ppa', 'usage'],
4824
+ type: 'object'
4825
+ }
4826
+ },
4827
+ required: ['gameInfo', 'teams', 'players'],
4828
+ type: 'object',
4829
+ additionalProperties: false
4830
+ } as const;