// @wuys/map · data/label-positions.js
//
// Hand-tuned country label nudges. Schema = legacy LABEL_OFFSETS, preserved as
// authored by the in-page editor across multiple iterations:
//   { lon?: number, lat?: number, fontSize?: number, sizeRatio?: number, rotate?: number }
//
//   • lon / lat        — RELATIVE offsets from the country centroid (degrees).
//                        Used to nudge a label off-center for compact placement.
//   • fontSize         — Legacy size in viewBox units (auto-migrated to sizeRatio).
//   • sizeRatio        — Canonical size: label height ÷ country projected height.
//                        Overrides fontSize when both are present.
//   • rotate           — Rotation in degrees.
//
// `applyLabelOffsets(offsets, countriesMeta)` (see ./labels-convert.js) consumes
// this map and produces canonical { lon, lat, sizeRatio, rotate } absolutes
// keyed by ISO. The hand-tuned offsets live here so they're version-controlled
// and re-editable — but the renderer only ever sees the canonical absolutes.

export const LABEL_OFFSETS = {
  // Americas
  ar: { lon:  0.49, lat: -2.58 },
  cl: { lon:  0.62, lat:  6.44 },
  pe: { lon: -0.61, lat: -1.31 },
  ca: { lon: -10.68, lat: 0.84 },
  gy: { lon: -0.25, lat:  0.85 },
  sr: { lon: -0.16, lat: -0.07, fontSize: 3 },
  cu: { lon: -0.20, lat:  0.32, fontSize: 2 },
  ht: { lon:  0.02, lat:  0.20, fontSize: 2.73 },
  do: { lon:  0.49, lat: -0.04, fontSize: 2 },
  bz: { lon: -0.02, lat:  0,    fontSize: 2 },
  gt: { lon: -0.04, lat: -0.13, fontSize: 2.45 },
  hn: { lon: -0.55, lat:  0,    fontSize: 3.27 },
  ni: { lon: -0.25, lat: -0.22, fontSize: 2.73 },
  sv: { lon:  0.13, lat: -0.07, fontSize: 2 },
  cr: { lon: -0.22, lat:  0.42, fontSize: 2 },
  pa: { lon: -1.16, lat:  0,    fontSize: 2 },
  // Western Europe
  gb: { lon:  0.97, lat: -1.49, fontSize: 2.86 },
  ie: { lon:  0.29, lat:  0.05, fontSize: 3 },
  be: { lon: -0.14, lat:  0.14, fontSize: 2 },
  nl: { lon: -0.07, lat:  0,    fontSize: 2 },
  ch: { lon: -0.11, lat:  0.05, fontSize: 2 },
  it: { lon:  0.13, lat: -0.37, fontSize: 4.45 },
  pt: { lon:  0.34, lat:  1.82, fontSize: 2 },
  is: { lon:  0.25, lat: -0.23, fontSize: 3 },
  // Nordics + Baltics
  dk: { lon:  0,    lat: -0.02, fontSize: 2.27 },
  no: { lon: -2.88, lat: -2.19, fontSize: 3.85 },
  se: { lon: -0.98, lat: -2.43, fontSize: 4.29 },
  fi: { lon: -0.11, lat: -1.81 },
  ee: { lon:  0,    lat:  0,    fontSize: 2.73 },
  lv: { lon:  0.63, lat:  0.08, fontSize: 2.73 },
  lt: { lon:  0.16, lat:  0.26, fontSize: 2.09 },
  // Central + Eastern Europe + Balkans
  hu: { lon: -0.12, lat: -0.21 },
  sk: { lon: -0.23, lat:  0.05, fontSize: 2.09 },
  cz: { lon:  0.31, lat: -0.19, fontSize: 2.45 },
  gr: { lon: -0.81, lat:  0.13, fontSize: 2.09 },
  bg: { lon:  0,    lat:  0,    fontSize: 3 },
  al: { lon:  0.10, lat: -0.40, fontSize: 2 },
  mk: { lon:  0.09, lat:  0.09, fontSize: 2 },
  me: { lon: -0.22, lat: -0.01, fontSize: 2 },
  xk: { lon: -0.01, lat:  0,    fontSize: 2 },
  ba: { lon:  0,    lat:  0,    fontSize: 2 },
  rs: { lon:  0,    lat: -0.01, fontSize: 3 },
  hr: { lon:  0.47, lat:  0.44, fontSize: 2 },
  si: { lon: -0.10, lat: -0.03, fontSize: 2 },
  md: { lon:  0.12, lat:  0,    fontSize: 2 },
  // Middle East
  iq: { lon: -0.43, lat: -0.38 },
  jo: { lon: -0.33, lat: -0.68, fontSize: 2.45 },
  il: { lon: -0.17, lat: -0.38, fontSize: 2 },
  lb: { lon:  0.01, lat:  0.16, fontSize: 2 },
  kw: { lon:  0,    lat:  0,    fontSize: 2 },
  om: { lon:  1.10, lat:  0.86 },
  ae: { lon: -0.38, lat: -0.35, fontSize: 2 },
  sa: { lon: -0.10, lat:  0.27, fontSize: 5.36 },
  ge: { lon:  0.10, lat: -0.21, fontSize: 2.45 },
  az: { lon:  0.19, lat: -0.03, fontSize: 2.73 },
  am: { lon: -0.24, lat:  0.20, fontSize: 2 },
  // Africa
  er: { lon: -0.78, lat:  0.36, fontSize: 2.73 },
  dj: { lon:  0.34, lat:  0.28, fontSize: 2 },
  rw: { lon:  0,    lat:  0,    fontSize: 2 },
  bi: { lon:  0,    lat:  0,    fontSize: 2 },
  cd: { lon:  0,    lat:  0,    fontSize: 8.18 },
  zm: { lon: -1.37, lat: -1.49 },
  mw: { lon: -0.12, lat: -0.63, fontSize: 2.45 },
  na: { lon: -0.34, lat:  2.23, fontSize: 5.91 },
  sz: { lon: -0.19, lat:  0.07, fontSize: 2 },
  za: { lon: -1.86, lat: -3.04, fontSize: 6.73 },
  ls: { lon:  0.02, lat: -0.05, fontSize: 2 },
  mg: { lon:  0,    lat:  0,    fontSize: 2.82 },
  mz: { lon:  2.05, lat:  4.31, fontSize: 3.91 },
  gq: { lon:  0,    lat:  0,    fontSize: 2 },
  cg: { lon:  0.88, lat:  1.03, fontSize: 3.18 },
  cm: { lon: -0.69, lat: -0.31, fontSize: 3.73 },
  cf: { lon:  0,    lat:  0,    fontSize: 4.4 },
  ss: { lon:  0,    lat:  0,    fontSize: 5.55 },
  et: { lon:  0,    lat:  0,    fontSize: 5.18 },
  so: { lon: -1.14, lat: -1.21, fontSize: 4.73 },
  sl: { lon: -0.04, lat:  0.23, fontSize: 2 },
  lr: { lon: -0.46, lat:  0.22, fontSize: 2.73 },
  ci: { lon:  0,    lat:  0,    fontSize: 3 },
  gh: { lon:  0,    lat:  0,    fontSize: 3.64 },
  tg: { lon:  0.14, lat:  0.22, fontSize: 2 },
  bj: { lon:  0.03, lat:  1.03, fontSize: 2.73 },
  bf: { lon:  0.39, lat: -0.18, fontSize: 2.64 },
  gn: { lon:  0.35, lat:  0.49 },
  gw: { lon:  0,    lat:  0,    fontSize: 2 },
  sn: { lon: -0.28, lat:  0.34, fontSize: 3.08 },
  ml: { lon:  1.91, lat:  1.21 },
  mr: { lon: -0.36, lat: -0.32 },
  eh: { lon: -0.48, lat: -0.52, fontSize: 2.27 },
  ma: { lon:  1.86, lat:  1.80, fontSize: 6.36 },
  tn: { lon:  0.20, lat: -1.31, fontSize: 2.73 },
  // Central Asia
  tm: { lon: -0.83, lat:  0.36, fontSize: 4.18 },
  uz: { lon: -0.06, lat:  0.27, fontSize: 3.27 },
  tj: { lon: -0.84, lat:  0.29, fontSize: 2.45 },
  kg: { lon: -1.77, lat: -1.48, fontSize: 2.45 },
  // East Asia
  jp: { lon:  0.51, lat: -0.30 },
  kr: { lon:  0.14, lat: -0.22, fontSize: 2 },
  kp: { lon: -0.52, lat:  0.08, fontSize: 2 },
  tw: { lon:  0,    lat:  0,    fontSize: 2 },
  // SE / South Asia
  ph: { lon: -0.12, lat:  0.62, fontSize: 2.27 },
  vn: { lon:  2.06, lat: -2.37, fontSize: 2 },
  la: { lon: -0.97, lat:  1.62 },
  my: { lon: -1.40, lat: -1.06, fontSize: 2 },
  th: { lon:  0.85, lat:  0.65, fontSize: 4.55 },
  mm: { lon: -0.36, lat:  0.23, fontSize: 5.18 },
  bt: { lon:  0.04, lat: -0.06, fontSize: 2.73 },
  bd: { lon: -0.02, lat:  0.69, fontSize: 2 },
  lk: { lon:  0.12, lat: -0.26, fontSize: 2 },
  np: { lon:  2.73, lat: -1.21, fontSize: 2.73 },
  // Contested regions
  _tigray:    { lon:  0,    lat:  0,    fontSize: 2 },
  _kurdistan: { lon: -0.70, lat:  0.69, fontSize: 2.73 },
  _crimea:    { lon:  0.02, lat:  0,    fontSize: 2.09 },
};
