@claudinho/mcp 0.1.1 → 0.2.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.
Files changed (3) hide show
  1. package/README.md +36 -4
  2. package/dist/index.js +449 -138
  3. package/package.json +13 -12
package/dist/index.js CHANGED
@@ -270,6 +270,12 @@ function isValidTimeZone(tz) {
270
270
  return false;
271
271
  }
272
272
  }
273
+ function isValidDate(s) {
274
+ if (!s || !/^\d{4}-\d{2}-\d{2}$/.test(s)) return false;
275
+ const d = /* @__PURE__ */ new Date(`${s}T00:00:00Z`);
276
+ if (Number.isNaN(d.getTime())) return false;
277
+ return d.toISOString().slice(0, 10) === s;
278
+ }
273
279
  function envTz() {
274
280
  if (typeof process !== "undefined" && process.env && process.env.CLAUDINHO_TZ) {
275
281
  return process.env.CLAUDINHO_TZ;
@@ -289,9 +295,18 @@ function resolveTz(explicit) {
289
295
  if (fromEnv && isValidTimeZone(fromEnv)) return fromEnv;
290
296
  return systemTz();
291
297
  }
298
+ function safeLocale(locale) {
299
+ if (!locale) return "en";
300
+ try {
301
+ Intl.getCanonicalLocales(locale);
302
+ return locale;
303
+ } catch {
304
+ return "en";
305
+ }
306
+ }
292
307
  function formatKickoff(iso, opts = {}) {
293
308
  const tz = resolveTz(opts.tz);
294
- const locale = opts.locale || "en";
309
+ const locale = safeLocale(opts.locale);
295
310
  return new Intl.DateTimeFormat(locale, {
296
311
  weekday: "short",
297
312
  hour: "2-digit",
@@ -327,9 +342,80 @@ function scoreline(match) {
327
342
  if (!match.score) return "vs";
328
343
  return `${match.score.home}\u2013${match.score.away}`;
329
344
  }
345
+ function matchLocation(match) {
346
+ return [match.venue, match.city, match.country].filter(Boolean).join(", ");
347
+ }
330
348
  function byKickoff(a, b) {
331
349
  return a.kickoff.localeCompare(b.kickoff);
332
350
  }
351
+ var FLAVOR_LEVELS = ["off", "subtle", "full"];
352
+ var DEFAULT_FLAVOR = "full";
353
+ function isFlavorLevel(s) {
354
+ return FLAVOR_LEVELS.includes(s);
355
+ }
356
+ function asFlavorLevel(s) {
357
+ return s && isFlavorLevel(s) ? s : DEFAULT_FLAVOR;
358
+ }
359
+ var BANKS = {
360
+ en: {
361
+ scheduled: ["the big one is coming!", "mark your calendar!", "football is in the air!"],
362
+ live: ["the tension is electric!", "eyes glued to the pitch!", "anything can happen!"],
363
+ goal: ["GOOOAL!", "what a strike!", "the stadium erupts!", "they buried it!"],
364
+ ft: ["the final whistle blows!", "it's all over!", "into the history books!"]
365
+ },
366
+ es: {
367
+ scheduled: ["\xA1se viene el partidazo!", "\xA1huele a f\xFAtbol!", "\xA1a cancha llena!"],
368
+ live: ["\xA1est\xE1 que arde!", "\xA1vibra el estadio!", "\xA1no despeguen los ojos!"],
369
+ goal: ["\xA1GOOOOL!", "\xA1qu\xE9 golazo!", "\xA1para callar bocas!", "\xA1se cae el estadio!"],
370
+ ft: ["\xA1suena el silbatazo final!", "\xA1se acab\xF3, se\xF1ores!", "\xA1a los libros de historia!"]
371
+ },
372
+ pt: {
373
+ scheduled: ["vem jog\xE3o por a\xED!", "cheira a futebol!", "est\xE1dio lotado!"],
374
+ live: ["est\xE1 pegando fogo!", "o est\xE1dio ferve!", "n\xE3o tire os olhos!"],
375
+ goal: ["GOOOL!", "que gola\xE7o!", "pra calar a boca!", "o est\xE1dio explode!"],
376
+ ft: ["apita o juiz, acabou!", "fim de jogo, senhores!", "pros livros de hist\xF3ria!"]
377
+ },
378
+ fr: {
379
+ scheduled: ["\xE7a promet, le grand match arrive !", "\xE7a sent le football !", "stade plein !"],
380
+ live: ["c'est bouillant !", "le stade vibre !", "ne quittez pas des yeux !"],
381
+ goal: ["BUUUT !", "quelle frappe !", "le stade explose !", "imparable !"],
382
+ ft: ["coup de sifflet final !", "c'est termin\xE9 !", "dans les livres d'histoire !"]
383
+ }
384
+ };
385
+ var LEVEL_MOMENTS = {
386
+ off: /* @__PURE__ */ new Set(),
387
+ subtle: /* @__PURE__ */ new Set(["goal", "ft"]),
388
+ full: /* @__PURE__ */ new Set(["scheduled", "live", "goal", "ft"])
389
+ };
390
+ function pick(id, bank) {
391
+ let h = 0;
392
+ for (let i = 0; i < id.length; i++) h = h * 31 + id.charCodeAt(i) >>> 0;
393
+ return bank.length ? bank[h % bank.length] : "";
394
+ }
395
+ function momentOf(m) {
396
+ switch (m.status) {
397
+ case "LIVE":
398
+ case "HT": {
399
+ const goals = (m.score?.home ?? 0) + (m.score?.away ?? 0);
400
+ return goals > 0 ? "goal" : "live";
401
+ }
402
+ case "FT":
403
+ return "ft";
404
+ case "SCHEDULED":
405
+ return "scheduled";
406
+ default:
407
+ return void 0;
408
+ }
409
+ }
410
+ function matchFlavor(m, opts = {}) {
411
+ const level = opts.level ?? DEFAULT_FLAVOR;
412
+ if (level === "off") return "";
413
+ const moment = momentOf(m);
414
+ if (!moment || !LEVEL_MOMENTS[level].has(moment)) return "";
415
+ const lang = (opts.locale ?? "en").slice(0, 2);
416
+ const langBank = BANKS[lang] ?? BANKS.en;
417
+ return langBank ? pick(m.id, langBank[moment]) : "";
418
+ }
333
419
  var schedule_2026_default = [
334
420
  {
335
421
  id: "760415",
@@ -337,6 +423,8 @@ var schedule_2026_default = [
337
423
  group: "A",
338
424
  kickoff: "2026-06-11T19:00Z",
339
425
  venue: "Estadio Banorte",
426
+ city: "Mexico City",
427
+ country: "Mexico",
340
428
  home: {
341
429
  code: "MEX",
342
430
  name: "Mexico",
@@ -348,7 +436,7 @@ var schedule_2026_default = [
348
436
  flag: "\u{1F1FF}\u{1F1E6}"
349
437
  },
350
438
  status: "SCHEDULED",
351
- updatedAt: "2026-05-31T08:32:53.559Z"
439
+ updatedAt: "2026-06-07T07:52:54.333Z"
352
440
  },
353
441
  {
354
442
  id: "760414",
@@ -356,6 +444,8 @@ var schedule_2026_default = [
356
444
  group: "A",
357
445
  kickoff: "2026-06-12T02:00Z",
358
446
  venue: "Estadio Akron",
447
+ city: "Guadalajara",
448
+ country: "Mexico",
359
449
  home: {
360
450
  code: "KOR",
361
451
  name: "South Korea",
@@ -367,7 +457,7 @@ var schedule_2026_default = [
367
457
  flag: "\u{1F1E8}\u{1F1FF}"
368
458
  },
369
459
  status: "SCHEDULED",
370
- updatedAt: "2026-05-31T08:32:53.560Z"
460
+ updatedAt: "2026-06-07T07:52:54.337Z"
371
461
  },
372
462
  {
373
463
  id: "760416",
@@ -375,6 +465,8 @@ var schedule_2026_default = [
375
465
  group: "B",
376
466
  kickoff: "2026-06-12T19:00Z",
377
467
  venue: "BMO Field",
468
+ city: "Toronto",
469
+ country: "Canada",
378
470
  home: {
379
471
  code: "CAN",
380
472
  name: "Canada",
@@ -386,7 +478,7 @@ var schedule_2026_default = [
386
478
  flag: "\u{1F1E7}\u{1F1E6}"
387
479
  },
388
480
  status: "SCHEDULED",
389
- updatedAt: "2026-05-31T08:32:53.560Z"
481
+ updatedAt: "2026-06-07T07:52:54.337Z"
390
482
  },
391
483
  {
392
484
  id: "760417",
@@ -394,6 +486,8 @@ var schedule_2026_default = [
394
486
  group: "D",
395
487
  kickoff: "2026-06-13T01:00Z",
396
488
  venue: "SoFi Stadium",
489
+ city: "Inglewood, California",
490
+ country: "USA",
397
491
  home: {
398
492
  code: "USA",
399
493
  name: "United States",
@@ -405,7 +499,7 @@ var schedule_2026_default = [
405
499
  flag: "\u{1F1F5}\u{1F1FE}"
406
500
  },
407
501
  status: "SCHEDULED",
408
- updatedAt: "2026-05-31T08:32:53.560Z"
502
+ updatedAt: "2026-06-07T07:52:54.337Z"
409
503
  },
410
504
  {
411
505
  id: "760420",
@@ -413,6 +507,8 @@ var schedule_2026_default = [
413
507
  group: "B",
414
508
  kickoff: "2026-06-13T19:00Z",
415
509
  venue: "Levi's Stadium",
510
+ city: "Santa Clara, California",
511
+ country: "USA",
416
512
  home: {
417
513
  code: "QAT",
418
514
  name: "Qatar",
@@ -424,7 +520,7 @@ var schedule_2026_default = [
424
520
  flag: "\u{1F1E8}\u{1F1ED}"
425
521
  },
426
522
  status: "SCHEDULED",
427
- updatedAt: "2026-05-31T08:32:53.560Z"
523
+ updatedAt: "2026-06-07T07:52:54.337Z"
428
524
  },
429
525
  {
430
526
  id: "760419",
@@ -432,6 +528,8 @@ var schedule_2026_default = [
432
528
  group: "C",
433
529
  kickoff: "2026-06-13T22:00Z",
434
530
  venue: "MetLife Stadium",
531
+ city: "East Rutherford, New Jersey",
532
+ country: "USA",
435
533
  home: {
436
534
  code: "BRA",
437
535
  name: "Brazil",
@@ -443,7 +541,7 @@ var schedule_2026_default = [
443
541
  flag: "\u{1F1F2}\u{1F1E6}"
444
542
  },
445
543
  status: "SCHEDULED",
446
- updatedAt: "2026-05-31T08:32:53.560Z"
544
+ updatedAt: "2026-06-07T07:52:54.337Z"
447
545
  },
448
546
  {
449
547
  id: "760418",
@@ -451,6 +549,8 @@ var schedule_2026_default = [
451
549
  group: "C",
452
550
  kickoff: "2026-06-14T01:00Z",
453
551
  venue: "Gillette Stadium",
552
+ city: "Foxborough, Massachusetts",
553
+ country: "USA",
454
554
  home: {
455
555
  code: "HAI",
456
556
  name: "Haiti",
@@ -462,7 +562,7 @@ var schedule_2026_default = [
462
562
  flag: "\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}"
463
563
  },
464
564
  status: "SCHEDULED",
465
- updatedAt: "2026-05-31T08:32:53.560Z"
565
+ updatedAt: "2026-06-07T07:52:54.337Z"
466
566
  },
467
567
  {
468
568
  id: "760421",
@@ -470,6 +570,8 @@ var schedule_2026_default = [
470
570
  group: "D",
471
571
  kickoff: "2026-06-14T04:00Z",
472
572
  venue: "BC Place",
573
+ city: "Vancouver",
574
+ country: "Canada",
473
575
  home: {
474
576
  code: "AUS",
475
577
  name: "Australia",
@@ -481,7 +583,7 @@ var schedule_2026_default = [
481
583
  flag: "\u{1F1F9}\u{1F1F7}"
482
584
  },
483
585
  status: "SCHEDULED",
484
- updatedAt: "2026-05-31T08:32:53.560Z"
586
+ updatedAt: "2026-06-07T07:52:54.337Z"
485
587
  },
486
588
  {
487
589
  id: "760422",
@@ -489,6 +591,8 @@ var schedule_2026_default = [
489
591
  group: "E",
490
592
  kickoff: "2026-06-14T17:00Z",
491
593
  venue: "NRG Stadium",
594
+ city: "Houston, Texas",
595
+ country: "USA",
492
596
  home: {
493
597
  code: "GER",
494
598
  name: "Germany",
@@ -496,11 +600,11 @@ var schedule_2026_default = [
496
600
  },
497
601
  away: {
498
602
  code: "CUW",
499
- name: "Curacao",
603
+ name: "Cura\xE7ao",
500
604
  flag: "\u{1F1E8}\u{1F1FC}"
501
605
  },
502
606
  status: "SCHEDULED",
503
- updatedAt: "2026-05-31T08:32:53.560Z"
607
+ updatedAt: "2026-06-07T07:52:54.337Z"
504
608
  },
505
609
  {
506
610
  id: "760425",
@@ -508,6 +612,8 @@ var schedule_2026_default = [
508
612
  group: "F",
509
613
  kickoff: "2026-06-14T20:00Z",
510
614
  venue: "AT&T Stadium",
615
+ city: "Arlington, Texas",
616
+ country: "USA",
511
617
  home: {
512
618
  code: "NED",
513
619
  name: "Netherlands",
@@ -519,7 +625,7 @@ var schedule_2026_default = [
519
625
  flag: "\u{1F1EF}\u{1F1F5}"
520
626
  },
521
627
  status: "SCHEDULED",
522
- updatedAt: "2026-05-31T08:32:53.560Z"
628
+ updatedAt: "2026-06-07T07:52:54.337Z"
523
629
  },
524
630
  {
525
631
  id: "760423",
@@ -527,6 +633,8 @@ var schedule_2026_default = [
527
633
  group: "E",
528
634
  kickoff: "2026-06-14T23:00Z",
529
635
  venue: "Lincoln Financial Field",
636
+ city: "Philadelphia, Pennsylvania",
637
+ country: "USA",
530
638
  home: {
531
639
  code: "CIV",
532
640
  name: "Ivory Coast",
@@ -538,7 +646,7 @@ var schedule_2026_default = [
538
646
  flag: "\u{1F1EA}\u{1F1E8}"
539
647
  },
540
648
  status: "SCHEDULED",
541
- updatedAt: "2026-05-31T08:32:53.560Z"
649
+ updatedAt: "2026-06-07T07:52:54.337Z"
542
650
  },
543
651
  {
544
652
  id: "760424",
@@ -546,6 +654,8 @@ var schedule_2026_default = [
546
654
  group: "F",
547
655
  kickoff: "2026-06-15T02:00Z",
548
656
  venue: "Estadio BBVA",
657
+ city: "Guadalupe",
658
+ country: "Mexico",
549
659
  home: {
550
660
  code: "SWE",
551
661
  name: "Sweden",
@@ -557,7 +667,7 @@ var schedule_2026_default = [
557
667
  flag: "\u{1F1F9}\u{1F1F3}"
558
668
  },
559
669
  status: "SCHEDULED",
560
- updatedAt: "2026-05-31T08:32:53.560Z"
670
+ updatedAt: "2026-06-07T07:52:54.337Z"
561
671
  },
562
672
  {
563
673
  id: "760428",
@@ -565,6 +675,8 @@ var schedule_2026_default = [
565
675
  group: "H",
566
676
  kickoff: "2026-06-15T16:00Z",
567
677
  venue: "Mercedes-Benz Stadium",
678
+ city: "Atlanta, Georgia",
679
+ country: "USA",
568
680
  home: {
569
681
  code: "ESP",
570
682
  name: "Spain",
@@ -576,7 +688,7 @@ var schedule_2026_default = [
576
688
  flag: "\u{1F1E8}\u{1F1FB}"
577
689
  },
578
690
  status: "SCHEDULED",
579
- updatedAt: "2026-05-31T08:32:53.560Z"
691
+ updatedAt: "2026-06-07T07:52:54.337Z"
580
692
  },
581
693
  {
582
694
  id: "760426",
@@ -584,6 +696,8 @@ var schedule_2026_default = [
584
696
  group: "G",
585
697
  kickoff: "2026-06-15T19:00Z",
586
698
  venue: "Lumen Field",
699
+ city: "Seattle, Washington",
700
+ country: "USA",
587
701
  home: {
588
702
  code: "BEL",
589
703
  name: "Belgium",
@@ -595,7 +709,7 @@ var schedule_2026_default = [
595
709
  flag: "\u{1F1EA}\u{1F1EC}"
596
710
  },
597
711
  status: "SCHEDULED",
598
- updatedAt: "2026-05-31T08:32:53.560Z"
712
+ updatedAt: "2026-06-07T07:52:54.337Z"
599
713
  },
600
714
  {
601
715
  id: "760429",
@@ -603,6 +717,8 @@ var schedule_2026_default = [
603
717
  group: "H",
604
718
  kickoff: "2026-06-15T22:00Z",
605
719
  venue: "Hard Rock Stadium",
720
+ city: "Miami Gardens, Florida",
721
+ country: "USA",
606
722
  home: {
607
723
  code: "KSA",
608
724
  name: "Saudi Arabia",
@@ -614,7 +730,7 @@ var schedule_2026_default = [
614
730
  flag: "\u{1F1FA}\u{1F1FE}"
615
731
  },
616
732
  status: "SCHEDULED",
617
- updatedAt: "2026-05-31T08:32:53.560Z"
733
+ updatedAt: "2026-06-07T07:52:54.337Z"
618
734
  },
619
735
  {
620
736
  id: "760427",
@@ -622,6 +738,8 @@ var schedule_2026_default = [
622
738
  group: "G",
623
739
  kickoff: "2026-06-16T01:00Z",
624
740
  venue: "SoFi Stadium",
741
+ city: "Inglewood, California",
742
+ country: "USA",
625
743
  home: {
626
744
  code: "IRN",
627
745
  name: "Iran",
@@ -633,7 +751,7 @@ var schedule_2026_default = [
633
751
  flag: "\u{1F1F3}\u{1F1FF}"
634
752
  },
635
753
  status: "SCHEDULED",
636
- updatedAt: "2026-05-31T08:32:53.560Z"
754
+ updatedAt: "2026-06-07T07:52:54.337Z"
637
755
  },
638
756
  {
639
757
  id: "760432",
@@ -641,6 +759,8 @@ var schedule_2026_default = [
641
759
  group: "I",
642
760
  kickoff: "2026-06-16T19:00Z",
643
761
  venue: "MetLife Stadium",
762
+ city: "East Rutherford, New Jersey",
763
+ country: "USA",
644
764
  home: {
645
765
  code: "FRA",
646
766
  name: "France",
@@ -652,7 +772,7 @@ var schedule_2026_default = [
652
772
  flag: "\u{1F1F8}\u{1F1F3}"
653
773
  },
654
774
  status: "SCHEDULED",
655
- updatedAt: "2026-05-31T08:32:53.560Z"
775
+ updatedAt: "2026-06-07T07:52:54.337Z"
656
776
  },
657
777
  {
658
778
  id: "760430",
@@ -660,6 +780,8 @@ var schedule_2026_default = [
660
780
  group: "I",
661
781
  kickoff: "2026-06-16T22:00Z",
662
782
  venue: "Gillette Stadium",
783
+ city: "Foxborough, Massachusetts",
784
+ country: "USA",
663
785
  home: {
664
786
  code: "IRQ",
665
787
  name: "Iraq",
@@ -671,7 +793,7 @@ var schedule_2026_default = [
671
793
  flag: "\u{1F1F3}\u{1F1F4}"
672
794
  },
673
795
  status: "SCHEDULED",
674
- updatedAt: "2026-05-31T08:32:53.560Z"
796
+ updatedAt: "2026-06-07T07:52:54.337Z"
675
797
  },
676
798
  {
677
799
  id: "760433",
@@ -679,6 +801,8 @@ var schedule_2026_default = [
679
801
  group: "J",
680
802
  kickoff: "2026-06-17T01:00Z",
681
803
  venue: "GEHA Field at Arrowhead Stadium",
804
+ city: "Kansas City, Missouri",
805
+ country: "USA",
682
806
  home: {
683
807
  code: "ARG",
684
808
  name: "Argentina",
@@ -690,7 +814,7 @@ var schedule_2026_default = [
690
814
  flag: "\u{1F1E9}\u{1F1FF}"
691
815
  },
692
816
  status: "SCHEDULED",
693
- updatedAt: "2026-05-31T08:32:53.560Z"
817
+ updatedAt: "2026-06-07T07:52:54.337Z"
694
818
  },
695
819
  {
696
820
  id: "760431",
@@ -698,6 +822,8 @@ var schedule_2026_default = [
698
822
  group: "J",
699
823
  kickoff: "2026-06-17T04:00Z",
700
824
  venue: "Levi's Stadium",
825
+ city: "Santa Clara, California",
826
+ country: "USA",
701
827
  home: {
702
828
  code: "AUT",
703
829
  name: "Austria",
@@ -709,7 +835,7 @@ var schedule_2026_default = [
709
835
  flag: "\u{1F1EF}\u{1F1F4}"
710
836
  },
711
837
  status: "SCHEDULED",
712
- updatedAt: "2026-05-31T08:32:53.560Z"
838
+ updatedAt: "2026-06-07T07:52:54.337Z"
713
839
  },
714
840
  {
715
841
  id: "760435",
@@ -717,6 +843,8 @@ var schedule_2026_default = [
717
843
  group: "K",
718
844
  kickoff: "2026-06-17T17:00Z",
719
845
  venue: "NRG Stadium",
846
+ city: "Houston, Texas",
847
+ country: "USA",
720
848
  home: {
721
849
  code: "POR",
722
850
  name: "Portugal",
@@ -728,7 +856,7 @@ var schedule_2026_default = [
728
856
  flag: "\u{1F1E8}\u{1F1E9}"
729
857
  },
730
858
  status: "SCHEDULED",
731
- updatedAt: "2026-05-31T08:32:53.560Z"
859
+ updatedAt: "2026-06-07T07:52:54.337Z"
732
860
  },
733
861
  {
734
862
  id: "760437",
@@ -736,6 +864,8 @@ var schedule_2026_default = [
736
864
  group: "L",
737
865
  kickoff: "2026-06-17T20:00Z",
738
866
  venue: "AT&T Stadium",
867
+ city: "Arlington, Texas",
868
+ country: "USA",
739
869
  home: {
740
870
  code: "ENG",
741
871
  name: "England",
@@ -747,7 +877,7 @@ var schedule_2026_default = [
747
877
  flag: "\u{1F1ED}\u{1F1F7}"
748
878
  },
749
879
  status: "SCHEDULED",
750
- updatedAt: "2026-05-31T08:32:53.560Z"
880
+ updatedAt: "2026-06-07T07:52:54.337Z"
751
881
  },
752
882
  {
753
883
  id: "760434",
@@ -755,6 +885,8 @@ var schedule_2026_default = [
755
885
  group: "L",
756
886
  kickoff: "2026-06-17T23:00Z",
757
887
  venue: "BMO Field",
888
+ city: "Toronto",
889
+ country: "Canada",
758
890
  home: {
759
891
  code: "GHA",
760
892
  name: "Ghana",
@@ -766,7 +898,7 @@ var schedule_2026_default = [
766
898
  flag: "\u{1F1F5}\u{1F1E6}"
767
899
  },
768
900
  status: "SCHEDULED",
769
- updatedAt: "2026-05-31T08:32:53.560Z"
901
+ updatedAt: "2026-06-07T07:52:54.337Z"
770
902
  },
771
903
  {
772
904
  id: "760436",
@@ -774,6 +906,8 @@ var schedule_2026_default = [
774
906
  group: "K",
775
907
  kickoff: "2026-06-18T02:00Z",
776
908
  venue: "Estadio Banorte",
909
+ city: "Mexico City",
910
+ country: "Mexico",
777
911
  home: {
778
912
  code: "UZB",
779
913
  name: "Uzbekistan",
@@ -785,7 +919,7 @@ var schedule_2026_default = [
785
919
  flag: "\u{1F1E8}\u{1F1F4}"
786
920
  },
787
921
  status: "SCHEDULED",
788
- updatedAt: "2026-05-31T08:32:53.560Z"
922
+ updatedAt: "2026-06-07T07:52:54.337Z"
789
923
  },
790
924
  {
791
925
  id: "760438",
@@ -793,6 +927,8 @@ var schedule_2026_default = [
793
927
  group: "A",
794
928
  kickoff: "2026-06-18T16:00Z",
795
929
  venue: "Mercedes-Benz Stadium",
930
+ city: "Atlanta, Georgia",
931
+ country: "USA",
796
932
  home: {
797
933
  code: "CZE",
798
934
  name: "Czechia",
@@ -804,7 +940,7 @@ var schedule_2026_default = [
804
940
  flag: "\u{1F1FF}\u{1F1E6}"
805
941
  },
806
942
  status: "SCHEDULED",
807
- updatedAt: "2026-05-31T08:32:53.624Z"
943
+ updatedAt: "2026-06-07T07:52:54.418Z"
808
944
  },
809
945
  {
810
946
  id: "760439",
@@ -812,6 +948,8 @@ var schedule_2026_default = [
812
948
  group: "B",
813
949
  kickoff: "2026-06-18T19:00Z",
814
950
  venue: "SoFi Stadium",
951
+ city: "Inglewood, California",
952
+ country: "USA",
815
953
  home: {
816
954
  code: "SUI",
817
955
  name: "Switzerland",
@@ -823,7 +961,7 @@ var schedule_2026_default = [
823
961
  flag: "\u{1F1E7}\u{1F1E6}"
824
962
  },
825
963
  status: "SCHEDULED",
826
- updatedAt: "2026-05-31T08:32:53.624Z"
964
+ updatedAt: "2026-06-07T07:52:54.418Z"
827
965
  },
828
966
  {
829
967
  id: "760440",
@@ -831,6 +969,8 @@ var schedule_2026_default = [
831
969
  group: "B",
832
970
  kickoff: "2026-06-18T22:00Z",
833
971
  venue: "BC Place",
972
+ city: "Vancouver",
973
+ country: "Canada",
834
974
  home: {
835
975
  code: "CAN",
836
976
  name: "Canada",
@@ -842,7 +982,7 @@ var schedule_2026_default = [
842
982
  flag: "\u{1F1F6}\u{1F1E6}"
843
983
  },
844
984
  status: "SCHEDULED",
845
- updatedAt: "2026-05-31T08:32:53.624Z"
985
+ updatedAt: "2026-06-07T07:52:54.418Z"
846
986
  },
847
987
  {
848
988
  id: "760441",
@@ -850,6 +990,8 @@ var schedule_2026_default = [
850
990
  group: "A",
851
991
  kickoff: "2026-06-19T01:00Z",
852
992
  venue: "Estadio Akron",
993
+ city: "Guadalajara",
994
+ country: "Mexico",
853
995
  home: {
854
996
  code: "MEX",
855
997
  name: "Mexico",
@@ -861,7 +1003,7 @@ var schedule_2026_default = [
861
1003
  flag: "\u{1F1F0}\u{1F1F7}"
862
1004
  },
863
1005
  status: "SCHEDULED",
864
- updatedAt: "2026-05-31T08:32:53.624Z"
1006
+ updatedAt: "2026-06-07T07:52:54.418Z"
865
1007
  },
866
1008
  {
867
1009
  id: "760442",
@@ -869,6 +1011,8 @@ var schedule_2026_default = [
869
1011
  group: "D",
870
1012
  kickoff: "2026-06-19T19:00Z",
871
1013
  venue: "Lumen Field",
1014
+ city: "Seattle, Washington",
1015
+ country: "USA",
872
1016
  home: {
873
1017
  code: "USA",
874
1018
  name: "United States",
@@ -880,7 +1024,7 @@ var schedule_2026_default = [
880
1024
  flag: "\u{1F1E6}\u{1F1FA}"
881
1025
  },
882
1026
  status: "SCHEDULED",
883
- updatedAt: "2026-05-31T08:32:53.624Z"
1027
+ updatedAt: "2026-06-07T07:52:54.418Z"
884
1028
  },
885
1029
  {
886
1030
  id: "760445",
@@ -888,6 +1032,8 @@ var schedule_2026_default = [
888
1032
  group: "C",
889
1033
  kickoff: "2026-06-19T22:00Z",
890
1034
  venue: "Gillette Stadium",
1035
+ city: "Foxborough, Massachusetts",
1036
+ country: "USA",
891
1037
  home: {
892
1038
  code: "SCO",
893
1039
  name: "Scotland",
@@ -899,7 +1045,7 @@ var schedule_2026_default = [
899
1045
  flag: "\u{1F1F2}\u{1F1E6}"
900
1046
  },
901
1047
  status: "SCHEDULED",
902
- updatedAt: "2026-05-31T08:32:53.624Z"
1048
+ updatedAt: "2026-06-07T07:52:54.418Z"
903
1049
  },
904
1050
  {
905
1051
  id: "760444",
@@ -907,6 +1053,8 @@ var schedule_2026_default = [
907
1053
  group: "C",
908
1054
  kickoff: "2026-06-20T00:30Z",
909
1055
  venue: "Lincoln Financial Field",
1056
+ city: "Philadelphia, Pennsylvania",
1057
+ country: "USA",
910
1058
  home: {
911
1059
  code: "BRA",
912
1060
  name: "Brazil",
@@ -918,7 +1066,7 @@ var schedule_2026_default = [
918
1066
  flag: "\u{1F1ED}\u{1F1F9}"
919
1067
  },
920
1068
  status: "SCHEDULED",
921
- updatedAt: "2026-05-31T08:32:53.624Z"
1069
+ updatedAt: "2026-06-07T07:52:54.418Z"
922
1070
  },
923
1071
  {
924
1072
  id: "760443",
@@ -926,6 +1074,8 @@ var schedule_2026_default = [
926
1074
  group: "D",
927
1075
  kickoff: "2026-06-20T03:00Z",
928
1076
  venue: "Levi's Stadium",
1077
+ city: "Santa Clara, California",
1078
+ country: "USA",
929
1079
  home: {
930
1080
  code: "TUR",
931
1081
  name: "T\xFCrkiye",
@@ -937,7 +1087,7 @@ var schedule_2026_default = [
937
1087
  flag: "\u{1F1F5}\u{1F1FE}"
938
1088
  },
939
1089
  status: "SCHEDULED",
940
- updatedAt: "2026-05-31T08:32:53.624Z"
1090
+ updatedAt: "2026-06-07T07:52:54.418Z"
941
1091
  },
942
1092
  {
943
1093
  id: "760447",
@@ -945,6 +1095,8 @@ var schedule_2026_default = [
945
1095
  group: "F",
946
1096
  kickoff: "2026-06-20T17:00Z",
947
1097
  venue: "NRG Stadium",
1098
+ city: "Houston, Texas",
1099
+ country: "USA",
948
1100
  home: {
949
1101
  code: "NED",
950
1102
  name: "Netherlands",
@@ -956,7 +1108,7 @@ var schedule_2026_default = [
956
1108
  flag: "\u{1F1F8}\u{1F1EA}"
957
1109
  },
958
1110
  status: "SCHEDULED",
959
- updatedAt: "2026-05-31T08:32:53.624Z"
1111
+ updatedAt: "2026-06-07T07:52:54.418Z"
960
1112
  },
961
1113
  {
962
1114
  id: "760448",
@@ -964,6 +1116,8 @@ var schedule_2026_default = [
964
1116
  group: "E",
965
1117
  kickoff: "2026-06-20T20:00Z",
966
1118
  venue: "BMO Field",
1119
+ city: "Toronto",
1120
+ country: "Canada",
967
1121
  home: {
968
1122
  code: "GER",
969
1123
  name: "Germany",
@@ -975,7 +1129,7 @@ var schedule_2026_default = [
975
1129
  flag: "\u{1F1E8}\u{1F1EE}"
976
1130
  },
977
1131
  status: "SCHEDULED",
978
- updatedAt: "2026-05-31T08:32:53.624Z"
1132
+ updatedAt: "2026-06-07T07:52:54.418Z"
979
1133
  },
980
1134
  {
981
1135
  id: "760446",
@@ -983,6 +1137,8 @@ var schedule_2026_default = [
983
1137
  group: "E",
984
1138
  kickoff: "2026-06-21T00:00Z",
985
1139
  venue: "GEHA Field at Arrowhead Stadium",
1140
+ city: "Kansas City, Missouri",
1141
+ country: "USA",
986
1142
  home: {
987
1143
  code: "ECU",
988
1144
  name: "Ecuador",
@@ -990,11 +1146,11 @@ var schedule_2026_default = [
990
1146
  },
991
1147
  away: {
992
1148
  code: "CUW",
993
- name: "Curacao",
1149
+ name: "Cura\xE7ao",
994
1150
  flag: "\u{1F1E8}\u{1F1FC}"
995
1151
  },
996
1152
  status: "SCHEDULED",
997
- updatedAt: "2026-05-31T08:32:53.624Z"
1153
+ updatedAt: "2026-06-07T07:52:54.418Z"
998
1154
  },
999
1155
  {
1000
1156
  id: "760449",
@@ -1002,6 +1158,8 @@ var schedule_2026_default = [
1002
1158
  group: "F",
1003
1159
  kickoff: "2026-06-21T04:00Z",
1004
1160
  venue: "Estadio BBVA",
1161
+ city: "Guadalupe",
1162
+ country: "Mexico",
1005
1163
  home: {
1006
1164
  code: "TUN",
1007
1165
  name: "Tunisia",
@@ -1013,7 +1171,7 @@ var schedule_2026_default = [
1013
1171
  flag: "\u{1F1EF}\u{1F1F5}"
1014
1172
  },
1015
1173
  status: "SCHEDULED",
1016
- updatedAt: "2026-05-31T08:32:53.624Z"
1174
+ updatedAt: "2026-06-07T07:52:54.418Z"
1017
1175
  },
1018
1176
  {
1019
1177
  id: "760453",
@@ -1021,6 +1179,8 @@ var schedule_2026_default = [
1021
1179
  group: "H",
1022
1180
  kickoff: "2026-06-21T16:00Z",
1023
1181
  venue: "Mercedes-Benz Stadium",
1182
+ city: "Atlanta, Georgia",
1183
+ country: "USA",
1024
1184
  home: {
1025
1185
  code: "ESP",
1026
1186
  name: "Spain",
@@ -1032,7 +1192,7 @@ var schedule_2026_default = [
1032
1192
  flag: "\u{1F1F8}\u{1F1E6}"
1033
1193
  },
1034
1194
  status: "SCHEDULED",
1035
- updatedAt: "2026-05-31T08:32:53.624Z"
1195
+ updatedAt: "2026-06-07T07:52:54.418Z"
1036
1196
  },
1037
1197
  {
1038
1198
  id: "760451",
@@ -1040,6 +1200,8 @@ var schedule_2026_default = [
1040
1200
  group: "G",
1041
1201
  kickoff: "2026-06-21T19:00Z",
1042
1202
  venue: "SoFi Stadium",
1203
+ city: "Inglewood, California",
1204
+ country: "USA",
1043
1205
  home: {
1044
1206
  code: "BEL",
1045
1207
  name: "Belgium",
@@ -1051,7 +1213,7 @@ var schedule_2026_default = [
1051
1213
  flag: "\u{1F1EE}\u{1F1F7}"
1052
1214
  },
1053
1215
  status: "SCHEDULED",
1054
- updatedAt: "2026-05-31T08:32:53.624Z"
1216
+ updatedAt: "2026-06-07T07:52:54.418Z"
1055
1217
  },
1056
1218
  {
1057
1219
  id: "760450",
@@ -1059,6 +1221,8 @@ var schedule_2026_default = [
1059
1221
  group: "H",
1060
1222
  kickoff: "2026-06-21T22:00Z",
1061
1223
  venue: "Hard Rock Stadium",
1224
+ city: "Miami Gardens, Florida",
1225
+ country: "USA",
1062
1226
  home: {
1063
1227
  code: "URU",
1064
1228
  name: "Uruguay",
@@ -1070,7 +1234,7 @@ var schedule_2026_default = [
1070
1234
  flag: "\u{1F1E8}\u{1F1FB}"
1071
1235
  },
1072
1236
  status: "SCHEDULED",
1073
- updatedAt: "2026-05-31T08:32:53.624Z"
1237
+ updatedAt: "2026-06-07T07:52:54.418Z"
1074
1238
  },
1075
1239
  {
1076
1240
  id: "760452",
@@ -1078,6 +1242,8 @@ var schedule_2026_default = [
1078
1242
  group: "G",
1079
1243
  kickoff: "2026-06-22T01:00Z",
1080
1244
  venue: "BC Place",
1245
+ city: "Vancouver",
1246
+ country: "Canada",
1081
1247
  home: {
1082
1248
  code: "NZL",
1083
1249
  name: "New Zealand",
@@ -1089,7 +1255,7 @@ var schedule_2026_default = [
1089
1255
  flag: "\u{1F1EA}\u{1F1EC}"
1090
1256
  },
1091
1257
  status: "SCHEDULED",
1092
- updatedAt: "2026-05-31T08:32:53.624Z"
1258
+ updatedAt: "2026-06-07T07:52:54.418Z"
1093
1259
  },
1094
1260
  {
1095
1261
  id: "760456",
@@ -1097,6 +1263,8 @@ var schedule_2026_default = [
1097
1263
  group: "J",
1098
1264
  kickoff: "2026-06-22T17:00Z",
1099
1265
  venue: "AT&T Stadium",
1266
+ city: "Arlington, Texas",
1267
+ country: "USA",
1100
1268
  home: {
1101
1269
  code: "ARG",
1102
1270
  name: "Argentina",
@@ -1108,7 +1276,7 @@ var schedule_2026_default = [
1108
1276
  flag: "\u{1F1E6}\u{1F1F9}"
1109
1277
  },
1110
1278
  status: "SCHEDULED",
1111
- updatedAt: "2026-05-31T08:32:53.624Z"
1279
+ updatedAt: "2026-06-07T07:52:54.418Z"
1112
1280
  },
1113
1281
  {
1114
1282
  id: "760457",
@@ -1116,6 +1284,8 @@ var schedule_2026_default = [
1116
1284
  group: "I",
1117
1285
  kickoff: "2026-06-22T21:00Z",
1118
1286
  venue: "Lincoln Financial Field",
1287
+ city: "Philadelphia, Pennsylvania",
1288
+ country: "USA",
1119
1289
  home: {
1120
1290
  code: "FRA",
1121
1291
  name: "France",
@@ -1127,7 +1297,7 @@ var schedule_2026_default = [
1127
1297
  flag: "\u{1F1EE}\u{1F1F6}"
1128
1298
  },
1129
1299
  status: "SCHEDULED",
1130
- updatedAt: "2026-05-31T08:32:53.624Z"
1300
+ updatedAt: "2026-06-07T07:52:54.418Z"
1131
1301
  },
1132
1302
  {
1133
1303
  id: "760454",
@@ -1135,6 +1305,8 @@ var schedule_2026_default = [
1135
1305
  group: "I",
1136
1306
  kickoff: "2026-06-23T00:00Z",
1137
1307
  venue: "MetLife Stadium",
1308
+ city: "East Rutherford, New Jersey",
1309
+ country: "USA",
1138
1310
  home: {
1139
1311
  code: "NOR",
1140
1312
  name: "Norway",
@@ -1146,7 +1318,7 @@ var schedule_2026_default = [
1146
1318
  flag: "\u{1F1F8}\u{1F1F3}"
1147
1319
  },
1148
1320
  status: "SCHEDULED",
1149
- updatedAt: "2026-05-31T08:32:53.624Z"
1321
+ updatedAt: "2026-06-07T07:52:54.418Z"
1150
1322
  },
1151
1323
  {
1152
1324
  id: "760455",
@@ -1154,6 +1326,8 @@ var schedule_2026_default = [
1154
1326
  group: "J",
1155
1327
  kickoff: "2026-06-23T03:00Z",
1156
1328
  venue: "Levi's Stadium",
1329
+ city: "Santa Clara, California",
1330
+ country: "USA",
1157
1331
  home: {
1158
1332
  code: "JOR",
1159
1333
  name: "Jordan",
@@ -1165,7 +1339,7 @@ var schedule_2026_default = [
1165
1339
  flag: "\u{1F1E9}\u{1F1FF}"
1166
1340
  },
1167
1341
  status: "SCHEDULED",
1168
- updatedAt: "2026-05-31T08:32:53.624Z"
1342
+ updatedAt: "2026-06-07T07:52:54.418Z"
1169
1343
  },
1170
1344
  {
1171
1345
  id: "760461",
@@ -1173,6 +1347,8 @@ var schedule_2026_default = [
1173
1347
  group: "K",
1174
1348
  kickoff: "2026-06-23T17:00Z",
1175
1349
  venue: "NRG Stadium",
1350
+ city: "Houston, Texas",
1351
+ country: "USA",
1176
1352
  home: {
1177
1353
  code: "POR",
1178
1354
  name: "Portugal",
@@ -1184,7 +1360,7 @@ var schedule_2026_default = [
1184
1360
  flag: "\u{1F1FA}\u{1F1FF}"
1185
1361
  },
1186
1362
  status: "SCHEDULED",
1187
- updatedAt: "2026-05-31T08:32:53.624Z"
1363
+ updatedAt: "2026-06-07T07:52:54.418Z"
1188
1364
  },
1189
1365
  {
1190
1366
  id: "760458",
@@ -1192,6 +1368,8 @@ var schedule_2026_default = [
1192
1368
  group: "L",
1193
1369
  kickoff: "2026-06-23T20:00Z",
1194
1370
  venue: "Gillette Stadium",
1371
+ city: "Foxborough, Massachusetts",
1372
+ country: "USA",
1195
1373
  home: {
1196
1374
  code: "ENG",
1197
1375
  name: "England",
@@ -1203,7 +1381,7 @@ var schedule_2026_default = [
1203
1381
  flag: "\u{1F1EC}\u{1F1ED}"
1204
1382
  },
1205
1383
  status: "SCHEDULED",
1206
- updatedAt: "2026-05-31T08:32:53.624Z"
1384
+ updatedAt: "2026-06-07T07:52:54.418Z"
1207
1385
  },
1208
1386
  {
1209
1387
  id: "760460",
@@ -1211,6 +1389,8 @@ var schedule_2026_default = [
1211
1389
  group: "L",
1212
1390
  kickoff: "2026-06-23T23:00Z",
1213
1391
  venue: "BMO Field",
1392
+ city: "Toronto",
1393
+ country: "Canada",
1214
1394
  home: {
1215
1395
  code: "PAN",
1216
1396
  name: "Panama",
@@ -1222,7 +1402,7 @@ var schedule_2026_default = [
1222
1402
  flag: "\u{1F1ED}\u{1F1F7}"
1223
1403
  },
1224
1404
  status: "SCHEDULED",
1225
- updatedAt: "2026-05-31T08:32:53.625Z"
1405
+ updatedAt: "2026-06-07T07:52:54.419Z"
1226
1406
  },
1227
1407
  {
1228
1408
  id: "760459",
@@ -1230,6 +1410,8 @@ var schedule_2026_default = [
1230
1410
  group: "K",
1231
1411
  kickoff: "2026-06-24T02:00Z",
1232
1412
  venue: "Estadio Akron",
1413
+ city: "Guadalajara",
1414
+ country: "Mexico",
1233
1415
  home: {
1234
1416
  code: "COL",
1235
1417
  name: "Colombia",
@@ -1241,7 +1423,7 @@ var schedule_2026_default = [
1241
1423
  flag: "\u{1F1E8}\u{1F1E9}"
1242
1424
  },
1243
1425
  status: "SCHEDULED",
1244
- updatedAt: "2026-05-31T08:32:53.625Z"
1426
+ updatedAt: "2026-06-07T07:52:54.419Z"
1245
1427
  },
1246
1428
  {
1247
1429
  id: "760462",
@@ -1249,6 +1431,8 @@ var schedule_2026_default = [
1249
1431
  group: "B",
1250
1432
  kickoff: "2026-06-24T19:00Z",
1251
1433
  venue: "Lumen Field",
1434
+ city: "Seattle, Washington",
1435
+ country: "USA",
1252
1436
  home: {
1253
1437
  code: "BIH",
1254
1438
  name: "Bosnia-Herzegovina",
@@ -1260,7 +1444,7 @@ var schedule_2026_default = [
1260
1444
  flag: "\u{1F1F6}\u{1F1E6}"
1261
1445
  },
1262
1446
  status: "SCHEDULED",
1263
- updatedAt: "2026-05-31T08:32:53.625Z"
1447
+ updatedAt: "2026-06-07T07:52:54.419Z"
1264
1448
  },
1265
1449
  {
1266
1450
  id: "760463",
@@ -1268,6 +1452,8 @@ var schedule_2026_default = [
1268
1452
  group: "B",
1269
1453
  kickoff: "2026-06-24T19:00Z",
1270
1454
  venue: "BC Place",
1455
+ city: "Vancouver",
1456
+ country: "Canada",
1271
1457
  home: {
1272
1458
  code: "SUI",
1273
1459
  name: "Switzerland",
@@ -1279,7 +1465,7 @@ var schedule_2026_default = [
1279
1465
  flag: "\u{1F1E8}\u{1F1E6}"
1280
1466
  },
1281
1467
  status: "SCHEDULED",
1282
- updatedAt: "2026-05-31T08:32:53.625Z"
1468
+ updatedAt: "2026-06-07T07:52:54.419Z"
1283
1469
  },
1284
1470
  {
1285
1471
  id: "760464",
@@ -1287,6 +1473,8 @@ var schedule_2026_default = [
1287
1473
  group: "C",
1288
1474
  kickoff: "2026-06-24T22:00Z",
1289
1475
  venue: "Mercedes-Benz Stadium",
1476
+ city: "Atlanta, Georgia",
1477
+ country: "USA",
1290
1478
  home: {
1291
1479
  code: "MAR",
1292
1480
  name: "Morocco",
@@ -1298,7 +1486,7 @@ var schedule_2026_default = [
1298
1486
  flag: "\u{1F1ED}\u{1F1F9}"
1299
1487
  },
1300
1488
  status: "SCHEDULED",
1301
- updatedAt: "2026-05-31T08:32:53.625Z"
1489
+ updatedAt: "2026-06-07T07:52:54.419Z"
1302
1490
  },
1303
1491
  {
1304
1492
  id: "760465",
@@ -1306,6 +1494,8 @@ var schedule_2026_default = [
1306
1494
  group: "C",
1307
1495
  kickoff: "2026-06-24T22:00Z",
1308
1496
  venue: "Hard Rock Stadium",
1497
+ city: "Miami Gardens, Florida",
1498
+ country: "USA",
1309
1499
  home: {
1310
1500
  code: "SCO",
1311
1501
  name: "Scotland",
@@ -1317,7 +1507,7 @@ var schedule_2026_default = [
1317
1507
  flag: "\u{1F1E7}\u{1F1F7}"
1318
1508
  },
1319
1509
  status: "SCHEDULED",
1320
- updatedAt: "2026-05-31T08:32:53.625Z"
1510
+ updatedAt: "2026-06-07T07:52:54.419Z"
1321
1511
  },
1322
1512
  {
1323
1513
  id: "760467",
@@ -1325,6 +1515,8 @@ var schedule_2026_default = [
1325
1515
  group: "A",
1326
1516
  kickoff: "2026-06-25T01:00Z",
1327
1517
  venue: "Estadio Banorte",
1518
+ city: "Mexico City",
1519
+ country: "Mexico",
1328
1520
  home: {
1329
1521
  code: "CZE",
1330
1522
  name: "Czechia",
@@ -1336,7 +1528,7 @@ var schedule_2026_default = [
1336
1528
  flag: "\u{1F1F2}\u{1F1FD}"
1337
1529
  },
1338
1530
  status: "SCHEDULED",
1339
- updatedAt: "2026-05-31T08:32:53.625Z"
1531
+ updatedAt: "2026-06-07T07:52:54.419Z"
1340
1532
  },
1341
1533
  {
1342
1534
  id: "760466",
@@ -1344,6 +1536,8 @@ var schedule_2026_default = [
1344
1536
  group: "A",
1345
1537
  kickoff: "2026-06-25T01:00Z",
1346
1538
  venue: "Estadio BBVA",
1539
+ city: "Guadalupe",
1540
+ country: "Mexico",
1347
1541
  home: {
1348
1542
  code: "RSA",
1349
1543
  name: "South Africa",
@@ -1355,7 +1549,7 @@ var schedule_2026_default = [
1355
1549
  flag: "\u{1F1F0}\u{1F1F7}"
1356
1550
  },
1357
1551
  status: "SCHEDULED",
1358
- updatedAt: "2026-05-31T08:32:53.625Z"
1552
+ updatedAt: "2026-06-07T07:52:54.419Z"
1359
1553
  },
1360
1554
  {
1361
1555
  id: "760473",
@@ -1363,9 +1557,11 @@ var schedule_2026_default = [
1363
1557
  group: "E",
1364
1558
  kickoff: "2026-06-25T20:00Z",
1365
1559
  venue: "Lincoln Financial Field",
1560
+ city: "Philadelphia, Pennsylvania",
1561
+ country: "USA",
1366
1562
  home: {
1367
1563
  code: "CUW",
1368
- name: "Curacao",
1564
+ name: "Cura\xE7ao",
1369
1565
  flag: "\u{1F1E8}\u{1F1FC}"
1370
1566
  },
1371
1567
  away: {
@@ -1374,7 +1570,7 @@ var schedule_2026_default = [
1374
1570
  flag: "\u{1F1E8}\u{1F1EE}"
1375
1571
  },
1376
1572
  status: "SCHEDULED",
1377
- updatedAt: "2026-05-31T08:32:53.682Z"
1573
+ updatedAt: "2026-06-07T07:52:54.511Z"
1378
1574
  },
1379
1575
  {
1380
1576
  id: "760468",
@@ -1382,6 +1578,8 @@ var schedule_2026_default = [
1382
1578
  group: "E",
1383
1579
  kickoff: "2026-06-25T20:00Z",
1384
1580
  venue: "MetLife Stadium",
1581
+ city: "East Rutherford, New Jersey",
1582
+ country: "USA",
1385
1583
  home: {
1386
1584
  code: "ECU",
1387
1585
  name: "Ecuador",
@@ -1393,7 +1591,7 @@ var schedule_2026_default = [
1393
1591
  flag: "\u{1F1E9}\u{1F1EA}"
1394
1592
  },
1395
1593
  status: "SCHEDULED",
1396
- updatedAt: "2026-05-31T08:32:53.682Z"
1594
+ updatedAt: "2026-06-07T07:52:54.511Z"
1397
1595
  },
1398
1596
  {
1399
1597
  id: "760471",
@@ -1401,6 +1599,8 @@ var schedule_2026_default = [
1401
1599
  group: "F",
1402
1600
  kickoff: "2026-06-25T23:00Z",
1403
1601
  venue: "AT&T Stadium",
1602
+ city: "Arlington, Texas",
1603
+ country: "USA",
1404
1604
  home: {
1405
1605
  code: "JPN",
1406
1606
  name: "Japan",
@@ -1412,7 +1612,7 @@ var schedule_2026_default = [
1412
1612
  flag: "\u{1F1F8}\u{1F1EA}"
1413
1613
  },
1414
1614
  status: "SCHEDULED",
1415
- updatedAt: "2026-05-31T08:32:53.682Z"
1615
+ updatedAt: "2026-06-07T07:52:54.511Z"
1416
1616
  },
1417
1617
  {
1418
1618
  id: "760472",
@@ -1420,6 +1620,8 @@ var schedule_2026_default = [
1420
1620
  group: "F",
1421
1621
  kickoff: "2026-06-25T23:00Z",
1422
1622
  venue: "GEHA Field at Arrowhead Stadium",
1623
+ city: "Kansas City, Missouri",
1624
+ country: "USA",
1423
1625
  home: {
1424
1626
  code: "TUN",
1425
1627
  name: "Tunisia",
@@ -1431,7 +1633,7 @@ var schedule_2026_default = [
1431
1633
  flag: "\u{1F1F3}\u{1F1F1}"
1432
1634
  },
1433
1635
  status: "SCHEDULED",
1434
- updatedAt: "2026-05-31T08:32:53.682Z"
1636
+ updatedAt: "2026-06-07T07:52:54.511Z"
1435
1637
  },
1436
1638
  {
1437
1639
  id: "760469",
@@ -1439,6 +1641,8 @@ var schedule_2026_default = [
1439
1641
  group: "D",
1440
1642
  kickoff: "2026-06-26T02:00Z",
1441
1643
  venue: "Levi's Stadium",
1644
+ city: "Santa Clara, California",
1645
+ country: "USA",
1442
1646
  home: {
1443
1647
  code: "PAR",
1444
1648
  name: "Paraguay",
@@ -1450,7 +1654,7 @@ var schedule_2026_default = [
1450
1654
  flag: "\u{1F1E6}\u{1F1FA}"
1451
1655
  },
1452
1656
  status: "SCHEDULED",
1453
- updatedAt: "2026-05-31T08:32:53.682Z"
1657
+ updatedAt: "2026-06-07T07:52:54.511Z"
1454
1658
  },
1455
1659
  {
1456
1660
  id: "760470",
@@ -1458,6 +1662,8 @@ var schedule_2026_default = [
1458
1662
  group: "D",
1459
1663
  kickoff: "2026-06-26T02:00Z",
1460
1664
  venue: "SoFi Stadium",
1665
+ city: "Inglewood, California",
1666
+ country: "USA",
1461
1667
  home: {
1462
1668
  code: "TUR",
1463
1669
  name: "T\xFCrkiye",
@@ -1469,7 +1675,7 @@ var schedule_2026_default = [
1469
1675
  flag: "\u{1F1FA}\u{1F1F8}"
1470
1676
  },
1471
1677
  status: "SCHEDULED",
1472
- updatedAt: "2026-05-31T08:32:53.682Z"
1678
+ updatedAt: "2026-06-07T07:52:54.511Z"
1473
1679
  },
1474
1680
  {
1475
1681
  id: "760475",
@@ -1477,6 +1683,8 @@ var schedule_2026_default = [
1477
1683
  group: "I",
1478
1684
  kickoff: "2026-06-26T19:00Z",
1479
1685
  venue: "Gillette Stadium",
1686
+ city: "Foxborough, Massachusetts",
1687
+ country: "USA",
1480
1688
  home: {
1481
1689
  code: "NOR",
1482
1690
  name: "Norway",
@@ -1488,7 +1696,7 @@ var schedule_2026_default = [
1488
1696
  flag: "\u{1F1EB}\u{1F1F7}"
1489
1697
  },
1490
1698
  status: "SCHEDULED",
1491
- updatedAt: "2026-05-31T08:32:53.682Z"
1699
+ updatedAt: "2026-06-07T07:52:54.511Z"
1492
1700
  },
1493
1701
  {
1494
1702
  id: "760474",
@@ -1496,6 +1704,8 @@ var schedule_2026_default = [
1496
1704
  group: "I",
1497
1705
  kickoff: "2026-06-26T19:00Z",
1498
1706
  venue: "BMO Field",
1707
+ city: "Toronto",
1708
+ country: "Canada",
1499
1709
  home: {
1500
1710
  code: "SEN",
1501
1711
  name: "Senegal",
@@ -1507,7 +1717,7 @@ var schedule_2026_default = [
1507
1717
  flag: "\u{1F1EE}\u{1F1F6}"
1508
1718
  },
1509
1719
  status: "SCHEDULED",
1510
- updatedAt: "2026-05-31T08:32:53.682Z"
1720
+ updatedAt: "2026-06-07T07:52:54.511Z"
1511
1721
  },
1512
1722
  {
1513
1723
  id: "760478",
@@ -1515,6 +1725,8 @@ var schedule_2026_default = [
1515
1725
  group: "H",
1516
1726
  kickoff: "2026-06-27T00:00Z",
1517
1727
  venue: "NRG Stadium",
1728
+ city: "Houston, Texas",
1729
+ country: "USA",
1518
1730
  home: {
1519
1731
  code: "CPV",
1520
1732
  name: "Cape Verde",
@@ -1526,7 +1738,7 @@ var schedule_2026_default = [
1526
1738
  flag: "\u{1F1F8}\u{1F1E6}"
1527
1739
  },
1528
1740
  status: "SCHEDULED",
1529
- updatedAt: "2026-05-31T08:32:53.682Z"
1741
+ updatedAt: "2026-06-07T07:52:54.511Z"
1530
1742
  },
1531
1743
  {
1532
1744
  id: "760479",
@@ -1534,6 +1746,8 @@ var schedule_2026_default = [
1534
1746
  group: "H",
1535
1747
  kickoff: "2026-06-27T00:00Z",
1536
1748
  venue: "Estadio Akron",
1749
+ city: "Guadalajara",
1750
+ country: "Mexico",
1537
1751
  home: {
1538
1752
  code: "URU",
1539
1753
  name: "Uruguay",
@@ -1545,7 +1759,7 @@ var schedule_2026_default = [
1545
1759
  flag: "\u{1F1EA}\u{1F1F8}"
1546
1760
  },
1547
1761
  status: "SCHEDULED",
1548
- updatedAt: "2026-05-31T08:32:53.682Z"
1762
+ updatedAt: "2026-06-07T07:52:54.511Z"
1549
1763
  },
1550
1764
  {
1551
1765
  id: "760476",
@@ -1553,6 +1767,8 @@ var schedule_2026_default = [
1553
1767
  group: "G",
1554
1768
  kickoff: "2026-06-27T03:00Z",
1555
1769
  venue: "Lumen Field",
1770
+ city: "Seattle, Washington",
1771
+ country: "USA",
1556
1772
  home: {
1557
1773
  code: "EGY",
1558
1774
  name: "Egypt",
@@ -1564,7 +1780,7 @@ var schedule_2026_default = [
1564
1780
  flag: "\u{1F1EE}\u{1F1F7}"
1565
1781
  },
1566
1782
  status: "SCHEDULED",
1567
- updatedAt: "2026-05-31T08:32:53.682Z"
1783
+ updatedAt: "2026-06-07T07:52:54.511Z"
1568
1784
  },
1569
1785
  {
1570
1786
  id: "760477",
@@ -1572,6 +1788,8 @@ var schedule_2026_default = [
1572
1788
  group: "G",
1573
1789
  kickoff: "2026-06-27T03:00Z",
1574
1790
  venue: "BC Place",
1791
+ city: "Vancouver",
1792
+ country: "Canada",
1575
1793
  home: {
1576
1794
  code: "NZL",
1577
1795
  name: "New Zealand",
@@ -1583,7 +1801,7 @@ var schedule_2026_default = [
1583
1801
  flag: "\u{1F1E7}\u{1F1EA}"
1584
1802
  },
1585
1803
  status: "SCHEDULED",
1586
- updatedAt: "2026-05-31T08:32:53.682Z"
1804
+ updatedAt: "2026-06-07T07:52:54.511Z"
1587
1805
  },
1588
1806
  {
1589
1807
  id: "760480",
@@ -1591,6 +1809,8 @@ var schedule_2026_default = [
1591
1809
  group: "L",
1592
1810
  kickoff: "2026-06-27T21:00Z",
1593
1811
  venue: "Lincoln Financial Field",
1812
+ city: "Philadelphia, Pennsylvania",
1813
+ country: "USA",
1594
1814
  home: {
1595
1815
  code: "CRO",
1596
1816
  name: "Croatia",
@@ -1602,7 +1822,7 @@ var schedule_2026_default = [
1602
1822
  flag: "\u{1F1EC}\u{1F1ED}"
1603
1823
  },
1604
1824
  status: "SCHEDULED",
1605
- updatedAt: "2026-05-31T08:32:53.682Z"
1825
+ updatedAt: "2026-06-07T07:52:54.512Z"
1606
1826
  },
1607
1827
  {
1608
1828
  id: "760485",
@@ -1610,6 +1830,8 @@ var schedule_2026_default = [
1610
1830
  group: "L",
1611
1831
  kickoff: "2026-06-27T21:00Z",
1612
1832
  venue: "MetLife Stadium",
1833
+ city: "East Rutherford, New Jersey",
1834
+ country: "USA",
1613
1835
  home: {
1614
1836
  code: "PAN",
1615
1837
  name: "Panama",
@@ -1621,7 +1843,7 @@ var schedule_2026_default = [
1621
1843
  flag: "\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}"
1622
1844
  },
1623
1845
  status: "SCHEDULED",
1624
- updatedAt: "2026-05-31T08:32:53.682Z"
1846
+ updatedAt: "2026-06-07T07:52:54.512Z"
1625
1847
  },
1626
1848
  {
1627
1849
  id: "760481",
@@ -1629,6 +1851,8 @@ var schedule_2026_default = [
1629
1851
  group: "K",
1630
1852
  kickoff: "2026-06-27T23:30Z",
1631
1853
  venue: "Hard Rock Stadium",
1854
+ city: "Miami Gardens, Florida",
1855
+ country: "USA",
1632
1856
  home: {
1633
1857
  code: "COL",
1634
1858
  name: "Colombia",
@@ -1640,7 +1864,7 @@ var schedule_2026_default = [
1640
1864
  flag: "\u{1F1F5}\u{1F1F9}"
1641
1865
  },
1642
1866
  status: "SCHEDULED",
1643
- updatedAt: "2026-05-31T08:32:53.682Z"
1867
+ updatedAt: "2026-06-07T07:52:54.512Z"
1644
1868
  },
1645
1869
  {
1646
1870
  id: "760482",
@@ -1648,6 +1872,8 @@ var schedule_2026_default = [
1648
1872
  group: "K",
1649
1873
  kickoff: "2026-06-27T23:30Z",
1650
1874
  venue: "Mercedes-Benz Stadium",
1875
+ city: "Atlanta, Georgia",
1876
+ country: "USA",
1651
1877
  home: {
1652
1878
  code: "COD",
1653
1879
  name: "Congo DR",
@@ -1659,7 +1885,7 @@ var schedule_2026_default = [
1659
1885
  flag: "\u{1F1FA}\u{1F1FF}"
1660
1886
  },
1661
1887
  status: "SCHEDULED",
1662
- updatedAt: "2026-05-31T08:32:53.682Z"
1888
+ updatedAt: "2026-06-07T07:52:54.512Z"
1663
1889
  },
1664
1890
  {
1665
1891
  id: "760484",
@@ -1667,6 +1893,8 @@ var schedule_2026_default = [
1667
1893
  group: "J",
1668
1894
  kickoff: "2026-06-28T02:00Z",
1669
1895
  venue: "GEHA Field at Arrowhead Stadium",
1896
+ city: "Kansas City, Missouri",
1897
+ country: "USA",
1670
1898
  home: {
1671
1899
  code: "ALG",
1672
1900
  name: "Algeria",
@@ -1678,7 +1906,7 @@ var schedule_2026_default = [
1678
1906
  flag: "\u{1F1E6}\u{1F1F9}"
1679
1907
  },
1680
1908
  status: "SCHEDULED",
1681
- updatedAt: "2026-05-31T08:32:53.682Z"
1909
+ updatedAt: "2026-06-07T07:52:54.512Z"
1682
1910
  },
1683
1911
  {
1684
1912
  id: "760483",
@@ -1686,6 +1914,8 @@ var schedule_2026_default = [
1686
1914
  group: "J",
1687
1915
  kickoff: "2026-06-28T02:00Z",
1688
1916
  venue: "AT&T Stadium",
1917
+ city: "Arlington, Texas",
1918
+ country: "USA",
1689
1919
  home: {
1690
1920
  code: "JOR",
1691
1921
  name: "Jordan",
@@ -1697,13 +1927,15 @@ var schedule_2026_default = [
1697
1927
  flag: "\u{1F1E6}\u{1F1F7}"
1698
1928
  },
1699
1929
  status: "SCHEDULED",
1700
- updatedAt: "2026-05-31T08:32:53.682Z"
1930
+ updatedAt: "2026-06-07T07:52:54.512Z"
1701
1931
  },
1702
1932
  {
1703
1933
  id: "760486",
1704
1934
  stage: "R32",
1705
1935
  kickoff: "2026-06-28T19:00Z",
1706
1936
  venue: "SoFi Stadium",
1937
+ city: "Inglewood, California",
1938
+ country: "USA",
1707
1939
  home: {
1708
1940
  code: "2A",
1709
1941
  name: "Group A 2nd Place",
@@ -1715,13 +1947,15 @@ var schedule_2026_default = [
1715
1947
  flag: "\u{1F3F3}\uFE0F"
1716
1948
  },
1717
1949
  status: "SCHEDULED",
1718
- updatedAt: "2026-05-31T08:32:53.682Z"
1950
+ updatedAt: "2026-06-07T07:52:54.540Z"
1719
1951
  },
1720
1952
  {
1721
1953
  id: "760487",
1722
1954
  stage: "R32",
1723
1955
  kickoff: "2026-06-29T17:00Z",
1724
1956
  venue: "NRG Stadium",
1957
+ city: "Houston, Texas",
1958
+ country: "USA",
1725
1959
  home: {
1726
1960
  code: "1C",
1727
1961
  name: "Group C Winner",
@@ -1733,13 +1967,15 @@ var schedule_2026_default = [
1733
1967
  flag: "\u{1F3F3}\uFE0F"
1734
1968
  },
1735
1969
  status: "SCHEDULED",
1736
- updatedAt: "2026-05-31T08:32:53.682Z"
1970
+ updatedAt: "2026-06-07T07:52:54.540Z"
1737
1971
  },
1738
1972
  {
1739
1973
  id: "760489",
1740
1974
  stage: "R32",
1741
1975
  kickoff: "2026-06-29T20:30Z",
1742
1976
  venue: "Gillette Stadium",
1977
+ city: "Foxborough, Massachusetts",
1978
+ country: "USA",
1743
1979
  home: {
1744
1980
  code: "1E",
1745
1981
  name: "Group E Winner",
@@ -1751,13 +1987,15 @@ var schedule_2026_default = [
1751
1987
  flag: "\u{1F3F3}\uFE0F"
1752
1988
  },
1753
1989
  status: "SCHEDULED",
1754
- updatedAt: "2026-05-31T08:32:53.682Z"
1990
+ updatedAt: "2026-06-07T07:52:54.540Z"
1755
1991
  },
1756
1992
  {
1757
1993
  id: "760488",
1758
1994
  stage: "R32",
1759
1995
  kickoff: "2026-06-30T01:00Z",
1760
1996
  venue: "Estadio BBVA",
1997
+ city: "Guadalupe",
1998
+ country: "Mexico",
1761
1999
  home: {
1762
2000
  code: "1F",
1763
2001
  name: "Group F Winner",
@@ -1769,13 +2007,15 @@ var schedule_2026_default = [
1769
2007
  flag: "\u{1F3F3}\uFE0F"
1770
2008
  },
1771
2009
  status: "SCHEDULED",
1772
- updatedAt: "2026-05-31T08:32:53.682Z"
2010
+ updatedAt: "2026-06-07T07:52:54.540Z"
1773
2011
  },
1774
2012
  {
1775
2013
  id: "760490",
1776
2014
  stage: "R32",
1777
2015
  kickoff: "2026-06-30T17:00Z",
1778
2016
  venue: "AT&T Stadium",
2017
+ city: "Arlington, Texas",
2018
+ country: "USA",
1779
2019
  home: {
1780
2020
  code: "2E",
1781
2021
  name: "Group E 2nd Place",
@@ -1787,13 +2027,15 @@ var schedule_2026_default = [
1787
2027
  flag: "\u{1F3F3}\uFE0F"
1788
2028
  },
1789
2029
  status: "SCHEDULED",
1790
- updatedAt: "2026-05-31T08:32:53.682Z"
2030
+ updatedAt: "2026-06-07T07:52:54.540Z"
1791
2031
  },
1792
2032
  {
1793
2033
  id: "760492",
1794
2034
  stage: "R32",
1795
2035
  kickoff: "2026-06-30T21:00Z",
1796
2036
  venue: "MetLife Stadium",
2037
+ city: "East Rutherford, New Jersey",
2038
+ country: "USA",
1797
2039
  home: {
1798
2040
  code: "1I",
1799
2041
  name: "Group I Winner",
@@ -1805,13 +2047,15 @@ var schedule_2026_default = [
1805
2047
  flag: "\u{1F3F3}\uFE0F"
1806
2048
  },
1807
2049
  status: "SCHEDULED",
1808
- updatedAt: "2026-05-31T08:32:53.682Z"
2050
+ updatedAt: "2026-06-07T07:52:54.541Z"
1809
2051
  },
1810
2052
  {
1811
2053
  id: "760491",
1812
2054
  stage: "R32",
1813
2055
  kickoff: "2026-07-01T01:00Z",
1814
2056
  venue: "Estadio Banorte",
2057
+ city: "Mexico City",
2058
+ country: "Mexico",
1815
2059
  home: {
1816
2060
  code: "1A",
1817
2061
  name: "Group A Winner",
@@ -1823,13 +2067,15 @@ var schedule_2026_default = [
1823
2067
  flag: "\u{1F3F3}\uFE0F"
1824
2068
  },
1825
2069
  status: "SCHEDULED",
1826
- updatedAt: "2026-05-31T08:32:53.682Z"
2070
+ updatedAt: "2026-06-07T07:52:54.541Z"
1827
2071
  },
1828
2072
  {
1829
2073
  id: "760495",
1830
2074
  stage: "R32",
1831
2075
  kickoff: "2026-07-01T16:00Z",
1832
2076
  venue: "Mercedes-Benz Stadium",
2077
+ city: "Atlanta, Georgia",
2078
+ country: "USA",
1833
2079
  home: {
1834
2080
  code: "1L",
1835
2081
  name: "Group L Winner",
@@ -1841,13 +2087,15 @@ var schedule_2026_default = [
1841
2087
  flag: "\u{1F3F3}\uFE0F"
1842
2088
  },
1843
2089
  status: "SCHEDULED",
1844
- updatedAt: "2026-05-31T08:32:53.682Z"
2090
+ updatedAt: "2026-06-07T07:52:54.541Z"
1845
2091
  },
1846
2092
  {
1847
2093
  id: "760493",
1848
2094
  stage: "R32",
1849
2095
  kickoff: "2026-07-01T20:00Z",
1850
2096
  venue: "Lumen Field",
2097
+ city: "Seattle, Washington",
2098
+ country: "USA",
1851
2099
  home: {
1852
2100
  code: "1G",
1853
2101
  name: "Group G Winner",
@@ -1859,13 +2107,15 @@ var schedule_2026_default = [
1859
2107
  flag: "\u{1F3F3}\uFE0F"
1860
2108
  },
1861
2109
  status: "SCHEDULED",
1862
- updatedAt: "2026-05-31T08:32:53.682Z"
2110
+ updatedAt: "2026-06-07T07:52:54.541Z"
1863
2111
  },
1864
2112
  {
1865
2113
  id: "760494",
1866
2114
  stage: "R32",
1867
2115
  kickoff: "2026-07-02T00:00Z",
1868
2116
  venue: "Levi's Stadium",
2117
+ city: "Santa Clara, California",
2118
+ country: "USA",
1869
2119
  home: {
1870
2120
  code: "1D",
1871
2121
  name: "Group D Winner",
@@ -1877,13 +2127,15 @@ var schedule_2026_default = [
1877
2127
  flag: "\u{1F3F3}\uFE0F"
1878
2128
  },
1879
2129
  status: "SCHEDULED",
1880
- updatedAt: "2026-05-31T08:32:53.683Z"
2130
+ updatedAt: "2026-06-07T07:52:54.541Z"
1881
2131
  },
1882
2132
  {
1883
2133
  id: "760497",
1884
2134
  stage: "R32",
1885
2135
  kickoff: "2026-07-02T19:00Z",
1886
2136
  venue: "SoFi Stadium",
2137
+ city: "Inglewood, California",
2138
+ country: "USA",
1887
2139
  home: {
1888
2140
  code: "1H",
1889
2141
  name: "Group H Winner",
@@ -1895,13 +2147,15 @@ var schedule_2026_default = [
1895
2147
  flag: "\u{1F3F3}\uFE0F"
1896
2148
  },
1897
2149
  status: "SCHEDULED",
1898
- updatedAt: "2026-05-31T08:32:53.746Z"
2150
+ updatedAt: "2026-06-07T07:52:54.616Z"
1899
2151
  },
1900
2152
  {
1901
2153
  id: "760496",
1902
2154
  stage: "R32",
1903
2155
  kickoff: "2026-07-02T23:00Z",
1904
2156
  venue: "BMO Field",
2157
+ city: "Toronto",
2158
+ country: "Canada",
1905
2159
  home: {
1906
2160
  code: "2K",
1907
2161
  name: "Group K 2nd Place",
@@ -1913,13 +2167,15 @@ var schedule_2026_default = [
1913
2167
  flag: "\u{1F3F3}\uFE0F"
1914
2168
  },
1915
2169
  status: "SCHEDULED",
1916
- updatedAt: "2026-05-31T08:32:53.746Z"
2170
+ updatedAt: "2026-06-07T07:52:54.616Z"
1917
2171
  },
1918
2172
  {
1919
2173
  id: "760498",
1920
2174
  stage: "R32",
1921
2175
  kickoff: "2026-07-03T03:00Z",
1922
2176
  venue: "BC Place",
2177
+ city: "Vancouver",
2178
+ country: "Canada",
1923
2179
  home: {
1924
2180
  code: "1B",
1925
2181
  name: "Group B Winner",
@@ -1931,13 +2187,15 @@ var schedule_2026_default = [
1931
2187
  flag: "\u{1F3F3}\uFE0F"
1932
2188
  },
1933
2189
  status: "SCHEDULED",
1934
- updatedAt: "2026-05-31T08:32:53.746Z"
2190
+ updatedAt: "2026-06-07T07:52:54.616Z"
1935
2191
  },
1936
2192
  {
1937
2193
  id: "760499",
1938
2194
  stage: "R32",
1939
2195
  kickoff: "2026-07-03T18:00Z",
1940
2196
  venue: "AT&T Stadium",
2197
+ city: "Arlington, Texas",
2198
+ country: "USA",
1941
2199
  home: {
1942
2200
  code: "2D",
1943
2201
  name: "Group D 2nd Place",
@@ -1949,13 +2207,15 @@ var schedule_2026_default = [
1949
2207
  flag: "\u{1F3F3}\uFE0F"
1950
2208
  },
1951
2209
  status: "SCHEDULED",
1952
- updatedAt: "2026-05-31T08:32:53.746Z"
2210
+ updatedAt: "2026-06-07T07:52:54.616Z"
1953
2211
  },
1954
2212
  {
1955
2213
  id: "760500",
1956
2214
  stage: "R32",
1957
2215
  kickoff: "2026-07-03T22:00Z",
1958
2216
  venue: "Hard Rock Stadium",
2217
+ city: "Miami Gardens, Florida",
2218
+ country: "USA",
1959
2219
  home: {
1960
2220
  code: "1J",
1961
2221
  name: "Group J Winner",
@@ -1967,13 +2227,15 @@ var schedule_2026_default = [
1967
2227
  flag: "\u{1F3F3}\uFE0F"
1968
2228
  },
1969
2229
  status: "SCHEDULED",
1970
- updatedAt: "2026-05-31T08:32:53.746Z"
2230
+ updatedAt: "2026-06-07T07:52:54.616Z"
1971
2231
  },
1972
2232
  {
1973
2233
  id: "760501",
1974
2234
  stage: "R32",
1975
2235
  kickoff: "2026-07-04T01:30Z",
1976
2236
  venue: "GEHA Field at Arrowhead Stadium",
2237
+ city: "Kansas City, Missouri",
2238
+ country: "USA",
1977
2239
  home: {
1978
2240
  code: "1K",
1979
2241
  name: "Group K Winner",
@@ -1985,13 +2247,15 @@ var schedule_2026_default = [
1985
2247
  flag: "\u{1F3F3}\uFE0F"
1986
2248
  },
1987
2249
  status: "SCHEDULED",
1988
- updatedAt: "2026-05-31T08:32:53.746Z"
2250
+ updatedAt: "2026-06-07T07:52:54.616Z"
1989
2251
  },
1990
2252
  {
1991
2253
  id: "760502",
1992
2254
  stage: "R16",
1993
2255
  kickoff: "2026-07-04T17:00Z",
1994
2256
  venue: "NRG Stadium",
2257
+ city: "Houston, Texas",
2258
+ country: "USA",
1995
2259
  home: {
1996
2260
  code: "RD32",
1997
2261
  name: "Round of 32 1 Winner",
@@ -2003,13 +2267,15 @@ var schedule_2026_default = [
2003
2267
  flag: "\u{1F3F3}\uFE0F"
2004
2268
  },
2005
2269
  status: "SCHEDULED",
2006
- updatedAt: "2026-05-31T08:32:53.746Z"
2270
+ updatedAt: "2026-06-07T07:52:54.616Z"
2007
2271
  },
2008
2272
  {
2009
2273
  id: "760503",
2010
2274
  stage: "R16",
2011
2275
  kickoff: "2026-07-04T21:00Z",
2012
2276
  venue: "Lincoln Financial Field",
2277
+ city: "Philadelphia, Pennsylvania",
2278
+ country: "USA",
2013
2279
  home: {
2014
2280
  code: "RD32",
2015
2281
  name: "Round of 32 2 Winner",
@@ -2021,13 +2287,15 @@ var schedule_2026_default = [
2021
2287
  flag: "\u{1F3F3}\uFE0F"
2022
2288
  },
2023
2289
  status: "SCHEDULED",
2024
- updatedAt: "2026-05-31T08:32:53.746Z"
2290
+ updatedAt: "2026-06-07T07:52:54.616Z"
2025
2291
  },
2026
2292
  {
2027
2293
  id: "760504",
2028
2294
  stage: "R16",
2029
2295
  kickoff: "2026-07-05T20:00Z",
2030
2296
  venue: "MetLife Stadium",
2297
+ city: "East Rutherford, New Jersey",
2298
+ country: "USA",
2031
2299
  home: {
2032
2300
  code: "RD32",
2033
2301
  name: "Round of 32 4 Winner",
@@ -2039,13 +2307,15 @@ var schedule_2026_default = [
2039
2307
  flag: "\u{1F3F3}\uFE0F"
2040
2308
  },
2041
2309
  status: "SCHEDULED",
2042
- updatedAt: "2026-05-31T08:32:53.746Z"
2310
+ updatedAt: "2026-06-07T07:52:54.616Z"
2043
2311
  },
2044
2312
  {
2045
2313
  id: "760505",
2046
2314
  stage: "R16",
2047
2315
  kickoff: "2026-07-06T00:00Z",
2048
2316
  venue: "Estadio Banorte",
2317
+ city: "Mexico City",
2318
+ country: "Mexico",
2049
2319
  home: {
2050
2320
  code: "RD32",
2051
2321
  name: "Round of 32 7 Winner",
@@ -2057,13 +2327,15 @@ var schedule_2026_default = [
2057
2327
  flag: "\u{1F3F3}\uFE0F"
2058
2328
  },
2059
2329
  status: "SCHEDULED",
2060
- updatedAt: "2026-05-31T08:32:53.746Z"
2330
+ updatedAt: "2026-06-07T07:52:54.616Z"
2061
2331
  },
2062
2332
  {
2063
2333
  id: "760506",
2064
2334
  stage: "R16",
2065
2335
  kickoff: "2026-07-06T19:00Z",
2066
2336
  venue: "AT&T Stadium",
2337
+ city: "Arlington, Texas",
2338
+ country: "USA",
2067
2339
  home: {
2068
2340
  code: "RD32",
2069
2341
  name: "Round of 32 11 Winner",
@@ -2075,13 +2347,15 @@ var schedule_2026_default = [
2075
2347
  flag: "\u{1F3F3}\uFE0F"
2076
2348
  },
2077
2349
  status: "SCHEDULED",
2078
- updatedAt: "2026-05-31T08:32:53.746Z"
2350
+ updatedAt: "2026-06-07T07:52:54.616Z"
2079
2351
  },
2080
2352
  {
2081
2353
  id: "760507",
2082
2354
  stage: "R16",
2083
2355
  kickoff: "2026-07-07T00:00Z",
2084
2356
  venue: "Lumen Field",
2357
+ city: "Seattle, Washington",
2358
+ country: "USA",
2085
2359
  home: {
2086
2360
  code: "RD32",
2087
2361
  name: "Round of 32 9 Winner",
@@ -2093,13 +2367,15 @@ var schedule_2026_default = [
2093
2367
  flag: "\u{1F3F3}\uFE0F"
2094
2368
  },
2095
2369
  status: "SCHEDULED",
2096
- updatedAt: "2026-05-31T08:32:53.746Z"
2370
+ updatedAt: "2026-06-07T07:52:54.616Z"
2097
2371
  },
2098
2372
  {
2099
2373
  id: "760509",
2100
2374
  stage: "R16",
2101
2375
  kickoff: "2026-07-07T16:00Z",
2102
2376
  venue: "Mercedes-Benz Stadium",
2377
+ city: "Atlanta, Georgia",
2378
+ country: "USA",
2103
2379
  home: {
2104
2380
  code: "RD32",
2105
2381
  name: "Round of 32 14 Winner",
@@ -2111,13 +2387,15 @@ var schedule_2026_default = [
2111
2387
  flag: "\u{1F3F3}\uFE0F"
2112
2388
  },
2113
2389
  status: "SCHEDULED",
2114
- updatedAt: "2026-05-31T08:32:53.746Z"
2390
+ updatedAt: "2026-06-07T07:52:54.616Z"
2115
2391
  },
2116
2392
  {
2117
2393
  id: "760508",
2118
2394
  stage: "R16",
2119
2395
  kickoff: "2026-07-07T20:00Z",
2120
2396
  venue: "BC Place",
2397
+ city: "Vancouver",
2398
+ country: "Canada",
2121
2399
  home: {
2122
2400
  code: "RD32",
2123
2401
  name: "Round of 32 13 Winner",
@@ -2129,13 +2407,15 @@ var schedule_2026_default = [
2129
2407
  flag: "\u{1F3F3}\uFE0F"
2130
2408
  },
2131
2409
  status: "SCHEDULED",
2132
- updatedAt: "2026-05-31T08:32:53.746Z"
2410
+ updatedAt: "2026-06-07T07:52:54.616Z"
2133
2411
  },
2134
2412
  {
2135
2413
  id: "760510",
2136
2414
  stage: "QF",
2137
2415
  kickoff: "2026-07-09T20:00Z",
2138
2416
  venue: "Gillette Stadium",
2417
+ city: "Foxborough, Massachusetts",
2418
+ country: "USA",
2139
2419
  home: {
2140
2420
  code: "RD16 W1",
2141
2421
  name: "Round of 16 1 Winner",
@@ -2147,13 +2427,15 @@ var schedule_2026_default = [
2147
2427
  flag: "\u{1F3F3}\uFE0F"
2148
2428
  },
2149
2429
  status: "SCHEDULED",
2150
- updatedAt: "2026-05-31T08:32:53.806Z"
2430
+ updatedAt: "2026-06-07T07:52:54.684Z"
2151
2431
  },
2152
2432
  {
2153
2433
  id: "760511",
2154
2434
  stage: "QF",
2155
2435
  kickoff: "2026-07-10T19:00Z",
2156
2436
  venue: "SoFi Stadium",
2437
+ city: "Inglewood, California",
2438
+ country: "USA",
2157
2439
  home: {
2158
2440
  code: "RD16 W5",
2159
2441
  name: "Round of 16 5 Winner",
@@ -2165,13 +2447,15 @@ var schedule_2026_default = [
2165
2447
  flag: "\u{1F3F3}\uFE0F"
2166
2448
  },
2167
2449
  status: "SCHEDULED",
2168
- updatedAt: "2026-05-31T08:32:53.806Z"
2450
+ updatedAt: "2026-06-07T07:52:54.684Z"
2169
2451
  },
2170
2452
  {
2171
2453
  id: "760512",
2172
2454
  stage: "QF",
2173
2455
  kickoff: "2026-07-11T21:00Z",
2174
2456
  venue: "Hard Rock Stadium",
2457
+ city: "Miami Gardens, Florida",
2458
+ country: "USA",
2175
2459
  home: {
2176
2460
  code: "RD16 W3",
2177
2461
  name: "Round of 16 3 Winner",
@@ -2183,13 +2467,15 @@ var schedule_2026_default = [
2183
2467
  flag: "\u{1F3F3}\uFE0F"
2184
2468
  },
2185
2469
  status: "SCHEDULED",
2186
- updatedAt: "2026-05-31T08:32:53.806Z"
2470
+ updatedAt: "2026-06-07T07:52:54.684Z"
2187
2471
  },
2188
2472
  {
2189
2473
  id: "760513",
2190
2474
  stage: "QF",
2191
2475
  kickoff: "2026-07-12T01:00Z",
2192
2476
  venue: "GEHA Field at Arrowhead Stadium",
2477
+ city: "Kansas City, Missouri",
2478
+ country: "USA",
2193
2479
  home: {
2194
2480
  code: "RD16 W7",
2195
2481
  name: "Round of 16 7 Winner",
@@ -2201,13 +2487,15 @@ var schedule_2026_default = [
2201
2487
  flag: "\u{1F3F3}\uFE0F"
2202
2488
  },
2203
2489
  status: "SCHEDULED",
2204
- updatedAt: "2026-05-31T08:32:53.806Z"
2490
+ updatedAt: "2026-06-07T07:52:54.684Z"
2205
2491
  },
2206
2492
  {
2207
2493
  id: "760514",
2208
2494
  stage: "SF",
2209
2495
  kickoff: "2026-07-14T19:00Z",
2210
2496
  venue: "AT&T Stadium",
2497
+ city: "Arlington, Texas",
2498
+ country: "USA",
2211
2499
  home: {
2212
2500
  code: "QFW1",
2213
2501
  name: "Quarterfinal 1 Winner",
@@ -2219,13 +2507,15 @@ var schedule_2026_default = [
2219
2507
  flag: "\u{1F3F3}\uFE0F"
2220
2508
  },
2221
2509
  status: "SCHEDULED",
2222
- updatedAt: "2026-05-31T08:32:53.806Z"
2510
+ updatedAt: "2026-06-07T07:52:54.684Z"
2223
2511
  },
2224
2512
  {
2225
2513
  id: "760515",
2226
2514
  stage: "SF",
2227
2515
  kickoff: "2026-07-15T19:00Z",
2228
2516
  venue: "Mercedes-Benz Stadium",
2517
+ city: "Atlanta, Georgia",
2518
+ country: "USA",
2229
2519
  home: {
2230
2520
  code: "QFW3",
2231
2521
  name: "Quarterfinal 3 Winner",
@@ -2237,13 +2527,15 @@ var schedule_2026_default = [
2237
2527
  flag: "\u{1F3F3}\uFE0F"
2238
2528
  },
2239
2529
  status: "SCHEDULED",
2240
- updatedAt: "2026-05-31T08:32:53.806Z"
2530
+ updatedAt: "2026-06-07T07:52:54.684Z"
2241
2531
  },
2242
2532
  {
2243
2533
  id: "760516",
2244
2534
  stage: "3P",
2245
2535
  kickoff: "2026-07-18T21:00Z",
2246
2536
  venue: "Hard Rock Stadium",
2537
+ city: "Miami Gardens, Florida",
2538
+ country: "USA",
2247
2539
  home: {
2248
2540
  code: "SF L1",
2249
2541
  name: "Semifinal 1 Loser",
@@ -2255,13 +2547,15 @@ var schedule_2026_default = [
2255
2547
  flag: "\u{1F3F3}\uFE0F"
2256
2548
  },
2257
2549
  status: "SCHEDULED",
2258
- updatedAt: "2026-05-31T08:32:53.923Z"
2550
+ updatedAt: "2026-06-07T07:52:54.772Z"
2259
2551
  },
2260
2552
  {
2261
2553
  id: "760517",
2262
2554
  stage: "F",
2263
2555
  kickoff: "2026-07-19T19:00Z",
2264
2556
  venue: "MetLife Stadium",
2557
+ city: "East Rutherford, New Jersey",
2558
+ country: "USA",
2265
2559
  home: {
2266
2560
  code: "SFW1",
2267
2561
  name: "Semifinal 1 Winner",
@@ -2273,16 +2567,16 @@ var schedule_2026_default = [
2273
2567
  flag: "\u{1F3F3}\uFE0F"
2274
2568
  },
2275
2569
  status: "SCHEDULED",
2276
- updatedAt: "2026-05-31T08:32:53.924Z"
2570
+ updatedAt: "2026-06-07T07:52:54.772Z"
2277
2571
  }
2278
2572
  ];
2279
2573
  var SCHEDULE = schedule_2026_default;
2280
2574
  function allFixtures() {
2281
2575
  return SCHEDULE;
2282
2576
  }
2283
- function fixturesByDate(dateISO, fixtures = SCHEDULE) {
2577
+ function fixturesByDate(dateISO, fixtures = SCHEDULE, tz) {
2284
2578
  const day = dateISO.slice(0, 10);
2285
- return fixtures.filter((m) => m.kickoff.slice(0, 10) === day).sort(byKickoff);
2579
+ return fixtures.filter((m) => localDate(m.kickoff, tz) === day).sort(byKickoff);
2286
2580
  }
2287
2581
  function fixturesByTeam(code, fixtures = SCHEDULE) {
2288
2582
  const c = code.toUpperCase();
@@ -2430,6 +2724,8 @@ function mapEspnEvent(ev, ctx = {}) {
2430
2724
  group,
2431
2725
  kickoff: ev.date,
2432
2726
  venue: comp?.venue?.fullName ?? "",
2727
+ city: comp?.venue?.address?.city || void 0,
2728
+ country: comp?.venue?.address?.country || void 0,
2433
2729
  home,
2434
2730
  away,
2435
2731
  score: hasScore ? { home: hs, away: as } : void 0,
@@ -2523,7 +2819,6 @@ function resolveCompetition(explicit) {
2523
2819
  }
2524
2820
  function makeAdapter(source = "espn") {
2525
2821
  switch (source) {
2526
- case "espn":
2527
2822
  default: {
2528
2823
  const competition = resolveCompetition();
2529
2824
  const baseUrl = competition === DEFAULT_COMPETITION ? void 0 : competitionBase(competition);
@@ -2538,13 +2833,18 @@ function mergeLive(base, live) {
2538
2833
  }
2539
2834
  async function getMatchesForDate(adapter, dateISO) {
2540
2835
  const base = allFixtures();
2836
+ const day = dateISO.slice(0, 10);
2541
2837
  try {
2542
- const live = await adapter.fetchByDate(dateISO);
2838
+ const live = adapter.fetchWindow ? await adapter.fetchWindow(shiftUtcDate(day, -1), shiftUtcDate(day, 1)) : await adapter.fetchByDate(day);
2543
2839
  return { matches: mergeLive(base, live), degraded: false };
2544
2840
  } catch {
2545
2841
  return { matches: base, degraded: true };
2546
2842
  }
2547
2843
  }
2844
+ function shiftUtcDate(dateISO, days) {
2845
+ const [y, m, d] = dateISO.slice(0, 10).split("-").map(Number);
2846
+ return new Date(Date.UTC(y ?? 1970, (m ?? 1) - 1, (d ?? 1) + days)).toISOString().slice(0, 10);
2847
+ }
2548
2848
  async function getLiveMatches(adapter) {
2549
2849
  try {
2550
2850
  return { matches: await adapter.fetchLive(), degraded: false };
@@ -2593,7 +2893,9 @@ function matchLine(m, opts = {}) {
2593
2893
  } else {
2594
2894
  tail = STATUS_LABEL[m.status];
2595
2895
  }
2596
- return `${head} \u2014 ${tail} \xB7 ${stage} \xB7 ${m.venue}`.trimEnd();
2896
+ const flair = matchFlavor(m, { level: opts.flavor, locale: opts.locale });
2897
+ const base = `${head} \u2014 ${tail} \xB7 ${stage} \xB7 ${matchLocation(m)}`;
2898
+ return (flair ? `${base} \u2014 ${flair}` : base).trimEnd();
2597
2899
  }
2598
2900
  function matchList(matches, empty, opts = {}) {
2599
2901
  if (matches.length === 0) return empty;
@@ -2618,6 +2920,13 @@ var DISCLAIMER = "Claudinho is an independent fan project \u2014 not affiliated
2618
2920
  function resolveAdapter(args) {
2619
2921
  return args.adapter ?? makeAdapter(args.source);
2620
2922
  }
2923
+ function fmtOpts(args) {
2924
+ return {
2925
+ tz: args.tz,
2926
+ locale: args.lang,
2927
+ flavor: asFlavorLevel(args.flavor ?? process.env.CLAUDINHO_FLAVOR)
2928
+ };
2929
+ }
2621
2930
  function withDisclaimer(text) {
2622
2931
  return `${text}
2623
2932
 
@@ -2627,8 +2936,8 @@ async function toolGetToday(args) {
2627
2936
  const adapter = resolveAdapter(args);
2628
2937
  const date = args.date ?? localDate((/* @__PURE__ */ new Date()).toISOString(), args.tz);
2629
2938
  const { matches, degraded } = await getMatchesForDate(adapter, date);
2630
- const todays = fixturesByDate(date, matches);
2631
- const opts = { tz: args.tz, locale: args.lang };
2939
+ const todays = fixturesByDate(date, matches, args.tz);
2940
+ const opts = fmtOpts(args);
2632
2941
  const text = `Matches on ${date}:
2633
2942
  ${matchList(todays, "No matches scheduled.", opts)}`;
2634
2943
  return {
@@ -2639,7 +2948,7 @@ ${matchList(todays, "No matches scheduled.", opts)}`;
2639
2948
  async function toolGetLive(args = {}) {
2640
2949
  const adapter = resolveAdapter(args);
2641
2950
  const { matches, degraded } = await getLiveMatches(adapter);
2642
- const opts = { tz: args.tz, locale: args.lang };
2951
+ const opts = fmtOpts(args);
2643
2952
  const text = `Live now:
2644
2953
  ${matchList(matches, "No matches in play right now.", opts)}`;
2645
2954
  return {
@@ -2662,21 +2971,14 @@ async function toolGetMatch(args) {
2662
2971
  if (!match) {
2663
2972
  return { text: withDisclaimer(`No match found with id ${args.id}.`), data: { match: null } };
2664
2973
  }
2665
- const opts = { tz: args.tz, locale: args.lang };
2974
+ const opts = fmtOpts(args);
2666
2975
  return { text: withDisclaimer(matchLine(match, opts)), data: { degraded, match } };
2667
2976
  }
2668
2977
  async function toolGetStandings(args) {
2669
- let matches = allFixtures();
2670
- let degraded = false;
2671
- try {
2672
- const adapter = resolveAdapter(args);
2673
- const live = await adapter.fetchByDate(localDate((/* @__PURE__ */ new Date()).toISOString(), args.tz));
2674
- const byId = new Map(matches.map((m) => [m.id, m]));
2675
- for (const m of live) byId.set(m.id, m);
2676
- matches = [...byId.values()];
2677
- } catch {
2678
- degraded = true;
2679
- }
2978
+ const { matches, degraded } = await getMatchesForDate(
2979
+ resolveAdapter(args),
2980
+ localDate((/* @__PURE__ */ new Date()).toISOString(), args.tz)
2981
+ );
2680
2982
  const known = groups(matches);
2681
2983
  if (args.group) {
2682
2984
  const g = args.group.toUpperCase();
@@ -2709,7 +3011,7 @@ async function toolGetNextFixture(args) {
2709
3011
  data: { team: code, fixture: null }
2710
3012
  };
2711
3013
  }
2712
- const opts = { tz: args.tz, locale: args.lang };
3014
+ const opts = fmtOpts(args);
2713
3015
  return {
2714
3016
  text: withDisclaimer(`Next up for ${code}:
2715
3017
  ${matchLine(fixture, opts)}`),
@@ -2719,13 +3021,20 @@ ${matchLine(fixture, opts)}`),
2719
3021
 
2720
3022
  // src/server.ts
2721
3023
  var SERVER_NAME = "claudinho";
2722
- var SERVER_VERSION = "0.1.1";
3024
+ var SERVER_VERSION = "0.2.0";
3025
+ var VOICE = asFlavorLevel(process.env.CLAUDINHO_FLAVOR) === "off" ? "" : `
3026
+ Voice: when relaying scores, narrate with lively, regionally-appropriate football-commentary energy in the user's language. Each match line may end with a short exclamation ("\u2014 \xA1GOOOOL!") \u2014 use it as a tone cue. Keep every fact exact; never invent details and never impersonate or name a real commentator.`;
2723
3027
  var INSTRUCTIONS = `Claudinho serves live scores, fixtures, and group standings for the 2026 men's football tournament.
2724
- Use get_live during matches, get_today for a day's schedule, get_next_fixture for a specific team (3-letter code, e.g. MEX), and get_standings for group tables.
3028
+ Use get_live during matches, get_today for a day's schedule, get_next_fixture for a specific team (3-letter code, e.g. MEX), and get_standings for group tables.${VOICE}
2725
3029
  ${DISCLAIMER}`;
3030
+ var dateArg = z.string().refine(isValidDate, "must be a real calendar date in YYYY-MM-DD form");
3031
+ var groupArg = z.string().regex(/^[A-La-l]$/, "a group letter A\u2013L");
3032
+ var teamArg = z.string().regex(/^[A-Za-z]{3}$/, "a 3-letter team code, e.g. MEX");
3033
+ var flavorArg = z.enum(["off", "subtle", "full"]);
2726
3034
  var commonArgs = {
2727
3035
  tz: z.string().optional().describe("IANA timezone for kickoff times, e.g. America/Mexico_City"),
2728
- lang: z.string().optional().describe("Locale for formatting, e.g. en, es, pt, fr")
3036
+ lang: z.string().optional().describe("Locale for formatting: en, es, pt, fr (other locales fall back to en)"),
3037
+ flavor: flavorArg.optional().describe("Commentary flair: off, subtle, full (default: full)")
2729
3038
  };
2730
3039
  function toContent(r) {
2731
3040
  return {
@@ -2746,7 +3055,7 @@ function buildServer() {
2746
3055
  title: "Today's matches",
2747
3056
  description: "Fixtures for a given date (default: today), with live scores overlaid.",
2748
3057
  inputSchema: {
2749
- date: z.string().optional().describe("Date as YYYY-MM-DD (default: today)"),
3058
+ date: dateArg.optional().describe("Date as YYYY-MM-DD (default: today)"),
2750
3059
  ...commonArgs
2751
3060
  },
2752
3061
  // Read-only; reaches an external data provider for the live overlay.
@@ -2780,7 +3089,7 @@ function buildServer() {
2780
3089
  title: "Group standings",
2781
3090
  description: "Group table(s). Pass a group letter A\u2013L, or omit for all groups.",
2782
3091
  inputSchema: {
2783
- group: z.string().optional().describe("Group letter A\u2013L (omit for all)"),
3092
+ group: groupArg.optional().describe("Group letter A\u2013L (omit for all)"),
2784
3093
  ...commonArgs
2785
3094
  },
2786
3095
  annotations: { readOnlyHint: true, openWorldHint: true }
@@ -2792,7 +3101,7 @@ function buildServer() {
2792
3101
  {
2793
3102
  title: "Next fixture for a team",
2794
3103
  description: "A team's next scheduled match. Use a 3-letter code, e.g. MEX, BRA, USA.",
2795
- inputSchema: { team: z.string().describe("3-letter team code, e.g. MEX"), ...commonArgs },
3104
+ inputSchema: { team: teamArg.describe("3-letter team code, e.g. MEX"), ...commonArgs },
2796
3105
  // Read-only and served entirely from the bundled static schedule.
2797
3106
  annotations: { readOnlyHint: true, openWorldHint: false }
2798
3107
  },
@@ -2818,12 +3127,14 @@ function buildServer() {
2818
3127
  new ResourceTemplate("fixtures://{date}", { list: void 0 }),
2819
3128
  {
2820
3129
  title: "Fixtures by date",
2821
- description: "Static fixture list for a date (YYYY-MM-DD).",
3130
+ // A resource URI has no timezone, so group by UTC for a stable, machine-
3131
+ // independent result. (The get_today tool groups by the caller's tz.)
3132
+ description: "Static fixture list for a UTC date (YYYY-MM-DD).",
2822
3133
  mimeType: "text/plain"
2823
3134
  },
2824
3135
  async (uri, variables) => {
2825
3136
  const date = String(variables.date ?? "");
2826
- const text = matchList(fixturesByDate(date), `No matches on ${date}.`);
3137
+ const text = matchList(fixturesByDate(date, void 0, "UTC"), `No matches on ${date}.`);
2827
3138
  return { contents: [{ uri: uri.href, mimeType: "text/plain", text }] };
2828
3139
  }
2829
3140
  );
@@ -2850,7 +3161,7 @@ function buildServer() {
2850
3161
  {
2851
3162
  title: "My team",
2852
3163
  description: "Focus on one team's next match and group situation.",
2853
- argsSchema: { team: z.string().describe("3-letter team code, e.g. MEX") }
3164
+ argsSchema: { team: teamArg.describe("3-letter team code, e.g. MEX") }
2854
3165
  },
2855
3166
  ({ team }) => ({
2856
3167
  messages: [