/**
 * City database for the @foundrykit/maps world map.
 *
 * Each entry: { id, name, country (ISO 3166-1 alpha-2), lat, lng, type }
 *
 * SVG coordinates can be obtained via `latlngToSvg(lat, lng)` from geo.ts.
 * Coordinates for the WAYPOINTS shorthand helper are pre-computed.
 *
 * type:
 *   'capital'  — national capital
 *   'major'    — major city / regional hub
 */
export interface City {
  id: string;
  name: string;
  country: string;
  lat: number;
  lng: number;
  type: 'capital' | 'major';
}

export const CITIES: City[] = [
  // ─── Africa ───────────────────────────────────────────────────────────────
  {
    id: 'abidjan',
    name: 'Abidjan',
    country: 'ci',
    lat: 5.35,
    lng: -4.0,
    type: 'major',
  },
  {
    id: 'abuja',
    name: 'Abuja',
    country: 'ng',
    lat: 9.07,
    lng: 7.4,
    type: 'capital',
  },
  {
    id: 'accra',
    name: 'Accra',
    country: 'gh',
    lat: 5.55,
    lng: -0.2,
    type: 'capital',
  },
  {
    id: 'addis_ababa',
    name: 'Addis Ababa',
    country: 'et',
    lat: 9.02,
    lng: 38.75,
    type: 'capital',
  },
  {
    id: 'algiers',
    name: 'Algiers',
    country: 'dz',
    lat: 36.74,
    lng: 3.06,
    type: 'capital',
  },
  {
    id: 'asmara',
    name: 'Asmara',
    country: 'er',
    lat: 15.34,
    lng: 38.93,
    type: 'capital',
  },
  {
    id: 'bamako',
    name: 'Bamako',
    country: 'ml',
    lat: 12.65,
    lng: -8.0,
    type: 'capital',
  },
  {
    id: 'bangui',
    name: 'Bangui',
    country: 'cf',
    lat: 4.36,
    lng: 18.56,
    type: 'capital',
  },
  {
    id: 'banjul',
    name: 'Banjul',
    country: 'gm',
    lat: 13.45,
    lng: -16.58,
    type: 'capital',
  },
  {
    id: 'bissau',
    name: 'Bissau',
    country: 'gw',
    lat: 11.86,
    lng: -15.6,
    type: 'capital',
  },
  {
    id: 'brazzaville',
    name: 'Brazzaville',
    country: 'cg',
    lat: -4.27,
    lng: 15.28,
    type: 'capital',
  },
  {
    id: 'bujumbura',
    name: 'Bujumbura',
    country: 'bi',
    lat: -3.38,
    lng: 29.36,
    type: 'capital',
  },
  {
    id: 'cairo',
    name: 'Cairo',
    country: 'eg',
    lat: 30.06,
    lng: 31.25,
    type: 'capital',
  },
  {
    id: 'cape_town',
    name: 'Cape Town',
    country: 'za',
    lat: -33.93,
    lng: 18.42,
    type: 'major',
  },
  {
    id: 'casablanca',
    name: 'Casablanca',
    country: 'ma',
    lat: 33.59,
    lng: -7.62,
    type: 'major',
  },
  {
    id: 'conakry',
    name: 'Conakry',
    country: 'gn',
    lat: 9.54,
    lng: -13.68,
    type: 'capital',
  },
  {
    id: 'dakar',
    name: 'Dakar',
    country: 'sn',
    lat: 14.69,
    lng: -17.44,
    type: 'capital',
  },
  {
    id: 'dar_es_salaam',
    name: 'Dar es Salaam',
    country: 'tz',
    lat: -6.8,
    lng: 39.27,
    type: 'major',
  },
  {
    id: 'djibouti',
    name: 'Djibouti',
    country: 'dj',
    lat: 11.59,
    lng: 43.15,
    type: 'capital',
  },
  {
    id: 'dodoma',
    name: 'Dodoma',
    country: 'tz',
    lat: -6.17,
    lng: 35.74,
    type: 'capital',
  },
  {
    id: 'durban',
    name: 'Durban',
    country: 'za',
    lat: -29.86,
    lng: 31.02,
    type: 'major',
  },
  {
    id: 'freetown',
    name: 'Freetown',
    country: 'sl',
    lat: 8.49,
    lng: -13.23,
    type: 'capital',
  },
  {
    id: 'gaborone',
    name: 'Gaborone',
    country: 'bw',
    lat: -24.65,
    lng: 25.91,
    type: 'capital',
  },
  {
    id: 'harare',
    name: 'Harare',
    country: 'zw',
    lat: -17.83,
    lng: 31.05,
    type: 'capital',
  },
  {
    id: 'johannesburg',
    name: 'Johannesburg',
    country: 'za',
    lat: -26.2,
    lng: 28.04,
    type: 'major',
  },
  {
    id: 'juba',
    name: 'Juba',
    country: 'ss',
    lat: 4.85,
    lng: 31.62,
    type: 'capital',
  },
  {
    id: 'kampala',
    name: 'Kampala',
    country: 'ug',
    lat: 0.32,
    lng: 32.58,
    type: 'capital',
  },
  {
    id: 'khartoum',
    name: 'Khartoum',
    country: 'sd',
    lat: 15.55,
    lng: 32.53,
    type: 'capital',
  },
  {
    id: 'kigali',
    name: 'Kigali',
    country: 'rw',
    lat: -1.94,
    lng: 30.06,
    type: 'capital',
  },
  {
    id: 'kinshasa',
    name: 'Kinshasa',
    country: 'cd',
    lat: -4.33,
    lng: 15.32,
    type: 'capital',
  },
  {
    id: 'lagos',
    name: 'Lagos',
    country: 'ng',
    lat: 6.45,
    lng: 3.4,
    type: 'major',
  },
  {
    id: 'libreville',
    name: 'Libreville',
    country: 'ga',
    lat: 0.39,
    lng: 9.45,
    type: 'capital',
  },
  {
    id: 'lilongwe',
    name: 'Lilongwe',
    country: 'mw',
    lat: -13.97,
    lng: 33.79,
    type: 'capital',
  },
  {
    id: 'lome',
    name: 'Lomé',
    country: 'tg',
    lat: 6.13,
    lng: 1.22,
    type: 'capital',
  },
  {
    id: 'luanda',
    name: 'Luanda',
    country: 'ao',
    lat: -8.84,
    lng: 13.23,
    type: 'capital',
  },
  {
    id: 'lubumbashi',
    name: 'Lubumbashi',
    country: 'cd',
    lat: -11.66,
    lng: 27.48,
    type: 'major',
  },
  {
    id: 'lusaka',
    name: 'Lusaka',
    country: 'zm',
    lat: -15.42,
    lng: 28.28,
    type: 'capital',
  },
  {
    id: 'malabo',
    name: 'Malabo',
    country: 'gq',
    lat: 3.75,
    lng: 8.78,
    type: 'capital',
  },
  {
    id: 'maputo',
    name: 'Maputo',
    country: 'mz',
    lat: -25.97,
    lng: 32.57,
    type: 'capital',
  },
  {
    id: 'maseru',
    name: 'Maseru',
    country: 'ls',
    lat: -29.32,
    lng: 27.48,
    type: 'capital',
  },
  {
    id: 'mbabane',
    name: 'Mbabane',
    country: 'sz',
    lat: -26.32,
    lng: 31.14,
    type: 'capital',
  },
  {
    id: 'mogadishu',
    name: 'Mogadishu',
    country: 'so',
    lat: 2.05,
    lng: 45.34,
    type: 'capital',
  },
  {
    id: 'monrovia',
    name: 'Monrovia',
    country: 'lr',
    lat: 6.29,
    lng: -10.76,
    type: 'capital',
  },
  {
    id: 'moroni',
    name: 'Moroni',
    country: 'km',
    lat: -11.7,
    lng: 43.26,
    type: 'capital',
  },
  {
    id: 'nairobi',
    name: 'Nairobi',
    country: 'ke',
    lat: -1.29,
    lng: 36.82,
    type: 'capital',
  },
  {
    id: 'ndjamena',
    name: "N'Djamena",
    country: 'td',
    lat: 12.11,
    lng: 15.04,
    type: 'capital',
  },
  {
    id: 'niamey',
    name: 'Niamey',
    country: 'ne',
    lat: 13.51,
    lng: 2.12,
    type: 'capital',
  },
  {
    id: 'nouakchott',
    name: 'Nouakchott',
    country: 'mr',
    lat: 18.08,
    lng: -15.97,
    type: 'capital',
  },
  {
    id: 'ouagadougou',
    name: 'Ouagadougou',
    country: 'bf',
    lat: 12.37,
    lng: -1.53,
    type: 'capital',
  },
  {
    id: 'porto_novo',
    name: 'Porto-Novo',
    country: 'bj',
    lat: 6.48,
    lng: 2.62,
    type: 'capital',
  },
  {
    id: 'praia',
    name: 'Praia',
    country: 'cv',
    lat: 14.93,
    lng: -23.51,
    type: 'capital',
  },
  {
    id: 'pretoria',
    name: 'Pretoria',
    country: 'za',
    lat: -25.74,
    lng: 28.19,
    type: 'capital',
  },
  {
    id: 'rabat',
    name: 'Rabat',
    country: 'ma',
    lat: 34.01,
    lng: -6.83,
    type: 'capital',
  },
  {
    id: 'sao_tome',
    name: 'São Tomé',
    country: 'st',
    lat: 0.34,
    lng: 6.73,
    type: 'capital',
  },
  {
    id: 'tripoli_ly',
    name: 'Tripoli',
    country: 'ly',
    lat: 32.9,
    lng: 13.18,
    type: 'capital',
  },
  {
    id: 'tunis',
    name: 'Tunis',
    country: 'tn',
    lat: 36.82,
    lng: 10.18,
    type: 'capital',
  },
  {
    id: 'victoria_sc',
    name: 'Victoria',
    country: 'sc',
    lat: -4.62,
    lng: 55.45,
    type: 'capital',
  },
  {
    id: 'windhoek',
    name: 'Windhoek',
    country: 'na',
    lat: -22.56,
    lng: 17.08,
    type: 'capital',
  },
  {
    id: 'yamoussoukro',
    name: 'Yamoussoukro',
    country: 'ci',
    lat: 6.82,
    lng: -5.28,
    type: 'capital',
  },
  {
    id: 'yaounde',
    name: 'Yaoundé',
    country: 'cm',
    lat: 3.87,
    lng: 11.52,
    type: 'capital',
  },

  // ─── Americas ─────────────────────────────────────────────────────────────
  {
    id: 'asuncion',
    name: 'Asunción',
    country: 'py',
    lat: -25.29,
    lng: -57.65,
    type: 'capital',
  },
  {
    id: 'atlanta',
    name: 'Atlanta',
    country: 'us',
    lat: 33.75,
    lng: -84.39,
    type: 'major',
  },
  {
    id: 'balboa',
    name: 'Panama City',
    country: 'pa',
    lat: 8.99,
    lng: -79.52,
    type: 'capital',
  },
  {
    id: 'bogota',
    name: 'Bogotá',
    country: 'co',
    lat: 4.71,
    lng: -74.07,
    type: 'capital',
  },
  {
    id: 'brasilia',
    name: 'Brasília',
    country: 'br',
    lat: -15.78,
    lng: -47.93,
    type: 'capital',
  },
  {
    id: 'bridgetown',
    name: 'Bridgetown',
    country: 'bb',
    lat: 13.1,
    lng: -59.62,
    type: 'capital',
  },
  {
    id: 'buenos_aires',
    name: 'Buenos Aires',
    country: 'ar',
    lat: -34.61,
    lng: -58.38,
    type: 'capital',
  },
  {
    id: 'caracas',
    name: 'Caracas',
    country: 've',
    lat: 10.49,
    lng: -66.88,
    type: 'capital',
  },
  {
    id: 'castries',
    name: 'Castries',
    country: 'lc',
    lat: 14.01,
    lng: -60.99,
    type: 'capital',
  },
  {
    id: 'chicago',
    name: 'Chicago',
    country: 'us',
    lat: 41.85,
    lng: -87.65,
    type: 'major',
  },
  {
    id: 'georgetown',
    name: 'Georgetown',
    country: 'gy',
    lat: 6.8,
    lng: -58.16,
    type: 'capital',
  },
  {
    id: 'guatemala_city',
    name: 'Guatemala City',
    country: 'gt',
    lat: 14.64,
    lng: -90.51,
    type: 'capital',
  },
  {
    id: 'havana',
    name: 'Havana',
    country: 'cu',
    lat: 23.13,
    lng: -82.38,
    type: 'capital',
  },
  {
    id: 'kingston',
    name: 'Kingston',
    country: 'jm',
    lat: 17.99,
    lng: -76.79,
    type: 'capital',
  },
  {
    id: 'kingstown',
    name: 'Kingstown',
    country: 'vc',
    lat: 13.16,
    lng: -61.22,
    type: 'capital',
  },
  {
    id: 'la_paz',
    name: 'La Paz',
    country: 'bo',
    lat: -16.5,
    lng: -68.15,
    type: 'capital',
  },
  {
    id: 'lima',
    name: 'Lima',
    country: 'pe',
    lat: -12.05,
    lng: -77.03,
    type: 'capital',
  },
  {
    id: 'los_angeles',
    name: 'Los Angeles',
    country: 'us',
    lat: 34.05,
    lng: -118.24,
    type: 'major',
  },
  {
    id: 'managua',
    name: 'Managua',
    country: 'ni',
    lat: 12.15,
    lng: -86.27,
    type: 'capital',
  },
  {
    id: 'mexico_city',
    name: 'Mexico City',
    country: 'mx',
    lat: 19.43,
    lng: -99.13,
    type: 'capital',
  },
  {
    id: 'miami',
    name: 'Miami',
    country: 'us',
    lat: 25.77,
    lng: -80.19,
    type: 'major',
  },
  {
    id: 'montevideo',
    name: 'Montevideo',
    country: 'uy',
    lat: -34.9,
    lng: -56.19,
    type: 'capital',
  },
  {
    id: 'nassau',
    name: 'Nassau',
    country: 'bs',
    lat: 25.05,
    lng: -77.35,
    type: 'capital',
  },
  {
    id: 'new_york',
    name: 'New York',
    country: 'us',
    lat: 40.71,
    lng: -74.0,
    type: 'major',
  },
  {
    id: 'ottawa',
    name: 'Ottawa',
    country: 'ca',
    lat: 45.42,
    lng: -75.69,
    type: 'capital',
  },
  {
    id: 'paramaribo',
    name: 'Paramaribo',
    country: 'sr',
    lat: 5.85,
    lng: -55.2,
    type: 'capital',
  },
  {
    id: 'port_au_prince',
    name: 'Port-au-Prince',
    country: 'ht',
    lat: 18.54,
    lng: -72.34,
    type: 'capital',
  },
  {
    id: 'port_of_spain',
    name: 'Port of Spain',
    country: 'tt',
    lat: 10.65,
    lng: -61.52,
    type: 'capital',
  },
  {
    id: 'quito',
    name: 'Quito',
    country: 'ec',
    lat: -0.22,
    lng: -78.51,
    type: 'capital',
  },
  {
    id: 'roseau',
    name: 'Roseau',
    country: 'dm',
    lat: 15.3,
    lng: -61.39,
    type: 'capital',
  },
  {
    id: 'san_jose_cr',
    name: 'San José',
    country: 'cr',
    lat: 9.93,
    lng: -84.09,
    type: 'capital',
  },
  {
    id: 'san_salvador',
    name: 'San Salvador',
    country: 'sv',
    lat: 13.69,
    lng: -89.19,
    type: 'capital',
  },
  {
    id: 'santiago',
    name: 'Santiago',
    country: 'cl',
    lat: -33.45,
    lng: -70.67,
    type: 'capital',
  },
  {
    id: 'santo_domingo',
    name: 'Santo Domingo',
    country: 'do',
    lat: 18.48,
    lng: -69.9,
    type: 'capital',
  },
  {
    id: 'sao_paulo',
    name: 'São Paulo',
    country: 'br',
    lat: -23.55,
    lng: -46.63,
    type: 'major',
  },
  {
    id: 'seattle',
    name: 'Seattle',
    country: 'us',
    lat: 47.61,
    lng: -122.33,
    type: 'major',
  },
  {
    id: 'sucre',
    name: 'Sucre',
    country: 'bo',
    lat: -19.03,
    lng: -65.26,
    type: 'capital',
  },
  {
    id: 'tegucigalpa',
    name: 'Tegucigalpa',
    country: 'hn',
    lat: 14.1,
    lng: -87.21,
    type: 'capital',
  },
  {
    id: 'toronto',
    name: 'Toronto',
    country: 'ca',
    lat: 43.7,
    lng: -79.42,
    type: 'major',
  },
  {
    id: 'vancouver',
    name: 'Vancouver',
    country: 'ca',
    lat: 49.25,
    lng: -123.12,
    type: 'major',
  },
  {
    id: 'washington_dc',
    name: 'Washington D.C.',
    country: 'us',
    lat: 38.89,
    lng: -77.03,
    type: 'capital',
  },

  // ─── Asia ─────────────────────────────────────────────────────────────────
  {
    id: 'abu_dhabi',
    name: 'Abu Dhabi',
    country: 'ae',
    lat: 24.47,
    lng: 54.37,
    type: 'capital',
  },
  {
    id: 'amman',
    name: 'Amman',
    country: 'jo',
    lat: 31.95,
    lng: 35.93,
    type: 'capital',
  },
  {
    id: 'ankara',
    name: 'Ankara',
    country: 'tr',
    lat: 39.93,
    lng: 32.86,
    type: 'capital',
  },
  {
    id: 'astana',
    name: 'Astana',
    country: 'kz',
    lat: 51.19,
    lng: 71.45,
    type: 'capital',
  },
  {
    id: 'baghdad',
    name: 'Baghdad',
    country: 'iq',
    lat: 33.34,
    lng: 44.4,
    type: 'capital',
  },
  {
    id: 'baku',
    name: 'Baku',
    country: 'az',
    lat: 40.41,
    lng: 49.87,
    type: 'capital',
  },
  {
    id: 'bangkok',
    name: 'Bangkok',
    country: 'th',
    lat: 13.75,
    lng: 100.52,
    type: 'capital',
  },
  {
    id: 'beijing',
    name: 'Beijing',
    country: 'cn',
    lat: 39.93,
    lng: 116.39,
    type: 'capital',
  },
  {
    id: 'beirut',
    name: 'Beirut',
    country: 'lb',
    lat: 33.87,
    lng: 35.51,
    type: 'capital',
  },
  {
    id: 'bishkek',
    name: 'Bishkek',
    country: 'kg',
    lat: 42.87,
    lng: 74.6,
    type: 'capital',
  },
  {
    id: 'colombo',
    name: 'Colombo',
    country: 'lk',
    lat: 6.93,
    lng: 79.84,
    type: 'capital',
  },
  {
    id: 'dhaka',
    name: 'Dhaka',
    country: 'bd',
    lat: 23.72,
    lng: 90.41,
    type: 'capital',
  },
  {
    id: 'doha',
    name: 'Doha',
    country: 'qa',
    lat: 25.29,
    lng: 51.53,
    type: 'capital',
  },
  {
    id: 'dubai',
    name: 'Dubai',
    country: 'ae',
    lat: 25.2,
    lng: 55.27,
    type: 'major',
  },
  {
    id: 'dushanbe',
    name: 'Dushanbe',
    country: 'tj',
    lat: 38.54,
    lng: 68.77,
    type: 'capital',
  },
  {
    id: 'hanoi',
    name: 'Hanoi',
    country: 'vn',
    lat: 21.03,
    lng: 105.85,
    type: 'capital',
  },
  {
    id: 'ho_chi_minh',
    name: 'Ho Chi Minh City',
    country: 'vn',
    lat: 10.82,
    lng: 106.63,
    type: 'major',
  },
  {
    id: 'hong_kong',
    name: 'Hong Kong',
    country: 'cn',
    lat: 22.3,
    lng: 114.18,
    type: 'major',
  },
  {
    id: 'islamabad',
    name: 'Islamabad',
    country: 'pk',
    lat: 33.72,
    lng: 73.06,
    type: 'capital',
  },
  {
    id: 'istanbul',
    name: 'Istanbul',
    country: 'tr',
    lat: 41.01,
    lng: 28.96,
    type: 'major',
  },
  {
    id: 'jakarta',
    name: 'Jakarta',
    country: 'id',
    lat: -6.21,
    lng: 106.85,
    type: 'capital',
  },
  {
    id: 'jerusalem',
    name: 'Jerusalem',
    country: 'il',
    lat: 31.78,
    lng: 35.22,
    type: 'capital',
  },
  {
    id: 'kabul',
    name: 'Kabul',
    country: 'af',
    lat: 34.53,
    lng: 69.17,
    type: 'capital',
  },
  {
    id: 'karachi',
    name: 'Karachi',
    country: 'pk',
    lat: 24.86,
    lng: 67.01,
    type: 'major',
  },
  {
    id: 'kathmandu',
    name: 'Kathmandu',
    country: 'np',
    lat: 27.71,
    lng: 85.31,
    type: 'capital',
  },
  {
    id: 'kuala_lumpur',
    name: 'Kuala Lumpur',
    country: 'my',
    lat: 3.14,
    lng: 101.69,
    type: 'capital',
  },
  {
    id: 'kuwait_city',
    name: 'Kuwait City',
    country: 'kw',
    lat: 29.37,
    lng: 47.98,
    type: 'capital',
  },
  {
    id: 'kyoto',
    name: 'Kyoto',
    country: 'jp',
    lat: 35.01,
    lng: 135.77,
    type: 'major',
  },
  {
    id: 'male',
    name: 'Malé',
    country: 'mv',
    lat: 4.18,
    lng: 73.51,
    type: 'capital',
  },
  {
    id: 'manila',
    name: 'Manila',
    country: 'ph',
    lat: 14.6,
    lng: 120.98,
    type: 'capital',
  },
  {
    id: 'mashhad',
    name: 'Mashhad',
    country: 'ir',
    lat: 36.3,
    lng: 59.6,
    type: 'major',
  },
  {
    id: 'mumbai',
    name: 'Mumbai',
    country: 'in',
    lat: 18.96,
    lng: 72.82,
    type: 'major',
  },
  {
    id: 'naypyidaw',
    name: 'Naypyidaw',
    country: 'mm',
    lat: 19.77,
    lng: 96.15,
    type: 'capital',
  },
  {
    id: 'new_delhi',
    name: 'New Delhi',
    country: 'in',
    lat: 28.61,
    lng: 77.21,
    type: 'capital',
  },
  {
    id: 'nicosia',
    name: 'Nicosia',
    country: 'cy',
    lat: 35.16,
    lng: 33.36,
    type: 'capital',
  },
  {
    id: 'osaka',
    name: 'Osaka',
    country: 'jp',
    lat: 34.69,
    lng: 135.5,
    type: 'major',
  },
  {
    id: 'phnom_penh',
    name: 'Phnom Penh',
    country: 'kh',
    lat: 11.56,
    lng: 104.92,
    type: 'capital',
  },
  {
    id: 'pyongyang',
    name: 'Pyongyang',
    country: 'kp',
    lat: 39.02,
    lng: 125.75,
    type: 'capital',
  },
  {
    id: 'riyadh',
    name: 'Riyadh',
    country: 'sa',
    lat: 24.69,
    lng: 46.72,
    type: 'capital',
  },
  {
    id: 'seoul',
    name: 'Seoul',
    country: 'kr',
    lat: 37.57,
    lng: 126.98,
    type: 'capital',
  },
  {
    id: 'shanghai',
    name: 'Shanghai',
    country: 'cn',
    lat: 31.22,
    lng: 121.46,
    type: 'major',
  },
  {
    id: 'singapore',
    name: 'Singapore',
    country: 'sg',
    lat: 1.29,
    lng: 103.85,
    type: 'capital',
  },
  {
    id: 'taipei',
    name: 'Taipei',
    country: 'tw',
    lat: 25.04,
    lng: 121.56,
    type: 'capital',
  },
  {
    id: 'tashkent',
    name: 'Tashkent',
    country: 'uz',
    lat: 41.3,
    lng: 69.27,
    type: 'capital',
  },
  {
    id: 'tbilisi',
    name: 'Tbilisi',
    country: 'ge',
    lat: 41.7,
    lng: 44.79,
    type: 'capital',
  },
  {
    id: 'tehran',
    name: 'Tehran',
    country: 'ir',
    lat: 35.69,
    lng: 51.42,
    type: 'capital',
  },
  {
    id: 'thimphu',
    name: 'Thimphu',
    country: 'bt',
    lat: 27.47,
    lng: 89.64,
    type: 'capital',
  },
  {
    id: 'tokyo',
    name: 'Tokyo',
    country: 'jp',
    lat: 35.69,
    lng: 139.69,
    type: 'capital',
  },
  {
    id: 'ulaanbaatar',
    name: 'Ulaanbaatar',
    country: 'mn',
    lat: 47.91,
    lng: 106.92,
    type: 'capital',
  },
  {
    id: 'vientiane',
    name: 'Vientiane',
    country: 'la',
    lat: 17.96,
    lng: 102.61,
    type: 'capital',
  },
  {
    id: 'yangon',
    name: 'Yangon',
    country: 'mm',
    lat: 16.8,
    lng: 96.16,
    type: 'major',
  },
  {
    id: 'yerevan',
    name: 'Yerevan',
    country: 'am',
    lat: 40.18,
    lng: 44.51,
    type: 'capital',
  },

  // ─── Europe ───────────────────────────────────────────────────────────────
  {
    id: 'amsterdam',
    name: 'Amsterdam',
    country: 'nl',
    lat: 52.37,
    lng: 4.89,
    type: 'capital',
  },
  {
    id: 'andorra_city',
    name: 'Andorra la Vella',
    country: 'ad',
    lat: 42.51,
    lng: 1.52,
    type: 'capital',
  },
  {
    id: 'athens',
    name: 'Athens',
    country: 'gr',
    lat: 37.98,
    lng: 23.73,
    type: 'capital',
  },
  {
    id: 'barcelona',
    name: 'Barcelona',
    country: 'es',
    lat: 41.39,
    lng: 2.15,
    type: 'major',
  },
  {
    id: 'belgrade',
    name: 'Belgrade',
    country: 'rs',
    lat: 44.8,
    lng: 20.46,
    type: 'capital',
  },
  {
    id: 'berlin',
    name: 'Berlin',
    country: 'de',
    lat: 52.52,
    lng: 13.4,
    type: 'capital',
  },
  {
    id: 'bern',
    name: 'Bern',
    country: 'ch',
    lat: 46.95,
    lng: 7.45,
    type: 'capital',
  },
  {
    id: 'bratislava',
    name: 'Bratislava',
    country: 'sk',
    lat: 48.15,
    lng: 17.11,
    type: 'capital',
  },
  {
    id: 'brussels',
    name: 'Brussels',
    country: 'be',
    lat: 50.85,
    lng: 4.35,
    type: 'capital',
  },
  {
    id: 'bucharest',
    name: 'Bucharest',
    country: 'ro',
    lat: 44.43,
    lng: 26.1,
    type: 'capital',
  },
  {
    id: 'budapest',
    name: 'Budapest',
    country: 'hu',
    lat: 47.5,
    lng: 19.04,
    type: 'capital',
  },
  {
    id: 'chisinau',
    name: 'Chișinău',
    country: 'md',
    lat: 47.0,
    lng: 28.86,
    type: 'capital',
  },
  {
    id: 'copenhagen',
    name: 'Copenhagen',
    country: 'dk',
    lat: 55.68,
    lng: 12.57,
    type: 'capital',
  },
  {
    id: 'dublin',
    name: 'Dublin',
    country: 'ie',
    lat: 53.33,
    lng: -6.25,
    type: 'capital',
  },
  {
    id: 'edinburgh',
    name: 'Edinburgh',
    country: 'gb',
    lat: 55.95,
    lng: -3.19,
    type: 'major',
  },
  {
    id: 'frankfurt',
    name: 'Frankfurt',
    country: 'de',
    lat: 50.11,
    lng: 8.68,
    type: 'major',
  },
  {
    id: 'helsinki',
    name: 'Helsinki',
    country: 'fi',
    lat: 60.17,
    lng: 24.94,
    type: 'capital',
  },
  {
    id: 'kyiv',
    name: 'Kyiv',
    country: 'ua',
    lat: 50.45,
    lng: 30.52,
    type: 'capital',
  },
  {
    id: 'lisbon',
    name: 'Lisbon',
    country: 'pt',
    lat: 38.72,
    lng: -9.14,
    type: 'capital',
  },
  {
    id: 'ljubljana',
    name: 'Ljubljana',
    country: 'si',
    lat: 46.05,
    lng: 14.51,
    type: 'capital',
  },
  {
    id: 'london',
    name: 'London',
    country: 'gb',
    lat: 51.51,
    lng: -0.13,
    type: 'capital',
  },
  {
    id: 'luxembourg',
    name: 'Luxembourg',
    country: 'lu',
    lat: 49.61,
    lng: 6.13,
    type: 'capital',
  },
  {
    id: 'madrid',
    name: 'Madrid',
    country: 'es',
    lat: 40.42,
    lng: -3.7,
    type: 'capital',
  },
  {
    id: 'milan',
    name: 'Milan',
    country: 'it',
    lat: 45.47,
    lng: 9.19,
    type: 'major',
  },
  {
    id: 'minsk',
    name: 'Minsk',
    country: 'by',
    lat: 53.9,
    lng: 27.57,
    type: 'capital',
  },
  {
    id: 'monaco',
    name: 'Monaco',
    country: 'mc',
    lat: 43.73,
    lng: 7.41,
    type: 'capital',
  },
  {
    id: 'moscow',
    name: 'Moscow',
    country: 'ru',
    lat: 55.75,
    lng: 37.62,
    type: 'capital',
  },
  {
    id: 'munich',
    name: 'Munich',
    country: 'de',
    lat: 48.14,
    lng: 11.58,
    type: 'major',
  },
  {
    id: 'oslo',
    name: 'Oslo',
    country: 'no',
    lat: 59.91,
    lng: 10.75,
    type: 'capital',
  },
  {
    id: 'paris',
    name: 'Paris',
    country: 'fr',
    lat: 48.86,
    lng: 2.35,
    type: 'capital',
  },
  {
    id: 'podgorica',
    name: 'Podgorica',
    country: 'me',
    lat: 42.44,
    lng: 19.26,
    type: 'capital',
  },
  {
    id: 'prague',
    name: 'Prague',
    country: 'cz',
    lat: 50.08,
    lng: 14.47,
    type: 'capital',
  },
  {
    id: 'reykjavik',
    name: 'Reykjavík',
    country: 'is',
    lat: 64.14,
    lng: -21.9,
    type: 'capital',
  },
  {
    id: 'riga',
    name: 'Riga',
    country: 'lv',
    lat: 56.95,
    lng: 24.11,
    type: 'capital',
  },
  {
    id: 'rome',
    name: 'Rome',
    country: 'it',
    lat: 41.9,
    lng: 12.49,
    type: 'capital',
  },
  {
    id: 'saint_peter',
    name: 'St. Petersburg',
    country: 'ru',
    lat: 59.94,
    lng: 30.32,
    type: 'major',
  },
  {
    id: 'sarajevo',
    name: 'Sarajevo',
    country: 'ba',
    lat: 43.85,
    lng: 18.36,
    type: 'capital',
  },
  {
    id: 'skopje',
    name: 'Skopje',
    country: 'mk',
    lat: 41.99,
    lng: 21.43,
    type: 'capital',
  },
  {
    id: 'sofia',
    name: 'Sofia',
    country: 'bg',
    lat: 42.7,
    lng: 23.32,
    type: 'capital',
  },
  {
    id: 'stockholm',
    name: 'Stockholm',
    country: 'se',
    lat: 59.33,
    lng: 18.06,
    type: 'capital',
  },
  {
    id: 'tallinn',
    name: 'Tallinn',
    country: 'ee',
    lat: 59.44,
    lng: 24.75,
    type: 'capital',
  },
  {
    id: 'tirana',
    name: 'Tirana',
    country: 'al',
    lat: 41.33,
    lng: 19.82,
    type: 'capital',
  },
  {
    id: 'valletta',
    name: 'Valletta',
    country: 'mt',
    lat: 35.9,
    lng: 14.51,
    type: 'capital',
  },
  {
    id: 'vatican',
    name: 'Vatican City',
    country: 'va',
    lat: 41.9,
    lng: 12.45,
    type: 'capital',
  },
  {
    id: 'vienna',
    name: 'Vienna',
    country: 'at',
    lat: 48.21,
    lng: 16.37,
    type: 'capital',
  },
  {
    id: 'vilnius',
    name: 'Vilnius',
    country: 'lt',
    lat: 54.69,
    lng: 25.28,
    type: 'capital',
  },
  {
    id: 'warsaw',
    name: 'Warsaw',
    country: 'pl',
    lat: 52.23,
    lng: 21.01,
    type: 'capital',
  },
  {
    id: 'zagreb',
    name: 'Zagreb',
    country: 'hr',
    lat: 45.81,
    lng: 15.97,
    type: 'capital',
  },

  // ─── Oceania ──────────────────────────────────────────────────────────────
  {
    id: 'apia',
    name: 'Apia',
    country: 'ws',
    lat: -13.83,
    lng: -171.77,
    type: 'capital',
  },
  {
    id: 'auckland',
    name: 'Auckland',
    country: 'nz',
    lat: -36.87,
    lng: 174.77,
    type: 'major',
  },
  {
    id: 'canberra',
    name: 'Canberra',
    country: 'au',
    lat: -35.28,
    lng: 149.13,
    type: 'capital',
  },
  {
    id: 'funafuti',
    name: 'Funafuti',
    country: 'tv',
    lat: -8.52,
    lng: 179.2,
    type: 'capital',
  },
  {
    id: 'honiara',
    name: 'Honiara',
    country: 'sb',
    lat: -9.43,
    lng: 160.05,
    type: 'capital',
  },
  {
    id: 'melbourne',
    name: 'Melbourne',
    country: 'au',
    lat: -37.81,
    lng: 144.96,
    type: 'major',
  },
  {
    id: 'nuku_alofa',
    name: "Nuku'alofa",
    country: 'to',
    lat: -21.14,
    lng: -175.22,
    type: 'capital',
  },
  {
    id: 'palikir',
    name: 'Palikir',
    country: 'fm',
    lat: 6.92,
    lng: 158.16,
    type: 'capital',
  },
  {
    id: 'perth',
    name: 'Perth',
    country: 'au',
    lat: -31.95,
    lng: 115.86,
    type: 'major',
  },
  {
    id: 'port_moresby',
    name: 'Port Moresby',
    country: 'pg',
    lat: -9.44,
    lng: 147.18,
    type: 'capital',
  },
  {
    id: 'port_vila',
    name: 'Port Vila',
    country: 'vu',
    lat: -17.73,
    lng: 168.32,
    type: 'capital',
  },
  {
    id: 'suva',
    name: 'Suva',
    country: 'fj',
    lat: -18.14,
    lng: 178.44,
    type: 'capital',
  },
  {
    id: 'sydney',
    name: 'Sydney',
    country: 'au',
    lat: -33.87,
    lng: 151.21,
    type: 'major',
  },
  {
    id: 'tarawa',
    name: 'Tarawa',
    country: 'ki',
    lat: 1.33,
    lng: 172.97,
    type: 'capital',
  },
  {
    id: 'wellington',
    name: 'Wellington',
    country: 'nz',
    lat: -41.29,
    lng: 174.78,
    type: 'capital',
  },
  {
    id: 'yaren',
    name: 'Yaren',
    country: 'nr',
    lat: -0.55,
    lng: 166.92,
    type: 'capital',
  },

  // ─── Middle East / Central Asia (additional) ─────────────────────────────
  {
    id: 'muscat',
    name: 'Muscat',
    country: 'om',
    lat: 23.61,
    lng: 58.59,
    type: 'capital',
  },
  {
    id: 'ashgabat',
    name: 'Ashgabat',
    country: 'tm',
    lat: 37.95,
    lng: 58.38,
    type: 'capital',
  },
  {
    id: 'damascus',
    name: 'Damascus',
    country: 'sy',
    lat: 33.51,
    lng: 36.29,
    type: 'capital',
  },
  {
    id: 'manama',
    name: 'Manama',
    country: 'bh',
    lat: 26.22,
    lng: 50.59,
    type: 'capital',
  },
  {
    id: 'sanaa',
    name: "Sana'a",
    country: 'ye',
    lat: 15.37,
    lng: 44.19,
    type: 'capital',
  },

  // ─── North Africa / West Asia (additional) ───────────────────────────────
  {
    id: 'aleppo',
    name: 'Aleppo',
    country: 'sy',
    lat: 36.2,
    lng: 37.16,
    type: 'major',
  },
  {
    id: 'sharjah',
    name: 'Sharjah',
    country: 'ae',
    lat: 25.36,
    lng: 55.39,
    type: 'major',
  },
];

/**
 * Get SVG coordinates for a city by its id.
 * Returns null if city not found.
 */
export function getCityById(id: string): City | undefined {
  return CITIES.find(c => c.id === id);
}

/**
 * Get all capitals.
 */
export function getCapitals(): City[] {
  return CITIES.filter(c => c.type === 'capital');
}

/**
 * Get cities for a specific country (ISO 3166-1 alpha-2).
 */
export function getCitiesForCountry(countryCode: string): City[] {
  return CITIES.filter(c => c.country === countryCode.toLowerCase());
}
