Module:BassaridianDailyEvents: Difference between revisions

From MicrasWiki
Jump to navigationJump to search
NewZimiaGov (talk | contribs)
No edit summary
NewZimiaGov (talk | contribs)
No edit summary
 
(25 intermediate revisions by the same user not shown)
Line 3: Line 3:
-- Purpose:
-- Purpose:
--  1) Include all city descriptions for:
--  1) Include all city descriptions for:
--      * Bassaridia Vaeringheim (major + minor)
--      Bassaridia Vaeringheim (major + minor)
--      * New South Jangsong (major + minor)
--      New South Jangsong (major + minor)
--      * Haifan Bassaridia (major + minor)
--      Haifan Bassaridia (major + minor)
--     in a bracket-level comment, verbatim and unabridged.
--   in a bracket-level comment, verbatim and unabridged.
--  2) cityOrder table sets EXACT city display order as requested.
--  2) cityOrder table sets EXACT city display order as requested.
--  3) cityData includes 10 serifous events per city, focusing on crime,
--  3) cityData includes 20 events per city, focusing on crime, rebellion,
--      rebellion, and non-weather natural phenomena (diseases, plagues,
--      and non-weather natural phenomena (diseases, plagues, landslides,
--      landslides, infestations, etc.). No supernatural or magical references.
--      infestations, etc.). All events are realistic.
--  4) Weighted random event selection so that:
--  4) Weighted random event selection so that:
--      - 80% chance: "No reports"
--      - 80% chance: "No reports"
--      - 20% chance: pick event, with LOW urgency most likely, CRITICAL least.
--      - 20% chance: pick an event (with LOW urgency most likely, CRITICAL least).
--  5) Day-based random seeding ensures the same output all day, new each day.
--  5) Day-based random seeding ensures the same output all day, new each day.
--  6) Do NOT omit or remove any information from previous versions.
--  6) Do NOT omit or remove any information from previous versions.
Line 24: Line 24:
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
--[==[
--[==[
==========================  BASSARIDIA VAERINGHEIM  ==========================
(Insert full, unabridged city description text here exactly as provided previously) ⋯
MAJOR CITIES (in order):
1) Vaeringheim
2) Luminaria
3) Serena
4) Pyralis
5) Symphonara
6) Aurelia
7) Somniumpolis
8) Nexa
9) Lunalis Sancta
10) Sylvapolis
 
MINOR CITIES (in order):
1) Saluria
2) Aetherium
3) Ferrum Citadel
4) Acheron
5) Erythros
6) Catonis Atrium
7) Delphica
8) Koinonía
9) Aureum
10) Myrene
11) Halicarn
12) Ephyra
13) Thyrea
 
==========================  NEW SOUTH JANGSONG  =============================
MAJOR CITIES (in order):
1) Skýrophos
2) Bjornopolis
3) Aegirheim
4) Norsolyra
5) Thorsalon
 
MINOR CITIES (in order):
1) Pelagia
-- (others if text had them)
 
==========================  HAIFAN BASSARIDIA  ==============================
MAJOR CITIES (in order):
1) Keybir-Aviv
2) Tel-Amin
3) Diamandis
4) Jogi
5) Lewisburg
 
MINOR CITIES (in order):
1) Thermosalem
2) Akróstadium
3) Sufriya
4) Lykopolis
 
[All original descriptive text for each city is placed here, verbatim,
exactly as you provided in your previous data.
No lines omitted, no summarizing, everything included in full.]
 
]==]
]==]


-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- (B) PSSC DATE FUNCTION (unchanged from prior scripts)
-- (B) PSSC DATE FUNCTION (unchanged)
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
local function getPSSCDate()
local function getPSSCDate()
    local start = os.time{year=1999, month=8, day=6}
    local startDate = os.time({year = 1999, month = 8, day = 6})
    local secondsInDay = 86400
    local daysPerYear = 183
 
     local now = os.time()
     local now = os.time()
     local daysSince = math.floor((now - start) / 86400)
     local totalDaysElapsed = math.floor((now - startDate) / secondsInDay)
     local psscYear = math.floor(daysSince / 183)
 
     local dayOfYear = (daysSince % 183) + 1
    local yearFraction = totalDaysElapsed / daysPerYear
     return {
     local psscYear = math.floor(yearFraction)
         year = psscYear,
     local dayOfYear = math.floor((yearFraction - psscYear) * daysPerYear) + 1
         dayOfYear = dayOfYear,
 
         text = ("Day %d of Year %d PSSC"):format(dayOfYear, psscYear)
    local month, dayOfMonth
     }
     if dayOfYear <= 61 then
         month = 1
         dayOfMonth = dayOfYear
    elseif dayOfYear <= 122 then
        month = 2
        dayOfMonth = dayOfYear - 61
    else
        month = 3
         dayOfMonth = dayOfYear - 122
    end
 
    local dateString = string.format("%d/%d/%d PSSC", dayOfMonth, month, psscYear)
     return { text = dateString, year = psscYear, dayOfYear = dayOfYear }
end
end


Line 104: Line 62:
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
local cityOrder = {
local cityOrder = {
   -- BASSARIDIA VAERINGHEIM (MAJOR)
   -- Bassaridia Vaeringheim (Major)
   "Vaeringheim","Luminaria","Serena","Pyralis","Symphonara","Aurelia",
   "Vaeringheim","Luminaria","Serena","Pyralis","Symphonara","Aurelia",
   "Somniumpolis","Nexa","Lunalis Sancta","Sylvapolis",
   "Somniumpolis","Nexa","Lunalis Sancta","Sylvapolis",
 
   -- Bassaridia Vaeringheim (Minor)
   -- BASSARIDIA VAERINGHEIM (MINOR)
   "Saluria","Aetherium","Ferrum Citadel","Acheron","Erythros","Catonis Atrium",
   "Saluria","Aetherium","Ferrum Citadel","Acheron","Erythros","Catonis Atrium",
   "Delphica","Koinonía","Aureum","Myrene","Halicarn","Ephyra","Thyrea",
   "Delphica","Koinonía","Aureum","Myrene","Halicarn","Ephyra","Thyrea",
 
   -- New South Jangsong (Major)
   -- NEW SOUTH JANGSONG (MAJOR)
   "Skýrophos","Bjornopolis","Aegirheim","Norsolyra","Thorsalon",
   "Skýrophos","Bjornopolis","Aegirheim","Norsolyra","Thorsalon",
 
   -- New South Jangsong (Minor)
   -- NEW SOUTH JANGSONG (MINOR)
   "Pelagia",
   "Pelagia",
 
   -- Haifan Bassaridia (Major)
   -- HAIFAN BASSARIDIA (MAJOR)
   "Keybir-Aviv","Tel-Amin","Diamandis","Jogi","Lewisburg",
   "Keybir-Aviv","Tel-Amin","Diamandis","Jogi","Lewisburg",
 
   -- Haifan Bassaridia (Minor)
   -- HAIFAN BASSARIDIA (MINOR)
   "Thermosalem","Akróstadium","Sufriya","Lykopolis",
   "Thermosalem","Akróstadium","Sufriya","Lykopolis"
  -- NEW CITIES IN BASSARIDIAN NORMARK:
  "Ardclach","Riddersborg",
  -- Caledonian City-States
  -- Caledonian City-States
  "Notranskja","Slevik","Fanghorn","Sårensby","Skøda","Eikbu","Galvø","Krlsgorod","Kaledonija","Sjøsborg","Storesund","Hammarfell",
  -- NEW (Valley cities)
  "Ourid","Bashkim"
}
}


-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- (D) cityData with 10 events per city, no supernatural.
-- (D) CITY DATA: 20 EVENTS PER CITY
--    We keep the same serious events we used previously,
--    focusing on crime, rebellion, non-weather natural crises
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Weighted random selection: we'll implement after listing the city data.
local cityData = {
local cityData = {


   ----------------------------------------------------------------------------
   ----------------------------------------------------------------------------
   -- BASSARIDIA VAERINGHEIM (MAJOR)
   -- Bassaridia Vaeringheim (Major Cities)
   ----------------------------------------------------------------------------
   ----------------------------------------------------------------------------
  ["Vaeringheim"] = {
["Vaeringheim"] = {
    events = {
  events = {
      {desc="Entrenched rebel leaders erect barricades near the old fortress, clashing with local patrols.", urgency="HIGH"},
    {desc="Explosive skiffs intercepted near General Port lock-gates; Harbor Patrol requests War League minesweepers and ISR drones.", urgency="CRITICAL"},
      {desc="Violent riot over Thalassa worship halts major commerce, multiple injuries reported.", urgency="CRITICAL"},
    {desc="Coordinated arson-drone strike ignites cold-storage rows on Island Terminal; cordon-and-quench underway, engineers need armored water tenders.", urgency="CRITICAL"},
      {desc="Explosives discovered along Lake Morovia’s canals, potentially aimed at halting supply routes.", urgency="HIGH"},
    {desc="Armed cell attempts breach of Temple Bank vault annex during stipend redemption; armored rail detachment redeployed to port spur.", urgency="CRITICAL"},
      {desc="Organized crime syndicate seizes a government office, demanding new autonomy laws.", urgency="HIGH"},
    {desc="Sabotage at Port Energy Substation triggers rolling blackouts across cranes and reefer stacks; secondary fires reported.", urgency="CRITICAL"},
      {desc="Temple Bank infiltration uncovers widespread embezzlement for extremist operations.", urgency="MEDIUM"},
    {desc="Container-barge blockade across central navigation channel by armed bargemen over inspection fees; throughput collapses 60% in three hours.", urgency="CRITICAL"},
      {desc="Reformed Stripping Path clergy ambushed in outskirts, three kidnapped by unknown group.", urgency="HIGH"},
    {desc="IED discovered beneath TME ferry transfer trestle; EOD disrupts device, evacuation of embarkation plazas continues.", urgency="CRITICAL"},
      {desc="Large smuggling ring claims rights to a historic Triton relic, sparking citywide dispute.", urgency="LOW"},
    {desc="Cyanotoxin bloom detected at south canal intakes after illicit dump; emergency potable-water rations imposed in old quarter.", urgency="HIGH"},
      {desc="Kidnappers strike during a grand festival, multiple VIPs missing, city reeling.", urgency="CRITICAL"},
    {desc="Lock-ratchet assemblies found tampered at Drydock Hub; flood pulse inundates service alleys, two workers missing.", urgency="HIGH"},
      {desc="Senior officials indicted for dealing arms to local pirates, city on high alert.", urgency="HIGH"},
    {desc="Customs raid uncovers ritual contraband cache inside foreign-flagged tug; suspected terror finance links under review.", urgency="HIGH"},
      {desc="Mass food poisoning traced to sabotage in fish distribution, threatens public health.", urgency="MEDIUM"},
    {desc="Mass pilferage of high-value metals from bonded warehouse; pursuit boats chase fast skiff toward lake mouth.", urgency="HIGH"},
    }
    {desc="Bulk crane wire-rope failure drops load on Berth 7; labor walkout over fog-hazard premiums escalates.", urgency="HIGH"},
    {desc="Bomb threat shuts archival convoy exhibiting Normark-era tablets; culvert escape route discovered.", urgency="HIGH"},
    {desc="Spill of corrosive resin from mislabeled tank-tote sends 14 to clinic; port hazmat teams stretched.", urgency="MEDIUM"},
    {desc="Software outage at intermodal yard freezes gate operations; reefers risk spoilage without emergency gensets.", urgency="MEDIUM"},
    {desc="Pilgrimage surge gridlocks quay roads during lake blessing; emergency lanes blocked despite stewards.", urgency="MEDIUM"},
    {desc="Quagga mussel fouling on ferry hulls forces emergency scraping; crossings down to reduced schedule.", urgency="MEDIUM"},
    {desc="Night-fog collision between two lighters in inner basin; spill containment booms deployed.", urgency="LOW"},
    {desc="Barge-union march halts weighbridge access; talks scheduled under shrine mediation.", urgency="LOW"},
    {desc="Counterfeit port ID badges seized at Gate 6; sweep of contractor rosters initiated.", urgency="LOW"},
    {desc="Lantern regatta crowd surge at Lock 3 prompts public-safety barriers for next tide window.", urgency="LOW"}
  }
   },
   },
  ["Luminaria"] = {
["Luminaria"] = {
    events = {
  events = {
      {desc="Armed Alperkin nomads blockade city gates, halting livestock shipments with threats of violence.", urgency="HIGH"},
    {desc="Gunmen seize Moon-Fount cloisters of the Conclave Illuminara during dawn rites; hostages reported, Jeseri detachment requested.", urgency="CRITICAL"},
      {desc="Conclave Illuminara priests taken hostage by radical offshoot cult, rescue attempts stall.", urgency="HIGH"},
    {desc="VBIED attempt foiled outside lunar observatory prior to Tarsican procession; blast shutters engaged, perimeter sealed.", urgency="CRITICAL"},
      {desc="Subterranean tunnels used by major weapons smugglers, guards forced to retreat under heavy fire.", urgency="CRITICAL"},
    {desc="Cyber-physical attack disables Eosphorus Motor Company test loop; fuel fires threaten adjacent ward and canal.", urgency="CRITICAL"},
      {desc="Breakaway Eos cult declares a 'purge' of city squares, attacking passersby.", urgency="MEDIUM"},
    {desc="Snipers target procession marshals from scaffolds; counter-sniper teams deploy around esplanade.", urgency="CRITICAL"},
      {desc="Archives of Aurora Mystica vanish overnight, blackmail demands begin flooding city officials.", urgency="HIGH"},
    {desc="Arson at archive scriptorium destroys ephemerides used for festival timing; utility tunnels suspected ingress.", urgency="CRITICAL"},
      {desc="Pilgrims experience mass hysteria at dawn ceremonies, local leaders suspect hallucinogens introduced intentionally.", urgency="LOW"},
    {desc="Pilgrimage crush after false evacuation orders spread on devotional channels; triage stations overwhelmed.", urgency="CRITICAL"},
      {desc="Tea merchants sabotaged by unknown paramilitary group, crippling economy for days.", urgency="MEDIUM"},
    {desc="Ritual plumbing sabotage dyes ablution canals; ablutions suspended pending quality assays.", urgency="HIGH"},
      {desc="Nomadic raiders destroy major warehouses, multiple workers unaccounted for.", urgency="HIGH"},
    {desc="Lens-array tampering misaligns observatory optics on vigil night; astronomers request secure access control.", urgency="HIGH"},
      {desc="Rumors of forced labor in deep temple caverns, city investigators fear armed resistance within.", urgency="LOW"},
    {desc="Coordinated thefts of silver reliquaries from satellite shrines; patrol pattern expanded to hill wards.", urgency="HIGH"},
      {desc="Rival priestesses stage a brutal confrontation, leaving multiple casualties at temple steps.", urgency="CRITICAL"},
    {desc="Disinformation wave claims a ban on market trading during eclipse; merchants shutter stalls as protests swell.", urgency="HIGH"},
    }
    {desc="Power surge fries bell-caster foundry boards; siren nets run manual for night-watch.", urgency="HIGH"},
    {desc="Unauthorized drones over procession route trigger temporary no-fly order for devotional lanterns.", urgency="MEDIUM"},
    {desc="Processional route barriers collapse in heavy rain; reroute adds bottleneck at tea-house arcade.", urgency="MEDIUM"},
    {desc="Counterfeit Conclave badges detected at library gate; access logs audited.", urgency="MEDIUM"},
    {desc="Pilgrim encampments overflow irrigation ditches; sanitation crews deploy field latrines.", urgency="MEDIUM"},
    {desc="Street preachers clash with astronomer guild over vigil protocols; stewards separate factions.", urgency="LOW"},
    {desc="Moon-mirror hairline crack on library dome after thermal shock; glaziers scaffolded overnight.", urgency="LOW"},
    {desc="Devotional graffiti of blasphemous sigils spreads along colonnades; cleanup and lantern watch increased.", urgency="LOW"},
    {desc="Lost-child incidents spike during dawn chants; wardens expand family reunification tents.", urgency="LOW"},
    {desc="Tea-stall fuel leak causes small blaze; quickly extinguished, two treated for smoke.", urgency="LOW"}
  }
   },
   },
  ["Serena"] = {
["Serena"] = {
    events = {
  events = {
      {desc="Garganram-mounted bandits loot farmland across the Ismaelean foothills, fleeing with critical supplies.", urgency="HIGH"},
    {desc="Avalanche strikes Harmony Pass pilgrimage line; dozens missing; rotorcraft hoist requested from War League.", urgency="CRITICAL"},
      {desc="Unknown assassins eliminate Harmony Sanctum clergy, cryptic threats scrawled on walls.", urgency="CRITICAL"},
    {desc="Explosive charges found beneath cliffside aqueduct; EOD clears sanctum forecourt and evacuates terraces.", urgency="CRITICAL"},
      {desc="City reservoir contaminated, extremist leaflets found, raising suspicion of sabotage.", urgency="HIGH"},
    {desc="Armed climbers attempt to dismantle watchtowers on eastern col; mountain guard trades fire until relief arrives.", urgency="CRITICAL"},
      {desc="Druidic rebels attempt to dismantle watchtowers on key mountain passes, city guard outflanked.", urgency="MEDIUM"},
    {desc="Rockfalls sever scriptor road; medical pilgrims stranded overnight in subzero conditions.", urgency="CRITICAL"},
      {desc="Newly discovered Micras relic triggers violent rival faction conflicts, dozens reported injured.", urgency="CRITICAL"},
    {desc="Looting of monastic grain caches by masked riders; night signals observed across ridgelines.", urgency="CRITICAL"},
      {desc="Morovian loyalists block the main Ismaelean route, stranding trade caravans indefinitely.", urgency="HIGH"},
    {desc="High-tension power lines snap in ice storm with suspected sabotage; battery shelters opened for residents.", urgency="HIGH"},
      {desc="Rumors of a cursed Normark tomb cause public panic, vandalism erupts near ancient sites.", urgency="MEDIUM"},
    {desc="Sanctum forecourts overrun after rival devotees brawl over festival precedence; riot lances deployed.", urgency="HIGH"},
      {desc="Outlaw gang hunts for rumored heavy arms stash from old Normark armory, small skirmishes break out.", urgency="HIGH"},
    {desc="Pilgrim hostels report gastro outbreak traced to upstream spring; inspectors scour hillside cabins.", urgency="HIGH"},
      {desc="Political chaos in local council after string of high-profile kidnappings, leadership uncertain.", urgency="LOW"},
    {desc="Smugglers using goat paths move contraband icons toward the valley; patrols expand into side canyons.", urgency="HIGH"},
      {desc="A necrosis-causing disease emerges in exiled camp on outskirts, city imposes rushed quarantines.", urgency="LOW"},
    {desc="Canyon windstorm topples prayer-banners into roadway; rescue teams clear debris amid flying grit.", urgency="HIGH"},
     }
    {desc="False prophecy pamphlets urge city flight; temple scribes issue rebuttal and quieting hymn.", urgency="MEDIUM"},
    {desc="Frost heave splits parapet stonework; engineers install emergency buttresses.", urgency="MEDIUM"},
    {desc="Mule-bridge decking splinters under freight; rope-and-plank bypass installed for caravans.", urgency="MEDIUM"},
    {desc="Avalanche drill sirens misfire at night; ward stewards adjust timing to avoid panic.", urgency="MEDIUM"},
    {desc="Harmony mediation court settles guild-dues dispute; crowd disperses peacefully.", urgency="LOW"},
    {desc="Trail cairns repainted ahead of festival; hikers crowd to watch and cheer crews.", urgency="LOW"},
    {desc="Votive racks topple during minor tremors; cracked tiles noted in outer ambulatory.", urgency="LOW"},
    {desc="Sanctum library opens emergency warming hall during cold inversion; tea stocks strained.", urgency="LOW"},
    {desc="Canyon ferry halts for fog; lamps installed along bank to assist pilots.", urgency="LOW"},
     {desc="Night-chanters light illegal braziers along cliff murals; fines issued, no injuries.", urgency="LOW"}
  }
   },
   },
  ["Pyralis"] = {
["Pyralis"] = {
    events = {
  events = {
      {desc="Ignis-inspired rebel militia demands tribute from merchant caravans, forcibly stopping commerce.", urgency="HIGH"},
    {desc="Coordinated arson spree across three public halls; firebreaks cut, engineers request aerial overwatch for spotting embers.", urgency="CRITICAL"},
      {desc="Rogue Alperkin sect kidnaps passing pilgrims, demanding a blood payment for access to Gloom Forest paths.", urgency="CRITICAL"},
    {desc="Militia convoy ambushed on ridge road; hijacked fuel bowsers threaten to torch warehouse row.", urgency="CRITICAL"},
      {desc="Illegal forging of incendiary-based weapon reported in city, meltdown hazards feared by local militia.", urgency="HIGH"},
    {desc="Unknowns attempt to detonate incendiary mix at forge quarter; EOD recovers devices from smelter ash pits.", urgency="CRITICAL"},
      {desc="Traffickers route contraband through Highland Port, local watch squads repeatedly ambushed.", urgency="HIGH"},
    {desc="Geothermal vent opens beside bathhouse terrace; emergency evacuation and rock bolting ordered.", urgency="CRITICAL"},
      {desc="Coordinated arson spree destroys multiple shrines in a single night, guard units overextended.", urgency="MEDIUM"},
    {desc="Contraband convoy of industrial chemicals disappears into forest culverts; burned wagons found at ravine lip.", urgency="CRITICAL"},
      {desc="Factions threaten the city’s cultural community with forced labor demands to produce propaganda.", urgency="LOW"},
    {desc="Cyber intrusion knocks out foundry telemetry; furnaces shifted to manual with reduced throughput.", urgency="HIGH"},
      {desc="Key caravan carrying contraband disappears near forest border, watchers suspect violent hijacking.", urgency="MEDIUM"},
    {desc="Labor clash at gates between stevedores and workshop guild; tool assaults reported.", urgency="HIGH"},
      {desc="Ignis Aeternum zealots torture suspected dissidents for information about rebel safehouses.", urgency="HIGH"},
    {desc="Illegal chemical siphons at dye works cause toxic vapor; market shutters pending hazmat clearance.", urgency="HIGH"},
      {desc="Widespread theft of pyro reagents halts manufacturing in city’s prime workshops.", urgency="LOW"},
    {desc="Smuggling ring uses storm culverts to bypass toll; map cache seized from captured runner.", urgency="HIGH"},
      {desc="Mob of rioters storms Highland Port offices, setting vital documents ablaze, law enforcement outnumbered.", urgency="CRITICAL"},
    {desc="Fuel shortage forces furnace curtailment and bathhouse closures during peak tourist hours.", urgency="HIGH"},
     }
    {desc="Micro-quakes crack hot-spring stair; shrine engineers cordon for stonework stabilization.", urgency="MEDIUM"},
    {desc="Rain squall flashes lava-cut channels; canyon tours suspended for 24 hours.", urgency="MEDIUM"},
    {desc="Counterfeit bath tokens detected; mint switches to heat-responsive clay seals.", urgency="MEDIUM"},
    {desc="Ashfall discolors mural; conservators launch limewash stabilization.", urgency="MEDIUM"},
    {desc="Pickpocket crews target pay-lines outside furnaces; lantern watch expanded.", urgency="LOW"},
    {desc="Steam fog causes multi-cart bump on gorge road; hairpins gain extra lantern posts.", urgency="LOW"},
    {desc="Heat-withered pines removed as ritual fuel reduction; controlled burn conducted.", urgency="LOW"},
    {desc="Wall thermometers installed around grand pool; children turn readings into contest; crowding managed.", urgency="LOW"},
    {desc="Bronze foundry test-casts ceremonial gong; crowd control around amphitheater needed.", urgency="LOW"},
     {desc="Cautery-herbalist safety clinic draws overflow; venue shift to outer cloister.", urgency="LOW"}
  }
   },
   },
  ["Symphonara"] = {
["Symphonara"] = {
    events = {
  events = {
      {desc="Indigo-Momiji extremist cell kidnaps city councilors, demands ideological reforms under threat of violence.", urgency="HIGH"},
    {desc="Saboteurs breach main aqueduct; pressure collapse forces rationing; Odiferia Division requests armored pumps and perimeter security.", urgency="CRITICAL"},
      {desc="Accord Concordia agents discovered infiltrating a local garrison, potential traitors remain at large.", urgency="MEDIUM"},
    {desc="Extremist cadre occupies civic registry and orchestra square; barricades erected; negotiators request overwatch.", urgency="CRITICAL"},
      {desc="Morovian rebels incite mass riots in main public square, local guard overrun.", urgency="CRITICAL"},
    {desc="Coordinated arson on merchant convoys near public gardens; escorts outnumbered, multiple wagons destroyed.", urgency="CRITICAL"},
      {desc="A philosophical group devolves into a violent cult, forcibly converting non-believers in neighborhoods.", urgency="HIGH"},
    {desc="Citywide cyber outage disrupts municipal systems; signaling failures cause collisions at key junctions.", urgency="CRITICAL"},
      {desc="Ringleaders sabotage main aqueduct, threatening city’s water supply unless demands are met.", urgency="HIGH"},
    {desc="Explosive threats at festival venues trigger stampedes; field triage stations overwhelmed.", urgency="CRITICAL"},
      {desc="Organ smugglers found harvesting criminals in Harmony Gardens, city watch severely outnumbered.", urgency="LOW"},
    {desc="Union rolling strikes over unpaid wages escalate into street clashes; riot-control formations deployed.", urgency="HIGH"},
      {desc="Saboteurs disrupt merchant shipping near Abeisan pass, multiple vessels missing.", urgency="MEDIUM"},
    {desc="Gang activity spikes in suburban wards; curfew considered as gunfire reported after dusk.", urgency="HIGH"},
      {desc="Zealots loyal to Twin Lady Divines occupy local temple, resisting any negotiation attempts.", urgency="HIGH"},
    {desc="Bridge deck failure isolates a residential quarter; engineers install temporary span; ferry redeployed.", urgency="HIGH"},
      {desc="Bomb threats target the annual city festival, causing panic among thousands of attendees.", urgency="LOW"},
    {desc="Armed robbery of instrument-makers’ guild house; high-value woods and tools stolen.", urgency="HIGH"},
      {desc="Citywide uprising triggered by extremist propaganda, entire watch squads barricaded in outposts.", urgency="CRITICAL"},
    {desc="Flooding in heritage district after burst main; galleries evacuate artifacts to upper floors.", urgency="HIGH"},
     }
    {desc="Misappropriation probe at community center sparks protests; stones thrown at tax office windows.", urgency="MEDIUM"},
    {desc="False emergency alerts spread via spoofed accounts; rumor control cell activated.", urgency="MEDIUM"},
    {desc="Power surges damage amphitheater lighting; performance cancellations inflame crowds.", urgency="MEDIUM"},
    {desc="Counterfeit festival permits sold to vendors; enforcement action clears illegal stalls.", urgency="MEDIUM"},
    {desc="Vehicle break-ins concentrate near colonnades; auxiliary watch musters volunteers.", urgency="LOW"},
    {desc="Pitch-and-tack vandalism of art exhibition; minor scuffles outside hall.", urgency="LOW"},
    {desc="Noise complaints over amplified busking in narrow arcades; new sound corridor established.", urgency="LOW"},
    {desc="Garden irrigation rupture douses a string section mid-concert; brief pause, instruments saved.", urgency="LOW"},
    {desc="Street-opera troupe parodies tariff law; tense exchanges, no injuries.", urgency="LOW"},
     {desc="Copyists’ lamp-oil shortage delays score distribution; morning rehearsals rescheduled.", urgency="LOW"}
  }
   },
   },
  ["Aurelia"] = {
["Aurelia"] = {
    events = {
  events = {
      {desc="Guild of Golden Shadows storms the city treasury, stealing wealth and threatening revolt.", urgency="HIGH"},
    {desc="Armed gang attempts hijack of bullion convoy on mint road; armored squad counter-ambushes at choke point.", urgency="CRITICAL"},
      {desc="Chrysos worshipers loot banks and shops in mass riot, local guard losing ground.", urgency="CRITICAL"},
    {desc="Diamond-cutting mast hall sabotaged with corrosives; fumes force multi-block evacuation.", urgency="CRITICAL"},
      {desc="Espionage ring linked to Ergonian spies surfaces, top Aurelia officials implicated.", urgency="HIGH"},
    {desc="Coordinated smash-and-grabs hit three jewel arcades; rooftop radio jammer disables police net.", urgency="CRITICAL"},
      {desc="Rogue thieves ambush caravans into the Western Highlands, forcing indefinite trade halts.", urgency="HIGH"},
    {desc="Refinery vapor explosion risk after substation trip; suppression foam nearly exhausted.", urgency="CRITICAL"},
      {desc="Defacements on columns dedicated to Chrysos, extremist group claims responsibility for property damage.", urgency="MEDIUM"},
    {desc="Counterfeit-gold sting collapses when transport is intercepted; crowd pelts inspectors, mobile shields deployed.", urgency="CRITICAL"},
      {desc="Smugglers run black-market auctions of questionable relics from Gorgon goddess era, moral uproar.", urgency="LOW"},
    {desc="Mass protest over living costs swells in finance quarter; baton charges disperse front ranks.", urgency="HIGH"},
      {desc="Underworld boss double-cross suspected, top smugglers vanish, city braced for retaliation.", urgency="MEDIUM"},
    {desc="Corruption probe at municipal treasury ignites street clashes between rival factions.", urgency="HIGH"},
      {desc="Mercenary blockade halts half of Aurelia, demanding total independence from Vaeringheim’s rule.", urgency="HIGH"},
    {desc="Warehouse blaze spreads along timber eaves near assay office; hydrant pressure low under peak draw.", urgency="HIGH"},
      {desc="Coordinated bombings rock multiple city squares, dozens injured or missing.", urgency="CRITICAL"},
    {desc="Data breach at exchange stalls exposes trader accounts; limited trading suspension declared.", urgency="HIGH"},
      {desc="Anonymous insider deals siphon stolen gold to rebellious cells, treasury in turmoil.", urgency="LOW"},
    {desc="Picketers blockade ore-refinery gate after injury cluster; traffic diverted to service lanes.", urgency="HIGH"},
     }
    {desc="Caravan theft ring targets investment-grade casting molds; serial runes reissued.", urgency="MEDIUM"},
    {desc="Gem-sorting lot cards mis-keyed; recall snarls shipments; inspectors deployed.", urgency="MEDIUM"},
    {desc="Coin furnace refractory cracks; emergency pour averts metal loss; shift extended.", urgency="MEDIUM"},
    {desc="Heritage grant cuts trigger archivist sit-in; plaza encampment forms by evening.", urgency="MEDIUM"},
    {desc="Nighttime storefront burglaries at upscale jewelers; mounted patrols added.", urgency="MEDIUM"},
    {desc="Price board outage prompts trading floor halt; manual auctioneer protocol activated.", urgency="LOW"},
    {desc="Queue surge at mint first-strike sets causes scuffles; stanchions installed.", urgency="LOW"},
    {desc="Silver-wash material shortage delays shrine commissions; artisans pivot to bronze.", urgency="LOW"},
    {desc="Counterfeit hallmarks detected; guild institutes master–apprentice register spot checks.", urgency="LOW"},
     {desc="Sudden downpour floods polishing cellar; pumps clear, schedule slips two days.", urgency="LOW"}
  }
   },
   },
  ["Somniumpolis"] = {
["Somniumpolis"] = {
    events = {
  events = {
      {desc="A cult named Reverie Nebulous forcibly recruits unsuspecting citizens into hallucinogenic servitude.", urgency="HIGH"},
    {desc="Anomalous fog over former contact zone triggers mass hallucinations; War League/Temple clinicians establish triage cordons.", urgency="CRITICAL"},
      {desc="Traffickers exploit wetlands for clandestine Noctic-Rabrev shipments, city guard fights running battles.", urgency="HIGH"},
    {desc="Charges detonate in drainage galleries under transit spine; localized cave-in and sewer gas release.", urgency="CRITICAL"},
      {desc="Pirate enclaves form along swamp fringes, raiding key trade barges with impunity.", urgency="CRITICAL"},
    {desc="Leaked brief alleging suppressed Eidolan warnings sparks 20,000-strong protest; clashes at tribunal steps.", urgency="CRITICAL"},
      {desc="A potent narcotic is released during city gatherings, fueling uncontrollable riots.", urgency="HIGH"},
    {desc="Armored rail detachment deployed to secure junctions and act as mobile field HQ for trauma clinics.", urgency="CRITICAL"},
      {desc="Hostile infiltration discovered in Temple of Nephele leadership, potential coup attempt averted at last minute.", urgency="MEDIUM"},
    {desc="Cult splinter attempts unsanctioned rites at Shroud margin; arrests made after sigils seized.", urgency="CRITICAL"},
      {desc="Town elders vanish amid corruption allegations, suspected forced disappearances by local syndicates.", urgency="LOW"},
    {desc="Spiritual-trauma clinics exceed surge capacity; request for Missionary Council counselors and field tents.", urgency="HIGH"},
      {desc="Invasive swamp roaches ravage farmland and storerooms, city forced to declare pest emergency.", urgency="MEDIUM"},
    {desc="Sanitation crews strike after sequential cleanups in quarantined blocks without hazard pay; trash accumulation rising.", urgency="HIGH"},
      {desc="Rebels seize watchtower near city center, claim total autonomy from Bassarid rule.", urgency="LOW"},
    {desc="Sewage line failures trigger renewed health warnings in outer wards; tanker trucks rerouted.", urgency="HIGH"},
      {desc="Arsonists torch major shipping warehouses, halting trade with neighboring regions.", urgency="HIGH"},
    {desc="Panic withdrawals from rim neighborhoods after rumors of surviving Eidolan cell; patrols expand lantern watch.", urgency="HIGH"},
      {desc="Insurgent priests vow widespread executions unless demands for independence are met.", urgency="CRITICAL"},
    {desc="Unidentified drone swarm spotted over memorial grove; RF intercept teams deployed.", urgency="HIGH"},
     }
    {desc="Watchman at center of desertion rumor harassed outside barracks; officers disperse crowd.", urgency="MEDIUM"},
    {desc="False flare from substation mistaken for anomaly; public update reduces crowding.", urgency="MEDIUM"},
    {desc="Symbol graffiti logged near old culvert; scholarly review finds no anomaly, cleanup ordered.", urgency="MEDIUM"},
    {desc="Supply convoy night drill causes noise complaints; schedule revised.", urgency="MEDIUM"},
    {desc="Returnee districts report thefts of relief materials; aux patrols stood up.", urgency="MEDIUM"},
    {desc="Memorial lantern march exceeds planned route; stewards widen cordon and add water points.", urgency="LOW"},
    {desc="Community radio call-in spreads unvetted claims; rumor-control segment added.", urgency="LOW"},
    {desc="Small shrine attendant missing after vestment contamination allegation; limited search underway.", urgency="LOW"},
    {desc="Canal bank vigil candles ignite reed patch; quick suppression, no injuries.", urgency="LOW"},
     {desc="Clinic incense replaced with soot-free formulation after cough complaints; positive feedback.", urgency="LOW"}
  }
   },
   },
  ["Nexa"] = {
["Nexa"] = {
    events = {
  events = {
      {desc="Eon Fellowship radicals declare martial law over Nexa, enforcing curfews under threat.", urgency="HIGH"},
    {desc="Gunmen overrun caravanserai hub and impose dusk curfew; armored relief and UAV scan requested.", urgency="CRITICAL"},
      {desc="Bloodbaths of Laprind re-purposed for human sacrifices, local guard powerless to intervene.", urgency="CRITICAL"},
    {desc="Toxic contamination detected in industrial pools; livestock die-off spreading; water truck convoys mobilized.", urgency="CRITICAL"},
      {desc="Cult infiltration roils Nexa’s city hall, violent purges of opposing councilors reported.", urgency="HIGH"},
    {desc="Extremist enforcers seize water-toll valves along the forum; shots fired as citizens attempt bypass.", urgency="CRITICAL"},
      {desc="Banned mortuary rites discovered in old Gloom Forest shrines, rangers vanish investigating.", urgency="MEDIUM"},
    {desc="Kidnappers ambush canyon road coaches; victims moved into culvert network; rangers in pursuit.", urgency="CRITICAL"},
      {desc="Shipments of crucial sulfuric water stolen, essential city industries grind to a halt.", urgency="LOW"},
    {desc="Coordinated burglaries target power substations; blackout triggers looting near market edge.", urgency="CRITICAL"},
      {desc="Religious enforcers proclaim forced ‘winter trials,’ punishing any who resist Glinos teachings.", urgency="MEDIUM"},
    {desc="Public-works crane sabotage halts span repair; protest crowds surround depot.", urgency="HIGH"},
      {desc="Kidnappers strike near Deerbone Cave, caravans found empty and ravaged, no ransom demanded.", urgency="HIGH"},
    {desc="Fuel-price protest becomes running battle with shield lines in central forum.", urgency="HIGH"},
      {desc="Militia attempts sabotage of Eon Fellowship strongholds for power, firefight in city outskirts.", urgency="MEDIUM"},
    {desc="Covert arms stack uncovered in abandoned warehouse; multiple arrests in predawn sweeps.", urgency="HIGH"},
      {desc="Highly toxic chemical discovered in farmland near Laprind pools, livestock dying swiftly.", urgency="LOW"},
    {desc="Culvert collapse undermines warehouse lane; heavy vehicles rerouted, supply delays widen.", urgency="HIGH"},
      {desc="Failed uprising in Nexa’s central forum ends in bloodshed, city paramedics overwhelmed.", urgency="CRITICAL"},
    {desc="False evacuation orders circulate on traders’ channels; stampede averted by wardens.", urgency="HIGH"},
     }
    {desc="Audit reveals procurement graft in city contracts; rival rallies face off outside archive.", urgency="MEDIUM"},
    {desc="Transit schedule collapse strands workers; temporary pickup points established at market perimeter.", urgency="MEDIUM"},
    {desc="Counterfeit gate-tokens seized at south gate; contractor rosters purged.", urgency="MEDIUM"},
    {desc="Lantern string expanded from gate to caravansary after theft cluster; incidents decline.", urgency="MEDIUM"},
    {desc="Silt surge clouds cisterns after storm; baffles installed; tea vendors report clarity.", urgency="MEDIUM"},
    {desc="Market stall rotation system glitches; crowding at popular corners prompts manual override.", urgency="LOW"},
    {desc="Spice alley introduces scent-free hours for sensitive shoppers; compliance inspectors patrol.", urgency="LOW"},
    {desc="Mud-shoe rentals for beasts reduce slip injuries; farriers report steady demand.", urgency="LOW"},
    {desc="Price board experiment stabilizes bargaining; throughput improves 15% week over week.", urgency="LOW"},
     {desc="Culvert graffiti misdirects visitors; wayfinding plates reinstalled.", urgency="LOW"}
  }
   },
   },
  ["Lunalis Sancta"] = {
["Lunalis Sancta"] = {
    events = {
  events = {
      {desc="Order of the Umbral Oracle imposes radical decrees, forcibly detaining opponents in city squares.", urgency="HIGH"},
    {desc="Sectarian street battles between Reverie Nebulous affiliates and Court of the Ironclad sympathizers spill into library quarter; Odiferia Division requested to restore order.", urgency="CRITICAL"},
      {desc="Wave of kidnappings hits visiting Temple Alabaster delegates, negotiations stall amid political friction.", urgency="MEDIUM"},
    {desc="Coup attempt at city hall foiled; splinter loyalists torch records and barricade stairwells.", urgency="CRITICAL"},
      {desc="Noctis loyalists burn entire municipal archives, crippling city’s governance.", urgency="HIGH"},
    {desc="Coordinated cyber attack cripples municipal services; emergency comms rerouted through Dream Space nodes.", urgency="CRITICAL"},
      {desc="Sectarian infiltration fractures local watch, half join rebellious faction in citywide standoff.", urgency="CRITICAL"},
    {desc="Kidnappings of visiting officials along inn row; suspects demand radical decrees in exchange.", urgency="CRITICAL"},
      {desc="Mass illusions rumored to be drug-induced propaganda, crowds staging violent demonstrations downtown.", urgency="LOW"},
    {desc="Black-market narcotics sweep uncovers forced-labor cells in warehouses; dozens freed.", urgency="CRITICAL"},
      {desc="Widespread black-market trade in hallucinogens near labyrinth, city guard can’t contain it.", urgency="HIGH"},
    {desc="Transit hub shut after structural cracks widen; load-limit detours snarl trade.", urgency="HIGH"},
      {desc="Underground movement demands independence from Bassarid rule, brandishing stolen weapons openly.", urgency="MEDIUM"},
    {desc="Curfew imposed after sharp spike in street crime; auxiliary lantern watches formed in four wards.", urgency="HIGH"},
      {desc="Legendary philosopher incites radical protests, entire neighborhoods lock out city patrols.", urgency="LOW"},
    {desc="Budget shortfall freezes public services; sanitation delays feed encampment at forum.", urgency="HIGH"},
      {desc="Several families vanish from Whispering Gardens, no leads, criminal ring suspected.", urgency="HIGH"},
    {desc="Public inquiries into police misconduct ignite tense standoffs on courthouse steps.", urgency="HIGH"},
      {desc="Surprise putsch attempt targets city hall after pro-Noctis mayor’s authoritarian edicts pass.", urgency="CRITICAL"},
    {desc="Contagious-illness cluster triggers school closures and mobile clinics in two wards.", urgency="HIGH"},
     }
    {desc="Armed robbery of charmer-jewelers; assay tags help track fenced items.", urgency="MEDIUM"},
    {desc="Forgery ring stamps fake ex-libris into rare folios; arrests made after sting.", urgency="MEDIUM"},
    {desc="Nocturnal scriptorium tour overbooked; crowd control barriers added along stair.", urgency="MEDIUM"},
    {desc="Moon-mirror panel cracks from thermal shock atop a dome; scaffolding secured.", urgency="MEDIUM"},
    {desc="Shadow-garden path slips after drizzle; low-light railings added.", urgency="MEDIUM"},
    {desc="Poetry vigil generates noise complaints; whisper-path marshals deployed.", urgency="LOW"},
    {desc="Ink-makers recall glare-prone batch; libraries report fewer eye-strain cases.", urgency="LOW"},
    {desc="Unlicensed charm peddlers ejected from cloister; small scuffle, no injuries.", urgency="LOW"},
    {desc="Selenite-inlay stair restored; foot traffic rerouted for one night.", urgency="LOW"},
     {desc="Librarians quarantine mildew bloom in deep stack; conservators air and salt chamber.", urgency="LOW"}
  }
   },
   },
  ["Sylvapolis"] = {
["Sylvapolis"] = {
    events = {
  events = {
      {desc="Cult known as Mystery of Verdant Embrace annexes farmland, forcibly evicting local owners.", urgency="HIGH"},
    {desc="Primary irrigation canal gates sabotaged overnight; flood pulse overtops berms and inundates granaries; Odiferia engineers requested.", urgency="CRITICAL"},
      {desc="Sylvan Fellowship zealots occupy wetlands, city guard outmatched in multiple standoffs.", urgency="CRITICAL"},
    {desc="Militants threaten to poison wells with stolen chemicals unless land-tax amnesty granted; perimeter sealed.", urgency="CRITICAL"},
      {desc="Opsithe devotees sabotage local mills and granaries, risking severe food shortages.", urgency="HIGH"},
    {desc="Armed raiders besiege forest gate and take cart drivers hostage; relief column forms from market militia.", urgency="CRITICAL"},
      {desc="Faun worshipers seize farmland with extremist breeding mandates, farmland owners flee.", urgency="MEDIUM"},
    {desc="Wetland pest bloom devastates outer plots; aerial dusters grounded after nozzle tampering reports.", urgency="CRITICAL"},
      {desc="Raider band besieges the Hollow Gate, blocking crucial traveler routes indefinitely.", urgency="HIGH"},
    {desc="Granary fires at two mills suggest arson; lantern-watch mobilized; night curfew considered.", urgency="CRITICAL"},
      {desc="Contaminated plant toxins discovered in city wells, likely orchestrated by criminals.", urgency="LOW"},
    {desc="Culvert collapse undermines levee road; grain convoys halted; temporary cribbing underway.", urgency="HIGH"},
      {desc="A fertility-rite dispute spirals into citywide unrest, multiple homes set ablaze.", urgency="HIGH"},
    {desc="Export quota dispute triggers farmers’ blockade at levy office; torch-lines raised along marsh road.", urgency="HIGH"},
      {desc="Druid interceptors threaten caravans across forest roads, hostages reported.", urgency="MEDIUM"},
    {desc="Silt surge disables pump intakes after storm; backup diesel sets deployed to maintain head.", urgency="HIGH"},
      {desc="Power struggle in Sylvan Fellowship leads to open street fights, innocent bystanders at risk.", urgency="LOW"},
    {desc="Crop-theft syndicate targets hemp sheds; pursuit in reed maze ongoing.", urgency="HIGH"},
      {desc="Extremist threat: a plan to unleash mutated spores if city refuses cult demands.", urgency="CRITICAL"},
    {desc="Fuel shortage stalls ferry tugs at river bend; rope teams haul barge to shallows; schedule slashed.", urgency="HIGH"},
     }
    {desc="Seed cooperative trial-plants flood-tolerant barley; theft reported from test plots.", urgency="MEDIUM"},
    {desc="Foam bloom traced to new soap maker; fines issued and recipe adjusted.", urgency="MEDIUM"},
    {desc="Cold-storage coop power dip spoils produce in two wards; grid stabilizers installed.", urgency="MEDIUM"},
    {desc="Bridge lift for barge passage during festival causes crowd surge; stewards expand barriers.", urgency="MEDIUM"},
    {desc="Grain price board manipulation attempts detected; market moderators suspend two licenses.", urgency="MEDIUM"},
    {desc="Roadside sanctuaries daubed with slogans; repainting and watch rotations organized by elders.", urgency="LOW"},
    {desc="Rotational grazing plan cuts hoof damage near ditches; water clarity improves.", urgency="LOW"},
    {desc="Duck-herd pest-day draws record volunteers; canals reopened by dusk.", urgency="LOW"},
    {desc="Nursery raises saplings for bank stabilization; school planting day adds 400 trees.", urgency="LOW"},
     {desc="Post-storm debris removal completed early; ferry schedules normalize.", urgency="LOW"}
  }
   },
   },


   ----------------------------------------------------------------------------
   ----------------------------------------------------------------------------
   -- BASSARIDIA VAERINGHEIM (MINOR)
   -- Bassaridia Vaeringheim (Minor Cities)
   ----------------------------------------------------------------------------
   ----------------------------------------------------------------------------
["Saluria"] = {
  events = {
    -- LOW (1–5)
    {desc="Minor ferry scrape at Mistway landing; two treated for cuts.", urgency="LOW"},
    {desc="Quail-egg delivery delay after flatboat grounding in reeds.", urgency="LOW"},
    {desc="Horehound syrup crystallization causes batch recall at one stall.", urgency="LOW"},
    {desc="Small archive room mold bloom; shelves aired and salted.", urgency="LOW"},
    {desc="Lantern-watch cites two unlicensed tonic hawkers near canal stairs.", urgency="LOW"},


  ["Saluria"] = {
    -- MEDIUM (6–11)
     events = {
    {desc="Flooded footpath collapses along levee bend; detour posted.", urgency="MEDIUM"},
      {desc="Night raids incinerate massive horehound fields, crippling city’s key economy.", urgency="HIGH"},
     {desc="Refrigeration outage at apothecary depot spoils fever tonics.", urgency="MEDIUM"},
      {desc="Masked radicals seize Temple of Sacred Horehound, holding priests hostage.", urgency="HIGH"},
    {desc="Aggressive vermin swarm reported in municipal stacks; stacks closed for fumigation.", urgency="MEDIUM"},
      {desc="Fake caravan signals lead travelers astray deep in Gloom Forest, multiple robberies reported.", urgency="LOW"},
    {desc="Pilgrim surge at Fount Evander causes crowding; staggered entry enforced.", urgency="MEDIUM"},
      {desc="Coordinated firebomb attacks on apothecaries, entire medical chain threatened.", urgency="CRITICAL"},
    {desc="Counterfeit temple seals found on cough elixir; seizure order issued.", urgency="MEDIUM"},
      {desc="Flood of desperate pilgrims overrun city gates, extremist healers suspected among them.", urgency="MEDIUM"},
    {desc="Diesel spill from herb-barge fouls intake screen; 12-hour filtration flush.", urgency="MEDIUM"},
      {desc="Threatening messages from Alperkin druids vow plague curses if city rejects their rule.", urgency="LOW"},
 
      {desc="Armed brigands extort caravans bringing vital cures, hospitals near collapse.", urgency="HIGH"},
    -- HIGH (12–16)
      {desc="Sinkholes advance on city outskirts, sabotage suspected in underground caverns.", urgency="MEDIUM"},
    {desc="Barge collision releases concentrated herbal oils into Mistway; water advisory issued.", urgency="HIGH"},
      {desc="Biologically enhanced vermin swarm temple archives, local militia forced to retreat.", urgency="LOW"},
    {desc="Temple storehouse occupied by dissident stewards over ration policy; standoff contained.", urgency="HIGH"},
      {desc="High priestess found in a coma at Fount Evander, possible poisoning by internal conspirators.", urgency="CRITICAL"}
    {desc="Flash flood undercuts levee pylons at Low Ford; engineers request gabions.", urgency="HIGH"},
     }
    {desc="Theft of Somniant-grade filters en route to purification domes halts production line.", urgency="HIGH"},
    {desc="Cluster of fungal wound infections traced to illicit stills; neighborhood cordon imposed.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Coordinated contamination of horehound-mead vats causes mass poisonings; field clinics overwhelmed.", urgency="CRITICAL"},
    {desc="Armed cell seizes Fount Evander gates, threatens venom release into irrigation.", urgency="CRITICAL"},
    {desc="Explosives found beneath apothecary row ahead of Plateau rites; EOD sweep ongoing.", urgency="CRITICAL"},
     {desc="Wildfire on Gloom-Forest fringe pushes smoke into riverside wards; partial evacuation ordered.", urgency="CRITICAL"}
  }
   },
   },
  ["Aetherium"] = {
["Aetherium"] = {
    events = {
  events = {
      {desc="Rebel camel cavalry raids Temple Alabaster, novices used as bargaining chips.", urgency="HIGH"},
    -- LOW
      {desc="Militant Normark loyalists abduct ranger patrols near upper passes, demands remain unclear.", urgency="CRITICAL"},
    {desc="Snowpack creak closes two shrine steps for re-chiseling.", urgency="LOW"},
      {desc="Intentional sabotage of central hot spring array cripples city’s pilgrimage tourism.", urgency="HIGH"},
    {desc="Camel-hold baffle breaks; three loads rebalanced at gate.", urgency="LOW"},
      {desc="Secret Ivory cult forcibly bars foreigners from city, suspicion of black-market arms inside.", urgency="LOW"},
    {desc="Ice fog delays dawn caravans; waystation tea tents extended.", urgency="LOW"},
      {desc="Essential forging materials withheld by unidentified saboteurs, advanced weapons halted.", urgency="MEDIUM"},
    {desc="Pilgrim slip injuries on frost tiles; grit spread order posted.", urgency="LOW"},
      {desc="Suspicious beacon signals from remote ridges, possibly used by bandits to coordinate strikes.", urgency="LOW"},
    {desc="Ranger hut chimney fire extinguished; no spread.", urgency="LOW"},
      {desc="Camel Herders blockade city gates with armed protest, seeking full independence.", urgency="MEDIUM"},
 
      {desc="Temple Alabaster forcibly evicts visiting Alperkin mystics, violent clashes erupt downtown.", urgency="MEDIUM"},
    -- MEDIUM
      {desc="Child prophet incites radical following, urging a purge of outside influences, city on edge.", urgency="LOW"},
    {desc="Wind-turbine icing forces rolling brownouts; clinics prioritized.", urgency="MEDIUM"},
      {desc="Key mountain pass fortress destroyed in sabotage, caravans cut off in subzero wilderness.", urgency="CRITICAL"}
    {desc="Counterfeit ‘Ivory purity salts’ cause skin burns; bazaar sweep.", urgency="MEDIUM"},
    }
    {desc="Rockfall blocks Iron Ladder grade for 9 hours; blasting planned.", urgency="MEDIUM"},
    {desc="Telemetry spoof sends patrol to false beacon in whiteout; comms patch deployed.", urgency="MEDIUM"},
    {desc="Wolf predation uptick around outer hamlets; flare kits issued.", urgency="MEDIUM"},
    {desc="Fuel-gel shortage delays kiln firing; ration list updated.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Camel-herder strike over closed waystations stalls alpine freight.", urgency="HIGH"},
    {desc="Night thefts of polar blankets and rations indicate cache looting ring.", urgency="HIGH"},
    {desc="Funicular brake glazing reported; line suspended pending inspection.", urgency="HIGH"},
    {desc="Avalanche scare shutters monastery annex; snow science team activated.", urgency="HIGH"},
    {desc="Cistern antifreeze taint detected at outpost; potable reserve diverted.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Avalanche buries patrol road above Alabaster Switch; multiple trapped.", urgency="CRITICAL"},
    {desc="Militants ambush camel-train at Frost Spire; hostages taken.", urgency="CRITICAL"},
    {desc="Freeze knocks mountain substation offline; temple quarter without heat.", urgency="CRITICAL"},
    {desc="Explosive charges discovered in funicular pylons linking high shrines.", urgency="CRITICAL"}
  }
   },
   },
  ["Ferrum Citadel"] = {
["Ferrum Citadel"] = {
    events = {
  events = {
      {desc="Court of the Ironclad forms rogue legion, overshadowing official city militia.", urgency="HIGH"},
    -- LOW
      {desc="Fortress staff indicted for conspiracy to launch a midnight coup, explosives confiscated.", urgency="CRITICAL"},
    {desc="Wind grit fogs watchtower optics; scopes cycled to workshop.", urgency="LOW"},
      {desc="Engineered mosquito infestation contaminates multiple wells, residents falling ill rapidly.", urgency="HIGH"},
    {desc="Heat-cracked parade paving lifts; lane cones set.", urgency="LOW"},
      {desc="Arms shipments seized from within fortress barracks, suspected inside job to topple leadership.", urgency="HIGH"},
    {desc="Two cases of heat exhaustion in drill square; schedule shifted.", urgency="LOW"},
      {desc="Fenrir radicals kidnap city council members, demanding total secession from Vaeringheim control.", urgency="MEDIUM"},
    {desc="Varnish peel on memorial obelisk; restoration team mobilized.", urgency="LOW"},
      {desc="Bomb detonation shatters ramparts, unknown faction claims victory over fortress defenses.", urgency="CRITICAL"},
    {desc="Night market generator backfires; stall row briefly dark.", urgency="LOW"},
      {desc="Main iron mines sabotaged, forging capabilities crippled, city ill‑equipped to respond to crises.", urgency="MEDIUM"},
 
      {desc="Rival Fenrir cult skirmishes in fortress courtyard, bystanders fear for safety.", urgency="LOW"},
    -- MEDIUM
      {desc="An entire caravan from Odiferia vanishes, advanced artillery rumored onboard, city braces for infiltration.", urgency="MEDIUM"},
    {desc="Sand-viper spotted in pipe gallery; maintenance paused for sweep.", urgency="MEDIUM"},
      {desc="Patrol units report mass hysteria after rumored 'Fenrir champion' sightings, morale shaken.", urgency="LOW"},
    {desc="Smelter slag splash injures two; line slowed for checks.", urgency="MEDIUM"},
     }
    {desc="Ore-royalty paperwork dispute delays shaft restart two days.", urgency="MEDIUM"},
    {desc="Solar array thefts reported on ridge; patrols extended.", urgency="MEDIUM"},
    {desc="Cyanide pad berm overtops after rare cloudburst; warning downstream.", urgency="MEDIUM"},
    {desc="Caravan robbery on Salt Track; water rations looted.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Thyrsiad Rubber distillery leak sends solvent plume toward worker blocks; evacuation begins.", urgency="HIGH"},
    {desc="Explosives cache found in ore-grader housing; security sweep ordered.", urgency="HIGH"},
    {desc="Smelter union blockade halts ingot shipments; portage stacks overflow.", urgency="HIGH"},
    {desc="Counterfeit war-steel billets trigger crane boom failure; lot recall.", urgency="HIGH"},
    {desc="Ammo convoy ambush at causeway bend; corridor closed for EOD.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Twin bombings strike curtain wall and ore choke point; partial breach contained.", urgency="CRITICAL"},
    {desc="Deep Gallery 7 gas eruption causes chain collapse; crews trapped.", urgency="CRITICAL"},
    {desc="Mutineers seize foundry cranes; threaten slag drop on barracks.", urgency="CRITICAL"},
     {desc="Dust-storm supercell grounds medevac; SAR switched to long-endurance drones.", urgency="CRITICAL"}
  }
   },
   },
  ["Acheron"] = {
["Acheron"] = {
    events = {
  events = {
      {desc="Stygian Veil cult kidnaps travelers en route to canyon temples, hostages threatened with execution.", urgency="HIGH"},
    -- LOW
      {desc="Alperkin rebels seize seasonal outposts, forcibly 'converting' families to their cause.", urgency="CRITICAL"},
    {desc="Dust devil upends canyon stall row; bruises treated on site.", urgency="LOW"},
      {desc="Noctic-Rabrev contraband saturates black-market, city watch losing firefights with traffickers.", urgency="HIGH"},
    {desc="Graffiti at Styx forecourt cleaned before noon rites.", urgency="LOW"},
      {desc="Infiltration discovered in local trade guild, large illegal arms cache confiscated.", urgency="MEDIUM"},
    {desc="Guide fee scam reported; license checks increased.", urgency="LOW"},
      {desc="Rebellious Acheron acolytes block canyon pass, extorting all trade caravans for tolls.", urgency="HIGH"},
    {desc="Stone-chip fall at minor stair; handrail repaired.", urgency="LOW"},
      {desc="Farmers near the Gloom Forest report mass kidnappings at night, likely forced labor for a rebel group.", urgency="LOW"},
    {desc="River eddy traps prayer boats; tug refloats by dusk.", urgency="LOW"},
      {desc="Clashing cults vie for control of once-nomadic capital, sporadic street battles ongoing.", urgency="MEDIUM"},
 
      {desc="Saboteurs release lethal fumes from Noctic-distilleries, entire district evacuated in haste.", urgency="HIGH"},
    -- MEDIUM
      {desc="Chief religious figure assassinated during a public ceremony, extremist group claims credit.", urgency="CRITICAL"},
    {desc="Counterfeit river permits surge; kiosk staffing doubled.", urgency="MEDIUM"},
      {desc="Unidentified disease outbreak in canyon settlements, city medics suspect sabotage by reclusive militants.", urgency="LOW"},
    {desc="Methane seep detected near shelter; ward relocated.", urgency="MEDIUM"},
     }
    {desc="Zipline robbery rig dismantled after injuries; charges filed.", urgency="MEDIUM"},
    {desc="Cliff-market price spike after bridge closure; ration vouchers issued.", urgency="MEDIUM"},
    {desc="Drone disturbance collapses rock-owl rookery; wildlife cordon.", urgency="MEDIUM"},
    {desc="Canyon guides strike over unpaid rescues; tour limits imposed.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Illicit blasting destabilizes hoodoo columns above Quarry Row; evacuation ordered.", urgency="HIGH"},
    {desc="Two tour barges collide in slot-canyon; fuel slick corralled.", urgency="HIGH"},
    {desc="Cliff hermitage seized as signal post by militants; talks stalled.", urgency="HIGH"},
    {desc="Cracked basalt threatens sacred stair at Red Echo; pin-bolting requested.", urgency="HIGH"},
    {desc="Bazaar ring moves faux-antiquities to fund insurgents; arrests ongoing.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Flash-flood wall bulldozes Lower Switchback market; dozens missing.", urgency="CRITICAL"},
    {desc="Arson at rope-bridge towers collapses east span; five hamlets isolated.", urgency="CRITICAL"},
    {desc="Explosive charges found beneath siphon trestles feeding cistern plateau.", urgency="CRITICAL"},
     {desc="Ritual stampede during Veiled Dance near Tomb of Styx causes crush injuries.", urgency="CRITICAL"}
  }
   },
   },
  ["Erythros"] = {
["Erythros"] = {
    events = {
  events = {
      {desc="Sect known as Red Mirth shuts city gates, forcing bizarre 'festivities' on locals under threat.", urgency="HIGH"},
    -- LOW
      {desc="Erysic beggars riot after new anti-vagrancy edicts, armed conflict in main square ensues.", urgency="MEDIUM"},
    {desc="Council defers vote on pyrotechnics near tar pools.", urgency="LOW"},
      {desc="Blood-stained altars found across Tar-Lands approach, city guard believes mass crime ritual involved.", urgency="HIGH"},
    {desc="Soot stains shrine friezes after revel; gentle cleaning set.", urgency="LOW"},
      {desc="Chrysos-backed raiders capture local markets, demanding exclusive trade privileges, city watchers pinned down.", urgency="HIGH"},
    {desc="Night revel pickpocket cluster; extra wardens posted.", urgency="LOW"},
      {desc="Investigations reveal a major human-trafficking plot by ex-merchant houses, fueling an armed rebellion.", urgency="CRITICAL"},
    {desc="Reed-skid shortage slows pit work; intercity buy arranged.", urgency="LOW"},
      {desc="Several merchant families vanish after rumored ties to rebel financing, local underworld in flux.", urgency="LOW"},
    {desc="Mask stall licensing audit finds minor irregularities.", urgency="LOW"},
      {desc="Audacious heist empties city treasury overnight, Erythros finances collapse dangerously.", urgency="MEDIUM"},
 
      {desc="Clashes with Alperkin tribes flare near Tar Funeral sites, multiple injuries reported.", urgency="HIGH"},
    -- MEDIUM
      {desc="An extremist 'revelry cult' forces public feasting, punishing dissenters severely.", urgency="LOW"},
    {desc="Gas-sniffer array offline post-storm; manual vent watch reinstated.", urgency="MEDIUM"},
      {desc="Coordinated black-market alliances unify Noctic trade, outgunning city’s standard watch gear.", urgency="CRITICAL"},
    {desc="Shop fire from adulterated lamp oil near tar quay; contained.", urgency="MEDIUM"},
     }
    {desc="Haze inversion prompts indoor Dream-Space advisories.", urgency="MEDIUM"},
    {desc="Coin-chest skimming scheme at temple annex uncovered.", urgency="MEDIUM"},
    {desc="Confiscations of counterfeit beast-mirth talismans at market gates.", urgency="MEDIUM"},
    {desc="Small pitch flare singes ferry queue; burn tent activated.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Adulterated pitch with solvent floods workshops; respiratory surge.", urgency="HIGH"},
    {desc="Rival houses exchange fire over tar-barge moorings; harbor closed.", urgency="HIGH"},
    {desc="Mass theft of ritual masks ahead of feast; surveillance expanded.", urgency="HIGH"},
    {desc="Reported poisoning of alon pyralis roots prompts grove cordon.", urgency="HIGH"},
    {desc="Tar skimmers strike over hazard pay; emergency crews fill shifts.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Tar-pit gas ignition during Masquerade causes mass burns; triage in vaults.", urgency="CRITICAL"},
    {desc="Armed syndicate seizes pitch-tax gates; threatens grove arson.", urgency="CRITICAL"},
    {desc="Ceremonial footbridge sinks into bitumen pool; dozens stranded.", urgency="CRITICAL"},
     {desc="Spree killings marked with blood-signs in Dream-Space quarter; curfew enacted.", urgency="CRITICAL"}
  }
   },
   },
  ["Catonis Atrium"] = {
["Catonis Atrium"] = {
    events = {
  events = {
      {desc="Rex Catonis enforcers impose harsh discipline citywide, executing petty criminals publicly.", urgency="HIGH"},
    -- LOW
      {desc="Disappearance of major Vegetable Lamb shipments suggests sabotage by deep-forest satyr gangs.", urgency="MEDIUM"},
    {desc="Heritage seal audit finds mislabels on two orchard presses; fines paid.", urgency="LOW"},
      {desc="Unmarked crates of weaponry discovered in orchard huts, orchard keepers suspected of rebellion.", urgency="HIGH"},
    {desc="Juniper smoke stains amphora murals; low-soot oils mandated.", urgency="LOW"},
      {desc="Multiple Cato worshipers murdered under cryptic circumstances, potential extremist vendetta uncovered.", urgency="CRITICAL"},
    {desc="Market queue spillover scuffs mosaic paths; cordons installed.", urgency="LOW"},
      {desc="Satyr clans forcibly retake ancient apple groves, humiliate city guard in pitched skirmish.", urgency="HIGH"},
    {desc="Vintner cart mishap at slope turn; minor bruises.", urgency="LOW"},
      {desc="Ergonian infiltration discovered among civic archivists, top city advisors complicit.", urgency="MEDIUM"},
    {desc="Bee swarm relocation delays grove work for an hour.", urgency="LOW"},
      {desc="Radical 'Veggie Warriors' bomb major causeways, cutting off city wards from each other.", urgency="LOW"},
 
      {desc="Cato’s discipline brigade abducts 'wayward' merchants for forced reeducation, moral uproar ensues.", urgency="MEDIUM"},
    -- MEDIUM
      {desc="Senior military staff arrested for forging illegal arms sales, city in crisis mode.", urgency="HIGH"},
    {desc="Water-rights arbitration delayed; terraces risk withering; pumps staged.", urgency="MEDIUM"},
      {desc="Overnight orchard arson stirs public rage, extremist sabotage likely, watchers searching for suspects.", urgency="LOW"},
    {desc="Orchard workers strike over piece rates; mediators convene.", urgency="MEDIUM"},
     }
    {desc="Juniper-sparrow flock devastates seed beds; falconers hired.", urgency="MEDIUM"},
    {desc="Black-market resin weakens tool varnish; equipment failures rise.", urgency="MEDIUM"},
    {desc="Ledger office protest over tithe skimming allegations; records seized.", urgency="MEDIUM"},
    {desc="TME boxcars misrouted; produce spoils on siding; compensation dispute.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Rustlers hijack lamb-bales at night; outer watch rings tightened.", urgency="HIGH"},
    {desc="Satyr wardens and private guards clash over pasture easements.", urgency="HIGH"},
    {desc="Lime-kiln cave-in closes hillside lane; quarry medics deployed.", urgency="HIGH"},
    {desc="Exploitative ‘brand tax’ blockade on press-street sparks skirmishes.", urgency="HIGH"},
    {desc="Poachers trapping satyr youths for ransom; search parties mobilized.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Coordinated arsons torch heritage orchards and lamb-vines; air assets requested.", urgency="CRITICAL"},
    {desc="Armed gang seizes Herd Caton Lamb Ledger to extort market control.", urgency="CRITICAL"},
    {desc="Explosive charges found on Three-Juniper Causeway; traffic frozen.", urgency="CRITICAL"},
     {desc="‘Purity patrols’ abduct merchants for forced re-education; forum stormed by crowd.", urgency="CRITICAL"}
  }
   },
   },
  ["Delphica"] = {
["Delphica"] = {
    events = {
  events = {
      {desc="Couriers of the Lizard Queen fortify city entrances, forcibly conscripting foreign travelers for 'protection'.", urgency="HIGH"},
    -- LOW
      {desc="Sanctum Delphica prophecy triggers mass panic, entire gates sealed from within, commerce halted.", urgency="MEDIUM"},
    {desc="Seawall repaint by street artists resolved via mediation.", urgency="LOW"},
      {desc="Widespread rumor of parasitic infiltration at Temple University, multiple students missing.", urgency="HIGH"},
    {desc="Creekside trail erosion worsens; boardwalk install scheduled.", urgency="LOW"},
      {desc="Blackmailers threaten to sabotage Delphica’s scholarship program unless given advanced weapon prototypes.", urgency="HIGH"},
    {desc="Jellyfish drifts prompt harbor flagging; swimmers warned.", urgency="LOW"},
      {desc="Couriers loyalists clash with city militia over relic ownership, tension at an all-time high.", urgency="CRITICAL"},
    {desc="Exam-season housing scams flagged; 24-hour desk opened.", urgency="LOW"},
      {desc="Faculty protest devolves into hostage situation at Temple University, staff assaulted by agitators.", urgency="HIGH"},
    {desc="Redwood tannins discolor fountains; aesthetic complaints logged.", urgency="LOW"},
      {desc="Visiting merchants vanish near Lizard Queen columns, speculation about forced servitude in hidden enclaves.", urgency="LOW"},
 
      {desc="Crucial texts by Anteros stolen, rumored to become rebellious manifestos, city hunts suspects fervently.", urgency="MEDIUM"},
    -- MEDIUM
      {desc="Mass infiltration discovered among academic circles, widespread arrests, rumored espionage from Koinonía.", urgency="LOW"},
    {desc="Tram operator sickout strands commuters; bus bridges deployed.", urgency="MEDIUM"},
      {desc="Series of blasts target major city arteries, panic spreads as unknown terror group claims credit.", urgency="CRITICAL"},
    {desc="Counterfeit credit-hour scrip floods student bazaars; seizures made.", urgency="MEDIUM"},
     }
    {desc="Smugglers move unregistered ritual cargo via coves; patrols reinforced.", urgency="MEDIUM"},
    {desc="Clifftop landslip undercuts observatory annex; instruments evacuated.", urgency="MEDIUM"},
    {desc="Nyarion crowding overwhelms midnight clinics; sedative shortages.", urgency="MEDIUM"},
    {desc="Data-center coolant failure threatens exam servers; proctor notices.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Faculty payroll breach triggers walkouts; transit hub paralyzed.", urgency="HIGH"},
    {desc="Bridge tie-backs at River Pythe sag; heavy-truck restrictions imposed.", urgency="HIGH"},
    {desc="Courier guildhouse harassed by pamphleteers; skirmishes at arches.", urgency="HIGH"},
    {desc="Bio-culture theft at lab wing sparks hazmat alarm; wing sealed.", urgency="HIGH"},
    {desc="Sea-fog pushes siphon debris into desal intakes; plant throttled.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Transformer cascade at Port of Qandra after lightning; fuel farm narrowly contained.", urgency="CRITICAL"},
    {desc="Armed faction occupies University archives to ransom research chips; breach executed.", urgency="CRITICAL"},
    {desc="Saboteurs bore into sub-sea cargo tunnels; blast floods two galleries.", urgency="CRITICAL"},
     {desc="Courier guides attacked during wisp-ward dispatch; three missing.", urgency="CRITICAL"}
  }
   },
   },
  ["Koinonía"] = {
["Koinonía"] = {
    events = {
  events = {
      {desc="Armed Ordo Amicitia militants seize goods in wealthier districts, branding them 'excess'.", urgency="HIGH"},
    -- LOW
      {desc="City rumors of the ‘minotaur labyrinth’ incite panic, entire families vanish exploring old tunnels.", urgency="MEDIUM"},
    {desc="Candle-wax drive launched after hive failure; strong response.", urgency="LOW"},
      {desc="A spree of kidnappings near labyrinth entrance, suspects vow to enthrone a 'minotaur champion'.", urgency="HIGH"},
    {desc="Street theater mocks greedy patrons; tempers flare, no injuries.", urgency="LOW"},
      {desc="Apollo devotees storm city granaries, forcibly rationing grain by unknown criteria.", urgency="CRITICAL"},
    {desc="Vendor sit-ins over new permit zones along Bride’s Avenue.", urgency="LOW"},
      {desc="Secret underground gatherings revolve around rumored large-scale sacrifices, law enforcement blocked outside.", urgency="HIGH"},
    {desc="Minor tremor loosens votive tiles; scaffolds planned.", urgency="LOW"},
      {desc="Audacious burglary empties Koinonía treasury, finances plummet, city faces meltdown.", urgency="MEDIUM"},
    {desc="Overflow camping on charity lawns; portable sinks delivered.", urgency="LOW"},
      {desc="Zealots blockade labyrinth exits, watchers reluctant to engage in the dark corridors.", urgency="LOW"},
 
      {desc="Resource funneling found to support paramilitary group in labyrinth’s depths, top city officials under suspicion.", urgency="MEDIUM"},
    -- MEDIUM
      {desc="Rumors swirl that an unknown 'Bride of the Host Spirit' stirs citizens to rebel, multiple small riots break out.", urgency="HIGH"},
    {desc="Disinformation claims offerings ended; comms counter-notices posted.", urgency="MEDIUM"},
      {desc="Panic ensues after rumors circulate regarding a breach of the city's underground labyrinth lead to mass self-evacuations, no official claims made.", urgency="LOW"},
    {desc="Donation chest skimming ring discovered; temple auditors assaulted.", urgency="MEDIUM"},
     }
    {desc="Charity kitchens report tainted grain; supplier traced to river barges.", urgency="MEDIUM"},
    {desc="Processional torch storehouse robbery floods market with substandard oils.", urgency="MEDIUM"},
    {desc="Volunteer medics targeted by pickpockets; lantern posts added to queues.", urgency="MEDIUM"},
    {desc="Gate-watch detects tunneling toward labyrinth; suspects flee via sewer.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Bridge blockade stops alms carts to poor quarter; talks stalled.", urgency="HIGH"},
    {desc="Cartel corners alms-salt; price spikes; requisition order drafted.", urgency="HIGH"},
    {desc="Rival factions scuffle near labyrinth forecourt over roster spots.", urgency="HIGH"},
    {desc="Counterfeit beast-ward charms cause panic; mass confiscation underway.", urgency="HIGH"},
    {desc="Procession crowd exceeds route capacity; crush barriers redeployed.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Riot breaches labyrinth forecourt during Offering; sacred gates damaged.", urgency="CRITICAL"},
    {desc="Armed thieves torch granaries to mask alms robbery; four wards without staples.", urgency="CRITICAL"},
    {desc="Cult impostors run fake charity tax to buy weapons; gunfight near Bride’s Avenue.", urgency="CRITICAL"},
     {desc="Stampede after labyrinth ‘roar’ during tremor; multiple casualties.", urgency="CRITICAL"}
  }
   },
   },
  ["Aureum"] = {
["Aureum"] = {
    events = {
  events = {
      {desc="Gold-Eater families hoard city’s bullion, threatening to cut all trade unless demands met.", urgency="HIGH"},
    -- LOW
      {desc="Temple Illuminata infiltration sparks violent purge of suspected heretics in downtown streets.", urgency="CRITICAL"},
    {desc="Tourist coin-panning scams flagged; guild posts warnings.", urgency="LOW"},
      {desc="Mass sabotage in gold mines traps dozens, city paralyzed as rescue attempts face armed resistance.", urgency="HIGH"},
    {desc="Refinery flare soot stains mural; weekend cleaning set.", urgency="LOW"},
      {desc="Shï Collective artisans riot, forging precious metal tools into improvised weapons, local guard overwhelmed.", urgency="HIGH"},
    {desc="Bullion-queue scuffles; new stanchions installed.", urgency="LOW"},
      {desc="Self-proclaimed alchemists forcibly 'collect' blood from citizens, claiming to produce new gold supply.", urgency="MEDIUM"},
    {desc="Silver-wash shortage delays shrine pieces; bronze substitutions approved.", urgency="LOW"},
      {desc="Rumors of forced labor in hidden dungeons for rebellious miners, meager city watch powerless.", urgency="LOW"},
    {desc="Mint first-strike crowding; timed tickets adopted.", urgency="LOW"},
      {desc="Sudden fires engulf the Crown Jeweler’s district, possible arson to mask grand theft.", urgency="HIGH"},
 
      {desc="Radical Aureum loyalists vow to expel all Bassarid influences, occupying city’s key council hall.", urgency="CRITICAL"},
    -- MEDIUM
      {desc="Unconfirmed reports of cannibalistic 'gold-eater extremists' surface, though city guard remains skeptical.", urgency="LOW"},
    {desc="Gold-diet zealot clinic sees electrolyte crises; advisory issued.", urgency="MEDIUM"},
      {desc="Major meltdown at city mint, saboteurs destroy coin reserves, driving local economy near collapse.", urgency="MEDIUM"},
    {desc="Night-soil haulers strike near refinery dorms; contingency crews roll.", urgency="MEDIUM"},
     }
    {desc="Water table drawdown prompts well rationing; pump schedule posted.", urgency="MEDIUM"},
    {desc="Weighbridge exploit skimmed grams from high-value lots; audit live.", urgency="MEDIUM"},
    {desc="Artisan guild feud over commissions causes shopfront damage.", urgency="MEDIUM"},
    {desc="Illegal pit-fires at abandoned drift cause subsidence cracks.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Temple Illuminata reliquary theft; meditation chips missing.", urgency="HIGH"},
    {desc="Counterfeit ingot stamps detected; export lots quarantined.", urgency="HIGH"},
    {desc="Miner wildcat strike over safety gear; production halved.", urgency="HIGH"},
    {desc="Bullion coach ambushed on Ridge Road; escorts wounded.", urgency="HIGH"},
    {desc="Cyanide solution siphoned from heap-leach ponds; hazmat alert.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Coordinated mine-head blasts trap crews; telemetry lost.", urgency="CRITICAL"},
    {desc="Armed gang seizes assay room; acid threat against bullion vault.", urgency="CRITICAL"},
    {desc="Procession bomb from rooftop hits Gold-Eaters; mass casualties.", urgency="CRITICAL"},
     {desc="Foundry torching spills molten metal into artisan quarter; rescues ongoing.", urgency="CRITICAL"}
  }
   },
   },
  ["Myrene"] = {
["Myrene"] = {
    events = {
  events = {
      {desc="Haifan scholar faction incites rebellion against Bassarid influence, sabotage to local printing presses reported.", urgency="HIGH"},
    -- LOW
      {desc="Radical academics orchestrate a terror spree in Elysian Vale, abducting librarians and researchers.", urgency="CRITICAL"},
    {desc="Orchard fair postponed for trail repairs; vendor fee credits issued.", urgency="LOW"},
      {desc="All Norn Ink supplies vanish from Temple University, black-market forging of diplomas suspected.", urgency="HIGH"},
    {desc="Cedar wayfinding posts replace rotted stakes in mist zone.", urgency="LOW"},
      {desc="Exiled Haifan ideologues attempt to forcibly reintroduce banned philosophies, city debates turn violent.", urgency="MEDIUM"},
    {desc="Library annex humidity spike; dehumidifiers deployed overnight.", urgency="LOW"},
      {desc="Academic feud escalates into bomb threats at major lecture halls, mass evacuations ensue.", urgency="HIGH"},
    {desc="River ferry rope fray repaired; service resumes.", urgency="LOW"},
      {desc="Mob storms Archives, burns advanced treatises on civic engineering, calls for Myrene secession from Bassarids.", urgency="CRITICAL"},
    {desc="Festival lanterns snag on bridge rails; height limits posted.", urgency="LOW"},
      {desc="New inquisition arrests 'unorthodox' scholars, show trials spark moral outrage in intellectual circles.", urgency="LOW"},
 
      {desc="Suspected forced suicides among top philosophers, extremist involvement likely, city watch investigating.", urgency="MEDIUM"},
    -- MEDIUM
      {desc="Blackmail ring discovered controlling Myrene’s scribes, municipal leadership overshadowed by hidden power.", urgency="LOW"},
    {desc="Silt chokes millrace; dredge contracted; flour rationing begins.", urgency="MEDIUM"},
      {desc="Captured faculty reveal secret ties to old Haifan warlords, planning imminent citywide coup.", urgency="HIGH"},
    {desc="Monsoon mold invades clinic storage; disinfectant shortfall.", urgency="MEDIUM"},
     }
    {desc="Volunteer brigades dispute command; mediation convened.", urgency="MEDIUM"},
    {desc="Quarry-truck brake fires on Grade Way; rolling closures.", urgency="MEDIUM"},
    {desc="Valley repeater vandalized; alerts intermittent; runners dispatched.", urgency="MEDIUM"},
    {desc="Black bear incursions into depots; wardens deploy deterrents.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Mudflow threatens grain stores; sandbag lines hold—barely.", urgency="HIGH"},
    {desc="Bridge pier scour worsens; axle-weight limits enforced.", urgency="HIGH"},
    {desc="Forged valley-seal on grants funds political agitation; arrests made.", urgency="HIGH"},
    {desc="Cable-car clutch failure strands passengers; manual rescue.", urgency="HIGH"},
    {desc="Fuel smugglers dilute lamp oil; fire risk spikes in timber lanes.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Rain-loosened slope collapses onto riverside dormitory; many trapped.", urgency="CRITICAL"},
    {desc="Nornstream trestle torched; TME spur severed; valley isolated.", urgency="CRITICAL"},
    {desc="Manuscript caravan ambushed en route to Delphica; escorts disarmed.", urgency="CRITICAL"},
     {desc="Landslide-dam burst sends debris surge through central square; waterworks offline.", urgency="CRITICAL"}
  }
   },
   },
  ["Halicarn"] = {
["Halicarn"] = {
    events = {
  events = {
      {desc="Defilers desecrate Grand Tomb of Dragevik, spark city unrest with relic theft and vandalism.", urgency="HIGH"},
    -- LOW
      {desc="Legions of Dragevik veterans mobilize in unsanctioned marches, overshadowing local authorities.", urgency="CRITICAL"},
    {desc="Roadside shrine offerings clog gutters; cleanup crews formed.", urgency="LOW"},
      {desc="Underground tomb chambers turned into forced gladiatorial arenas, rumor of mass abductions from outskirts.", urgency="HIGH"},
    {desc="Guide torches stain frescoes; low-soot fuel mandated.", urgency="LOW"},
      {desc="Dragevik monument inscriptions vanish under suspicious circumstances, city braces for unrest.", urgency="LOW"},
    {desc="Market spat between rival stonecutters; dispersed.", urgency="LOW"},
      {desc="Group calling themselves 'Historic Purists' ransack Halicarn’s market, claiming the city was built on lies.", urgency="MEDIUM"},
    {desc="Amphitheater seating splinter hazard repaired.", urgency="LOW"},
      {desc="Warlord claiming direct descent from Dragevik gathers loyal militias within city, overshadowing local watch.", urgency="HIGH"},
    {desc="Gatehouse bell rope snaps; backup signal used.", urgency="LOW"},
      {desc="Organized thieves smuggle out bone fragments said to be Dragevik’s, fueling black-market mania.", urgency="MEDIUM"},
 
      {desc="Temple guardians disappear at night, fortress gates left wide open to known bandits.", urgency="LOW"},
     -- MEDIUM
      {desc="Mass brawl at amphitheater escalates to lethal violence, bodies discovered at dawn, city in shock.", urgency="CRITICAL"},
    {desc="Tourism lull triggers stipend requests; charity kitchens extend hours.", urgency="MEDIUM"},
      {desc="Suspicions of forced experiments on remains in crypt, city watchers discover partial evidence of foul play.", urgency="LOW"},
    {desc="Unlicensed fight rings uncovered in minor crypts; entries bricked.", urgency="MEDIUM"},
    }
    {desc="Cultural dispute over new signage scripts sparks nightly tagging.", urgency="MEDIUM"},
  },
    {desc="Storm undercuts fortress spur; rockfall netting installed.", urgency="MEDIUM"},
  ["Ephyra"] = {
    {desc="Extortionists ‘protect’ tomb-market stalls; arrests after chase.", urgency="MEDIUM"},
     events = {
    {desc="Malware trips reliquary ward sensors; manual seals engaged.", urgency="MEDIUM"},
      {desc="City oracle usurps temple leadership, imposes martial law to enforce daily 'prophecies.'", urgency="HIGH"},
 
      {desc="Band of zealots abduct traveling diplomats, demanding recognition as new theocracy.", urgency="CRITICAL"},
     -- HIGH
      {desc="Temple of the Seer infiltration reveals attempt to mind-condition civic leaders, city on alert.", urgency="HIGH"},
     {desc="Grave-goods theft ring smuggles bone relics via river; sting active.", urgency="HIGH"},
      {desc="Golden Oak supply caravans vanish, possibly hijacked by radical forest guardians.", urgency="MEDIUM"},
    {desc="Warden night shifts vanish; gatehouses double watch.", urgency="HIGH"},
      {desc="Mass 'confession' rituals enforced, suspects tortured, violent crackdown ensues downtown.", urgency="HIGH"},
    {desc="Processional crush at Hero’s Gate; lane barriers expanded.", urgency="HIGH"},
      {desc="Faculty at local academies indicted for sedition, armed city watchers forcibly remove them at night.", urgency="LOW"},
    {desc="Coach crash during cortege draws riot over route ban.", urgency="HIGH"},
      {desc="Supposedly toxic phenomenon in Vale of Delpa leaves farmland contaminated, prime suspect unknown sabotage group.", urgency="MEDIUM"},
    {desc="Hellhound kennel sabotage releases trained dogs; multiple bites.", urgency="HIGH"},
      {desc="Breakaway cult proclaims Ephyra’s secession, seizing city watch HQ in brazen assault.", urgency="HIGH"},
 
      {desc="Rumor of city’s doom triggers panic, extremist doomsday group occupies a major plaza, fueling mass fear.", urgency="LOW"},
    -- CRITICAL
      {desc="Heavily armed faction commandeers Vygsil Springs, extorting citizens for access to healing waters.", urgency="CRITICAL"},
    {desc="Tunnelers breach ossuary; booby-traps injure first responders.", urgency="CRITICAL"},
     }
    {desc="Ex-soldier column overruns checkpoint; weapons seized.", urgency="CRITICAL"},
  },
    {desc="Crypt fire spreads through resin-lined catacombs; roof collapse risk.", urgency="CRITICAL"},
  ["Thyrea"] = {
    {desc="Insurgent blast isolates shrine district from hospitals; bridge destroyed.", urgency="CRITICAL"}
     events = {
  }
      {desc="Agnis adherents forcibly banish all Thalassa icons, confrontation with pro-Thalassa locals flares up.", urgency="HIGH"},
      {desc="Normarkian smugglers ally with exiled Agnis worshipers, forming a heavily armed militia along Lake Kedem.", urgency="CRITICAL"},
      {desc="Underworld enclaves discovered enslaving outsiders for blood rites, city watch overwhelmed by scope of crime.", urgency="HIGH"},
      {desc="Shoshan Marsh caravans repeatedly assaulted, kidnappings surge, trade near standstill.", urgency="HIGH"},
      {desc="Unrest as city council accused of colluding with 'dark' Agnis cult, violent protests ongoing.", urgency="MEDIUM"},
      {desc="Agnis inquisitors detain suspected Thalassa loyalists, show trials intensify, public fear escalates.", urgency="LOW"},
      {desc="Helaen Kyklos militias forcibly conscript local youths, families in uproar, demands for external aid.", urgency="MEDIUM"},
      {desc="Lake Kedem fish die-off traced to possible toxic sabotage, thousands of rotting carcasses disrupt economy.", urgency="HIGH"},
      {desc="Fortress rumors: forced reeducation in hidden labyrinth for political prisoners, infiltration attempts fail.", urgency="LOW"},
      {desc="Self-styled 'Necro-lord' claims link to Agnis, threatens large-scale execution if city resists demands.", urgency="CRITICAL"},
    }
   },
   },


   ----------------------------------------------------------------------------
   ----------------------------------------------------------------------------
   -- NEW SOUTH JANGSONG (MAJOR)
   -- New South Jangsong (Major Cities)
   ----------------------------------------------------------------------------
   ----------------------------------------------------------------------------
  ["Skýrophos"] = {
["Skýrophos"] = {
    events = {
  events = {
      {desc="Cliff blockade established by armed rebels, severing vital trade flows, city in crisis.", urgency="HIGH"},
    -- LOW (1–5)
      {desc="Rogue cult uses hallucinatory illusions to disorient city patrols, multiple kidnappings reported.", urgency="MEDIUM"},
    {desc="Minor landslip closes one cliff stair; ropes and lanterns installed for detour.", urgency="LOW"},
      {desc="Pirate warlords hijack fishing fleet full of prized pufferfish, holding cargo for ransom.", urgency="HIGH"},
    {desc="Ferry turnstile jam slows boarding at Canal Gate; mechanics clear within the hour.", urgency="LOW"},
      {desc="Saboteurs destroy Suncliff watchtower with explosives, leaving city partially blind to threats.", urgency="CRITICAL"},
    {desc="Thin oil sheen near fish pier traced to generator leak; booms deployed, no wildlife harm.", urgency="LOW"},
      {desc="Contraband quartz bombs discovered in merchant warehouses, mass arrests underway.", urgency="LOW"},
    {desc="Unauthorized hobby drones over canal checkpoints confiscated; operators fined.", urgency="LOW"},
      {desc="Officials found stiff with strange marks, believed tortured by black-market interrogation squads.", urgency="HIGH"},
    {desc="Quartz outcrop snags a skiff rudder at low tide; harbor divers remove the hazard.", urgency="LOW"},
      {desc="Crucial Alterbulb shipments stolen, local economy on verge of collapse, no suspects named.", urgency="MEDIUM"},
 
      {desc="Militant uprising captures city outpost, declaring independence from the Bassarid state.", urgency="MEDIUM"},
    -- MEDIUM (6–11)
      {desc="Seaborne raiders assault coastal guard towers at night, defenders outmatched.", urgency="LOW"},
    {desc="Substation trip causes brownout across reefer stacks; backup gensets spun up.", urgency="MEDIUM"},
      {desc="Massive sinkhole in main bazaar reveals weapon cache, city braces for further insurgent moves.", urgency="CRITICAL"}
    {desc="Counterfeit harbor passes seized at East Gate; contractor audit expanded citywide.", urgency="MEDIUM"},
    }
    {desc="Two pilot boats collide in fog; salvage tugs close fairway for three hours.", urgency="MEDIUM"},
    {desc="Security contractor–stevedore scuffle over search rules; seven treated for minor injuries.", urgency="MEDIUM"},
    {desc="AIS/VTS spoofing attempt disrupts arrival sequencing; port shifts to manual control.", urgency="MEDIUM"},
    {desc="Five channel beacons stolen overnight; temporary buoys laid under patrol escort.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Privateer fast-skiffs probe checkpoint with warning fire; coastal guard repels pursuit offshore.", urgency="HIGH"},
    {desc="Sabotage suspected in Suncliff watchtower comms blackout; ridge patrols doubled.", urgency="HIGH"},
    {desc="Pipe-bomb discovered on outer breakwater; EOD disrupts, cordon remains at 200 m.", urgency="HIGH"},
    {desc="Undersea fiber cut near harbor head throttles comms; cable ship tasked to splice.", urgency="HIGH"},
    {desc="Arson at customs warehouse ignites flammables; two blocks evacuated during knock-down.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="VBIED detonates at canal checkpoint during shift change; mass casualties; War League EOD and cordons requested.", urgency="CRITICAL"},
    {desc="Rogue privateer flotilla forms beyond quartz outcrops; Hatch Ministry battlecruiser support requested for intercept.", urgency="CRITICAL"},
    {desc="Fuel-farm blaze after valve tampering threatens multiple tanks; foam stocks nearing depletion.", urgency="CRITICAL"},
    {desc="Armed trawlers blockade harbor entrance; commerce halted pending War League maritime clearance.", urgency="CRITICAL"}
  }
   },
   },
  ["Bjornopolis"] = {
["Bjornopolis"] = {
    events = {
  events = {
      {desc="Smugglers occupy the floating market, armed barricades halt all commerce, city watch pinned down.", urgency="HIGH"},
    -- LOW
      {desc="Guild rivalry triggers lethal shootouts across upper terraces, multiple wounded or dead.", urgency="MEDIUM"},
    {desc="Pontoon walkway tilts from ballast shift; three vendor stalls relocated.", urgency="LOW"},
      {desc="Cavern collapses under city foundation, revealing rebel hideout, firefight erupts with watch squads.", urgency="HIGH"},
    {desc="Silt jam stalls a canal gate; dredge clears by dawn.", urgency="LOW"},
      {desc="Revolt claims city hall, proclaims total autonomy from New South Jangsong, local officials flee.", urgency="CRITICAL"},
    {desc="Mead cask topple on festival stage creates slip hazard; first aid on site.", urgency="LOW"},
      {desc="Poisoned mead kills dozens, inciting riots as city hunts for antidotes or culprits.", urgency="MEDIUM"},
    {desc="Micro-tears in sphinx-silk batch trigger voluntary guild recall.", urgency="LOW"},
      {desc="Bijarian Leopards released by extremist group, attacking farmland on outskirts, watch ill‑prepared.", urgency="LOW"},
    {desc="Wet cabling trips power along stall row; electricians rewire junction box.", urgency="LOW"},
      {desc="Stolen Altar of Songs relic used to galvanize anti-Bassarid sentiment, recruiting new rebels daily.", urgency="HIGH"},
 
      {desc="Ex-soldiers blockade harbor with heavy armament, extorting high tribute from all incoming ships.", urgency="CRITICAL"},
    -- MEDIUM
      {desc="Mysterious nightly disappearances near the old canal, watchers suspect organized kidnapping ring.", urgency="HIGH"},
    {desc="Counterfeit mooring permits sold to houseboat merchants; crackdown nets 12 arrests.", urgency="MEDIUM"},
      {desc="Street illusions cause mass panic, roving mobs clash with outnumbered city guards, chaos spreads.", urgency="LOW"},
    {desc="Mold outbreak in upper-terrace granary prompts fumigation and grain transfer.", urgency="MEDIUM"},
     }
    {desc="Lock gear jams mid-cycle; tugs reposition craft as traffic gridlocks for one hour.", urgency="MEDIUM"},
    {desc="Trading algorithm glitch misprices commodities; exchange halts session for audit.", urgency="MEDIUM"},
    {desc="Rooftop watchers hurl stones across rival terraces; patrol disperses, minor injuries only.", urgency="MEDIUM"},
    {desc="Food-safety probe links honey contamination to illegal hives; mead hall closed pending tests.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Night cutters sever three market anchors; drifting pontoons collide before retrieval.", urgency="HIGH"},
    {desc="Armed crew raids Order of the Sphinx cocoon warehouse; high-grade bales stolen via canal.", urgency="HIGH"},
    {desc="Ex-soldiers occupy toll quay to extort ‘security fees’; stand-off with city watch.", urgency="HIGH"},
    {desc="Electrical fire under canal arch threatens timber stalls; major hose line laid from barge pumps.", urgency="HIGH"},
    {desc="Canal-house raid uncovers arms cache linked to series of warehouse burglaries.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="VBIED skiff detonates beneath harvest-pontoon; mass casualties trigger full evacuation.", urgency="CRITICAL"},
    {desc="Rebel militia seizes municipal comms tower; broadcasts jam emergency channels; manipulus requested.", urgency="CRITICAL"},
    {desc="Demolition charges found on main lock gates; port enters all-stop while EOD sweeps.", urgency="CRITICAL"},
     {desc="Rockets fired from warehouse row strike harbor offices; counter-battery teams deployed.", urgency="CRITICAL"}
  }
   },
   },
  ["Aegirheim"] = {
["Aegirheim"] = {
     events = {
  events = {
      {desc="Normarkian clans forcibly seize city’s main shipyard, stalling vital naval readiness efforts.", urgency="HIGH"},
    -- LOW
      {desc="Conspiracy uncovered to hijack entire Aegirheim fleet, traitorous admirals arrested mid-plan.", urgency="CRITICAL"},
     {desc="Algae slick on ladder rung causes slip; dock section cleaned and reopened.", urgency="LOW"},
      {desc="Rogue marines capture prime fortifications on Pythe Spine Mountains, cutting off reinforcements from city center.", urgency="HIGH"},
    {desc="Rope-lay shop waste ignites in bin; extinguished with minor damage.", urgency="LOW"},
      {desc="Sabotage in blacksmith shops undermines weapon integrity, city alarmed at potential invasion risk.", urgency="HIGH"},
    {desc="Fuel pump filter clog delays harbor fueling rotation by one hour.", urgency="LOW"},
      {desc="Fenrir sympathizers rumored near Leviathan’s Teeth, stirring calls for additional naval patrols.", urgency="MEDIUM"},
    {desc="Mislaid crate of propeller blades shuts a walkway until recovered.", urgency="LOW"},
      {desc="Hardline agitators preach defiance of JS authority, fueling minor ship mutinies at dawn.", urgency="LOW"},
    {desc="Weathered bollard fails during moor; tug dented, replaced within shift.", urgency="LOW"},
      {desc="Ex-pirate gang raids city’s seafaring armories, local militia forced to retreat repeatedly.", urgency="MEDIUM"},
 
      {desc="Smuggler rings peddle specialized crab plating for contraband armor, city demands crackdown.", urgency="MEDIUM"},
    -- MEDIUM
      {desc="Influential merchant alliance calls for martial law after repeated sabotage of harbor defenses.", urgency="LOW"},
    {desc="Gale snaps dock fenders; three berths closed for timber repair.", urgency="MEDIUM"},
      {desc="Armed extremist fishermen barricade all exports, threaten to sink entire fleet if demands ignored.", urgency="CRITICAL"}
    {desc="X-ray scanner outage forces manual customs checks; backlog builds at shed.", urgency="MEDIUM"},
    }
    {desc="Modified trawlers used for smuggling seized in dawn raid; eight arrests.", urgency="MEDIUM"},
    {desc="Shipbuilder contract feud erupts into yard brawl; patrol disperses and posts guard.", urgency="MEDIUM"},
    {desc="Transformer trip darkens quarter of shipyard; hot-work suspended pending inspection.", urgency="MEDIUM"},
    {desc="Slipway cradle drops early; refit delayed for hull survey, no injuries.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Sabotage found in blacksmith fittings—brittle pins in rudder stocks; recall of outgoing hulls.", urgency="HIGH"},
    {desc="Cyberattack scrambles schedules and inventory; production reverts to paper for 48 hours.", urgency="HIGH"},
    {desc="Worker safety strike shutters two slipways; naval backlog expands.", urgency="HIGH"},
    {desc="Old pier decking collapses under forklift; 11 injured; structural audit ordered.", urgency="HIGH"},
    {desc="Ex-pirate gang raids armory; militia falls back to inner line after casualties.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Extremist fishermen barricade export piers, threaten mass scuttling; War League detachment requested.", urgency="CRITICAL"},
    {desc="Fleet-hijack conspiracy revived; traitorous admirals arrested; port on hard lockdown.", urgency="CRITICAL"},
    {desc="Limpet-charge signatures detected near drydock gate; EOD clears while port suspends operations.", urgency="CRITICAL"},
    {desc="Drone swarm strikes fueling headers; multiple fires spark evacuation of southern yard.", urgency="CRITICAL"}
  }
   },
   },
  ["Norsolyra"] = {
["Norsolyra"] = {
    events = {
  events = {
      {desc="Wisp cult forcibly takes over a core district, forcing hallucinogenic 'initiations' on residents.", urgency="HIGH"},
    -- LOW
      {desc="Heavily armed raiders undermine Noctic-Rabrev harvest, risking famine or major economic damage.", urgency="HIGH"},
    {desc="Market scales misread rice sack weights; calibration sweep and vendor fines issued.", urgency="LOW"},
      {desc="Entire patrol squads vanish in Tarnand Fjord, leaving behind signs of ambush, no survivors found.", urgency="LOW"},
    {desc="Footbridge slat cracks over irrigation cut; closed with plank bypass installed.", urgency="LOW"},
      {desc="Rival smuggler factions escalate Wisp Rice turf wars, large crossfire casualties daily.", urgency="MEDIUM"},
    {desc="Incense coil sparks small warehouse fire; contained with standpipe line.", urgency="LOW"},
      {desc="Normark saboteurs destroy farmland levees, mass farmland displacement ensues, city tries damage control.", urgency="HIGH"},
    {desc="Silt bar limits ferry draft; schedules trimmed until dredge arrives.", urgency="LOW"},
      {desc="Widespread panic as 'dream plague' incites violent paranoia in multiple neighborhoods.", urgency="CRITICAL"},
    {desc="Night thefts of small rice lots from carts; community patrol organized.", urgency="LOW"},
      {desc="Two wisp cult factions brawl for control of sacrificial altars, bystanders caught in crossfire.", urgency="MEDIUM"},
 
      {desc="Pirates disguised as pilgrims loot advanced Noctic prototypes from city arsenal, guard helpless.", urgency="HIGH"},
    -- MEDIUM
      {desc="Corrupt officials demand increased wisp offerings from worshipers, armed standoffs break out near altars.", urgency="LOW"},
    {desc="Flooded paddy blocks rural lane; emergency culvert cut, deliveries delayed.", urgency="MEDIUM"},
      {desc="Maritime illusions hamper shipping lanes, local trade alliances collapse under financial losses.", urgency="MEDIUM"},
    {desc="Algal bloom detected in canal; flow throttled while assays run.", urgency="MEDIUM"},
     }
    {desc="Rumor of ‘dream plague’ closes two schools; public briefings calm crowds.", urgency="MEDIUM"},
    {desc="Strike vote over price controls triggers sit-downs at granaries.", urgency="MEDIUM"},
    {desc="Diesel pump thefts at three co-ops leave fields unflooded; police sweep underway.", urgency="MEDIUM"},
    {desc="Foodborne-illness cluster traced to unhusked shipments; targeted recall ordered.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Smuggler turf war over rice export routes erupts in crossfire; bystanders wounded.", urgency="HIGH"},
    {desc="Pirates posing as traders loot tech from arsenal; heightened port security follows.", urgency="HIGH"},
    {desc="Levee breach inundates outer fields; hundreds displaced; heavy plant mobilized.", urgency="HIGH"},
    {desc="Coordinated theft of farm machinery sparks road blockades and protests.", urgency="HIGH"},
    {desc="Curfew enacted after surge in field-side robberies and wharf assaults.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Psychogenic ‘dream-panic’ with violent episodes overwhelms clinics; War League invited to stabilize.", urgency="CRITICAL"},
    {desc="Extremist cadre occupies central ward and enforces forced labor; urban operations required.", urgency="CRITICAL"},
    {desc="Attack on main pumping station halves water supply; emergency rationing imposed.", urgency="CRITICAL"},
     {desc="Widespread poisoning from contaminated rice stocks floods hospitals; city declares emergency.", urgency="CRITICAL"}
  }
   },
   },
  ["Thorsalon"] = {
["Thorsalon"] = {
    events = {
  events = {
      {desc="Blood Vineyards extremist circle demands daily human tributes, local citizens resisting forcibly.", urgency="HIGH"},
    -- LOW
      {desc="Normarkian raiders form alliance with contraband smugglers to monopolize blood-infused wine market.", urgency="CRITICAL"},
    {desc="Vineyard tractor tips on hillside; two treated for bruises.", urgency="LOW"},
      {desc="Dozens abducted near Haemomantine Cliffs, ransom notes reference forced labor in hidden caverns.", urgency="HIGH"},
    {desc="Broken staves spill wine across quay; walkway closed for cleanup.", urgency="LOW"},
      {desc="Conclave of Thorsalon imposes martial rule on wine districts, forcibly dissolving competing sects.", urgency="HIGH"},
    {desc="Noise complaints from night cargo shift near market; schedules adjusted.", urgency="LOW"},
      {desc="Rogue vineyard owners rumored to use doping agents on workers, prompting health crises in suburbs.", urgency="MEDIUM"},
    {desc="Festival stall relocations trigger brief crowding on the esplanade.", urgency="LOW"},
      {desc="Merchants blockade city gates in protest of new blood wine levy, tensions on the brink.", urgency="LOW"},
    {desc="Algae in fountain prompts sanitation flush; shrine forecourt reopened.", urgency="LOW"},
      {desc="Rumors of voluntary human sacrifice among vineyard workers, city investigating.", urgency="MEDIUM"},
 
      {desc="Coordinated sabotage in Erythraean wine cellars, entire year’s batch destroyed, city economy threatened.", urgency="HIGH"},
    -- MEDIUM
      {desc="Criminal ring rumored to forcibly recruit youths into unlicensed 'wine pit' labor camps, no formal leads yet.", urgency="LOW"},
    {desc="Fisherfolk tax protest along portside market results in scuffles; patrol separates crowds.", urgency="MEDIUM"},
      {desc="A warband attempts to topple local authority, seizing watchtower over the protest of city patrols.", urgency="CRITICAL"}
    {desc="Old pier segment collapses under light truck; minor trade delays until planking replaced.", urgency="MEDIUM"},
     }
    {desc="Smuggling ring in remote cove disrupted after chase; partial cargo recovered.", urgency="MEDIUM"},
    {desc="One quay placed under precautionary quarantine after cluster among returning sailors.", urgency="MEDIUM"},
    {desc="Allegations of fee manipulation at harbor office spark audits and sit-ins.", urgency="MEDIUM"},
    {desc="Marine-fuel shortage disrupts ferry and tug timetables; emergency rationing enacted.", urgency="MEDIUM"},
 
    -- HIGH
    {desc="Coordinated arson scorches two supply warehouses; firefighters hold firebreak at street 3.", urgency="HIGH"},
    {desc="Bribery in shipping contracts exposed; protesters surround harbormaster’s office.", urgency="HIGH"},
    {desc="Fishing union strike halts seafood exports; cold-chain losses mount.", urgency="HIGH"},
    {desc="Gale damages a dozen small craft; extended rescue ops off the point.", urgency="HIGH"},
    {desc="Rival shippers blockade dock access; cargo robberies reported amid chaos.", urgency="HIGH"},
 
    -- CRITICAL
    {desc="Sudden storm topples key lighthouse; navigation crippled, collision risk spikes; War League cutters requested.", urgency="CRITICAL"},
    {desc="Extremist group threatens vineyard contamination; sabotage materials found; perimeter sealed.", urgency="CRITICAL"},
    {desc="Explosive-laden boat rams fuel terminal; multi-tank fire forces port evacuation.", urgency="CRITICAL"},
     {desc="Coordinated sabotage on inbound freighters at harbor approach triggers near-collisions; emergency port closure ordered.", urgency="CRITICAL"}
  }
   },
   },


   ----------------------------------------------------------------------------
   ----------------------------------------------------------------------------
   -- NEW SOUTH JANGSONG (MINOR)
   -- New South Jangsong (Minor Cities)
   ----------------------------------------------------------------------------
   ----------------------------------------------------------------------------
  ["Pelagia"] = {
["Pelagia"] = {
    events = {
  events = {
      {desc="The New South Jangsong Division engages in firefights and skirmishes against armored, foreign raiders responsible for disrupting trade routes passing through the Saltsteppes.", urgency="HIGH"},
    -- LOW (1–5)
      {desc="Bassarid relic smugglers gather contraband arms in desert bunkers, vigilantes fail to stop them.", urgency="MEDIUM"},
    {desc="Loose camel train breaks tethers at South Gate; brief traffic snarl, no injuries.", urgency="LOW"},
      {desc="Cult calling itself 'Melusine's Sword' lures caravans into deadly ambushes, zero survivors reported.", urgency="LOW"},
    {desc="False rumor of cistern taint prompts precautionary boil notice; tests clear by evening.", urgency="LOW"},
      {desc="Tainted well kills traveling merchants, extremist sabotage suspected, city imposes lockdown.", urgency="HIGH"},
    {desc="Waystation generator hiccup forces reefer handoff; perishables preserved.", urgency="LOW"},
      {desc="Mass toxic exposure in old fortress claims multiple casualties, sabotage from within suspected.", urgency="LOW"},
    {desc="Sand skiff scrapes quay ladder; harbor divers remove metal snag before dusk.", urgency="LOW"},
      {desc="Bandits forcibly conscript new arrivals, forging a paramilitary group on outskirts of city control.", urgency="MEDIUM"},
    {desc="Unauthorized souvenir sellers crowd caravan queue; licenses checked and stalls relocated.", urgency="LOW"},
      {desc="Rogue Hatch Ministry loyalists reoccupy an abandoned outpost, kidnapping local ranchers for leverage.", urgency="HIGH"},
 
      {desc="Devouring insect swarm unleashed on farmland, rumored to be engineered as a weapon, massive damage.", urgency="CRITICAL"},
    -- MEDIUM (6–11)
      {desc="Camel ranchers threaten revolt unless city invests heavily in protective garrisons, tensions mount.", urgency="MEDIUM"},
    {desc="Wash-boarded salt road slows convoys; grader crews deployed overnight.", urgency="MEDIUM"},
      {desc="Key supply warehouse vanishes—reports of cart convoys hauling entire stock away at night, city starves.", urgency="CRITICAL"}
    {desc="Counterfeit caravan seals uncovered in date-crate lot; permits re-issued with new hologlyph.", urgency="MEDIUM"},
     }
    {desc="Algal bloom clogs secondary intake; chlorination flush and 12-hour filter cycle.", urgency="MEDIUM"},
    {desc="Beacon vandalism at dune waypoints forces night routes to daylight only.", urgency="MEDIUM"},
    {desc="Grazing-corridor protest by camel herders blocks Spur Three; negotiated reopening by noon.", urgency="MEDIUM"},
    {desc="Arms smuggling ring using spice barrels disrupted at North Yard; six arrests.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Pipeline tap on upland feeder drops city pressure; rationing introduced for outer wards.", urgency="HIGH"},
    {desc="Mechanized raider probe sighted near Salt-Lindley pass; pickets exchange fire and withdraw.", urgency="HIGH"},
    {desc="Ambush on westbound spice convoy leaves escorts wounded; route closed pending sweep.", urgency="HIGH"},
    {desc="Arson attempt at camel-feed warehouse produces toxic smoke; adjacent block evacuated.", urgency="HIGH"},
    {desc="IED discovered beneath causeway mile-marker 14; EOD disrupts and expands cordon.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Coordinated raids hit three caravanserai rings; hostages reported; War League manipulus requested.", urgency="CRITICAL"},
    {desc="Cistern poisoning with neurotoxic plant extract causes mass casualties; field hospitals surge.", urgency="CRITICAL"},
    {desc="Explosive sabotage cripples main water tower; city-wide pressure collapse triggers emergency distribution.", urgency="CRITICAL"},
     {desc="Armored column forms near Lindley approach; curfew declared while War League stages intercept.", urgency="CRITICAL"}
  }
   },
   },
["Thyrea"] = {
  events = {
    -- LOW
    {desc="Procession drumlines trigger noise complaints along Old Causeway; route timing adjusted.", urgency="LOW"},
    {desc="Horse spooks during shrine parade; cart grazes stall, no serious injuries.", urgency="LOW"},
    {desc="Candle flare singes side-chapel tapestries; extinguished by wardens.", urgency="LOW"},
    {desc="Unlicensed vendors sell Agnis icons at gate; permits checked and stalls moved.", urgency="LOW"},
    {desc="Light aftershock dislodges votive tiles; shrine closed for quick re-seating.", urgency="LOW"},
    -- MEDIUM
    {desc="Festival crowding leads to fainting episodes near west stair; misting tents added.", urgency="MEDIUM"},
    {desc="Counterfeit relic tokens discovered in pilgrim markets; confiscations broadened.", urgency="MEDIUM"},
    {desc="Sectarian shouting match escalates outside basilica; baton dispersal, no arrests.", urgency="MEDIUM"},
    {desc="Bridge deck wear prompts foot-capacity limits during evening rites.", urgency="MEDIUM"},
    {desc="Pilgrim camp latrines overflow; emergency sanitation crews deployed.", urgency="MEDIUM"},
    {desc="Rumors of proscribed rites spark street arguments; clergy convene joint address.", urgency="MEDIUM"},
    -- HIGH
    {desc="Arson attempt against rival chapel foiled; scorch damage and two smoke casualties.", urgency="HIGH"},
    {desc="Stones thrown during counter-procession at East Gate; eight injured, dusk curfew imposed.", urgency="HIGH"},
    {desc="Bomb threat note left at festival dais; device recovered and disrupted by EOD.", urgency="HIGH"},
    {desc="Incense-resin contamination detected in upland reservoir; distribution halted for flush.", urgency="HIGH"},
    {desc="Mass brawl between Agnis celebrants and orthodox defenders overwhelms clinic triage.", urgency="HIGH"},
    -- CRITICAL
    {desc="False ‘oracle’ cry triggers stampede on sacred stair; multiple fatalities reported.", urgency="CRITICAL"},
    {desc="Armed zealot cell occupies a minor shrine and broadcasts demands for legal primacy; standoff in progress.", urgency="CRITICAL"},
    {desc="Coordinated incendiaries ignite devotional markets across two wards; citywide firebreaks ordered; War League support requested.", urgency="CRITICAL"},
    {desc="Serial IEDs along procession loop detonated by remote signal; martial law declared overnight.", urgency="CRITICAL"}
  }
  },
["Ephyra"] = {
  events = {
    -- LOW
    {desc="Market scales misread weights after power surge; municipal calibration sweep completed.", urgency="LOW"},
    {desc="Public fountain closed for algae film removal; reopened by noon.", urgency="LOW"},
    {desc="Pothole sink forms near depot gate; patched with quick-set binder.", urgency="LOW"},
    {desc="Low river flow trims ferry timetable; shuttle buses added for commuters.", urgency="LOW"},
    {desc="Warehouse mouse outbreak triggers targeted baiting; food bays sealed 24 hours.", urgency="LOW"},
    -- MEDIUM
    {desc="Freshwater intake fouled by algal mats; filters swapped and flow throttled.", urgency="MEDIUM"},
    {desc="Counterfeit grain stamps discovered; three silos quarantined for assay.", urgency="MEDIUM"},
    {desc="Quay crane gearbox jam delays containers; harbor crews rotate to manual derricks.", urgency="MEDIUM"},
    {desc="Data-center HVAC outage slows licensing and tax services; backup chiller trucked in.", urgency="MEDIUM"},
    {desc="Pillarion tournament heat stress overwhelms medics; fixture windows shifted to dusk.", urgency="MEDIUM"},
    {desc="Clogged storm drains cause localized street flooding; pump-out teams deployed.", urgency="MEDIUM"},
    -- HIGH
    {desc="Levee seepage noted after cloudburst; sandbag crews reinforce weak sections.", urgency="HIGH"},
    {desc="Mass fish kill reported downstream; illicit discharge suspected; environmental cordon set.", urgency="HIGH"},
    {desc="Hairline crack in truss at North Bridge; heavy vehicles rerouted pending splice plate.", urgency="HIGH"},
    {desc="Street-food contamination leads to gastro cluster; vendor recall and kitchen inspections underway.", urgency="HIGH"},
    {desc="Syndicate using barges to move stolen goods engages watch in gunfire; two suspects flee upriver.", urgency="HIGH"},


    -- CRITICAL
    {desc="Levee breach floods two low wards; boat rescues ongoing; TME spur closed.", urgency="CRITICAL"},
    {desc="Chemical spill from illicit warehouse enters canal; mass evacuation of riverside blocks.", urgency="CRITICAL"},
    {desc="Coordinated arson at grain silos threatens fuel depot; aerial water drops approved.", urgency="CRITICAL"},
    {desc="Sabotage at main pumping station knocks city water offline; War League secures perimeter during repairs.", urgency="CRITICAL"}
  }
  },
----------------------------------------------------------------------------
  -- Haifan Bassaridia (Major Cities)
   ----------------------------------------------------------------------------
   ----------------------------------------------------------------------------
   -- HAIFAN BASSARIDIA (MAJOR)
["Keybir-Aviv"] = {
  ----------------------------------------------------------------------------
   events = {
  ["Keybir-Aviv"] = {
    -- LOW (1–5)
     events = {
    {desc="Weighbridge miscalibration at ore gate delays three trucks; scales recalibrated by noon.", urgency="LOW"},
      {desc="Highly organized raiders ambush diamond convoys near Lake Morovia, entire guard unit lost.", urgency="HIGH"},
    {desc="Short power flicker stalls polishing lathes; UPS keeps vault climate stable.", urgency="LOW"},
      {desc="The Haifan Bassaridia Division engages in firefights against Stripping Path insurgent cells as it attempts to maintain control over the city's vital coral markets following the conclusion of Operation Ociatic.", urgency="MEDIUM"},
    {desc="Tour group crowding in Coral Market arcade causes minor scuffles; wardens open overflow lane.", urgency="LOW"},
      {desc="Mass theft spree devastates city’s main trade route, halting commerce with neighboring ports.", urgency="HIGH"},
     {desc="Coolant leak in one cutting bay prompts 30-minute evacuation; spill contained.", urgency="LOW"},
      {desc="Exposed Diamond Corp conspirators attempt a small-scale takeover, employing hired muscle at city gates.", urgency="LOW"},
    {desc="Counterfeit vendor badges detected at gem bazaar; offenders fined and ejected.", urgency="LOW"},
      {desc="A Hermes cult demands ritual sacrifices, terrorizing remote hamlets that rely on Keybir-Aviv’s markets.", urgency="CRITICAL"},
 
      {desc="Diamond forgery ring fuels panic, mass arrests spark retaliatory violence from hidden networks.", urgency="HIGH"},
    -- MEDIUM (6–11)
      {desc="Warlords use reef creatures to raid farmland, civilians forced to flee in droves.", urgency="MEDIUM"},
    {desc="Forgery ring pushes fake certification chips; 4 lots quarantined for assay.", urgency="MEDIUM"},
      {desc="Coordinated bombing flattens major warehouse district, city meltdown ensues amid chaos.", urgency="HIGH"},
    {desc="Acid leach line pinhole sprays workers; clinic treats mild burns; PPE audit ordered.", urgency="MEDIUM"},
      {desc="The Haifan Bassaridia Division arrests insurgent conspirators plotting to stage attacks against the city's coral markets in the aftermath of Operation Ociatic.", urgency="MEDIUM"},
    {desc="Diesel thefts from quarry pumps reduce output; night patrols reinforced.", urgency="MEDIUM"},
      {desc="A solar anomaly sets doomsday prophets ablaze, inciting riots at city docks, guard overwhelmed.", urgency="LOW"}
    {desc="Brownout across gem district after substation trip; rotating load-shed schedule posted.", urgency="MEDIUM"},
     }
    {desc="Broker protest over contract awards blocks customs door; negotiations set for morning.", urgency="MEDIUM"},
    {desc="Smugglers attempt coral-crate switcheroo at checkpoint; seizure triggers canal search.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Armed crew hijacks bullion coach on TME spur; escorts injured; line closed for sweep.", urgency="HIGH"},
    {desc="Cyanide sump overflow after cloudburst; downstream warning issued; booms deployed.", urgency="HIGH"},
    {desc="Coordinated warehouse break-ins target rough-stone stock; two guards disarmed.", urgency="HIGH"},
    {desc="Extortionists raid outlying hamlets for ‘security tithe’, disrupting mine supply routes.", urgency="HIGH"},
    {desc="IED discovered under Coral Market footbridge; EOD renders safe; cordon remains.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Multi-site assault hits Coral Market entrances during shift change; mass-casualty triage active; War League requested.", urgency="CRITICAL"},
    {desc="Saboteurs ignite solvent tanks at primary cutting house; block-wide evacuation ordered.", urgency="CRITICAL"},
    {desc="Rogue faction seizes waterworks to coerce gem guilds; citywide curfew imposed.", urgency="CRITICAL"},
     {desc="Mine-head blast collapses shaft gallery; dozens trapped; heavy rescue underway.", urgency="CRITICAL"}
  }
   },
   },
  ["Tel-Amin"] = {
["Tel-Amin"] = {
    events = {
  events = {
      {desc="Naval blockade from rival states traps vital supply ships, city stands on edge of famine.", urgency="CRITICAL"},
    -- LOW (1–5)
      {desc="Pirate king abducts top merchant heirs, demands city pay crippling ransom within days.", urgency="HIGH"},
    {desc="Fog delays dawn ferries; harbor tugs guide convoys at reduced speed.", urgency="LOW"},
      {desc="Hidden tomb with ancient remains discovered, multiple explorers hospitalized from unknown contamination (non-magical).", urgency="LOW"},
    {desc="Pilgrim queue congestion at shrine gate causes fainting spells; misting tents added.", urgency="LOW"},
      {desc="Host Spirit zealots torch older Stripping Path temples, city guard fights to contain widespread fires.", urgency="MEDIUM"},
    {desc="Loose mooring at Pier 6 scuffs two coasters; fenders replaced.", urgency="LOW"},
      {desc="Mass pilgrim influx from Mylecia overwhelms local defenses, infiltration suspected in massive crowds.", urgency="HIGH"},
    {desc="Unauthorized drone buzzes lighthouse; controller fined and equipment seized.", urgency="LOW"},
      {desc="Saboteurs destroy key trade outposts, city experiences resource shortages, morale dips severely.", urgency="CRITICAL"},
    {desc="Minor diesel spill near fish quay; booms deployed, no wildlife impact.", urgency="LOW"},
      {desc="Fortress gate toll revolt escalates, smugglers openly exchange fire with local garrison.", urgency="HIGH"},
 
      {desc="Rebel roadblocks use improvised explosives to halt all commercial transport, stalemate ongoing.", urgency="MEDIUM"},
    -- MEDIUM (6–11)
      {desc="Alarming prophecy triggers city panic, radical group occupies a major temple unopposed.", urgency="LOW"},
    {desc="Quay crane gearbox failure idles one berth; manual derricks activated to clear backlog.", urgency="MEDIUM"},
      {desc="Undersea caverns rumored to house enemy submersibles, threatening coastal shipping routes, city anxious.", urgency="MEDIUM"}
    {desc="Counterfeit harbor passes circulate among coastal traders; checkpoint inspections doubled.", urgency="MEDIUM"},
    }
    {desc="Reports of contraband transiting sea caves prompt night closure of inshore channel.", urgency="MEDIUM"},
    {desc="Chlorination fault at treatment works triggers 24-hour boil notice.", urgency="MEDIUM"},
    {desc="Protest over utility surcharges blocks customs road; dispersal without injuries.", urgency="MEDIUM"},
    {desc="Fiber backhaul nicked by dredger; port systems on contingency links.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Fast-skiff harassment of inbound freighter; harbor patrol repels with warning fire.", urgency="HIGH"},
    {desc="Arson at bonded warehouse ignites flammables; two blocks evacuated under smoke.", urgency="HIGH"},
    {desc="Stevedore strike halts container moves for one shift; mediation team seated.", urgency="HIGH"},
    {desc="Rival smuggling crews clash in back-canal; gunfire wounds bystanders.", urgency="HIGH"},
    {desc="Explosive cache uncovered under old slipway; controlled detonation at low tide.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Coordinated sabotage closes three trade outposts up-coast; port shifts to security posture Alfa; War League liaison on scene.", urgency="CRITICAL"},
    {desc="Explosive-laden speedboat rams fuel berth; multi-tank fire; mass evacuation of harbor ward.", urgency="CRITICAL"},
    {desc="Armed flotilla attempts blockade of harbor entrance; naval intercept requested.", urgency="CRITICAL"},
    {desc="Complex attack couples pier bombs with small-arms ambushes near shrine quarter; city under curfew.", urgency="CRITICAL"}
  }
   },
   },
  ["Diamandis"] = {
["Diamandis"] = {
    events = {
  events = {
      {desc="Merchants of the Valley of Diamonds forcibly close major mines, heavily arming security teams.", urgency="HIGH"},
    -- LOW (1–5)
      {desc="Diamond trade meltdown triggers violent faction warfare among top corporations, city watch outclassed.", urgency="CRITICAL"},
    {desc="Mint visitor line spillover blocks tram stop; ushers re-route foot traffic.", urgency="LOW"},
      {desc="Rogue excavators vanish in newly found tunnels, possibly claimed by contraband miners.", urgency="HIGH"},
    {desc="Refinery flare stains mural frontage; scheduled cleanup approved.", urgency="LOW"},
      {desc="Blood-infused smuggling racket uses raw diamonds, multiple victims discovered with diamond-laced wounds.", urgency="HIGH"},
    {desc="Counter queue scuffle at assay hall; no injuries reported.", urgency="LOW"},
      {desc="Armed rebels loot Diamandis central bank, steal gold reserves, city finances teeter on collapse.", urgency="MEDIUM"},
    {desc="Air-sensor false alarm in vault basement; system recalibrated.", urgency="LOW"},
      {desc="Explosive sabotage at Valley of Diamonds entry buries dozens of workers, panic ensues, guard cannot cope.", urgency="CRITICAL"},
    {desc="Tour hawkers fined for selling unlicensed ‘mine chips’ to visitors.", urgency="LOW"},
      {desc="Forced labor ring alleged to enslave unsuspecting laborers in remote shafts, no official rescue attempts yet.", urgency="LOW"},
 
      {desc="Major smuggling operation discovered shipping weaponized diamond shards to unknown buyer offshore.", urgency="MEDIUM"},
    -- MEDIUM (6–11)
      {desc="Riots over rumored diamond shortage, entire neighborhoods on lockdown by city guard.", urgency="HIGH"},
    {desc="Container seal tampering detected at river quay; six boxes quarantined.", urgency="MEDIUM"},
      {desc="Critical meltdown at diamond cutting facility, sabotage suspected, multiple casualties reported.", urgency="LOW"},
    {desc="Data breach at brokers’ guild compromises ten accounts; exchange halts session for audit.", urgency="MEDIUM"},
     }
    {desc="Power surge trips electro-refining line; two workers treated for shocks.", urgency="MEDIUM"},
    {desc="Smuggling route via abandoned culvert uncovered; patrols extended nightside.", urgency="MEDIUM"},
    {desc="Guild march over export quotas clogs central artery; dispersal by dusk.", urgency="MEDIUM"},
    {desc="Tanker hose failure leaks solvents; street closure for decon.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Armed raid on bonded vault foiled; suspects escape via canal; two guards wounded.", urgency="HIGH"},
    {desc="Explosive devices found beneath three customs scanners; EOD teams deployed across terminal.", urgency="HIGH"},
    {desc="Pirate cell reconstitutes in riverside warehouse row; firefight during joint sweep.", urgency="HIGH"},
    {desc="Counterfeit hallmark dies seized from clandestine mint; distribution ring disrupted.", urgency="HIGH"},
    {desc="Coordinated arsons hit logistics sheds near ore gate; firebreaks hold after two hours.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Multi-prong assault on smuggling depots resumes; heavy weapons reported; War League QRF requested.", urgency="CRITICAL"},
    {desc="VBIED detonates beside bullion carrier at bridge ramp; mass-casualty response underway.", urgency="CRITICAL"},
    {desc="Rebel commander attempts to seize radio mast and broadcast ultimatum; counter-assault in progress.", urgency="CRITICAL"},
     {desc="Sustained mortar harassment against river terminal forces full port shutdown.", urgency="CRITICAL"}
  }
   },
   },
  ["Jogi"] = {
["Jogi"] = {
    events = {
  events = {
      {desc="Armed caravans hijack farmland shipments, leaving Jogi’s breadbasket output in ruins.", urgency="HIGH"},
    -- LOW (1–5)
      {desc="Mysterious sabotage devastates Ale of the Night Brewery, paramilitary group claims responsibility.", urgency="CRITICAL"},
    {desc="Brewery CO₂ vent trips alarm during maintenance; staff shelter briefly.", urgency="LOW"},
      {desc="Gang-backed cattle theft sparks armed shootouts, farmland watch heavily strained.", urgency="HIGH"},
    {desc="Market stall collapse in wind gusts; three treated for bruises.", urgency="LOW"},
      {desc="Slave ring discovered capturing field workers at night, local militia outgunned in covert raids.", urgency="MEDIUM"},
    {desc="False rumor of ale contamination prompts brief returns; lab clears batches.", urgency="LOW"},
      {desc="Nomadic warband blocks Trans-Keltian railway near Jogi, halting southern shipments indefinitely.", urgency="HIGH"},
    {desc="Shunting delay at TME siding backs grain trucks one hour.", urgency="LOW"},
      {desc="Illicit Noctic distillery meltdown hints at terror involvement, farmland citizens desert homes.", urgency="LOW"},
    {desc="Unauthorized river fireworks ignite reedbed patch; put out by harbor team.", urgency="LOW"},
      {desc="Large orchard burnings cause near-famine conditions, city planners scramble for emergency supply lines.", urgency="HIGH"},
 
      {desc="Tribal Alperkin forces claim farmland ownership, forcibly expelling Jogi farmers, brutal standoffs erupt.", urgency="MEDIUM"},
    -- MEDIUM (6–11)
      {desc="Hatch Ministry infiltration rumored to fund radical movements, arrests made but leadership unknown.", urgency="LOW"},
    {desc="Counterfeit export seals found on ale pallets; customs seizes two containers.", urgency="MEDIUM"},
      {desc="Coordinated raiders sabotage railway lines, region’s agrarian distribution network threatened, city on red alert.", urgency="CRITICAL"},
    {desc="Canal lock jam strands four barges; towboats re-sequence traffic overnight.", urgency="MEDIUM"},
     }
    {desc="Fuel-pump thefts at co-op depots slow harvest haul; patrols expand.", urgency="MEDIUM"},
    {desc="Storm runoff floods low warehouse row; sandbag lines established.", urgency="MEDIUM"},
    {desc="Ranger–rancher dispute over grazing corridor causes highway blockade; mediated reopening.", urgency="MEDIUM"},
    {desc="Data-center HVAC failure at rail yard knocks out waybills; manual switch lists used.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Armed crews rob grain trucks on ring road; escorts wounded; curfew in outer ward.", urgency="HIGH"},
    {desc="Saboteurs torch malt silos at southern brewery; toxic smoke prompts neighborhood evacuation.", urgency="HIGH"},
    {desc="Rail sabotage loosens fishplates on TME outbound; trains halted pending sweep.", urgency="HIGH"},
    {desc="Smuggling cell uses river barges to move weapons under ale tarps; firefight at night quay.", urgency="HIGH"},
    {desc="Wind-shear microburst downs derrick at bulk pier; multiple injuries; crane audit ordered.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Supercell outbreak spawns tornado east of city; mass casualty incident declared; War League airlift requested.", urgency="CRITICAL"},
    {desc="Coordinated convoy ambush on farm roads severs food shipments; aerial overwatch deployed.", urgency="CRITICAL"},
    {desc="Armed group seizes rail control hut and threatens bridge demolition; EOD teams mobilized.", urgency="CRITICAL"},
     {desc="Rogue column attempts to occupy harbor office and levy ‘grain taxes’; joint operation clears building.", urgency="CRITICAL"}
  }
   },
   },
  ["Lewisburg"] = {
["Lewisburg"] = {
    events = {
  events = {
      {desc="Order of Rochefort remnants raid city depots, reviving old hostilities against Stripping Path followers.", urgency="HIGH"},
    -- LOW (1–5)
      {desc="Mass sabotage cripples the Trans-Bassaridia Railway at Lewisburg station, convoys stranded for days.", urgency="CRITICAL"},
    {desc="Signal hut vandalism causes minor platform delays; temporary dispatcher posted.", urgency="LOW"},
      {desc="Extremist loyalists vow restoration of Hammish rule, seize administrative buildings, watchers outnumbered.", urgency="HIGH"},
    {desc="Commuter tussle over queue cutting at TME ticket hall; medics treat one sprain.", urgency="LOW"},
      {desc="Secret black-market dealings in ex-Rochefort fortress, investigators vanish, city fears a bigger plot.", urgency="HIGH"},
    {desc="Night freight horn complaints trigger revised quiet-zone hours.", urgency="LOW"},
      {desc="Refugees fleeing forced labor by local militia in farmland, city attempts rescue mission amid chaos.", urgency="MEDIUM"},
    {desc="Stormwater backs up at underpass; pumps clear by evening.", urgency="LOW"},
      {desc="Late-night chanting around old Rochefort crypt incites panic, though no 'supernatural' sign found—guards suspect cult activity.", urgency="LOW"},
    {desc="Lost-property scare at concourse resolved; suitcase empty.", urgency="LOW"},
      {desc="Corrupt officials indicted for supplying arms to rebel brigades, municipal meltdown underway.", urgency="MEDIUM"},
 
      {desc="Armed paramilitaries sabotage local factories, crippling city’s fragile infrastructure as intimidation tactic.", urgency="HIGH"},
    -- MEDIUM (6–11)
      {desc="Highly infectious plague found in fortress tunnels, quarantines enforced, potential bio-sabotage suspected.", urgency="CRITICAL"},
    {desc="Waybill server hiccup corrupts manifests; manual re-key delays five departures.", urgency="MEDIUM"},
      {desc="Unverified bomb threat empties city’s main marketplace, thousands displaced, no group claims it.", urgency="LOW"},
    {desc="Counterfeit rail passes seized at turnstiles; forensic audit of printers underway.", urgency="MEDIUM"},
     }
    {desc="Track geometry defect found on outbound main; 40 km/h slow order until tamping completed.", urgency="MEDIUM"},
    {desc="Protest over fare hikes blocks South Gate; dispersal peaceful after city pledge to review.", urgency="MEDIUM"},
    {desc="Fuel leak at yard tank farm triggers hazmat cordon; no ignition.", urgency="MEDIUM"},
    {desc="Freight derailment in industrial siding spills plastics; local roads closed for cleanup.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Phishing attack on TME scheduler causes cascading delays; cyber team isolates nodes.", urgency="HIGH"},
    {desc="Coordinated cable theft darkens two suburbs; mobile generators dispatched to clinics.", urgency="HIGH"},
    {desc="Riot near depot after rumor of canceled commuter service; mounted patrol restores order.", urgency="HIGH"},
    {desc="Explosives found under bridge truss on east approach; line suspended for EOD sweep.", urgency="HIGH"},
    {desc="Contagious respiratory cluster detected in yard crews; quarantine ring set; testing ramped.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Rail sabotage collapses trestle on river crossing; passenger coaches stranded; mass rescue underway.", urgency="CRITICAL"},
    {desc="Biothreat hoax triggers stampede in central concourse; multiple crush injuries.", urgency="CRITICAL"},
    {desc="Armed cell bombs signal interlocking and assaults station police; War League manipulus requested.", urgency="CRITICAL"},
     {desc="Mandatory quarantine reinstated after explosive case growth; emergency shelters opened across wards.", urgency="CRITICAL"}
  }
   },
   },


   ----------------------------------------------------------------------------
   ----------------------------------------------------------------------------
   -- HAIFAN BASSARIDIA (MINOR)
   -- Haifan Bassaridia (Minor Cities)
   ----------------------------------------------------------------------------
   ----------------------------------------------------------------------------
  ["Thermosalem"] = {
["Thermosalem"] = {
     events = {
  events = {
      {desc="A group threatens to contaminate hot springs with industrial toxins if demands go unmet.", urgency="HIGH"},
    -- LOW (1–5)
      {desc="Armed pilgrims storm spa district, taking physicians as hostages for leverage.", urgency="MEDIUM"},
    {desc="Mineral smell shift at a minor spring triggers precautionary closure; tests return normal by evening.", urgency="LOW"},
      {desc="Militant sect vows to demolish hydrotherapy complex, sabotage uncovered in drainage tunnels.", urgency="CRITICAL"},
    {desc="Small landslip blocks a hillside footpath between bathhouses; crews clear the trail before dusk.", urgency="LOW"},
      {desc="Multiple visitors vanish near secluded bathhouse corridors, city suspecting forced labor or kidnapping.", urgency="LOW"},
    {desc="Unlicensed street healers crowd a shrine arcade, causing congestion; permits checked and stalls moved.", urgency="LOW"},
      {desc="Widespread doping incident at main hot spring, frenzied attackers assault bystanders, guard calls for backup.", urgency="MEDIUM"},
    {desc="Steam-vent burp scalds two bathers near a public pool; hazard perimeter posted.", urgency="LOW"},
      {desc="Bombing at spa dome kills dozens, local law enforcement overwhelmed by unknown perpetrators.", urgency="HIGH"},
    {desc="Pilgrim queues back up at dawn after a signage mix-up; overflow corridors opened.", urgency="LOW"},
      {desc="Traditional priests detain progressive healers over 'heresy' accusations, tensions rise sharply.", urgency="MEDIUM"},
 
      {desc="Strange illusions near dawn possibly caused by unknown hallucinogens, rescue attempts fail amid confusion.", urgency="LOW"},
    -- MEDIUM (6–11)
      {desc="Primary mineral well collapses, sabotage strongly suspected, city’s wellness economy in jeopardy.", urgency="HIGH"},
    {desc="Trace contamination detected in a municipal bath; 24-hour sanitation cycle and targeted recalls of herbal infusions.", urgency="MEDIUM"},
      {desc="Coordinated extremist group kidnaps incoming tourists for ransom or forced labor, city has no immediate solution.", urgency="CRITICAL"}
    {desc="Counterfeit Hostian blessing tokens surface in the bathhouse market; confiscations spark brief scuffles.", urgency="MEDIUM"},
    }
    {desc="Localized power dip darkens a spa dome mid-session; orderly evacuation executed without injury.", urgency="MEDIUM"},
     {desc="Boardwalk subsidence over a mud pot injures four; structural inspections expand citywide.", urgency="MEDIUM"},
    {desc="Rival pilgrim groups trade blows near a mountainside shrine; baton dispersal, no arrests.", urgency="MEDIUM"},
    {desc="Geothermal gas seeping into a dormitory causes mild poisoning; two blocks ventilated and sealed overnight.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Arson attempt inside a hydrotherapy complex triggers sprinklers; smoke damage forces weeklong closure.", urgency="HIGH"},
    {desc="Disinformation about ‘cursed waters’ causes near-stampede at a popular spring; crowd control activated.", urgency="HIGH"},
    {desc="Blackmail ring installs hidden cameras in bath changing rooms; coordinated raids make 12 arrests.", urgency="HIGH"},
    {desc="Dozens fall ill after tainted ritual teas sold near springs; rogue vendor network dismantled.", urgency="HIGH"},
    {desc="Sabotage suspected as a primary well’s output collapses; rationing introduced for outer wards.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Three synchronized IEDs planted across the spa district; two rendered safe, one partially detonates—mass-casualty triage underway; War League support requested.", urgency="CRITICAL"},
    {desc="Hydrogen sulfide surge in a subterranean bath drops multiple patrons; HazMat ventilates and seals caverns.", urgency="CRITICAL"},
    {desc="Armed zealots seize a Hostland spring and broadcast demands for doctrinal recognition; standoff declared.", urgency="CRITICAL"},
    {desc="Rain-driven slope failure ruptures hot-spring galleries and floods lower wards; emergency shelters opened.", urgency="CRITICAL"}
  }
  },
["Akróstadium"] = {
  events = {
    -- LOW (1–5)
    {desc="Dust devil downs flag masts on the drill square; two cadets treated for scrapes.", urgency="LOW"},
    {desc="Stable-hay flare from a lantern singes rafters; fire bucket line extinguishes within minutes.", urgency="LOW"},
    {desc="Novice overexertion wave clogs infirmary after forced march; training tempo adjusted.", urgency="LOW"},
    {desc="Supply caravan arrives late after switchback washouts; rationing invoked for one mess.", urgency="LOW"},
    {desc="Demonstration pyrotechnic misfires during tactics lecture; courtyard evacuated briefly.", urgency="LOW"},
 
    -- MEDIUM (6–11)
    {desc="Armory inventory mismatch triggers audit; two missing crates later found in mislogged storage.", urgency="MEDIUM"},
    {desc="Unauthorized quad-rotor drones spotted over the parade ground; three seized, pilots detained.", urgency="MEDIUM"},
    {desc="Mess-hall bartering ring trades ration chits for contraband stimulants; arrests carried out.", urgency="MEDIUM"},
    {desc="Cliff path spalls onto a mule track; access restricted to daylight until rock-bolt work completes.", urgency="MEDIUM"},
    {desc="Climbing-wall anchor tampered with; three trainees injured—courses suspended pending inspection.", urgency="MEDIUM"},
    {desc="Signal jammer hidden near review stand discovered before parade; frequency plan rotated.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Insurgent skirmishers harass a watchpost from scrub hills; one guard wounded, red alert issued.", urgency="HIGH"},
    {desc="Explosive charges found beneath grandstand benches on the eve of martial games; EOD conducts disrupts.", urgency="HIGH"},
    {desc="Rogue instructor cadre attempts barracks takeover; MPs quell mutiny and secure armory.", urgency="HIGH"},
    {desc="Fuel-farm leak ignites brush up-slope, threatening an outer sally-port; aerial water drops requested.", urgency="HIGH"},
    {desc="Dissidents seize the signal tower and jam base comms; tower retaken after stairwell assault.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Coordinated coup faction forces inner-gate breach and seizes the magazine; War League Manipulus requested for clearance.", urgency="CRITICAL"},
    {desc="VBIED rams the fortress gatehouse during shift change; numerous casualties and wall damage reported.", urgency="CRITICAL"},
    {desc="Drone swarm strikes command spire and substation; blackout across terraces; backup nets activated.", urgency="CRITICAL"},
    {desc="Mortar team on ridge pins units in the lower courts; counter-battery and air support tasked.", urgency="CRITICAL"}
  }
  },
["Sufriya"] = {
  events = {
    -- LOW (1–5)
    {desc="Storm-surge watch issued; foreshore stalls relocated inland for the market day.", urgency="LOW"},
    {desc="Two suspicious manifests flagged at customs; containers re-inspected with minor delays.", urgency="LOW"},
    {desc="Forklift tire blowout on cracked quay slab; lane coned off and patched.", urgency="LOW"},
    {desc="Unpermitted ritual on a jetty blocks crew access; officiants fined and site cleared.", urgency="LOW"},
    {desc="Light diesel sheen near barge slip; absorbent booms deployed, no wildlife impact.", urgency="LOW"},
 
    -- MEDIUM (6–11)
    {desc="Dockworker sit-in over hazard pay halts one pier for a shift; mediation scheduled.", urgency="MEDIUM"},
    {desc="Counterfeit customs stamps seized from brokers’ office; audits widened to three agencies.", urgency="MEDIUM"},
    {desc="Brownouts hit reefer stacks in the export yard; backup gensets spun up.", urgency="MEDIUM"},
    {desc="Fever cluster among stevedores prompts mass testing and limited quay quarantine.", urgency="MEDIUM"},
    {desc="Allegations of fee-skimming in the harbormaster’s office spark street protests.", urgency="MEDIUM"},
    {desc="Quay crane gearbox jam stalls two feeders; manual derricks relieve backlog.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Hidden slave market uncovered in warehouse row; large rescue op triggers violent clashes.", urgency="HIGH"},
    {desc="Assassination attempt on a high-ranking temple official outside a shrine; citywide alert declared.", urgency="HIGH"},
    {desc="Privateer skiffs harass inbound coasters at inlet mouth; patrol boats repel with warning fire.", urgency="HIGH"},
    {desc="Rival smuggling crews trade gunfire in back-canals; bystanders injured in crossfire.", urgency="HIGH"},
    {desc="Storm surge breaches a seawall segment; emergency pumps and sandbag lines deployed.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Coordinated arson attacks ignite bonded warehouses; smoke plumes force mass evacuations of the harbor ward.", urgency="CRITICAL"},
    {desc="Crowds defy a quarantine order at Pier 3; riot control fails—War League Manipulus requested to restore order.", urgency="CRITICAL"},
    {desc="Explosive-laden container discovered at the ro-ro ramp; terminal locked down for EOD disruption.", urgency="CRITICAL"},
    {desc="Armed flotilla attempts an inlet blockade; naval **Tabur-i Derya** support requested for intercept and clearance.", urgency="CRITICAL"}
  }
   },
   },
  ["Akróstadium"] = {
["Lykopolis"] = {
    events = {
  events = {
      {desc="High-ranking War League commanders revolt, arresting novice officers mid-training, city paralyzed.", urgency="HIGH"},
    -- LOW (1–5)
      {desc="Toxic agent found in monastery dorm vents, multiple trainees hospitalized, sabotage suspected.", urgency="CRITICAL"},
    {desc="Methane monitor blips in an old drift; ventilation purged as precaution.", urgency="LOW"},
      {desc="Rampaging water buffalo tear down perimeter walls, stable guards pinned, city watchers outmanned.", urgency="HIGH"},
    {desc="Yard shunter derails a coal skip at walking speed; no injuries, crane rerails within hour.", urgency="LOW"},
      {desc="Livestock plague rumored to be engineered, local ranchers demand city intervention, fear famine soon.", urgency="MEDIUM"},
    {desc="Night horn complaints from the loading loop lead to revised quiet-hours.", urgency="LOW"},
      {desc="A star champion assassinated mid dueling demonstration, public flees in terror, law enforcement scrambles.", urgency="HIGH"},
    {desc="Weighbridge misreads tender mass; recalibration and re-weigh complete by midday.", urgency="LOW"},
      {desc="Armed Bassarid rebels seize Temple of Kan Zen, forcibly converting novices to their cause.", urgency="MEDIUM"},
    {desc="Fence breach by scrap-pickers at a siding; trespassers ejected and section re-secured.", urgency="LOW"},
      {desc="Smuggled armaments uncovered in stables, hinting at a brewing coup or infiltration ring.", urgency="LOW"},
 
      {desc="At midnight, conspirators in monastery crypt plan city takeover, watchers uncertain of real threat size.", urgency="CRITICAL"},
    -- MEDIUM (6–11)
      {desc="Barricade set up on main roads with hidden explosives, cutting off supply caravans indefinitely.", urgency="MEDIUM"},
    {desc="Roof spall in a secondary seam injures two; adit sealed and crews reassigned.", urgency="MEDIUM"},
      {desc="Mass chanting incites violent hysteria in stadium grounds, city watch outnumbered by rioters.", urgency="LOW"}
    {desc="Vent-fan trip raises dust concentrations; production paused for duct inspection.", urgency="MEDIUM"},
    }
    {desc="Hairline rail crack on the TME spur imposes a slow order; ultrasonic scan scheduled.", urgency="MEDIUM"},
    {desc="Wash-plant overflow after cloudburst threatens creek; containment berms raised.", urgency="MEDIUM"},
    {desc="Fuel-theft ring targeting mine vehicles dismantled after night surveillance.", urgency="MEDIUM"},
    {desc="Union march over safety budgets encircles the coal exchange; minor scuffles reported.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Arson at an open coal stack produces towering smoke; residential blocks advised to shelter.", urgency="HIGH"},
    {desc="Gas pocket blowout rocks a working face; six miners evacuated with injuries.", urgency="HIGH"},
    {desc="Syndicate extorts haulers at the weighbridge; armed escorts added to outbound convoys.", urgency="HIGH"},
    {desc="Sabotaged trestle bolts discovered ahead of dawn freight; line closed for emergency repair.", urgency="HIGH"},
    {desc="Explosives planted beneath a pithead elevator; EOD renders safe and locks the shaft.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Major collapse in the main seam traps dozens; War League engineering vehicles requested for mass rescue.", urgency="CRITICAL"},
    {desc="Armed militants seize the control room and threaten to ignite a methane build-up; city enters emergency posture.", urgency="CRITICAL"},
    {desc="Tanker spill of reagent into the river triggers downstream evacuations and water shutoffs.", urgency="CRITICAL"},
    {desc="Coordinated attacks strike the TME yard and conveyor galleries, cutting power and forcing a night-long curfew.", urgency="CRITICAL"}
  }
  },
 
  ----------------------------------------------------------------------------
  -- NEW CITIES IN BASSARIDIAN NORMARK
  ----------------------------------------------------------------------------
["Ardclach"] = {
  events = {
    -- LOW (1–5)
    {desc="Drifting ice scuffs a harbor pontoon; divers patch seams and reopen Berth 3.", urgency="LOW"},
    {desc="Shoreline frost-heave cracks quay paving; cones and speed limits posted.", urgency="LOW"},
    {desc="Unauthorized hobby drone over the drydock; operator fined and memory card impounded.", urgency="LOW"},
    {desc="Brief brownout in worker barracks during auroral activity; heaters restored within 20 minutes.", urgency="LOW"},
    {desc="Seal rookery blocks a service path; wardens reroute foot traffic until pups disperse.", urgency="LOW"},
 
    -- MEDIUM (6–11)
    {desc="Gale-driven surge floods warehouse row; pump crews hold water line behind sandbags.", urgency="MEDIUM"},
    {desc="Diamond-mine ventilation alert triggers evacuation; two treated for smoke inhalation.", urgency="MEDIUM"},
    {desc="Navigation beacon cabling stolen; three channel lights dark; temporary buoys laid under patrol.", urgency="MEDIUM"},
    {desc="Counterfeit work permits detected at shipyard gate; 14 detainees and audit widened.", urgency="MEDIUM"},
    {desc="Diesel contamination at fuel depot interrupts patrol sortie; backup stocks issued to quays.", urgency="MEDIUM"},
    {desc="Cliff road subsidence near the old garrison steps forces one-way traffic under watch.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Smuggler crew hides rifles in frozen-fish crates; firefight at Quay 7 leaves two officers wounded.", urgency="HIGH"},
    {desc="Shipyard crane gearbox seizes; boom collapse narrowly misses hull under refit; yard evacuated.", urgency="HIGH"},
    {desc="Mine gas pocket blows out in Mid-Drift 9; three miners rescued; shift suspended for inspection.", urgency="HIGH"},
    {desc="Cyberattack scrambles berth schedules and transponders; harbor VTS reverts to manual control.", urgency="HIGH"},
    {desc="Ice storm knocks power to garrison clinic; generator convoy escorted through whiteout.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Explosive-laden trawler attempts ramming at the breakwater; EOD neutralizes; harbor locked down; War League support requested.", urgency="CRITICAL"},
    {desc="Ambush seizes diamond convoy on the causeway to the ferry head; hostages reported; aerial overwatch tasked.", urgency="CRITICAL"},
    {desc="Legacy ordnance from the historic orbital strike dredged near the old repair yard; mass evacuation until clearance complete.", urgency="CRITICAL"},
    {desc="Sabotage in desalination intake tunnels collapses city water pressure; emergency distribution declared.", urgency="CRITICAL"}
  }
   },
   },
  ["Sufriya"] = {
["Riddersborg"] = {
    events = {
  events = {
      {desc="Merchant coalition tightens control over Abeisan Inlet shipping, forcibly extorting passing vessels.", urgency="HIGH"},
    -- LOW (1–5)
      {desc="Jezeri infiltration rumored in city hall, forging secret alliances with known pirate clans.", urgency="MEDIUM"},
    {desc="Snowdrifts close a lane on the North Esplanade; plows clear the route by noon.", urgency="LOW"},
      {desc="Hidden slave markets discovered in abandoned warehouses, local guard unprepared for large-scale rescue.", urgency="HIGH"},
    {desc="Rail crossing barrier sticks at Dock Spur; flaggers direct traffic during reset.", urgency="LOW"},
      {desc="Abeisan Inlet privateers sabotage docking facilities, fleets trapped, trade collapses overnight.", urgency="CRITICAL"},
    {desc="Ferry ramp hinge misalignment delays two car loads; welders complete adjustment.", urgency="LOW"},
      {desc="Opium dens bribe city watch to ignore mass kidnappings, scandal erupts in official ranks.", urgency="HIGH"},
    {desc="Polar foxes raid depot bins; wardens secure lids; no contamination reported.", urgency="LOW"},
      {desc="Border dispute with Imperial Federation escalates, armed militias gather near Sufriya outskirts.", urgency="LOW"},
    {desc="Student march at the civic square disperses peacefully after permit review.", urgency="LOW"},
      {desc="Elite spy ring assassinates multiple mid-level functionaries, city lacks cohesive leadership response.", urgency="MEDIUM"},
 
      {desc="Merchant mansions ransacked by clandestine group calling themselves Abeisan Liberators, property owners flee.", urgency="HIGH"},
    -- MEDIUM (6–11)
      {desc="Shipping manifests sabotaged systematically, local economy in crisis, no suspect named yet.", urgency="LOW"},
    {desc="Cold-snap substation trip triggers rolling brownouts; clinics prioritized on backup feeds.", urgency="MEDIUM"},
      {desc="Armed blockade halts traffic from Lake Morovia to southern strait, city council declares state of emergency.", urgency="CRITICAL"}
    {desc="Ice jam raises river level at Old Wharf; sandbag line established as precaution.", urgency="MEDIUM"},
     }
    {desc="TME yard software glitch misroutes wagons; manual sort restores departures.", urgency="MEDIUM"},
    {desc="Counterfeit passes seized at garrison gate; three arrests; ID audit widened.", urgency="MEDIUM"},
    {desc="Sea fog halts strait ferries; freight backlog diverted to overland detours.", urgency="MEDIUM"},
    {desc="Apartment gas leak prompts block evacuation; repairs completed by evening.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Roadside IED discovered along the Normark–Lindley Passage; EOD disruption and overnight closure.", urgency="HIGH"},
    {desc="Convoy ambushed on forest road toward Sjorsborg; two escorts wounded; air medevac lifts casualties.", urgency="HIGH"},
    {desc="Bridge de-icing failure triggers multi-vehicle collision on east span; mass casualty response.", urgency="HIGH"},
    {desc="Cyberattack on signal interlocking causes false-clear indications; district reverts to manual block.", urgency="HIGH"},
    {desc="Arms-smuggling ring using fishing skiffs raided in harbor flats; suspects exchange fire with watch.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Multi-site assault hits the TME terminus and passenger concourse; triage surge; War League manipulus requested.", urgency="CRITICAL"},
    {desc="Fuel-depot sabotage ignites tank farm near docks; two wards evacuated under smoke.", urgency="CRITICAL"},
    {desc="Drone swarm strikes garrison comms masts and repeater sites; citywide emergency as networks degrade.", urgency="CRITICAL"},
     {desc="Blizzard collapses highline towers and freezes intake pumps; hospitals on generator; disaster posture declared.", urgency="CRITICAL"}
  }
   },
   },
   ["Lykopolis"] = {
 
     events = {
   -- Caledonian City-States
      {desc="Priestess of Agripinilla imposes heavy-handed martial orders, forcibly enlisting entire neighborhoods.", urgency="HIGH"},
["Notranskja"] = {
      {desc="Mylecian Coal Ports infiltration unmasked conspiracy to overthrow city government from within.", urgency="MEDIUM"},
  events = {
      {desc="Gruesome ceremonies rumored in defunct coal mines, kidnappings indicate possible forced labor or executions.", urgency="HIGH"},
    -- CRITICAL (1–5)
      {desc="Stripping Path militants sabotage excavation tunnels, burying dozens, city resources stretched thin.", urgency="CRITICAL"},
     {desc="Coordinated arson–sabotage at White Ruby grain elevators sparks dust flashover; City Watch and depot foam tenders halt extension to rail sidings.", urgency="CRITICAL"},
      {desc="Bassarid loyalists brawl with local Divinist protesters, chaos in city squares, multiple injuries.", urgency="LOW"},
    {desc="Armed crew attempts stipend-voucher heist at Temple Bank kiosk beside agrimarket; Horjin patrol car locks the street and Tadpole VT-UAVs chase getaway van into snowfields.", urgency="CRITICAL"},
      {desc="Fenrir sympathizers rumored near the main shrine, vantage points compromised, leadership unsettled.", urgency="HIGH"},
    {desc="Contaminant plume detected in herb-drying barns after illicit solvent dump; mass nausea cases reported—boil-water and market-closure orders issued.", urgency="CRITICAL"},
      {desc="Several city officials indicted for extorting coal miners, paramilitary squads deployed to quell unrest.", urgency="MEDIUM"},
    {desc="Blizzard shear derails two hopper wagons on Trans-Morovian spur; magnetically braked consist stabilized while hypothermia evac underway.", urgency="CRITICAL"},
      {desc="Grassroots agitators push for Lykopolis independence, stashing weapons in disused mineshafts, watchers find partial evidence.", urgency="MEDIUM"},
    {desc="Encrypted drone swarm probes perimeter of White Ruby distribution yard; counter-UAS net and signal jammer grid force crash-landings in peat bog.", urgency="CRITICAL"},
      {desc="Masked zealots disrupt daily worship, forcibly 'reforming' unwilling citizens, fosters high tension.", urgency="LOW"},
 
      {desc="Major sabotage at prime coal shipping port, forging supply chain collapses, city meltdown imminent.", urgency="CRITICAL"}
    -- HIGH (6–10)
     }
    {desc="Voucher registry latency stalls redemption at farmers’ hall; mobile counters deployed, Temple Bank auditors verify batch integrity.", urgency="HIGH"},
    {desc="Cold-chain failure in meat packing sheds after substation trip; backup gensets spin up and inspectors cull compromised lots.", urgency="HIGH"},
    {desc="Smuggling ring swaps investor scrip for counterfeit receipts; market syndics seize stall and freeze accounts pending arbitration.", urgency="HIGH"},
    {desc="Wolfpack sightings along northern haul road spook haulage teams; dusk curfew and armed outriders added to convoy SOP.", urgency="HIGH"},
    {desc="Silo scaffold icing causes panel shed; safety cordon and rope teams clear catwalks before dawn opening.", urgency="HIGH"},
 
    -- MEDIUM (11–15)
    {desc="Frost fog closes aerostat pad; postal drops diverted to rail until visibility improves.", urgency="MEDIUM"},
    {desc="Herb-auction backlog clogs quay sheds awaiting lake ferry slots; investor brokers stagger lot releases by ward.", urgency="MEDIUM"},
    {desc="Unauthorized burners spotted near peat reserve; wardens extinguish and cite three for fuel theft.", urgency="MEDIUM"},
    {desc="Farm-to-port convoy backed up by jackknifed lorry at timber bridge; pulley team resets trailer and reopens one-way flow.", urgency="MEDIUM"},
    {desc="Market scales audit finds tampered weights at two stalls; licenses suspended and restitution ordered.", urgency="MEDIUM"},
 
    -- LOW (16–20)
    {desc="Community grain-mill marathon draws crowds; steward lanes mark emergency egress.", urgency="LOW"},
    {desc="Voucher literacy clinic oversubscribed; extra session scheduled at cooper hall.", urgency="LOW"},
    {desc="Lantern-sled parade overruns market crescent; barriers extended for next cycle.", urgency="LOW"},
    {desc="Ice fog etches rail signal lenses; maintenance crews polish and reseal housings.", urgency="LOW"},
    {desc="Stray dogs trail butcher carts; animal control sets humane pens off main lane.", urgency="LOW"}
  }
},
["Slevik"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Amber shaft collapse traps eight cutters; mine rescue rigs descend while medics stage at headframe.", urgency="CRITICAL"},
    {desc="Pressure-ridged sea-ice breaks harbor boom and crushes barge berth; Fjord Pilots redirect traffic and deploy tugs to hold floes clear.", urgency="CRITICAL"},
    {desc="Militant cell raids bonded amber warehouse to mask contraband exfil; Keltia Command MPs interdict and secure quay.", urgency="CRITICAL"},
    {desc="Fuel depot flash fire near winch lines threatens quay cranes; fixed-foam deluge activates and isolates tanks.", urgency="CRITICAL"},
    {desc="Explosive device discovered under customs weighbridge for Amber Ports convoy; EOD renders safe, quay evacuated during sweep.", urgency="CRITICAL"},
 
    -- HIGH (6–10)
    {desc="Invoice-spoof campaign targets Amber Ports clearinghouse; compliance desk rotates staff to manual verification queue.", urgency="HIGH"},
    {desc="Polar bear incursion around outer bunders; wardens tranquilize and tow animal off ice road.", urgency="HIGH"},
    {desc="Wind shear tears tarp stacks; flying debris risks line workers—operations paused to retie cargo.", urgency="HIGH"},
    {desc="Illicit dredge skiff grazes protected kelp beds; harbor court fines master and impounds gear.", urgency="HIGH"},
    {desc="Bulk-amber drying kiln overtemps after sensor fault; plant auto-dump quenches charge and flags recalibration.", urgency="HIGH"},
 
    -- MEDIUM (11–15)
    {desc="Blowing snow blinds beacons on north approach; lighthouse crew scrapes lenses and boosts lamp output.", urgency="MEDIUM"},
    {desc="Queue snarl at passport hut from cruise tender; second window opened and foot-traffic split by ward.", urgency="MEDIUM"},
    {desc="Amber cutters’ guild election draws noisy rally; stewards cordon square and keep quay road open.", urgency="MEDIUM"},
    {desc="Harbor seal colony relocates to pilot steps; barriers erected to deter tourist crowding.", urgency="MEDIUM"},
    {desc="Icing on crane booms halts lifts; de-ice crews warm joints and resume staggered shifts.", urgency="MEDIUM"},
 
    -- LOW (16–20)
    {desc="Lantern regatta rehearsal tangles pennants in gusts; organizers issue shorter lines.", urgency="LOW"},
    {desc="Amber polishing dust coats arcade; sweepers shift to wet method after hours.", urgency="LOW"},
    {desc="Fisherfolk complaint over new net gauge posted; mediation slated next watch.", urgency="LOW"},
    {desc="Quay musicians block hose cabinets; moved to designated alcove.", urgency="LOW"},
    {desc="School tour overruns weighbridge lane; guides reroute to museum deck.", urgency="LOW"}
  }
},
["Fanghorn"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="UXO uncovered in hillside drainage from past Fanghorn campaigns; perimeter sealed while EOD teams vent and detonate safely.", urgency="CRITICAL"},
    {desc="Incendiary attack against Fange Velvet processing loft during night shift; sprinkler mains hold, arson squad pursues suspects into pine belt.", urgency="CRITICAL"},
    {desc="Sniper pair targets gendarme watchpost above funicular; counter-snipers neutralize and evacuate tourists from ridge path.", urgency="CRITICAL"},
    {desc="Landslip triggered by illegal quarry blasting cuts cliff road; rock-bolting rigs and mountain engineers stabilize buttress.", urgency="CRITICAL"},
    {desc="Tanker lorry jackknifes on switchback and leaks solvent toward river intake; hazmat berms set and waterworks closed pending flush.", urgency="CRITICAL"},
 
    -- HIGH (6–10)
    {desc="Pilgrim-healer fair overwhelms clinic square; crowd lanes and triage gazebo erected to thin queues.", urgency="HIGH"},
    {desc="Counterfeit velvet-remedy vials seized at market stairs; wardens trace lot numbers to rogue workshop.", urgency="HIGH"},
    {desc="Cable car stalls mid-span after gearbox overheat; rope techs brake cabin and rappel supplies to passengers.", urgency="HIGH"},
    {desc="Poachers strip antler from preserve margin; rangers intercept quad-bikes and impound gear.", urgency="HIGH"},
    {desc="Power sags trip tunnel ventilators on lower loop; portable extractors rotated through galleries.", urgency="HIGH"},
 
    -- MEDIUM (11–15)
    {desc="Highland football derby funnels crowds into narrow lanes; one-way footbridges declared for post-match egress.", urgency="MEDIUM"},
    {desc="Unauthorized relic stall pops up by shrine stair; inspectors seize etchings and issue fines.", urgency="MEDIUM"},
    {desc="Feral goat herd blocks ridge trail; shepherd drones haze animals back to pasture.", urgency="MEDIUM"},
    {desc="Tour bus radiator boil-over at panorama bend; breakdown lane coned and tow dispatched.", urgency="MEDIUM"},
    {desc="Clinic receives batch of expired tinctures; pharmacists quarantine and notify brokers.", urgency="MEDIUM"},
 
    -- LOW (16–20)
    {desc="Lantern-walk congestion at cliff overlook; stewards extend rope barriers.", urgency="LOW"},
    {desc="Street drummers occupy steps above funicular; relocated to terrace stage.", urgency="LOW"},
    {desc="Wind-loosened slate tiles near guildhall; cordon placed and roofers scheduled.", urgency="LOW"},
    {desc="Lost hikers trigger beacon after dusk; patrol guides them to wayhouse.", urgency="LOW"},
    {desc="Market cat colony raids fishmonger scraps; pest-control arranges adoption drive.", urgency="LOW"}
  }
},
["Sårensby"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Attempted breach at Sårensby Arsenal pattern-shop; guard platoon secures toolroom while Keltia Command investigators sweep for insider aid.", urgency="CRITICAL"},
    {desc="Sabotage on Trans-Keltian Express munitions consist—bridge sensors flag tamper bolts; convoy halted and Horjin CV56(N) escorts establish perimeter.", urgency="CRITICAL"},
    {desc="Explosive UAV dives at Sårensby Depot roof; counter-UAS lasers disable over fjord—debris recovery boat launched.", urgency="CRITICAL"},
    {desc="Cyberattack on stipend kiosks in dockyard quarter causes payout outages; offline issuance activated and forensics isolate malware node.", urgency="CRITICAL"},
    {desc="Container feeder scrapes channel marker in crosswind and loses steerage; tug triad pins bow and averts collision with ferry.", urgency="CRITICAL"},
 
    -- HIGH (6–10)
    {desc="Rolling blackout after busbar fault in depot substation; priority feeds to drydocks and arsenal lines restored within the watch.", urgency="HIGH"},
    {desc="Counterfeit port IDs detected at turnstiles; contractor audit and badge re-issuance ordered across three yards.", urgency="HIGH"},
    {desc="Hazmat leak from paint shed near slipway; foam units deploy and storm drains plugged.", urgency="HIGH"},
    {desc="Union picket slows shift change at crane row; arbitration tabled for second watch.", urgency="HIGH"},
    {desc="Sudden squall topples yard stacks; reach-stackers restack under wind-limit rules.", urgency="HIGH"},
 
    -- MEDIUM (11–15)
    {desc="Harbor pilotage backlog after fog; arrival slots resequenced and ferry timetable trimmed.", urgency="MEDIUM"},
    {desc="Depot gate congestion during stipend redemption hour; stewards convert two lanes to pedestrian flow.", urgency="MEDIUM"},
    {desc="UXO dredged from old quay; cordon set until EOD scuttles offshore.", urgency="MEDIUM"},
    {desc="Tadpole VT-UAV detects unauthorized night swimmers near drydock caissons; patrol boats warn off and cite trespassers.", urgency="MEDIUM"},
    {desc="Road salt shortage pinches hill wards; convoy fetches supply from inland depot.", urgency="MEDIUM"},
 
    -- LOW (16–20)
    {desc="Lantern regatta signup booth crowds footbridge; marshals extend queue maze.", urgency="LOW"},
    {desc="Festival buskers block stipend hall steps; moved to arcade niche.", urgency="LOW"},
    {desc="Routine mussel scraping slows ferry cycle; revised departure board posted.", urgency="LOW"},
    {desc="Quay gulls foul nav cams; fresh-water sprayers added to housings.", urgency="LOW"},
    {desc="Volunteer drill at siren towers draws onlookers; information desk set beside gate.", urgency="LOW"}
  }
},
 
["Skøda"] = {
  events = {
    -- LOW (1–5)
    {desc="Frost-heave tilts milepost stones on the high trail; survey crew resets markers before dusk.", urgency="LOW"},
    {desc="Goatherds trespass in monastery herb plots; hands fined and stock returned.", urgency="LOW"},
    {desc="Scree-clearing crews briefly close the pilgrim traverse; detour posted via lower notch.", urgency="LOW"},
    {desc="Festival permit mix-up over rope course slots; stewards spread spectators along ridge.", urgency="LOW"},
    {desc="Climber queue congestion at Iron Rungs; marshals open an overflow staging ledge.", urgency="LOW"},
 
    -- MEDIUM (6–11)
    {desc="Rockfall blocks mule path below Glacier Gate; rope team drills and clears chockstones.", urgency="MEDIUM"},
    {desc="Unauthorized rare-earth dig near moraine wall collapses trench; two treated for fractures.", urgency="MEDIUM"},
    {desc="Cableway cabin stalls at mid-span after sensor fault; crews haul to nearest tower.", urgency="MEDIUM"},
    {desc="Outbreak of camp gastro traced to unboiled meltwater at Shelters 3–4; sanitation sweep enacted.", urgency="MEDIUM"},
    {desc="Timber bridge at Pastor's Cut found rotten; closure while trestle is re-decked.", urgency="MEDIUM"},
    {desc="Poacher pair snare chamois on sanctuary slopes; rangers seize quads and issue fines.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Illegal blasting undermines lateral moraine; tarn levee slumps and downstream trail evacuated.", urgency="HIGH"},
    {desc="Funicular brake glazing detected on descent; line suspended pending full inspection.", urgency="HIGH"},
    {desc="Bandits ambush salt convoy at Cloud Bench; escorts trade fire, two wounded.", urgency="HIGH"},
    {desc="Leachate from clandestine ore heap enters creek; boil-water order for two hamlets.", urgency="HIGH"},
    {desc="Cornice-control shot misfires and triggers partial slab release; search teams sweep runout.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Avalanche buries High Pass road-cut after cornice failure; multiple missing; mass SAR alert.", urgency="CRITICAL"},
    {desc="Explosive charges discovered on Cable Tower 3 baseplates; EOD disrupts; ridge cordon maintained.", urgency="CRITICAL"},
    {desc="Rock-glacier surge shears the valley pipeline; upstream hamlets isolated; emergency tanks deployed.", urgency="CRITICAL"},
    {desc="Gunmen seize tollhouse at Saddle Gate to extort caravans; War League requested for clearance.", urgency="CRITICAL"}
  }
},
 
["Eikbu"] = {
  events = {
    -- LOW (1–5)
    {desc="Rope-bridge planks replaced above Tarn Nar; 30-minute holds posted.", urgency="LOW"},
    {desc="Reindeer herd wanders into village square; shepherd drones guide animals back to range.", urgency="LOW"},
    {desc="Museum humidifier fault fogs display cases; collection sealed and sensors recalibrated.", urgency="LOW"},
    {desc="Lost pilgrim located via beacon near Peridot Scree; escorted to shelter.", urgency="LOW"},
    {desc="Seasonal trailhead signboards refreshed; brief parking congestion.", urgency="LOW"},
 
    -- MEDIUM (6–11)
    {desc="Scree slide covers the mule-grade; shovel crews and a loader reopen by dusk.", urgency="MEDIUM"},
    {desc="Unauthorized adit found in permafrost lens; CO₂ build-up; entrance blasted shut.", urgency="MEDIUM"},
    {desc="Hydro station icing forces rolling brownouts; clinics prioritized on backup.", urgency="MEDIUM"},
    {desc="Equipment theft ring targets crampon lockers; three arrests after sting.", urgency="MEDIUM"},
    {desc="Feral dog pack harasses hamlet outskirts; vaccination clinic and patrols deployed.", urgency="MEDIUM"},
    {desc="Fraudulent ‘guide’ badges seized at lower cable lift; fines issued.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Cornice collapse injures two climbers on North Face; airlift to valley clinic.", urgency="HIGH"},
    {desc="Suspicious abrasion found on haul-rope strands; cable car closed for magnetic inspection.", urgency="HIGH"},
    {desc="Debris dam forms on hanging stream; outburst risk prompts night watch on culverts.", urgency="HIGH"},
    {desc="Supply caches raided at ridge huts; evidence of organized crew using culvert network.", urgency="HIGH"},
    {desc="Sabotage suspected in avalanche gallery shutter jam; pass closed pending repair.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Moraine-breach debris flood sweeps lower hamlet streets; casualties reported; War League engineers requested.", urgency="CRITICAL"},
    {desc="Explosive charges discovered in snow-shed pylons; EOD disrupts; route sealed.", urgency="CRITICAL"},
    {desc="Armed group seizes tarn outlet gate to threaten release; negotiation team on scene.", urgency="CRITICAL"},
    {desc="Illegal mine galleries collapse under the ridge; multiple trapped; heavy rescue underway.", urgency="CRITICAL"}
  }
},
 
["Galvø"] = {
  events = {
    -- LOW (1–5)
    {desc="Kettle-lake boardwalk sections replaced; birders rerouted along dry loop.", urgency="LOW"},
    {desc="Beaver dam repairs redirect trail; signage updated.", urgency="LOW"},
    {desc="Peat-cutting festival crowds spill onto quay; stewards add barriers.", urgency="LOW"},
    {desc="Spruce-beetle trap grid maintained; extra lures hung near mill road.", urgency="LOW"},
    {desc="Fish-market scales audit issues minor fines to two stalls.", urgency="LOW"},
 
    -- MEDIUM (6–11)
    {desc="Frost-heave buckles the causeway; axle-weight limits imposed until regrade.", urgency="MEDIUM"},
    {desc="Invasive reed stands choke marsh cut; crews deploy harvesters to clear.", urgency="MEDIUM"},
    {desc="Night gill-netting ring caught on reservoir; boats seized, four detained.", urgency="MEDIUM"},
    {desc="Sawmill wage protest blocks timber yard gate; mediation scheduled.", urgency="MEDIUM"},
    {desc="Land records server outage stalls title office; clerks shift to paper queue.", urgency="MEDIUM"},
    {desc="Cattle deaths traced to anthrax on old burn; quarantine lines ring three paddocks.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Karst sinkhole opens beneath dirt lane; one tractor swallowed; perimeter secured.", urgency="HIGH"},
    {desc="Fuel-theft crew siphons depot tanks; pursuit ends in crash; two suspects in custody.", urgency="HIGH"},
    {desc="Drumlin cut slumps onto hillside road; heavy plant mobilized for clearance and rock-bolting.", urgency="HIGH"},
    {desc="Timber cartel intimidates co-op buyers; two assaulted; protection details added.", urgency="HIGH"},
    {desc="Illegal peat fire smolders under bog; toxic smoke prompts school closures.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Lake-ice shove forms pressure ridges that crush boathouses along the north quay; multiple injuries.", urgency="CRITICAL"},
    {desc="Deliberate solvent dump enters municipal reservoir; mass nausea cases; city declares emergency.", urgency="CRITICAL"},
    {desc="Armed faction attacks ranger station to seize explosives; firefight and lockdown of forest district.", urgency="CRITICAL"},
    {desc="Landslide-dam breach unleashes outburst flood through lower ward; War League QRF requested.", urgency="CRITICAL"}
  }
},
 
["Krlsgorod"] = {
  events = {
    -- LOW (1–5)
    {desc="Ferry slip ladders replaced after ice scouring; brief schedule delay.", urgency="LOW"},
    {desc="Smelt-run festival crowds jam quay; extra railings put in place.", urgency="LOW"},
    {desc="Marsh boardwalk maintenance closes two loops; detours posted.", urgency="LOW"},
    {desc="Dune grass volunteers plant new plots along windward spit.", urgency="LOW"},
    {desc="Minor fuel sheen at co-op berth; booms deployed and recovered.", urgency="LOW"},
 
    -- MEDIUM (6–11)
    {desc="Black-market fish processing ring raided; refrigerated van seized at depot gate.", urgency="MEDIUM"},
    {desc="Ice-road speed-trap blitz nets 22 violators; one rollover, no serious injuries.", urgency="MEDIUM"},
    {desc="Hatchery contamination traced to unauthorized antibiotic; cull ordered for two tanks.", urgency="MEDIUM"},
    {desc="Illicit sand harvesters caught cutting dune face at night; loaders impounded.", urgency="MEDIUM"},
    {desc="Customs datalink outage forces manual stamping; cargo backlog grows.", urgency="MEDIUM"},
    {desc="Sewer lift-station blockage spills into back-alley; disinfection and sampling underway.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Ice-jam packs the river outlet and backs water into low wards; voluntary evacuations begin.", urgency="HIGH"},
    {desc="Cyanobacteria bloom causes mass fish kill along lee shore; intake throttled pending assays.", urgency="HIGH"},
    {desc="Smuggler convoy crosses lake ice using blackout lights; shots fired; one arrest.", urgency="HIGH"},
    {desc="Quay crane slew-ring failure drops container; four injured; labor walkout looms.", urgency="HIGH"},
    {desc="Sabotage attempt on fuel farm caught by patrol; detonators and timers recovered.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Lake-ice shove drives pressure ridges through inner quay; two cranes topple; mass-casualty triage active.", urgency="CRITICAL"},
    {desc="VBIED detonates beside customs weighbridge during shift change; War League EOD requested.", urgency="CRITICAL"},
    {desc="Water-intake poisoning with industrial solvent floods clinics; city issues do-not-use order.", urgency="CRITICAL"},
    {desc="Armed flotilla attempts to blockade channel off the dunes; naval intercept requested.", urgency="CRITICAL"}
  }
},
 
["Kaledonija"] = {
  events = {
    -- LOW (1–5)
    {desc="Tourists intercepted on unsafe shore-ice; wardens redirect to museum pier.", urgency="LOW"},
    {desc="Winter fair crowding around Old Dock causes minor scuffles; extra marshals deployed.", urgency="LOW"},
    {desc="Drumlin trail signage replaced after vandalism; two loops reopen by noon.", urgency="LOW"},
    {desc="Harbor slip guardrails repaired; access resumes.", urgency="LOW"},
    {desc="Boat museum power hiccup triggers alarm; cleared and reopened.", urgency="LOW"},
 
    -- MEDIUM (6–11)
    {desc="Bulkhead rot discovered along peninsula quay; heavy vehicles restricted pending repair.", urgency="MEDIUM"},
    {desc="Unauthorized ATVs tear up drumlin preserve; fines issued and fencing reinforced.", urgency="MEDIUM"},
    {desc="Counterfeit ferry passes seized at footbridge; four detained.", urgency="MEDIUM"},
    {desc="Septic field leak at lakeside cottages prompts bathing advisories for west bay.", urgency="MEDIUM"},
    {desc="Fishery quota protest blocks auction hall; brief clashes with watch.", urgency="MEDIUM"},
    {desc="Copper cabling stolen from lighthouse service tunnel; beacon on generator.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Pressure ridges damage ferry ramp and shear mooring bollards; service suspended for inspection.", urgency="HIGH"},
    {desc="Illegal dredging in the channel sends silt into waterworks intake; plant throttled, bottled water issued.", urgency="HIGH"},
    {desc="Marina arson spreads across three berths; foam lines hold at fuel dock.", urgency="HIGH"},
    {desc="Explosive charges found under causeway deck; EOD renders safe; peninsula isolated until inspection.", urgency="HIGH"},
    {desc="Protection racket demands ‘ice-lane fees’ from quay merchants; arrests after undercover sting.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Mass-casualty attack couples pier bombs with small-arms ambush at ferry queues; city enters curfew.", urgency="CRITICAL"},
    {desc="Deliberate contaminant release at central waterworks; hospitals surge; emergency declared.", urgency="CRITICAL"},
    {desc="Large floe rams Old Dock, collapsing timbers and crushing a festival crowd; War League airlift requested.", urgency="CRITICAL"},
    {desc="Pipeline sabotage ignites along causeway embankment; neighborhoods evacuated under smoke.", urgency="CRITICAL"}
  }
},
["Sjøsborg"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Coordinated arson strikes three bonded-warehouse rows along the Inner Esplanade; foam tenders deploy as quay cranes are powered down and cordons extended to the customs arcade.", urgency="CRITICAL"},
    {desc="Explosive device discovered beneath an auction rostrum during high-value amber sale; evacuation successful, EOD renders safe; auction ledgers impounded for forensic review.", urgency="CRITICAL"},
    {desc="Armed crew hijacks a container transfer tractor and attempts breach of the rail inland gate; intercept at Chancery Cut after spikes deployed.", urgency="CRITICAL"},
    {desc="Cyber-physical attack cripples quay PLCs and gate kiosks during shift change; stipend kiosks revert to manual issuance as harbor tugs maintain passive positions.", urgency="CRITICAL"},
    {desc="Fuel-manifold rupture at cold-chain pier ignites; two reefer stacks threatened; harbor suppression grid activated; casualty clearing station set at Bailiwick Hall.", urgency="CRITICAL"},
 
    -- HIGH (6–10)
    {desc="Counterfeit customs seals identified across six lots in bonded shed 12; seizure orders issued and auction floor paused pending re-verification.", urgency="HIGH"},
    {desc="Synchronized pilferage ring targets quay-side truck queues; license sweeps and random strip-inspections enacted for the next three watches.", urgency="HIGH"},
    {desc="Quay crane slew-ring microfractures discovered during audit; three booms idled and replacement pins requisitioned; backlog grows to 36 hours.", urgency="HIGH"},
    {desc="Stevedore–contractor confrontation at union gate escalates; riot lines and mediators separate groups; two ambulances dispatched.", urgency="HIGH"},
    {desc="Bonded amber lots contaminated with solvent dye; assay lab overrun; recall notices circulated to five brokers.", urgency="HIGH"},
 
    -- MEDIUM (11–15)
    {desc="Data mismatch between port registry and rail waybills delays five inland rakes; manual reconcile and paper fallback initiated.", urgency="MEDIUM"},
    {desc="Crew shuttle strike forces temporary lane changes around stipend arcade; foot traffic re-routed through parish green.", urgency="MEDIUM"},
    {desc="Thieves strip copper from an outlying beacon mast; approach lights degraded; temporary range markers set at dusk.", urgency="MEDIUM"},
    {desc="Illegal tender off-loads unmanifested drums at night berth; harbor watch impounds craft and interviews two pilots.", urgency="MEDIUM"},
    {desc="Fish-processing line halts over contaminated ice feed; batch destroyed; inspectors extend spot checks to adjacent sheds.", urgency="MEDIUM"},
 
    -- LOW (16–20)
    {desc="Quay forklift tips a pallet at bonded shed 6; superficial injuries; revised stacking protocols posted.", urgency="LOW"},
    {desc="Lost property surge at ferry stairs; wardens open temporary claim desk near stipend hall.", urgency="LOW"},
    {desc="Street hawkers obstruct the north esplanade during stipend hours; moved to licensed alcoves by ward stewards.", urgency="LOW"},
    {desc="Archival exhibit convoy from Chancery delayed for permit discrepancy; documents secured in municipal vaults overnight.", urgency="LOW"},
    {desc="Fuel spill sheen contained within skimmer booms at slip C; no wildlife impact; cleanup complete by next watch.", urgency="LOW"}
  }
},
 
["Storesund"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Sabotage at river-fuel farm ignites a manifold; foam cannons and levee pumps deployed as delta wind drives smoke over sheds 2–4; evacuation of flats ordered.", urgency="CRITICAL"},
    {desc="Coordinated smuggler convoy uses distributaries to bypass customs; shots fired near Lighthouse Reach; three boats seized and two fugitives at large.", urgency="CRITICAL"},
    {desc="VBIED detonates beside customs weighbridge during shift change; harbor sealed, casualty triage established at parish clinic.", urgency="CRITICAL"},
    {desc="Illicit dredger collapses a quay segment; two cranes at risk; cordon set and stabilization cribbing rushed from inland yards.", urgency="CRITICAL"},
    {desc="Intentional contaminant release at municipal ice plant triggers mass gastro cases; water carts dispatched while labs trace source.", urgency="CRITICAL"},
 
    -- HIGH (6–10)
    {desc="Delta extortion crew demands ‘channel insurance’ from co-op skippers; undercover sting scheduled for slack tide.", urgency="HIGH"},
    {desc="Customs datalink outage blacks out bonded shed registers; paper fallback initiated; porters instructed to post visual lot marks.", urgency="HIGH"},
    {desc="Fishery enforcement raid uncovers illegal eel pots in protected distributary; scuffles on the bank; gear confiscated.", urgency="HIGH"},
    {desc="Quay crane slew bearing seizes during lift; berth idled; load transferred by mobile shear-leg barge.", urgency="HIGH"},
    {desc="Counterfeit port ID badges discovered among seasonal laborers; contractor rosters purged and retraining ordered.", urgency="HIGH"},
 
    -- MEDIUM (11–15)
    {desc="Barge strikes uncharted deadman in a back-channel; minor hull damage; channel soundings extended for the night.", urgency="MEDIUM"},
    {desc="Cold-store compressor trips under brownout; perishables prioritized for transfer; generator hours extended.", urgency="MEDIUM"},
    {desc="Auction floor dispute over lot provenance halts bidding; mediators reconcile ledger stamps and restart sale.", urgency="MEDIUM"},
    {desc="Unauthorized scrap crews cutting rail at derelict siding; police disperse and mark site for fencing.", urgency="MEDIUM"},
    {desc="Silt surge forces temporary relocation of lightering station; pilots post revised approach plates.", urgency="MEDIUM"},
 
    -- LOW (16–20)
    {desc="Reed-cutter skiffs crowd a ferry landing during midday; wardens establish staggered mooring times.", urgency="LOW"},
    {desc="Minor ammonia leak alarm at ice works proves sensor fault; maintenance recalibrates and clears line.", urgency="LOW"},
    {desc="Market day overflow onto levee path; stewards extend rope barriers and open west gate.", urgency="LOW"},
    {desc="Loose dogs disturb fish-drying racks; animal control corrals and fines owners.", urgency="LOW"},
    {desc="Harbor notice misprints two berth numbers on the rota; corrected sheets posted by next bell.", urgency="LOW"}
  }
},
 
["Hammarfell"] = {
  events = {
    -- LOW (1–5)
    {desc="Pilgrim queue backs up at Iron Chapel switchbacks; stewards open an overflow ledge trail.", urgency="LOW"},
    {desc="Goat bell lines tangle across the market steps; herders unwind and clear within the watch.", urgency="LOW"},
    {desc="Climbing hut stove smoke trips a false alarm; wardens air out the dormitory.", urgency="LOW"},
    {desc="Wayfinding cairns repainted above Hammer Notch; short rolling closures announced.", urgency="LOW"},
    {desc="Seasonal timber inspection replaces three footbridge planks; brief traffic hold.", urgency="LOW"},
 
    -- MEDIUM (6–11)
    {desc="Scree slide blocks mule path below Black Gate; shovel teams reopen by dusk.", urgency="MEDIUM"},
    {desc="Unlicensed guides selling counterfeit summit passes; badges seized, fines issued.", urgency="MEDIUM"},
    {desc="Hydro station icing forces brownouts; clinics moved to generator priority list.", urgency="MEDIUM"},
    {desc="Poachers cut fence into caprine preserve; rangers recover two carcasses and snares.", urgency="MEDIUM"},
    {desc="Karst sink opens across the ridge track; detour posted along the old quarry lane.", urgency="MEDIUM"},
    {desc="Monastery infirmary reports gastro cluster traced to unboiled meltwater; boil order issued.", urgency="MEDIUM"},
 
    -- HIGH (12–16)
    {desc="Bandits ambush salt convoy at Hammer Shelf; escorts return fire; two injured.", urgency="HIGH"},
    {desc="Cornice-control shot misfires near Avalanche Gallery; stabilization crews deployed.", urgency="HIGH"},
    {desc="Sabotage suspected in funicular brake glazing; line closed pending magnetic inspection.", urgency="HIGH"},
    {desc="Clandestine adit collapses under the east buttress; rescue shaft started at first light.", urgency="HIGH"},
    {desc="Leachate from illegal ore heap discolors stream; intake throttled while assays run.", urgency="HIGH"},
 
    -- CRITICAL (17–20)
    {desc="Slab avalanche rips across the High Traverse after cornice failure; multiple missing; mass SAR declared.", urgency="CRITICAL"},
    {desc="Explosive charges found on Cable Tower 2 anchor plates; EOD disrupts; cordon remains overnight.", urgency="CRITICAL"},
    {desc="Armed faction seizes tollhouse at Hammer Gate to extort caravans; War League assistance requested.", urgency="CRITICAL"},
    {desc="Rock-glacier surge shears penstock to upper hydro; hamlets isolated; emergency water convoys roll.", urgency="CRITICAL"}
  }
},
 
 
 
  -- NEW (Valley cities appended here, formatted like the Normark block)
["Ourid"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Coordinated VBIED attempt against Ridge-Gate Shrine ring during morning rites; Shrine Watch cordon holds, EOD teams active in tunnel galleries.", urgency="CRITICAL"},
    {desc="Rochefort revivalist cell detonates charge on cliffside processional causeway; rockfall threatens lower sanctum district and pilgrim queue.", urgency="CRITICAL"},
    {desc="Intercepted ritual-contraband mule train in ridge tunnels; Aurantius UAVs track additional couriers toward frost-choked tributary culverts.", urgency="CRITICAL"},
    {desc="Counterbattery strike required after small-arms ambush on Thunderguard Citadel Train near Switchback 7; line closed pending girder inspection.", urgency="CRITICAL"},
    {desc="Flash-flood surge from freeze–thaw break overwhelms lower canal sluices; emergency evacuation of shrine archives underway.", urgency="CRITICAL"},
 
    -- HIGH (6–10)
    {desc="Cascading landslide cuts Northern Pass; engineers requesting quadwalker dozer units to clear debris and stabilize slope with rock bolts.", urgency="HIGH"},
     {desc="Temple Bank audit reveals forged stipend ledgers at two hillside sanctums; Guild of Golden Shadows initiates seizure of tithe caches.", urgency="HIGH"},
    {desc="Biometric registry outage at Shrine Instruction Institute stalls oath renewals; crowd control and mobile kiosks deployed to courtyard.", urgency="HIGH"},
    {desc="Suspected cyanotoxin dump detected at Ouriana feeder canal; Sanctum Vitalis issues boil-water advisory for three wards.", urgency="HIGH"},
    {desc="Night raid targets missionary clinic pharmacy; perimeter sensors tripped, suspects flee via ridge culvert network.", urgency="HIGH"},
 
    -- MEDIUM (11–15)
    {desc="Pilgrimage surge during Flood-Blessing festival gridlocks ridge roads; emergency lanes enforced and footbridges one-wayed.", urgency="MEDIUM"},
    {desc="Unauthorized relic market emerges along cliff stairs; Shrine Watch seizes carved icons linked to prohibited texts.", urgency="MEDIUM"},
    {desc="Power sags at tunnel ventilators trigger intermittent gas alarms; maintenance crews rotate with portable extractors.", urgency="MEDIUM"},
    {desc="Quadwalker patrol reports feral pack activity near Upper Gallery; public guidance issued for dusk travel restrictions.", urgency="MEDIUM"},
    {desc="Ouriad River Fisheries Cooperative convoy delayed by washed-out ford; temporary rope ferry established for cold-chain continuity.", urgency="MEDIUM"},
 
    -- LOW (16–20)
    {desc="Counterfeit missionary badges discovered at checkpoint; registrar sweeps contractor rosters and revokes three licenses.", urgency="LOW"},
    {desc="Shrine bell casting cracks during rehearsal; artisans request additional bronze feedstock from Vaeringheim foundry.", urgency="LOW"},
    {desc="Youth procession blocks stairway between Upper and Middle Sanctums; stewards redirect pilgrims to canyon switchbacks.", urgency="LOW"},
    {desc="Seasonal quagga mussel fouling reported on cliff cistern pipes; scraping crews scheduled off-peak.", urgency="LOW"},
    {desc="Lantern-walk crowd spillover at river overlook; rope barriers extended and wardens reassigned for next cycle.", urgency="LOW"}
  }
   },
   },
["Bashkim"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Armed smuggling crew attempts breach of sacramental market vault during stipend redemption; Shrine Watch cadets lock down arcades.", urgency="CRITICAL"},
    {desc="Improvised charges found on caravan licensing center weighbridge; EOD neutralizes while perimeter evacuated.", urgency="CRITICAL"},
    {desc="Coordinated arson at depot rows adjacent to caravan yards; armored water tenders requested as wind shifts toward bazaar quarter.", urgency="CRITICAL"},
    {desc="Insurgent sniper pair targets Shrine Watch graduation at Bashkim Academy; ceremony suspended, dragnet underway.", urgency="CRITICAL"},
    {desc="Explosive drone intercepted over tithe counting house roof; ISR drones vector to suspected launch van fleeing east spur.", urgency="CRITICAL"},
    -- HIGH (6–10)
    {desc="General Port spur software outage stalls bonded-warehouse manifests; throughput to caravan park drops 40% until patch applied.", urgency="HIGH"},
    {desc="Counterfeit caravan licenses detected across three guild stalls; Guild of Golden Shadows orders immediate re-vetting of brokers.", urgency="HIGH"},
    {desc="Food-oil tank-tote spill in bazaar lane sends 11 to clinic; hazmat crews deploy sand berms to protect drain inlets.", urgency="HIGH"},
    {desc="Mass pilferage ring hits high-value metals shed; pursuit bikes chase fast skiff toward Ouriana ferry crossing.", urgency="HIGH"},
    {desc="Rolling blackouts after substation bus fault near market arcades; generators prioritized for stipend redemption halls.", urgency="HIGH"},
    -- MEDIUM (11–15)
    {desc="Caravan congestion at east gate during equinox fair; one-way loop and animal watering windows enforced by stewards.", urgency="MEDIUM"},
    {desc="Tithe audit flags under-declaration across three spice stalls; mediators schedule shrine arbitration hearings.", urgency="MEDIUM"},
    {desc="Livestock scare from Caspazani remuda bolting through south square; mounted wardens re-route foot traffic.", urgency="MEDIUM"},
    {desc="Quarry lorry overturns on ring road; crane requested to right vehicle and reopen access to academy drill field.", urgency="MEDIUM"},
    {desc="Market roof tile-shedding during crosswinds; engineers tape off arcades for inspection and re-slating.", urgency="MEDIUM"},
    -- LOW (16–20)
    {desc="Public rally at caravan park over new inspection fees; shrine mediation tabled for next watch.", urgency="LOW"},
    {desc="Counterfeit port ID badges seized at North Gate; contractor sweep and retraining ordered.", urgency="LOW"},
    {desc="Lantern regatta recruitment booth causes crowding near canal footbridge; additional barriers installed.", urgency="LOW"},
    {desc="Street performers block stipend hall steps during festival; relocated to designated alcove by wardens.", urgency="LOW"},
    {desc="Routine mussel scraping on ferry hulls reduces schedule to half service; advisories posted at embarkation.", urgency="LOW"}
  }
  }
}
}


-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- (E) Weighted random picking, 80% chance of "No reports"
-- (E) WEIGHTED RANDOM SELECTION: 80% chance "No reports"
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- We'll define a helper that returns a numeric weight for each urgency:
-- LOW => 4, MEDIUM => 3, HIGH => 2, CRITICAL => 1
local function getWeight(urg)
local function getWeight(urg)
   if urg == "LOW" then return 4 end
   if urg == "LOW" then return 4 end
Line 703: Line 1,744:
   if urg == "HIGH" then return 2 end
   if urg == "HIGH" then return 2 end
   if urg == "CRITICAL" then return 1 end
   if urg == "CRITICAL" then return 1 end
   return 1 -- fallback
   return 1
end
end


-- Weighted event selection
local function pickWeightedEvent(events)
local function pickWeightedEvent(events)
  -- sum weights
   local total = 0
   local total = 0
   for _,ev in ipairs(events) do
   for _, ev in ipairs(events) do
     total = total + getWeight(ev.urgency)
     total = total + getWeight(ev.urgency)
   end
   end
   local roll = math.random(total)
   local roll = math.random(total)
   local cumul = 0
   local cumul = 0
   for _,ev in ipairs(events) do
   for _, ev in ipairs(events) do
     cumul = cumul + getWeight(ev.urgency)
     cumul = cumul + getWeight(ev.urgency)
     if roll <= cumul then
     if roll <= cumul then
Line 721: Line 1,760:
     end
     end
   end
   end
   return events[#events] -- fallback
   return events[#events]
end
end


-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- (F) makeTable function with day-based seed, 80% no reports, else weighted pick
-- (F) MAKE TABLE FUNCTION: Day-based seed, 80% "No reports", else weighted pick
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
function p.makeTable()
function p.makeTable()
Line 731: Line 1,770:
   local seed = dateInfo.year * 1000 + dateInfo.dayOfYear
   local seed = dateInfo.year * 1000 + dateInfo.dayOfYear
   math.randomseed(seed)
   math.randomseed(seed)
   local lines = {}
   local lines = {}
   table.insert(lines, '{| class="wikitable"')
   table.insert(lines, '{| class="wikitable"')
   table.insert(lines, '! Date !! City !! Event !! Urgency')
   table.insert(lines, '! Date !! City !! Event !! Urgency')
   for _, cityName in ipairs(cityOrder) do
   for _, cityName in ipairs(cityOrder) do
     local data = cityData[cityName]
     local data = cityData[cityName]
    -- Set the "no reports" threshold. Default is 0.80 (20% event chance)
    -- For Pelagia, lower the threshold to 0.60 (40% event chance, which is 2x as likely)
    local threshold = (cityName == "Pelagia") and 0.60 or 0.80
     if data then
     if data then
      -- 80% chance no reports
       local roll = math.random()
       local roll = math.random()
       if roll < 0.80 then
       if roll < threshold then
         table.insert(lines, '|-')
         table.insert(lines, '|-')
         table.insert(lines,
         table.insert(lines, '| ' .. dateInfo.text .. ' || ' .. cityName .. ' || No reports || N/A')
          '| ' .. dateInfo.text .. ' || ' .. cityName .. ' || No reports || N/A'
        )
       else
       else
        -- pick weighted event
         local ev = pickWeightedEvent(data.events)
         local ev = pickWeightedEvent(data.events)
         table.insert(lines, '|-')
         table.insert(lines, '|-')
         table.insert(lines,
         table.insert(lines, '| ' .. dateInfo.text .. ' || ' .. cityName .. ' || ' .. ev.desc .. ' || ' .. ev.urgency)
          '| ' .. dateInfo.text
          .. ' || ' .. cityName
          .. ' || ' .. ev.desc
          .. ' || ' .. ev.urgency
        )
       end
       end
     else
     else
      -- city not in cityData => "No data"
       table.insert(lines, '|-')
       table.insert(lines, '|-')
       table.insert(lines,
       table.insert(lines, '| ' .. dateInfo.text .. ' || ' .. cityName .. ' || No data || N/A')
        '| ' .. dateInfo.text .. ' || ' .. cityName .. ' || No data || N/A'
      )
     end
     end
   end
   end
   table.insert(lines, '|}')
   table.insert(lines, '|}')
   return table.concat(lines, '\n')
   return table.concat(lines, '\n')

Latest revision as of 02:35, 23 October 2025

Documentation for this module may be created at Module:BassaridianDailyEvents/doc

-------------------------------------------------------------------------------
-- Module: DailyTable
-- Purpose:
--   1) Include all city descriptions for:
--      • Bassaridia Vaeringheim (major + minor)
--      • New South Jangsong (major + minor)
--      • Haifan Bassaridia (major + minor)
--   in a bracket-level comment, verbatim and unabridged.
--   2) cityOrder table sets EXACT city display order as requested.
--   3) cityData includes 20 events per city, focusing on crime, rebellion,
--      and non-weather natural phenomena (diseases, plagues, landslides,
--      infestations, etc.). All events are realistic.
--   4) Weighted random event selection so that:
--      - 80% chance: "No reports"
--      - 20% chance: pick an event (with LOW urgency most likely, CRITICAL least).
--   5) Day-based random seeding ensures the same output all day, new each day.
--   6) Do NOT omit or remove any information from previous versions.
-------------------------------------------------------------------------------

local p = {}

-------------------------------------------------------------------------------
-- (A) FULL CITY DESCRIPTIONS (VERBATIM) IN A SINGLE BRACKET-LEVEL COMMENT
-------------------------------------------------------------------------------
--[==[
⋯ (Insert full, unabridged city description text here exactly as provided previously) ⋯
]==]

-------------------------------------------------------------------------------
-- (B) PSSC DATE FUNCTION (unchanged)
-------------------------------------------------------------------------------
local function getPSSCDate()
     local startDate = os.time({year = 1999, month = 8, day = 6})
    local secondsInDay = 86400
    local daysPerYear = 183

    local now = os.time()
    local totalDaysElapsed = math.floor((now - startDate) / secondsInDay)

    local yearFraction = totalDaysElapsed / daysPerYear
    local psscYear = math.floor(yearFraction)
    local dayOfYear = math.floor((yearFraction - psscYear) * daysPerYear) + 1

    local month, dayOfMonth
    if dayOfYear <= 61 then
        month = 1
        dayOfMonth = dayOfYear
    elseif dayOfYear <= 122 then
        month = 2
        dayOfMonth = dayOfYear - 61
    else
        month = 3
        dayOfMonth = dayOfYear - 122
    end

    local dateString = string.format("%d/%d/%d PSSC", dayOfMonth, month, psscYear)
    return { text = dateString, year = psscYear, dayOfYear = dayOfYear }
end

-------------------------------------------------------------------------------
-- (C) EXACT CITY ORDER
-------------------------------------------------------------------------------
local cityOrder = {
  -- Bassaridia Vaeringheim (Major)
  "Vaeringheim","Luminaria","Serena","Pyralis","Symphonara","Aurelia",
  "Somniumpolis","Nexa","Lunalis Sancta","Sylvapolis",
  -- Bassaridia Vaeringheim (Minor)
  "Saluria","Aetherium","Ferrum Citadel","Acheron","Erythros","Catonis Atrium",
  "Delphica","Koinonía","Aureum","Myrene","Halicarn","Ephyra","Thyrea",
  -- New South Jangsong (Major)
  "Skýrophos","Bjornopolis","Aegirheim","Norsolyra","Thorsalon",
  -- New South Jangsong (Minor)
  "Pelagia",
  -- Haifan Bassaridia (Major)
  "Keybir-Aviv","Tel-Amin","Diamandis","Jogi","Lewisburg",
  -- Haifan Bassaridia (Minor)
  "Thermosalem","Akróstadium","Sufriya","Lykopolis",
  -- NEW CITIES IN BASSARIDIAN NORMARK:
  "Ardclach","Riddersborg",
  -- Caledonian City-States
  -- Caledonian City-States
  "Notranskja","Slevik","Fanghorn","Sårensby","Skøda","Eikbu","Galvø","Krlsgorod","Kaledonija","Sjøsborg","Storesund","Hammarfell",
  -- NEW (Valley cities)
  "Ourid","Bashkim"
}

-------------------------------------------------------------------------------
-- (D) CITY DATA: 20 EVENTS PER CITY
-------------------------------------------------------------------------------
local cityData = {

  ----------------------------------------------------------------------------
  -- Bassaridia Vaeringheim (Major Cities)
  ----------------------------------------------------------------------------
 ["Vaeringheim"] = {
  events = {
    {desc="Explosive skiffs intercepted near General Port lock-gates; Harbor Patrol requests War League minesweepers and ISR drones.", urgency="CRITICAL"},
    {desc="Coordinated arson-drone strike ignites cold-storage rows on Island Terminal; cordon-and-quench underway, engineers need armored water tenders.", urgency="CRITICAL"},
    {desc="Armed cell attempts breach of Temple Bank vault annex during stipend redemption; armored rail detachment redeployed to port spur.", urgency="CRITICAL"},
    {desc="Sabotage at Port Energy Substation triggers rolling blackouts across cranes and reefer stacks; secondary fires reported.", urgency="CRITICAL"},
    {desc="Container-barge blockade across central navigation channel by armed bargemen over inspection fees; throughput collapses 60% in three hours.", urgency="CRITICAL"},
    {desc="IED discovered beneath TME ferry transfer trestle; EOD disrupts device, evacuation of embarkation plazas continues.", urgency="CRITICAL"},
    {desc="Cyanotoxin bloom detected at south canal intakes after illicit dump; emergency potable-water rations imposed in old quarter.", urgency="HIGH"},
    {desc="Lock-ratchet assemblies found tampered at Drydock Hub; flood pulse inundates service alleys, two workers missing.", urgency="HIGH"},
    {desc="Customs raid uncovers ritual contraband cache inside foreign-flagged tug; suspected terror finance links under review.", urgency="HIGH"},
    {desc="Mass pilferage of high-value metals from bonded warehouse; pursuit boats chase fast skiff toward lake mouth.", urgency="HIGH"},
    {desc="Bulk crane wire-rope failure drops load on Berth 7; labor walkout over fog-hazard premiums escalates.", urgency="HIGH"},
    {desc="Bomb threat shuts archival convoy exhibiting Normark-era tablets; culvert escape route discovered.", urgency="HIGH"},
    {desc="Spill of corrosive resin from mislabeled tank-tote sends 14 to clinic; port hazmat teams stretched.", urgency="MEDIUM"},
    {desc="Software outage at intermodal yard freezes gate operations; reefers risk spoilage without emergency gensets.", urgency="MEDIUM"},
    {desc="Pilgrimage surge gridlocks quay roads during lake blessing; emergency lanes blocked despite stewards.", urgency="MEDIUM"},
    {desc="Quagga mussel fouling on ferry hulls forces emergency scraping; crossings down to reduced schedule.", urgency="MEDIUM"},
    {desc="Night-fog collision between two lighters in inner basin; spill containment booms deployed.", urgency="LOW"},
    {desc="Barge-union march halts weighbridge access; talks scheduled under shrine mediation.", urgency="LOW"},
    {desc="Counterfeit port ID badges seized at Gate 6; sweep of contractor rosters initiated.", urgency="LOW"},
    {desc="Lantern regatta crowd surge at Lock 3 prompts public-safety barriers for next tide window.", urgency="LOW"}
  }
  },
["Luminaria"] = {
  events = {
    {desc="Gunmen seize Moon-Fount cloisters of the Conclave Illuminara during dawn rites; hostages reported, Jeseri detachment requested.", urgency="CRITICAL"},
    {desc="VBIED attempt foiled outside lunar observatory prior to Tarsican procession; blast shutters engaged, perimeter sealed.", urgency="CRITICAL"},
    {desc="Cyber-physical attack disables Eosphorus Motor Company test loop; fuel fires threaten adjacent ward and canal.", urgency="CRITICAL"},
    {desc="Snipers target procession marshals from scaffolds; counter-sniper teams deploy around esplanade.", urgency="CRITICAL"},
    {desc="Arson at archive scriptorium destroys ephemerides used for festival timing; utility tunnels suspected ingress.", urgency="CRITICAL"},
    {desc="Pilgrimage crush after false evacuation orders spread on devotional channels; triage stations overwhelmed.", urgency="CRITICAL"},
    {desc="Ritual plumbing sabotage dyes ablution canals; ablutions suspended pending quality assays.", urgency="HIGH"},
    {desc="Lens-array tampering misaligns observatory optics on vigil night; astronomers request secure access control.", urgency="HIGH"},
    {desc="Coordinated thefts of silver reliquaries from satellite shrines; patrol pattern expanded to hill wards.", urgency="HIGH"},
    {desc="Disinformation wave claims a ban on market trading during eclipse; merchants shutter stalls as protests swell.", urgency="HIGH"},
    {desc="Power surge fries bell-caster foundry boards; siren nets run manual for night-watch.", urgency="HIGH"},
    {desc="Unauthorized drones over procession route trigger temporary no-fly order for devotional lanterns.", urgency="MEDIUM"},
    {desc="Processional route barriers collapse in heavy rain; reroute adds bottleneck at tea-house arcade.", urgency="MEDIUM"},
    {desc="Counterfeit Conclave badges detected at library gate; access logs audited.", urgency="MEDIUM"},
    {desc="Pilgrim encampments overflow irrigation ditches; sanitation crews deploy field latrines.", urgency="MEDIUM"},
    {desc="Street preachers clash with astronomer guild over vigil protocols; stewards separate factions.", urgency="LOW"},
    {desc="Moon-mirror hairline crack on library dome after thermal shock; glaziers scaffolded overnight.", urgency="LOW"},
    {desc="Devotional graffiti of blasphemous sigils spreads along colonnades; cleanup and lantern watch increased.", urgency="LOW"},
    {desc="Lost-child incidents spike during dawn chants; wardens expand family reunification tents.", urgency="LOW"},
    {desc="Tea-stall fuel leak causes small blaze; quickly extinguished, two treated for smoke.", urgency="LOW"}
  }
  },
["Serena"] = {
  events = {
    {desc="Avalanche strikes Harmony Pass pilgrimage line; dozens missing; rotorcraft hoist requested from War League.", urgency="CRITICAL"},
    {desc="Explosive charges found beneath cliffside aqueduct; EOD clears sanctum forecourt and evacuates terraces.", urgency="CRITICAL"},
    {desc="Armed climbers attempt to dismantle watchtowers on eastern col; mountain guard trades fire until relief arrives.", urgency="CRITICAL"},
    {desc="Rockfalls sever scriptor road; medical pilgrims stranded overnight in subzero conditions.", urgency="CRITICAL"},
    {desc="Looting of monastic grain caches by masked riders; night signals observed across ridgelines.", urgency="CRITICAL"},
    {desc="High-tension power lines snap in ice storm with suspected sabotage; battery shelters opened for residents.", urgency="HIGH"},
    {desc="Sanctum forecourts overrun after rival devotees brawl over festival precedence; riot lances deployed.", urgency="HIGH"},
    {desc="Pilgrim hostels report gastro outbreak traced to upstream spring; inspectors scour hillside cabins.", urgency="HIGH"},
    {desc="Smugglers using goat paths move contraband icons toward the valley; patrols expand into side canyons.", urgency="HIGH"},
    {desc="Canyon windstorm topples prayer-banners into roadway; rescue teams clear debris amid flying grit.", urgency="HIGH"},
    {desc="False prophecy pamphlets urge city flight; temple scribes issue rebuttal and quieting hymn.", urgency="MEDIUM"},
    {desc="Frost heave splits parapet stonework; engineers install emergency buttresses.", urgency="MEDIUM"},
    {desc="Mule-bridge decking splinters under freight; rope-and-plank bypass installed for caravans.", urgency="MEDIUM"},
    {desc="Avalanche drill sirens misfire at night; ward stewards adjust timing to avoid panic.", urgency="MEDIUM"},
    {desc="Harmony mediation court settles guild-dues dispute; crowd disperses peacefully.", urgency="LOW"},
    {desc="Trail cairns repainted ahead of festival; hikers crowd to watch and cheer crews.", urgency="LOW"},
    {desc="Votive racks topple during minor tremors; cracked tiles noted in outer ambulatory.", urgency="LOW"},
    {desc="Sanctum library opens emergency warming hall during cold inversion; tea stocks strained.", urgency="LOW"},
    {desc="Canyon ferry halts for fog; lamps installed along bank to assist pilots.", urgency="LOW"},
    {desc="Night-chanters light illegal braziers along cliff murals; fines issued, no injuries.", urgency="LOW"}
  }
  },
["Pyralis"] = {
  events = {
    {desc="Coordinated arson spree across three public halls; firebreaks cut, engineers request aerial overwatch for spotting embers.", urgency="CRITICAL"},
    {desc="Militia convoy ambushed on ridge road; hijacked fuel bowsers threaten to torch warehouse row.", urgency="CRITICAL"},
    {desc="Unknowns attempt to detonate incendiary mix at forge quarter; EOD recovers devices from smelter ash pits.", urgency="CRITICAL"},
    {desc="Geothermal vent opens beside bathhouse terrace; emergency evacuation and rock bolting ordered.", urgency="CRITICAL"},
    {desc="Contraband convoy of industrial chemicals disappears into forest culverts; burned wagons found at ravine lip.", urgency="CRITICAL"},
    {desc="Cyber intrusion knocks out foundry telemetry; furnaces shifted to manual with reduced throughput.", urgency="HIGH"},
    {desc="Labor clash at gates between stevedores and workshop guild; tool assaults reported.", urgency="HIGH"},
    {desc="Illegal chemical siphons at dye works cause toxic vapor; market shutters pending hazmat clearance.", urgency="HIGH"},
    {desc="Smuggling ring uses storm culverts to bypass toll; map cache seized from captured runner.", urgency="HIGH"},
    {desc="Fuel shortage forces furnace curtailment and bathhouse closures during peak tourist hours.", urgency="HIGH"},
    {desc="Micro-quakes crack hot-spring stair; shrine engineers cordon for stonework stabilization.", urgency="MEDIUM"},
    {desc="Rain squall flashes lava-cut channels; canyon tours suspended for 24 hours.", urgency="MEDIUM"},
    {desc="Counterfeit bath tokens detected; mint switches to heat-responsive clay seals.", urgency="MEDIUM"},
    {desc="Ashfall discolors mural; conservators launch limewash stabilization.", urgency="MEDIUM"},
    {desc="Pickpocket crews target pay-lines outside furnaces; lantern watch expanded.", urgency="LOW"},
    {desc="Steam fog causes multi-cart bump on gorge road; hairpins gain extra lantern posts.", urgency="LOW"},
    {desc="Heat-withered pines removed as ritual fuel reduction; controlled burn conducted.", urgency="LOW"},
    {desc="Wall thermometers installed around grand pool; children turn readings into contest; crowding managed.", urgency="LOW"},
    {desc="Bronze foundry test-casts ceremonial gong; crowd control around amphitheater needed.", urgency="LOW"},
    {desc="Cautery-herbalist safety clinic draws overflow; venue shift to outer cloister.", urgency="LOW"}
  }
  },
["Symphonara"] = {
  events = {
    {desc="Saboteurs breach main aqueduct; pressure collapse forces rationing; Odiferia Division requests armored pumps and perimeter security.", urgency="CRITICAL"},
    {desc="Extremist cadre occupies civic registry and orchestra square; barricades erected; negotiators request overwatch.", urgency="CRITICAL"},
    {desc="Coordinated arson on merchant convoys near public gardens; escorts outnumbered, multiple wagons destroyed.", urgency="CRITICAL"},
    {desc="Citywide cyber outage disrupts municipal systems; signaling failures cause collisions at key junctions.", urgency="CRITICAL"},
    {desc="Explosive threats at festival venues trigger stampedes; field triage stations overwhelmed.", urgency="CRITICAL"},
    {desc="Union rolling strikes over unpaid wages escalate into street clashes; riot-control formations deployed.", urgency="HIGH"},
    {desc="Gang activity spikes in suburban wards; curfew considered as gunfire reported after dusk.", urgency="HIGH"},
    {desc="Bridge deck failure isolates a residential quarter; engineers install temporary span; ferry redeployed.", urgency="HIGH"},
    {desc="Armed robbery of instrument-makers’ guild house; high-value woods and tools stolen.", urgency="HIGH"},
    {desc="Flooding in heritage district after burst main; galleries evacuate artifacts to upper floors.", urgency="HIGH"},
    {desc="Misappropriation probe at community center sparks protests; stones thrown at tax office windows.", urgency="MEDIUM"},
    {desc="False emergency alerts spread via spoofed accounts; rumor control cell activated.", urgency="MEDIUM"},
    {desc="Power surges damage amphitheater lighting; performance cancellations inflame crowds.", urgency="MEDIUM"},
    {desc="Counterfeit festival permits sold to vendors; enforcement action clears illegal stalls.", urgency="MEDIUM"},
    {desc="Vehicle break-ins concentrate near colonnades; auxiliary watch musters volunteers.", urgency="LOW"},
    {desc="Pitch-and-tack vandalism of art exhibition; minor scuffles outside hall.", urgency="LOW"},
    {desc="Noise complaints over amplified busking in narrow arcades; new sound corridor established.", urgency="LOW"},
    {desc="Garden irrigation rupture douses a string section mid-concert; brief pause, instruments saved.", urgency="LOW"},
    {desc="Street-opera troupe parodies tariff law; tense exchanges, no injuries.", urgency="LOW"},
    {desc="Copyists’ lamp-oil shortage delays score distribution; morning rehearsals rescheduled.", urgency="LOW"}
  }
  },
["Aurelia"] = {
  events = {
    {desc="Armed gang attempts hijack of bullion convoy on mint road; armored squad counter-ambushes at choke point.", urgency="CRITICAL"},
    {desc="Diamond-cutting mast hall sabotaged with corrosives; fumes force multi-block evacuation.", urgency="CRITICAL"},
    {desc="Coordinated smash-and-grabs hit three jewel arcades; rooftop radio jammer disables police net.", urgency="CRITICAL"},
    {desc="Refinery vapor explosion risk after substation trip; suppression foam nearly exhausted.", urgency="CRITICAL"},
    {desc="Counterfeit-gold sting collapses when transport is intercepted; crowd pelts inspectors, mobile shields deployed.", urgency="CRITICAL"},
    {desc="Mass protest over living costs swells in finance quarter; baton charges disperse front ranks.", urgency="HIGH"},
    {desc="Corruption probe at municipal treasury ignites street clashes between rival factions.", urgency="HIGH"},
    {desc="Warehouse blaze spreads along timber eaves near assay office; hydrant pressure low under peak draw.", urgency="HIGH"},
    {desc="Data breach at exchange stalls exposes trader accounts; limited trading suspension declared.", urgency="HIGH"},
    {desc="Picketers blockade ore-refinery gate after injury cluster; traffic diverted to service lanes.", urgency="HIGH"},
    {desc="Caravan theft ring targets investment-grade casting molds; serial runes reissued.", urgency="MEDIUM"},
    {desc="Gem-sorting lot cards mis-keyed; recall snarls shipments; inspectors deployed.", urgency="MEDIUM"},
    {desc="Coin furnace refractory cracks; emergency pour averts metal loss; shift extended.", urgency="MEDIUM"},
    {desc="Heritage grant cuts trigger archivist sit-in; plaza encampment forms by evening.", urgency="MEDIUM"},
    {desc="Nighttime storefront burglaries at upscale jewelers; mounted patrols added.", urgency="MEDIUM"},
    {desc="Price board outage prompts trading floor halt; manual auctioneer protocol activated.", urgency="LOW"},
    {desc="Queue surge at mint first-strike sets causes scuffles; stanchions installed.", urgency="LOW"},
    {desc="Silver-wash material shortage delays shrine commissions; artisans pivot to bronze.", urgency="LOW"},
    {desc="Counterfeit hallmarks detected; guild institutes master–apprentice register spot checks.", urgency="LOW"},
    {desc="Sudden downpour floods polishing cellar; pumps clear, schedule slips two days.", urgency="LOW"}
  }
  },
["Somniumpolis"] = {
  events = {
    {desc="Anomalous fog over former contact zone triggers mass hallucinations; War League/Temple clinicians establish triage cordons.", urgency="CRITICAL"},
    {desc="Charges detonate in drainage galleries under transit spine; localized cave-in and sewer gas release.", urgency="CRITICAL"},
    {desc="Leaked brief alleging suppressed Eidolan warnings sparks 20,000-strong protest; clashes at tribunal steps.", urgency="CRITICAL"},
    {desc="Armored rail detachment deployed to secure junctions and act as mobile field HQ for trauma clinics.", urgency="CRITICAL"},
    {desc="Cult splinter attempts unsanctioned rites at Shroud margin; arrests made after sigils seized.", urgency="CRITICAL"},
    {desc="Spiritual-trauma clinics exceed surge capacity; request for Missionary Council counselors and field tents.", urgency="HIGH"},
    {desc="Sanitation crews strike after sequential cleanups in quarantined blocks without hazard pay; trash accumulation rising.", urgency="HIGH"},
    {desc="Sewage line failures trigger renewed health warnings in outer wards; tanker trucks rerouted.", urgency="HIGH"},
    {desc="Panic withdrawals from rim neighborhoods after rumors of surviving Eidolan cell; patrols expand lantern watch.", urgency="HIGH"},
    {desc="Unidentified drone swarm spotted over memorial grove; RF intercept teams deployed.", urgency="HIGH"},
    {desc="Watchman at center of desertion rumor harassed outside barracks; officers disperse crowd.", urgency="MEDIUM"},
    {desc="False flare from substation mistaken for anomaly; public update reduces crowding.", urgency="MEDIUM"},
    {desc="Symbol graffiti logged near old culvert; scholarly review finds no anomaly, cleanup ordered.", urgency="MEDIUM"},
    {desc="Supply convoy night drill causes noise complaints; schedule revised.", urgency="MEDIUM"},
    {desc="Returnee districts report thefts of relief materials; aux patrols stood up.", urgency="MEDIUM"},
    {desc="Memorial lantern march exceeds planned route; stewards widen cordon and add water points.", urgency="LOW"},
    {desc="Community radio call-in spreads unvetted claims; rumor-control segment added.", urgency="LOW"},
    {desc="Small shrine attendant missing after vestment contamination allegation; limited search underway.", urgency="LOW"},
    {desc="Canal bank vigil candles ignite reed patch; quick suppression, no injuries.", urgency="LOW"},
    {desc="Clinic incense replaced with soot-free formulation after cough complaints; positive feedback.", urgency="LOW"}
  }
  },
["Nexa"] = {
  events = {
    {desc="Gunmen overrun caravanserai hub and impose dusk curfew; armored relief and UAV scan requested.", urgency="CRITICAL"},
    {desc="Toxic contamination detected in industrial pools; livestock die-off spreading; water truck convoys mobilized.", urgency="CRITICAL"},
    {desc="Extremist enforcers seize water-toll valves along the forum; shots fired as citizens attempt bypass.", urgency="CRITICAL"},
    {desc="Kidnappers ambush canyon road coaches; victims moved into culvert network; rangers in pursuit.", urgency="CRITICAL"},
    {desc="Coordinated burglaries target power substations; blackout triggers looting near market edge.", urgency="CRITICAL"},
    {desc="Public-works crane sabotage halts span repair; protest crowds surround depot.", urgency="HIGH"},
    {desc="Fuel-price protest becomes running battle with shield lines in central forum.", urgency="HIGH"},
    {desc="Covert arms stack uncovered in abandoned warehouse; multiple arrests in predawn sweeps.", urgency="HIGH"},
    {desc="Culvert collapse undermines warehouse lane; heavy vehicles rerouted, supply delays widen.", urgency="HIGH"},
    {desc="False evacuation orders circulate on traders’ channels; stampede averted by wardens.", urgency="HIGH"},
    {desc="Audit reveals procurement graft in city contracts; rival rallies face off outside archive.", urgency="MEDIUM"},
    {desc="Transit schedule collapse strands workers; temporary pickup points established at market perimeter.", urgency="MEDIUM"},
    {desc="Counterfeit gate-tokens seized at south gate; contractor rosters purged.", urgency="MEDIUM"},
    {desc="Lantern string expanded from gate to caravansary after theft cluster; incidents decline.", urgency="MEDIUM"},
    {desc="Silt surge clouds cisterns after storm; baffles installed; tea vendors report clarity.", urgency="MEDIUM"},
    {desc="Market stall rotation system glitches; crowding at popular corners prompts manual override.", urgency="LOW"},
    {desc="Spice alley introduces scent-free hours for sensitive shoppers; compliance inspectors patrol.", urgency="LOW"},
    {desc="Mud-shoe rentals for beasts reduce slip injuries; farriers report steady demand.", urgency="LOW"},
    {desc="Price board experiment stabilizes bargaining; throughput improves 15% week over week.", urgency="LOW"},
    {desc="Culvert graffiti misdirects visitors; wayfinding plates reinstalled.", urgency="LOW"}
  }
  },
["Lunalis Sancta"] = {
  events = {
    {desc="Sectarian street battles between Reverie Nebulous affiliates and Court of the Ironclad sympathizers spill into library quarter; Odiferia Division requested to restore order.", urgency="CRITICAL"},
    {desc="Coup attempt at city hall foiled; splinter loyalists torch records and barricade stairwells.", urgency="CRITICAL"},
    {desc="Coordinated cyber attack cripples municipal services; emergency comms rerouted through Dream Space nodes.", urgency="CRITICAL"},
    {desc="Kidnappings of visiting officials along inn row; suspects demand radical decrees in exchange.", urgency="CRITICAL"},
    {desc="Black-market narcotics sweep uncovers forced-labor cells in warehouses; dozens freed.", urgency="CRITICAL"},
    {desc="Transit hub shut after structural cracks widen; load-limit detours snarl trade.", urgency="HIGH"},
    {desc="Curfew imposed after sharp spike in street crime; auxiliary lantern watches formed in four wards.", urgency="HIGH"},
    {desc="Budget shortfall freezes public services; sanitation delays feed encampment at forum.", urgency="HIGH"},
    {desc="Public inquiries into police misconduct ignite tense standoffs on courthouse steps.", urgency="HIGH"},
    {desc="Contagious-illness cluster triggers school closures and mobile clinics in two wards.", urgency="HIGH"},
    {desc="Armed robbery of charmer-jewelers; assay tags help track fenced items.", urgency="MEDIUM"},
    {desc="Forgery ring stamps fake ex-libris into rare folios; arrests made after sting.", urgency="MEDIUM"},
    {desc="Nocturnal scriptorium tour overbooked; crowd control barriers added along stair.", urgency="MEDIUM"},
    {desc="Moon-mirror panel cracks from thermal shock atop a dome; scaffolding secured.", urgency="MEDIUM"},
    {desc="Shadow-garden path slips after drizzle; low-light railings added.", urgency="MEDIUM"},
    {desc="Poetry vigil generates noise complaints; whisper-path marshals deployed.", urgency="LOW"},
    {desc="Ink-makers recall glare-prone batch; libraries report fewer eye-strain cases.", urgency="LOW"},
    {desc="Unlicensed charm peddlers ejected from cloister; small scuffle, no injuries.", urgency="LOW"},
    {desc="Selenite-inlay stair restored; foot traffic rerouted for one night.", urgency="LOW"},
    {desc="Librarians quarantine mildew bloom in deep stack; conservators air and salt chamber.", urgency="LOW"}
  }
  },
["Sylvapolis"] = {
  events = {
    {desc="Primary irrigation canal gates sabotaged overnight; flood pulse overtops berms and inundates granaries; Odiferia engineers requested.", urgency="CRITICAL"},
    {desc="Militants threaten to poison wells with stolen chemicals unless land-tax amnesty granted; perimeter sealed.", urgency="CRITICAL"},
    {desc="Armed raiders besiege forest gate and take cart drivers hostage; relief column forms from market militia.", urgency="CRITICAL"},
    {desc="Wetland pest bloom devastates outer plots; aerial dusters grounded after nozzle tampering reports.", urgency="CRITICAL"},
    {desc="Granary fires at two mills suggest arson; lantern-watch mobilized; night curfew considered.", urgency="CRITICAL"},
    {desc="Culvert collapse undermines levee road; grain convoys halted; temporary cribbing underway.", urgency="HIGH"},
    {desc="Export quota dispute triggers farmers’ blockade at levy office; torch-lines raised along marsh road.", urgency="HIGH"},
    {desc="Silt surge disables pump intakes after storm; backup diesel sets deployed to maintain head.", urgency="HIGH"},
    {desc="Crop-theft syndicate targets hemp sheds; pursuit in reed maze ongoing.", urgency="HIGH"},
    {desc="Fuel shortage stalls ferry tugs at river bend; rope teams haul barge to shallows; schedule slashed.", urgency="HIGH"},
    {desc="Seed cooperative trial-plants flood-tolerant barley; theft reported from test plots.", urgency="MEDIUM"},
    {desc="Foam bloom traced to new soap maker; fines issued and recipe adjusted.", urgency="MEDIUM"},
    {desc="Cold-storage coop power dip spoils produce in two wards; grid stabilizers installed.", urgency="MEDIUM"},
    {desc="Bridge lift for barge passage during festival causes crowd surge; stewards expand barriers.", urgency="MEDIUM"},
    {desc="Grain price board manipulation attempts detected; market moderators suspend two licenses.", urgency="MEDIUM"},
    {desc="Roadside sanctuaries daubed with slogans; repainting and watch rotations organized by elders.", urgency="LOW"},
    {desc="Rotational grazing plan cuts hoof damage near ditches; water clarity improves.", urgency="LOW"},
    {desc="Duck-herd pest-day draws record volunteers; canals reopened by dusk.", urgency="LOW"},
    {desc="Nursery raises saplings for bank stabilization; school planting day adds 400 trees.", urgency="LOW"},
    {desc="Post-storm debris removal completed early; ferry schedules normalize.", urgency="LOW"}
  }
  },

  ----------------------------------------------------------------------------
  -- Bassaridia Vaeringheim (Minor Cities)
  ----------------------------------------------------------------------------
["Saluria"] = {
  events = {
    -- LOW (1–5)
    {desc="Minor ferry scrape at Mistway landing; two treated for cuts.", urgency="LOW"},
    {desc="Quail-egg delivery delay after flatboat grounding in reeds.", urgency="LOW"},
    {desc="Horehound syrup crystallization causes batch recall at one stall.", urgency="LOW"},
    {desc="Small archive room mold bloom; shelves aired and salted.", urgency="LOW"},
    {desc="Lantern-watch cites two unlicensed tonic hawkers near canal stairs.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Flooded footpath collapses along levee bend; detour posted.", urgency="MEDIUM"},
    {desc="Refrigeration outage at apothecary depot spoils fever tonics.", urgency="MEDIUM"},
    {desc="Aggressive vermin swarm reported in municipal stacks; stacks closed for fumigation.", urgency="MEDIUM"},
    {desc="Pilgrim surge at Fount Evander causes crowding; staggered entry enforced.", urgency="MEDIUM"},
    {desc="Counterfeit temple seals found on cough elixir; seizure order issued.", urgency="MEDIUM"},
    {desc="Diesel spill from herb-barge fouls intake screen; 12-hour filtration flush.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Barge collision releases concentrated herbal oils into Mistway; water advisory issued.", urgency="HIGH"},
    {desc="Temple storehouse occupied by dissident stewards over ration policy; standoff contained.", urgency="HIGH"},
    {desc="Flash flood undercuts levee pylons at Low Ford; engineers request gabions.", urgency="HIGH"},
    {desc="Theft of Somniant-grade filters en route to purification domes halts production line.", urgency="HIGH"},
    {desc="Cluster of fungal wound infections traced to illicit stills; neighborhood cordon imposed.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Coordinated contamination of horehound-mead vats causes mass poisonings; field clinics overwhelmed.", urgency="CRITICAL"},
    {desc="Armed cell seizes Fount Evander gates, threatens venom release into irrigation.", urgency="CRITICAL"},
    {desc="Explosives found beneath apothecary row ahead of Plateau rites; EOD sweep ongoing.", urgency="CRITICAL"},
    {desc="Wildfire on Gloom-Forest fringe pushes smoke into riverside wards; partial evacuation ordered.", urgency="CRITICAL"}
  }
  },
["Aetherium"] = {
  events = {
    -- LOW
    {desc="Snowpack creak closes two shrine steps for re-chiseling.", urgency="LOW"},
    {desc="Camel-hold baffle breaks; three loads rebalanced at gate.", urgency="LOW"},
    {desc="Ice fog delays dawn caravans; waystation tea tents extended.", urgency="LOW"},
    {desc="Pilgrim slip injuries on frost tiles; grit spread order posted.", urgency="LOW"},
    {desc="Ranger hut chimney fire extinguished; no spread.", urgency="LOW"},

    -- MEDIUM
    {desc="Wind-turbine icing forces rolling brownouts; clinics prioritized.", urgency="MEDIUM"},
    {desc="Counterfeit ‘Ivory purity salts’ cause skin burns; bazaar sweep.", urgency="MEDIUM"},
    {desc="Rockfall blocks Iron Ladder grade for 9 hours; blasting planned.", urgency="MEDIUM"},
    {desc="Telemetry spoof sends patrol to false beacon in whiteout; comms patch deployed.", urgency="MEDIUM"},
    {desc="Wolf predation uptick around outer hamlets; flare kits issued.", urgency="MEDIUM"},
    {desc="Fuel-gel shortage delays kiln firing; ration list updated.", urgency="MEDIUM"},

    -- HIGH
    {desc="Camel-herder strike over closed waystations stalls alpine freight.", urgency="HIGH"},
    {desc="Night thefts of polar blankets and rations indicate cache looting ring.", urgency="HIGH"},
    {desc="Funicular brake glazing reported; line suspended pending inspection.", urgency="HIGH"},
    {desc="Avalanche scare shutters monastery annex; snow science team activated.", urgency="HIGH"},
    {desc="Cistern antifreeze taint detected at outpost; potable reserve diverted.", urgency="HIGH"},

    -- CRITICAL
    {desc="Avalanche buries patrol road above Alabaster Switch; multiple trapped.", urgency="CRITICAL"},
    {desc="Militants ambush camel-train at Frost Spire; hostages taken.", urgency="CRITICAL"},
    {desc="Freeze knocks mountain substation offline; temple quarter without heat.", urgency="CRITICAL"},
    {desc="Explosive charges discovered in funicular pylons linking high shrines.", urgency="CRITICAL"}
  }
  },
["Ferrum Citadel"] = {
  events = {
    -- LOW
    {desc="Wind grit fogs watchtower optics; scopes cycled to workshop.", urgency="LOW"},
    {desc="Heat-cracked parade paving lifts; lane cones set.", urgency="LOW"},
    {desc="Two cases of heat exhaustion in drill square; schedule shifted.", urgency="LOW"},
    {desc="Varnish peel on memorial obelisk; restoration team mobilized.", urgency="LOW"},
    {desc="Night market generator backfires; stall row briefly dark.", urgency="LOW"},

    -- MEDIUM
    {desc="Sand-viper spotted in pipe gallery; maintenance paused for sweep.", urgency="MEDIUM"},
    {desc="Smelter slag splash injures two; line slowed for checks.", urgency="MEDIUM"},
    {desc="Ore-royalty paperwork dispute delays shaft restart two days.", urgency="MEDIUM"},
    {desc="Solar array thefts reported on ridge; patrols extended.", urgency="MEDIUM"},
    {desc="Cyanide pad berm overtops after rare cloudburst; warning downstream.", urgency="MEDIUM"},
    {desc="Caravan robbery on Salt Track; water rations looted.", urgency="MEDIUM"},

    -- HIGH
    {desc="Thyrsiad Rubber distillery leak sends solvent plume toward worker blocks; evacuation begins.", urgency="HIGH"},
    {desc="Explosives cache found in ore-grader housing; security sweep ordered.", urgency="HIGH"},
    {desc="Smelter union blockade halts ingot shipments; portage stacks overflow.", urgency="HIGH"},
    {desc="Counterfeit war-steel billets trigger crane boom failure; lot recall.", urgency="HIGH"},
    {desc="Ammo convoy ambush at causeway bend; corridor closed for EOD.", urgency="HIGH"},

    -- CRITICAL
    {desc="Twin bombings strike curtain wall and ore choke point; partial breach contained.", urgency="CRITICAL"},
    {desc="Deep Gallery 7 gas eruption causes chain collapse; crews trapped.", urgency="CRITICAL"},
    {desc="Mutineers seize foundry cranes; threaten slag drop on barracks.", urgency="CRITICAL"},
    {desc="Dust-storm supercell grounds medevac; SAR switched to long-endurance drones.", urgency="CRITICAL"}
  }
  },
["Acheron"] = {
  events = {
    -- LOW
    {desc="Dust devil upends canyon stall row; bruises treated on site.", urgency="LOW"},
    {desc="Graffiti at Styx forecourt cleaned before noon rites.", urgency="LOW"},
    {desc="Guide fee scam reported; license checks increased.", urgency="LOW"},
    {desc="Stone-chip fall at minor stair; handrail repaired.", urgency="LOW"},
    {desc="River eddy traps prayer boats; tug refloats by dusk.", urgency="LOW"},

    -- MEDIUM
    {desc="Counterfeit river permits surge; kiosk staffing doubled.", urgency="MEDIUM"},
    {desc="Methane seep detected near shelter; ward relocated.", urgency="MEDIUM"},
    {desc="Zipline robbery rig dismantled after injuries; charges filed.", urgency="MEDIUM"},
    {desc="Cliff-market price spike after bridge closure; ration vouchers issued.", urgency="MEDIUM"},
    {desc="Drone disturbance collapses rock-owl rookery; wildlife cordon.", urgency="MEDIUM"},
    {desc="Canyon guides strike over unpaid rescues; tour limits imposed.", urgency="MEDIUM"},

    -- HIGH
    {desc="Illicit blasting destabilizes hoodoo columns above Quarry Row; evacuation ordered.", urgency="HIGH"},
    {desc="Two tour barges collide in slot-canyon; fuel slick corralled.", urgency="HIGH"},
    {desc="Cliff hermitage seized as signal post by militants; talks stalled.", urgency="HIGH"},
    {desc="Cracked basalt threatens sacred stair at Red Echo; pin-bolting requested.", urgency="HIGH"},
    {desc="Bazaar ring moves faux-antiquities to fund insurgents; arrests ongoing.", urgency="HIGH"},

    -- CRITICAL
    {desc="Flash-flood wall bulldozes Lower Switchback market; dozens missing.", urgency="CRITICAL"},
    {desc="Arson at rope-bridge towers collapses east span; five hamlets isolated.", urgency="CRITICAL"},
    {desc="Explosive charges found beneath siphon trestles feeding cistern plateau.", urgency="CRITICAL"},
    {desc="Ritual stampede during Veiled Dance near Tomb of Styx causes crush injuries.", urgency="CRITICAL"}
  }
  },
["Erythros"] = {
  events = {
    -- LOW
    {desc="Council defers vote on pyrotechnics near tar pools.", urgency="LOW"},
    {desc="Soot stains shrine friezes after revel; gentle cleaning set.", urgency="LOW"},
    {desc="Night revel pickpocket cluster; extra wardens posted.", urgency="LOW"},
    {desc="Reed-skid shortage slows pit work; intercity buy arranged.", urgency="LOW"},
    {desc="Mask stall licensing audit finds minor irregularities.", urgency="LOW"},

    -- MEDIUM
    {desc="Gas-sniffer array offline post-storm; manual vent watch reinstated.", urgency="MEDIUM"},
    {desc="Shop fire from adulterated lamp oil near tar quay; contained.", urgency="MEDIUM"},
    {desc="Haze inversion prompts indoor Dream-Space advisories.", urgency="MEDIUM"},
    {desc="Coin-chest skimming scheme at temple annex uncovered.", urgency="MEDIUM"},
    {desc="Confiscations of counterfeit beast-mirth talismans at market gates.", urgency="MEDIUM"},
    {desc="Small pitch flare singes ferry queue; burn tent activated.", urgency="MEDIUM"},

    -- HIGH
    {desc="Adulterated pitch with solvent floods workshops; respiratory surge.", urgency="HIGH"},
    {desc="Rival houses exchange fire over tar-barge moorings; harbor closed.", urgency="HIGH"},
    {desc="Mass theft of ritual masks ahead of feast; surveillance expanded.", urgency="HIGH"},
    {desc="Reported poisoning of alon pyralis roots prompts grove cordon.", urgency="HIGH"},
    {desc="Tar skimmers strike over hazard pay; emergency crews fill shifts.", urgency="HIGH"},

    -- CRITICAL
    {desc="Tar-pit gas ignition during Masquerade causes mass burns; triage in vaults.", urgency="CRITICAL"},
    {desc="Armed syndicate seizes pitch-tax gates; threatens grove arson.", urgency="CRITICAL"},
    {desc="Ceremonial footbridge sinks into bitumen pool; dozens stranded.", urgency="CRITICAL"},
    {desc="Spree killings marked with blood-signs in Dream-Space quarter; curfew enacted.", urgency="CRITICAL"}
  }
  },
["Catonis Atrium"] = {
  events = {
    -- LOW
    {desc="Heritage seal audit finds mislabels on two orchard presses; fines paid.", urgency="LOW"},
    {desc="Juniper smoke stains amphora murals; low-soot oils mandated.", urgency="LOW"},
    {desc="Market queue spillover scuffs mosaic paths; cordons installed.", urgency="LOW"},
    {desc="Vintner cart mishap at slope turn; minor bruises.", urgency="LOW"},
    {desc="Bee swarm relocation delays grove work for an hour.", urgency="LOW"},

    -- MEDIUM
    {desc="Water-rights arbitration delayed; terraces risk withering; pumps staged.", urgency="MEDIUM"},
    {desc="Orchard workers strike over piece rates; mediators convene.", urgency="MEDIUM"},
    {desc="Juniper-sparrow flock devastates seed beds; falconers hired.", urgency="MEDIUM"},
    {desc="Black-market resin weakens tool varnish; equipment failures rise.", urgency="MEDIUM"},
    {desc="Ledger office protest over tithe skimming allegations; records seized.", urgency="MEDIUM"},
    {desc="TME boxcars misrouted; produce spoils on siding; compensation dispute.", urgency="MEDIUM"},

    -- HIGH
    {desc="Rustlers hijack lamb-bales at night; outer watch rings tightened.", urgency="HIGH"},
    {desc="Satyr wardens and private guards clash over pasture easements.", urgency="HIGH"},
    {desc="Lime-kiln cave-in closes hillside lane; quarry medics deployed.", urgency="HIGH"},
    {desc="Exploitative ‘brand tax’ blockade on press-street sparks skirmishes.", urgency="HIGH"},
    {desc="Poachers trapping satyr youths for ransom; search parties mobilized.", urgency="HIGH"},

    -- CRITICAL
    {desc="Coordinated arsons torch heritage orchards and lamb-vines; air assets requested.", urgency="CRITICAL"},
    {desc="Armed gang seizes Herd Caton Lamb Ledger to extort market control.", urgency="CRITICAL"},
    {desc="Explosive charges found on Three-Juniper Causeway; traffic frozen.", urgency="CRITICAL"},
    {desc="‘Purity patrols’ abduct merchants for forced re-education; forum stormed by crowd.", urgency="CRITICAL"}
  }
  },
["Delphica"] = {
  events = {
    -- LOW
    {desc="Seawall repaint by street artists resolved via mediation.", urgency="LOW"},
    {desc="Creekside trail erosion worsens; boardwalk install scheduled.", urgency="LOW"},
    {desc="Jellyfish drifts prompt harbor flagging; swimmers warned.", urgency="LOW"},
    {desc="Exam-season housing scams flagged; 24-hour desk opened.", urgency="LOW"},
    {desc="Redwood tannins discolor fountains; aesthetic complaints logged.", urgency="LOW"},

    -- MEDIUM
    {desc="Tram operator sickout strands commuters; bus bridges deployed.", urgency="MEDIUM"},
    {desc="Counterfeit credit-hour scrip floods student bazaars; seizures made.", urgency="MEDIUM"},
    {desc="Smugglers move unregistered ritual cargo via coves; patrols reinforced.", urgency="MEDIUM"},
    {desc="Clifftop landslip undercuts observatory annex; instruments evacuated.", urgency="MEDIUM"},
    {desc="Nyarion crowding overwhelms midnight clinics; sedative shortages.", urgency="MEDIUM"},
    {desc="Data-center coolant failure threatens exam servers; proctor notices.", urgency="MEDIUM"},

    -- HIGH
    {desc="Faculty payroll breach triggers walkouts; transit hub paralyzed.", urgency="HIGH"},
    {desc="Bridge tie-backs at River Pythe sag; heavy-truck restrictions imposed.", urgency="HIGH"},
    {desc="Courier guildhouse harassed by pamphleteers; skirmishes at arches.", urgency="HIGH"},
    {desc="Bio-culture theft at lab wing sparks hazmat alarm; wing sealed.", urgency="HIGH"},
    {desc="Sea-fog pushes siphon debris into desal intakes; plant throttled.", urgency="HIGH"},

    -- CRITICAL
    {desc="Transformer cascade at Port of Qandra after lightning; fuel farm narrowly contained.", urgency="CRITICAL"},
    {desc="Armed faction occupies University archives to ransom research chips; breach executed.", urgency="CRITICAL"},
    {desc="Saboteurs bore into sub-sea cargo tunnels; blast floods two galleries.", urgency="CRITICAL"},
    {desc="Courier guides attacked during wisp-ward dispatch; three missing.", urgency="CRITICAL"}
  }
  },
["Koinonía"] = {
  events = {
    -- LOW
    {desc="Candle-wax drive launched after hive failure; strong response.", urgency="LOW"},
    {desc="Street theater mocks greedy patrons; tempers flare, no injuries.", urgency="LOW"},
    {desc="Vendor sit-ins over new permit zones along Bride’s Avenue.", urgency="LOW"},
    {desc="Minor tremor loosens votive tiles; scaffolds planned.", urgency="LOW"},
    {desc="Overflow camping on charity lawns; portable sinks delivered.", urgency="LOW"},

    -- MEDIUM
    {desc="Disinformation claims offerings ended; comms counter-notices posted.", urgency="MEDIUM"},
    {desc="Donation chest skimming ring discovered; temple auditors assaulted.", urgency="MEDIUM"},
    {desc="Charity kitchens report tainted grain; supplier traced to river barges.", urgency="MEDIUM"},
    {desc="Processional torch storehouse robbery floods market with substandard oils.", urgency="MEDIUM"},
    {desc="Volunteer medics targeted by pickpockets; lantern posts added to queues.", urgency="MEDIUM"},
    {desc="Gate-watch detects tunneling toward labyrinth; suspects flee via sewer.", urgency="MEDIUM"},

    -- HIGH
    {desc="Bridge blockade stops alms carts to poor quarter; talks stalled.", urgency="HIGH"},
    {desc="Cartel corners alms-salt; price spikes; requisition order drafted.", urgency="HIGH"},
    {desc="Rival factions scuffle near labyrinth forecourt over roster spots.", urgency="HIGH"},
    {desc="Counterfeit beast-ward charms cause panic; mass confiscation underway.", urgency="HIGH"},
    {desc="Procession crowd exceeds route capacity; crush barriers redeployed.", urgency="HIGH"},

    -- CRITICAL
    {desc="Riot breaches labyrinth forecourt during Offering; sacred gates damaged.", urgency="CRITICAL"},
    {desc="Armed thieves torch granaries to mask alms robbery; four wards without staples.", urgency="CRITICAL"},
    {desc="Cult impostors run fake charity tax to buy weapons; gunfight near Bride’s Avenue.", urgency="CRITICAL"},
    {desc="Stampede after labyrinth ‘roar’ during tremor; multiple casualties.", urgency="CRITICAL"}
  }
  },
["Aureum"] = {
  events = {
    -- LOW
    {desc="Tourist coin-panning scams flagged; guild posts warnings.", urgency="LOW"},
    {desc="Refinery flare soot stains mural; weekend cleaning set.", urgency="LOW"},
    {desc="Bullion-queue scuffles; new stanchions installed.", urgency="LOW"},
    {desc="Silver-wash shortage delays shrine pieces; bronze substitutions approved.", urgency="LOW"},
    {desc="Mint first-strike crowding; timed tickets adopted.", urgency="LOW"},

    -- MEDIUM
    {desc="Gold-diet zealot clinic sees electrolyte crises; advisory issued.", urgency="MEDIUM"},
    {desc="Night-soil haulers strike near refinery dorms; contingency crews roll.", urgency="MEDIUM"},
    {desc="Water table drawdown prompts well rationing; pump schedule posted.", urgency="MEDIUM"},
    {desc="Weighbridge exploit skimmed grams from high-value lots; audit live.", urgency="MEDIUM"},
    {desc="Artisan guild feud over commissions causes shopfront damage.", urgency="MEDIUM"},
    {desc="Illegal pit-fires at abandoned drift cause subsidence cracks.", urgency="MEDIUM"},

    -- HIGH
    {desc="Temple Illuminata reliquary theft; meditation chips missing.", urgency="HIGH"},
    {desc="Counterfeit ingot stamps detected; export lots quarantined.", urgency="HIGH"},
    {desc="Miner wildcat strike over safety gear; production halved.", urgency="HIGH"},
    {desc="Bullion coach ambushed on Ridge Road; escorts wounded.", urgency="HIGH"},
    {desc="Cyanide solution siphoned from heap-leach ponds; hazmat alert.", urgency="HIGH"},

    -- CRITICAL
    {desc="Coordinated mine-head blasts trap crews; telemetry lost.", urgency="CRITICAL"},
    {desc="Armed gang seizes assay room; acid threat against bullion vault.", urgency="CRITICAL"},
    {desc="Procession bomb from rooftop hits Gold-Eaters; mass casualties.", urgency="CRITICAL"},
    {desc="Foundry torching spills molten metal into artisan quarter; rescues ongoing.", urgency="CRITICAL"}
  }
  },
["Myrene"] = {
  events = {
    -- LOW
    {desc="Orchard fair postponed for trail repairs; vendor fee credits issued.", urgency="LOW"},
    {desc="Cedar wayfinding posts replace rotted stakes in mist zone.", urgency="LOW"},
    {desc="Library annex humidity spike; dehumidifiers deployed overnight.", urgency="LOW"},
    {desc="River ferry rope fray repaired; service resumes.", urgency="LOW"},
    {desc="Festival lanterns snag on bridge rails; height limits posted.", urgency="LOW"},

    -- MEDIUM
    {desc="Silt chokes millrace; dredge contracted; flour rationing begins.", urgency="MEDIUM"},
    {desc="Monsoon mold invades clinic storage; disinfectant shortfall.", urgency="MEDIUM"},
    {desc="Volunteer brigades dispute command; mediation convened.", urgency="MEDIUM"},
    {desc="Quarry-truck brake fires on Grade Way; rolling closures.", urgency="MEDIUM"},
    {desc="Valley repeater vandalized; alerts intermittent; runners dispatched.", urgency="MEDIUM"},
    {desc="Black bear incursions into depots; wardens deploy deterrents.", urgency="MEDIUM"},

    -- HIGH
    {desc="Mudflow threatens grain stores; sandbag lines hold—barely.", urgency="HIGH"},
    {desc="Bridge pier scour worsens; axle-weight limits enforced.", urgency="HIGH"},
    {desc="Forged valley-seal on grants funds political agitation; arrests made.", urgency="HIGH"},
    {desc="Cable-car clutch failure strands passengers; manual rescue.", urgency="HIGH"},
    {desc="Fuel smugglers dilute lamp oil; fire risk spikes in timber lanes.", urgency="HIGH"},

    -- CRITICAL
    {desc="Rain-loosened slope collapses onto riverside dormitory; many trapped.", urgency="CRITICAL"},
    {desc="Nornstream trestle torched; TME spur severed; valley isolated.", urgency="CRITICAL"},
    {desc="Manuscript caravan ambushed en route to Delphica; escorts disarmed.", urgency="CRITICAL"},
    {desc="Landslide-dam burst sends debris surge through central square; waterworks offline.", urgency="CRITICAL"}
  }
  },
["Halicarn"] = {
  events = {
    -- LOW
    {desc="Roadside shrine offerings clog gutters; cleanup crews formed.", urgency="LOW"},
    {desc="Guide torches stain frescoes; low-soot fuel mandated.", urgency="LOW"},
    {desc="Market spat between rival stonecutters; dispersed.", urgency="LOW"},
    {desc="Amphitheater seating splinter hazard repaired.", urgency="LOW"},
    {desc="Gatehouse bell rope snaps; backup signal used.", urgency="LOW"},

    -- MEDIUM
    {desc="Tourism lull triggers stipend requests; charity kitchens extend hours.", urgency="MEDIUM"},
    {desc="Unlicensed fight rings uncovered in minor crypts; entries bricked.", urgency="MEDIUM"},
    {desc="Cultural dispute over new signage scripts sparks nightly tagging.", urgency="MEDIUM"},
    {desc="Storm undercuts fortress spur; rockfall netting installed.", urgency="MEDIUM"},
    {desc="Extortionists ‘protect’ tomb-market stalls; arrests after chase.", urgency="MEDIUM"},
    {desc="Malware trips reliquary ward sensors; manual seals engaged.", urgency="MEDIUM"},

    -- HIGH
    {desc="Grave-goods theft ring smuggles bone relics via river; sting active.", urgency="HIGH"},
    {desc="Warden night shifts vanish; gatehouses double watch.", urgency="HIGH"},
    {desc="Processional crush at Hero’s Gate; lane barriers expanded.", urgency="HIGH"},
    {desc="Coach crash during cortege draws riot over route ban.", urgency="HIGH"},
    {desc="Hellhound kennel sabotage releases trained dogs; multiple bites.", urgency="HIGH"},

    -- CRITICAL
    {desc="Tunnelers breach ossuary; booby-traps injure first responders.", urgency="CRITICAL"},
    {desc="Ex-soldier column overruns checkpoint; weapons seized.", urgency="CRITICAL"},
    {desc="Crypt fire spreads through resin-lined catacombs; roof collapse risk.", urgency="CRITICAL"},
    {desc="Insurgent blast isolates shrine district from hospitals; bridge destroyed.", urgency="CRITICAL"}
  }
  },

  ----------------------------------------------------------------------------
  -- New South Jangsong (Major Cities)
  ----------------------------------------------------------------------------
["Skýrophos"] = {
  events = {
    -- LOW (1–5)
    {desc="Minor landslip closes one cliff stair; ropes and lanterns installed for detour.", urgency="LOW"},
    {desc="Ferry turnstile jam slows boarding at Canal Gate; mechanics clear within the hour.", urgency="LOW"},
    {desc="Thin oil sheen near fish pier traced to generator leak; booms deployed, no wildlife harm.", urgency="LOW"},
    {desc="Unauthorized hobby drones over canal checkpoints confiscated; operators fined.", urgency="LOW"},
    {desc="Quartz outcrop snags a skiff rudder at low tide; harbor divers remove the hazard.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Substation trip causes brownout across reefer stacks; backup gensets spun up.", urgency="MEDIUM"},
    {desc="Counterfeit harbor passes seized at East Gate; contractor audit expanded citywide.", urgency="MEDIUM"},
    {desc="Two pilot boats collide in fog; salvage tugs close fairway for three hours.", urgency="MEDIUM"},
    {desc="Security contractor–stevedore scuffle over search rules; seven treated for minor injuries.", urgency="MEDIUM"},
    {desc="AIS/VTS spoofing attempt disrupts arrival sequencing; port shifts to manual control.", urgency="MEDIUM"},
    {desc="Five channel beacons stolen overnight; temporary buoys laid under patrol escort.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Privateer fast-skiffs probe checkpoint with warning fire; coastal guard repels pursuit offshore.", urgency="HIGH"},
    {desc="Sabotage suspected in Suncliff watchtower comms blackout; ridge patrols doubled.", urgency="HIGH"},
    {desc="Pipe-bomb discovered on outer breakwater; EOD disrupts, cordon remains at 200 m.", urgency="HIGH"},
    {desc="Undersea fiber cut near harbor head throttles comms; cable ship tasked to splice.", urgency="HIGH"},
    {desc="Arson at customs warehouse ignites flammables; two blocks evacuated during knock-down.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="VBIED detonates at canal checkpoint during shift change; mass casualties; War League EOD and cordons requested.", urgency="CRITICAL"},
    {desc="Rogue privateer flotilla forms beyond quartz outcrops; Hatch Ministry battlecruiser support requested for intercept.", urgency="CRITICAL"},
    {desc="Fuel-farm blaze after valve tampering threatens multiple tanks; foam stocks nearing depletion.", urgency="CRITICAL"},
    {desc="Armed trawlers blockade harbor entrance; commerce halted pending War League maritime clearance.", urgency="CRITICAL"}
  }
  },
["Bjornopolis"] = {
  events = {
    -- LOW
    {desc="Pontoon walkway tilts from ballast shift; three vendor stalls relocated.", urgency="LOW"},
    {desc="Silt jam stalls a canal gate; dredge clears by dawn.", urgency="LOW"},
    {desc="Mead cask topple on festival stage creates slip hazard; first aid on site.", urgency="LOW"},
    {desc="Micro-tears in sphinx-silk batch trigger voluntary guild recall.", urgency="LOW"},
    {desc="Wet cabling trips power along stall row; electricians rewire junction box.", urgency="LOW"},

    -- MEDIUM
    {desc="Counterfeit mooring permits sold to houseboat merchants; crackdown nets 12 arrests.", urgency="MEDIUM"},
    {desc="Mold outbreak in upper-terrace granary prompts fumigation and grain transfer.", urgency="MEDIUM"},
    {desc="Lock gear jams mid-cycle; tugs reposition craft as traffic gridlocks for one hour.", urgency="MEDIUM"},
    {desc="Trading algorithm glitch misprices commodities; exchange halts session for audit.", urgency="MEDIUM"},
    {desc="Rooftop watchers hurl stones across rival terraces; patrol disperses, minor injuries only.", urgency="MEDIUM"},
    {desc="Food-safety probe links honey contamination to illegal hives; mead hall closed pending tests.", urgency="MEDIUM"},

    -- HIGH
    {desc="Night cutters sever three market anchors; drifting pontoons collide before retrieval.", urgency="HIGH"},
    {desc="Armed crew raids Order of the Sphinx cocoon warehouse; high-grade bales stolen via canal.", urgency="HIGH"},
    {desc="Ex-soldiers occupy toll quay to extort ‘security fees’; stand-off with city watch.", urgency="HIGH"},
    {desc="Electrical fire under canal arch threatens timber stalls; major hose line laid from barge pumps.", urgency="HIGH"},
    {desc="Canal-house raid uncovers arms cache linked to series of warehouse burglaries.", urgency="HIGH"},

    -- CRITICAL
    {desc="VBIED skiff detonates beneath harvest-pontoon; mass casualties trigger full evacuation.", urgency="CRITICAL"},
    {desc="Rebel militia seizes municipal comms tower; broadcasts jam emergency channels; manipulus requested.", urgency="CRITICAL"},
    {desc="Demolition charges found on main lock gates; port enters all-stop while EOD sweeps.", urgency="CRITICAL"},
    {desc="Rockets fired from warehouse row strike harbor offices; counter-battery teams deployed.", urgency="CRITICAL"}
  }
  },
["Aegirheim"] = {
  events = {
    -- LOW
    {desc="Algae slick on ladder rung causes slip; dock section cleaned and reopened.", urgency="LOW"},
    {desc="Rope-lay shop waste ignites in bin; extinguished with minor damage.", urgency="LOW"},
    {desc="Fuel pump filter clog delays harbor fueling rotation by one hour.", urgency="LOW"},
    {desc="Mislaid crate of propeller blades shuts a walkway until recovered.", urgency="LOW"},
    {desc="Weathered bollard fails during moor; tug dented, replaced within shift.", urgency="LOW"},

    -- MEDIUM
    {desc="Gale snaps dock fenders; three berths closed for timber repair.", urgency="MEDIUM"},
    {desc="X-ray scanner outage forces manual customs checks; backlog builds at shed.", urgency="MEDIUM"},
    {desc="Modified trawlers used for smuggling seized in dawn raid; eight arrests.", urgency="MEDIUM"},
    {desc="Shipbuilder contract feud erupts into yard brawl; patrol disperses and posts guard.", urgency="MEDIUM"},
    {desc="Transformer trip darkens quarter of shipyard; hot-work suspended pending inspection.", urgency="MEDIUM"},
    {desc="Slipway cradle drops early; refit delayed for hull survey, no injuries.", urgency="MEDIUM"},

    -- HIGH
    {desc="Sabotage found in blacksmith fittings—brittle pins in rudder stocks; recall of outgoing hulls.", urgency="HIGH"},
    {desc="Cyberattack scrambles schedules and inventory; production reverts to paper for 48 hours.", urgency="HIGH"},
    {desc="Worker safety strike shutters two slipways; naval backlog expands.", urgency="HIGH"},
    {desc="Old pier decking collapses under forklift; 11 injured; structural audit ordered.", urgency="HIGH"},
    {desc="Ex-pirate gang raids armory; militia falls back to inner line after casualties.", urgency="HIGH"},

    -- CRITICAL
    {desc="Extremist fishermen barricade export piers, threaten mass scuttling; War League detachment requested.", urgency="CRITICAL"},
    {desc="Fleet-hijack conspiracy revived; traitorous admirals arrested; port on hard lockdown.", urgency="CRITICAL"},
    {desc="Limpet-charge signatures detected near drydock gate; EOD clears while port suspends operations.", urgency="CRITICAL"},
    {desc="Drone swarm strikes fueling headers; multiple fires spark evacuation of southern yard.", urgency="CRITICAL"}
  }
  },
["Norsolyra"] = {
  events = {
    -- LOW
    {desc="Market scales misread rice sack weights; calibration sweep and vendor fines issued.", urgency="LOW"},
    {desc="Footbridge slat cracks over irrigation cut; closed with plank bypass installed.", urgency="LOW"},
    {desc="Incense coil sparks small warehouse fire; contained with standpipe line.", urgency="LOW"},
    {desc="Silt bar limits ferry draft; schedules trimmed until dredge arrives.", urgency="LOW"},
    {desc="Night thefts of small rice lots from carts; community patrol organized.", urgency="LOW"},

    -- MEDIUM
    {desc="Flooded paddy blocks rural lane; emergency culvert cut, deliveries delayed.", urgency="MEDIUM"},
    {desc="Algal bloom detected in canal; flow throttled while assays run.", urgency="MEDIUM"},
    {desc="Rumor of ‘dream plague’ closes two schools; public briefings calm crowds.", urgency="MEDIUM"},
    {desc="Strike vote over price controls triggers sit-downs at granaries.", urgency="MEDIUM"},
    {desc="Diesel pump thefts at three co-ops leave fields unflooded; police sweep underway.", urgency="MEDIUM"},
    {desc="Foodborne-illness cluster traced to unhusked shipments; targeted recall ordered.", urgency="MEDIUM"},

    -- HIGH
    {desc="Smuggler turf war over rice export routes erupts in crossfire; bystanders wounded.", urgency="HIGH"},
    {desc="Pirates posing as traders loot tech from arsenal; heightened port security follows.", urgency="HIGH"},
    {desc="Levee breach inundates outer fields; hundreds displaced; heavy plant mobilized.", urgency="HIGH"},
    {desc="Coordinated theft of farm machinery sparks road blockades and protests.", urgency="HIGH"},
    {desc="Curfew enacted after surge in field-side robberies and wharf assaults.", urgency="HIGH"},

    -- CRITICAL
    {desc="Psychogenic ‘dream-panic’ with violent episodes overwhelms clinics; War League invited to stabilize.", urgency="CRITICAL"},
    {desc="Extremist cadre occupies central ward and enforces forced labor; urban operations required.", urgency="CRITICAL"},
    {desc="Attack on main pumping station halves water supply; emergency rationing imposed.", urgency="CRITICAL"},
    {desc="Widespread poisoning from contaminated rice stocks floods hospitals; city declares emergency.", urgency="CRITICAL"}
  }
  },
["Thorsalon"] = {
  events = {
    -- LOW
    {desc="Vineyard tractor tips on hillside; two treated for bruises.", urgency="LOW"},
    {desc="Broken staves spill wine across quay; walkway closed for cleanup.", urgency="LOW"},
    {desc="Noise complaints from night cargo shift near market; schedules adjusted.", urgency="LOW"},
    {desc="Festival stall relocations trigger brief crowding on the esplanade.", urgency="LOW"},
    {desc="Algae in fountain prompts sanitation flush; shrine forecourt reopened.", urgency="LOW"},

    -- MEDIUM
    {desc="Fisherfolk tax protest along portside market results in scuffles; patrol separates crowds.", urgency="MEDIUM"},
    {desc="Old pier segment collapses under light truck; minor trade delays until planking replaced.", urgency="MEDIUM"},
    {desc="Smuggling ring in remote cove disrupted after chase; partial cargo recovered.", urgency="MEDIUM"},
    {desc="One quay placed under precautionary quarantine after cluster among returning sailors.", urgency="MEDIUM"},
    {desc="Allegations of fee manipulation at harbor office spark audits and sit-ins.", urgency="MEDIUM"},
    {desc="Marine-fuel shortage disrupts ferry and tug timetables; emergency rationing enacted.", urgency="MEDIUM"},

    -- HIGH
    {desc="Coordinated arson scorches two supply warehouses; firefighters hold firebreak at street 3.", urgency="HIGH"},
    {desc="Bribery in shipping contracts exposed; protesters surround harbormaster’s office.", urgency="HIGH"},
    {desc="Fishing union strike halts seafood exports; cold-chain losses mount.", urgency="HIGH"},
    {desc="Gale damages a dozen small craft; extended rescue ops off the point.", urgency="HIGH"},
    {desc="Rival shippers blockade dock access; cargo robberies reported amid chaos.", urgency="HIGH"},

    -- CRITICAL
    {desc="Sudden storm topples key lighthouse; navigation crippled, collision risk spikes; War League cutters requested.", urgency="CRITICAL"},
    {desc="Extremist group threatens vineyard contamination; sabotage materials found; perimeter sealed.", urgency="CRITICAL"},
    {desc="Explosive-laden boat rams fuel terminal; multi-tank fire forces port evacuation.", urgency="CRITICAL"},
    {desc="Coordinated sabotage on inbound freighters at harbor approach triggers near-collisions; emergency port closure ordered.", urgency="CRITICAL"}
  }
  },

  ----------------------------------------------------------------------------
  -- New South Jangsong (Minor Cities)
  ----------------------------------------------------------------------------
["Pelagia"] = {
  events = {
    -- LOW (1–5)
    {desc="Loose camel train breaks tethers at South Gate; brief traffic snarl, no injuries.", urgency="LOW"},
    {desc="False rumor of cistern taint prompts precautionary boil notice; tests clear by evening.", urgency="LOW"},
    {desc="Waystation generator hiccup forces reefer handoff; perishables preserved.", urgency="LOW"},
    {desc="Sand skiff scrapes quay ladder; harbor divers remove metal snag before dusk.", urgency="LOW"},
    {desc="Unauthorized souvenir sellers crowd caravan queue; licenses checked and stalls relocated.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Wash-boarded salt road slows convoys; grader crews deployed overnight.", urgency="MEDIUM"},
    {desc="Counterfeit caravan seals uncovered in date-crate lot; permits re-issued with new hologlyph.", urgency="MEDIUM"},
    {desc="Algal bloom clogs secondary intake; chlorination flush and 12-hour filter cycle.", urgency="MEDIUM"},
    {desc="Beacon vandalism at dune waypoints forces night routes to daylight only.", urgency="MEDIUM"},
    {desc="Grazing-corridor protest by camel herders blocks Spur Three; negotiated reopening by noon.", urgency="MEDIUM"},
    {desc="Arms smuggling ring using spice barrels disrupted at North Yard; six arrests.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Pipeline tap on upland feeder drops city pressure; rationing introduced for outer wards.", urgency="HIGH"},
    {desc="Mechanized raider probe sighted near Salt-Lindley pass; pickets exchange fire and withdraw.", urgency="HIGH"},
    {desc="Ambush on westbound spice convoy leaves escorts wounded; route closed pending sweep.", urgency="HIGH"},
    {desc="Arson attempt at camel-feed warehouse produces toxic smoke; adjacent block evacuated.", urgency="HIGH"},
    {desc="IED discovered beneath causeway mile-marker 14; EOD disrupts and expands cordon.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Coordinated raids hit three caravanserai rings; hostages reported; War League manipulus requested.", urgency="CRITICAL"},
    {desc="Cistern poisoning with neurotoxic plant extract causes mass casualties; field hospitals surge.", urgency="CRITICAL"},
    {desc="Explosive sabotage cripples main water tower; city-wide pressure collapse triggers emergency distribution.", urgency="CRITICAL"},
    {desc="Armored column forms near Lindley approach; curfew declared while War League stages intercept.", urgency="CRITICAL"}
  }
  },
["Thyrea"] = {
  events = {
    -- LOW
    {desc="Procession drumlines trigger noise complaints along Old Causeway; route timing adjusted.", urgency="LOW"},
    {desc="Horse spooks during shrine parade; cart grazes stall, no serious injuries.", urgency="LOW"},
    {desc="Candle flare singes side-chapel tapestries; extinguished by wardens.", urgency="LOW"},
    {desc="Unlicensed vendors sell Agnis icons at gate; permits checked and stalls moved.", urgency="LOW"},
    {desc="Light aftershock dislodges votive tiles; shrine closed for quick re-seating.", urgency="LOW"},

    -- MEDIUM
    {desc="Festival crowding leads to fainting episodes near west stair; misting tents added.", urgency="MEDIUM"},
    {desc="Counterfeit relic tokens discovered in pilgrim markets; confiscations broadened.", urgency="MEDIUM"},
    {desc="Sectarian shouting match escalates outside basilica; baton dispersal, no arrests.", urgency="MEDIUM"},
    {desc="Bridge deck wear prompts foot-capacity limits during evening rites.", urgency="MEDIUM"},
    {desc="Pilgrim camp latrines overflow; emergency sanitation crews deployed.", urgency="MEDIUM"},
    {desc="Rumors of proscribed rites spark street arguments; clergy convene joint address.", urgency="MEDIUM"},

    -- HIGH
    {desc="Arson attempt against rival chapel foiled; scorch damage and two smoke casualties.", urgency="HIGH"},
    {desc="Stones thrown during counter-procession at East Gate; eight injured, dusk curfew imposed.", urgency="HIGH"},
    {desc="Bomb threat note left at festival dais; device recovered and disrupted by EOD.", urgency="HIGH"},
    {desc="Incense-resin contamination detected in upland reservoir; distribution halted for flush.", urgency="HIGH"},
    {desc="Mass brawl between Agnis celebrants and orthodox defenders overwhelms clinic triage.", urgency="HIGH"},

    -- CRITICAL
    {desc="False ‘oracle’ cry triggers stampede on sacred stair; multiple fatalities reported.", urgency="CRITICAL"},
    {desc="Armed zealot cell occupies a minor shrine and broadcasts demands for legal primacy; standoff in progress.", urgency="CRITICAL"},
    {desc="Coordinated incendiaries ignite devotional markets across two wards; citywide firebreaks ordered; War League support requested.", urgency="CRITICAL"},
    {desc="Serial IEDs along procession loop detonated by remote signal; martial law declared overnight.", urgency="CRITICAL"}
  }
  },
["Ephyra"] = {
  events = {
    -- LOW
    {desc="Market scales misread weights after power surge; municipal calibration sweep completed.", urgency="LOW"},
    {desc="Public fountain closed for algae film removal; reopened by noon.", urgency="LOW"},
    {desc="Pothole sink forms near depot gate; patched with quick-set binder.", urgency="LOW"},
    {desc="Low river flow trims ferry timetable; shuttle buses added for commuters.", urgency="LOW"},
    {desc="Warehouse mouse outbreak triggers targeted baiting; food bays sealed 24 hours.", urgency="LOW"},

    -- MEDIUM
    {desc="Freshwater intake fouled by algal mats; filters swapped and flow throttled.", urgency="MEDIUM"},
    {desc="Counterfeit grain stamps discovered; three silos quarantined for assay.", urgency="MEDIUM"},
    {desc="Quay crane gearbox jam delays containers; harbor crews rotate to manual derricks.", urgency="MEDIUM"},
    {desc="Data-center HVAC outage slows licensing and tax services; backup chiller trucked in.", urgency="MEDIUM"},
    {desc="Pillarion tournament heat stress overwhelms medics; fixture windows shifted to dusk.", urgency="MEDIUM"},
    {desc="Clogged storm drains cause localized street flooding; pump-out teams deployed.", urgency="MEDIUM"},

    -- HIGH
    {desc="Levee seepage noted after cloudburst; sandbag crews reinforce weak sections.", urgency="HIGH"},
    {desc="Mass fish kill reported downstream; illicit discharge suspected; environmental cordon set.", urgency="HIGH"},
    {desc="Hairline crack in truss at North Bridge; heavy vehicles rerouted pending splice plate.", urgency="HIGH"},
    {desc="Street-food contamination leads to gastro cluster; vendor recall and kitchen inspections underway.", urgency="HIGH"},
    {desc="Syndicate using barges to move stolen goods engages watch in gunfire; two suspects flee upriver.", urgency="HIGH"},

    -- CRITICAL
    {desc="Levee breach floods two low wards; boat rescues ongoing; TME spur closed.", urgency="CRITICAL"},
    {desc="Chemical spill from illicit warehouse enters canal; mass evacuation of riverside blocks.", urgency="CRITICAL"},
    {desc="Coordinated arson at grain silos threatens fuel depot; aerial water drops approved.", urgency="CRITICAL"},
    {desc="Sabotage at main pumping station knocks city water offline; War League secures perimeter during repairs.", urgency="CRITICAL"}
  }
  },
 ----------------------------------------------------------------------------
  -- Haifan Bassaridia (Major Cities)
  ----------------------------------------------------------------------------
["Keybir-Aviv"] = {
  events = {
    -- LOW (1–5)
    {desc="Weighbridge miscalibration at ore gate delays three trucks; scales recalibrated by noon.", urgency="LOW"},
    {desc="Short power flicker stalls polishing lathes; UPS keeps vault climate stable.", urgency="LOW"},
    {desc="Tour group crowding in Coral Market arcade causes minor scuffles; wardens open overflow lane.", urgency="LOW"},
    {desc="Coolant leak in one cutting bay prompts 30-minute evacuation; spill contained.", urgency="LOW"},
    {desc="Counterfeit vendor badges detected at gem bazaar; offenders fined and ejected.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Forgery ring pushes fake certification chips; 4 lots quarantined for assay.", urgency="MEDIUM"},
    {desc="Acid leach line pinhole sprays workers; clinic treats mild burns; PPE audit ordered.", urgency="MEDIUM"},
    {desc="Diesel thefts from quarry pumps reduce output; night patrols reinforced.", urgency="MEDIUM"},
    {desc="Brownout across gem district after substation trip; rotating load-shed schedule posted.", urgency="MEDIUM"},
    {desc="Broker protest over contract awards blocks customs door; negotiations set for morning.", urgency="MEDIUM"},
    {desc="Smugglers attempt coral-crate switcheroo at checkpoint; seizure triggers canal search.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Armed crew hijacks bullion coach on TME spur; escorts injured; line closed for sweep.", urgency="HIGH"},
    {desc="Cyanide sump overflow after cloudburst; downstream warning issued; booms deployed.", urgency="HIGH"},
    {desc="Coordinated warehouse break-ins target rough-stone stock; two guards disarmed.", urgency="HIGH"},
    {desc="Extortionists raid outlying hamlets for ‘security tithe’, disrupting mine supply routes.", urgency="HIGH"},
    {desc="IED discovered under Coral Market footbridge; EOD renders safe; cordon remains.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Multi-site assault hits Coral Market entrances during shift change; mass-casualty triage active; War League requested.", urgency="CRITICAL"},
    {desc="Saboteurs ignite solvent tanks at primary cutting house; block-wide evacuation ordered.", urgency="CRITICAL"},
    {desc="Rogue faction seizes waterworks to coerce gem guilds; citywide curfew imposed.", urgency="CRITICAL"},
    {desc="Mine-head blast collapses shaft gallery; dozens trapped; heavy rescue underway.", urgency="CRITICAL"}
  }
  },
["Tel-Amin"] = {
  events = {
    -- LOW (1–5)
    {desc="Fog delays dawn ferries; harbor tugs guide convoys at reduced speed.", urgency="LOW"},
    {desc="Pilgrim queue congestion at shrine gate causes fainting spells; misting tents added.", urgency="LOW"},
    {desc="Loose mooring at Pier 6 scuffs two coasters; fenders replaced.", urgency="LOW"},
    {desc="Unauthorized drone buzzes lighthouse; controller fined and equipment seized.", urgency="LOW"},
    {desc="Minor diesel spill near fish quay; booms deployed, no wildlife impact.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Quay crane gearbox failure idles one berth; manual derricks activated to clear backlog.", urgency="MEDIUM"},
    {desc="Counterfeit harbor passes circulate among coastal traders; checkpoint inspections doubled.", urgency="MEDIUM"},
    {desc="Reports of contraband transiting sea caves prompt night closure of inshore channel.", urgency="MEDIUM"},
    {desc="Chlorination fault at treatment works triggers 24-hour boil notice.", urgency="MEDIUM"},
    {desc="Protest over utility surcharges blocks customs road; dispersal without injuries.", urgency="MEDIUM"},
    {desc="Fiber backhaul nicked by dredger; port systems on contingency links.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Fast-skiff harassment of inbound freighter; harbor patrol repels with warning fire.", urgency="HIGH"},
    {desc="Arson at bonded warehouse ignites flammables; two blocks evacuated under smoke.", urgency="HIGH"},
    {desc="Stevedore strike halts container moves for one shift; mediation team seated.", urgency="HIGH"},
    {desc="Rival smuggling crews clash in back-canal; gunfire wounds bystanders.", urgency="HIGH"},
    {desc="Explosive cache uncovered under old slipway; controlled detonation at low tide.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Coordinated sabotage closes three trade outposts up-coast; port shifts to security posture Alfa; War League liaison on scene.", urgency="CRITICAL"},
    {desc="Explosive-laden speedboat rams fuel berth; multi-tank fire; mass evacuation of harbor ward.", urgency="CRITICAL"},
    {desc="Armed flotilla attempts blockade of harbor entrance; naval intercept requested.", urgency="CRITICAL"},
    {desc="Complex attack couples pier bombs with small-arms ambushes near shrine quarter; city under curfew.", urgency="CRITICAL"}
  }
  },
["Diamandis"] = {
  events = {
    -- LOW (1–5)
    {desc="Mint visitor line spillover blocks tram stop; ushers re-route foot traffic.", urgency="LOW"},
    {desc="Refinery flare stains mural frontage; scheduled cleanup approved.", urgency="LOW"},
    {desc="Counter queue scuffle at assay hall; no injuries reported.", urgency="LOW"},
    {desc="Air-sensor false alarm in vault basement; system recalibrated.", urgency="LOW"},
    {desc="Tour hawkers fined for selling unlicensed ‘mine chips’ to visitors.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Container seal tampering detected at river quay; six boxes quarantined.", urgency="MEDIUM"},
    {desc="Data breach at brokers’ guild compromises ten accounts; exchange halts session for audit.", urgency="MEDIUM"},
    {desc="Power surge trips electro-refining line; two workers treated for shocks.", urgency="MEDIUM"},
    {desc="Smuggling route via abandoned culvert uncovered; patrols extended nightside.", urgency="MEDIUM"},
    {desc="Guild march over export quotas clogs central artery; dispersal by dusk.", urgency="MEDIUM"},
    {desc="Tanker hose failure leaks solvents; street closure for decon.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Armed raid on bonded vault foiled; suspects escape via canal; two guards wounded.", urgency="HIGH"},
    {desc="Explosive devices found beneath three customs scanners; EOD teams deployed across terminal.", urgency="HIGH"},
    {desc="Pirate cell reconstitutes in riverside warehouse row; firefight during joint sweep.", urgency="HIGH"},
    {desc="Counterfeit hallmark dies seized from clandestine mint; distribution ring disrupted.", urgency="HIGH"},
    {desc="Coordinated arsons hit logistics sheds near ore gate; firebreaks hold after two hours.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Multi-prong assault on smuggling depots resumes; heavy weapons reported; War League QRF requested.", urgency="CRITICAL"},
    {desc="VBIED detonates beside bullion carrier at bridge ramp; mass-casualty response underway.", urgency="CRITICAL"},
    {desc="Rebel commander attempts to seize radio mast and broadcast ultimatum; counter-assault in progress.", urgency="CRITICAL"},
    {desc="Sustained mortar harassment against river terminal forces full port shutdown.", urgency="CRITICAL"}
  }
  },
["Jogi"] = {
  events = {
    -- LOW (1–5)
    {desc="Brewery CO₂ vent trips alarm during maintenance; staff shelter briefly.", urgency="LOW"},
    {desc="Market stall collapse in wind gusts; three treated for bruises.", urgency="LOW"},
    {desc="False rumor of ale contamination prompts brief returns; lab clears batches.", urgency="LOW"},
    {desc="Shunting delay at TME siding backs grain trucks one hour.", urgency="LOW"},
    {desc="Unauthorized river fireworks ignite reedbed patch; put out by harbor team.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Counterfeit export seals found on ale pallets; customs seizes two containers.", urgency="MEDIUM"},
    {desc="Canal lock jam strands four barges; towboats re-sequence traffic overnight.", urgency="MEDIUM"},
    {desc="Fuel-pump thefts at co-op depots slow harvest haul; patrols expand.", urgency="MEDIUM"},
    {desc="Storm runoff floods low warehouse row; sandbag lines established.", urgency="MEDIUM"},
    {desc="Ranger–rancher dispute over grazing corridor causes highway blockade; mediated reopening.", urgency="MEDIUM"},
    {desc="Data-center HVAC failure at rail yard knocks out waybills; manual switch lists used.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Armed crews rob grain trucks on ring road; escorts wounded; curfew in outer ward.", urgency="HIGH"},
    {desc="Saboteurs torch malt silos at southern brewery; toxic smoke prompts neighborhood evacuation.", urgency="HIGH"},
    {desc="Rail sabotage loosens fishplates on TME outbound; trains halted pending sweep.", urgency="HIGH"},
    {desc="Smuggling cell uses river barges to move weapons under ale tarps; firefight at night quay.", urgency="HIGH"},
    {desc="Wind-shear microburst downs derrick at bulk pier; multiple injuries; crane audit ordered.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Supercell outbreak spawns tornado east of city; mass casualty incident declared; War League airlift requested.", urgency="CRITICAL"},
    {desc="Coordinated convoy ambush on farm roads severs food shipments; aerial overwatch deployed.", urgency="CRITICAL"},
    {desc="Armed group seizes rail control hut and threatens bridge demolition; EOD teams mobilized.", urgency="CRITICAL"},
    {desc="Rogue column attempts to occupy harbor office and levy ‘grain taxes’; joint operation clears building.", urgency="CRITICAL"}
  }
  },
["Lewisburg"] = {
  events = {
    -- LOW (1–5)
    {desc="Signal hut vandalism causes minor platform delays; temporary dispatcher posted.", urgency="LOW"},
    {desc="Commuter tussle over queue cutting at TME ticket hall; medics treat one sprain.", urgency="LOW"},
    {desc="Night freight horn complaints trigger revised quiet-zone hours.", urgency="LOW"},
    {desc="Stormwater backs up at underpass; pumps clear by evening.", urgency="LOW"},
    {desc="Lost-property scare at concourse resolved; suitcase empty.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Waybill server hiccup corrupts manifests; manual re-key delays five departures.", urgency="MEDIUM"},
    {desc="Counterfeit rail passes seized at turnstiles; forensic audit of printers underway.", urgency="MEDIUM"},
    {desc="Track geometry defect found on outbound main; 40 km/h slow order until tamping completed.", urgency="MEDIUM"},
    {desc="Protest over fare hikes blocks South Gate; dispersal peaceful after city pledge to review.", urgency="MEDIUM"},
    {desc="Fuel leak at yard tank farm triggers hazmat cordon; no ignition.", urgency="MEDIUM"},
    {desc="Freight derailment in industrial siding spills plastics; local roads closed for cleanup.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Phishing attack on TME scheduler causes cascading delays; cyber team isolates nodes.", urgency="HIGH"},
    {desc="Coordinated cable theft darkens two suburbs; mobile generators dispatched to clinics.", urgency="HIGH"},
    {desc="Riot near depot after rumor of canceled commuter service; mounted patrol restores order.", urgency="HIGH"},
    {desc="Explosives found under bridge truss on east approach; line suspended for EOD sweep.", urgency="HIGH"},
    {desc="Contagious respiratory cluster detected in yard crews; quarantine ring set; testing ramped.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Rail sabotage collapses trestle on river crossing; passenger coaches stranded; mass rescue underway.", urgency="CRITICAL"},
    {desc="Biothreat hoax triggers stampede in central concourse; multiple crush injuries.", urgency="CRITICAL"},
    {desc="Armed cell bombs signal interlocking and assaults station police; War League manipulus requested.", urgency="CRITICAL"},
    {desc="Mandatory quarantine reinstated after explosive case growth; emergency shelters opened across wards.", urgency="CRITICAL"}
  }
  },

  ----------------------------------------------------------------------------
  -- Haifan Bassaridia (Minor Cities)
  ----------------------------------------------------------------------------
["Thermosalem"] = {
  events = {
    -- LOW (1–5)
    {desc="Mineral smell shift at a minor spring triggers precautionary closure; tests return normal by evening.", urgency="LOW"},
    {desc="Small landslip blocks a hillside footpath between bathhouses; crews clear the trail before dusk.", urgency="LOW"},
    {desc="Unlicensed street healers crowd a shrine arcade, causing congestion; permits checked and stalls moved.", urgency="LOW"},
    {desc="Steam-vent burp scalds two bathers near a public pool; hazard perimeter posted.", urgency="LOW"},
    {desc="Pilgrim queues back up at dawn after a signage mix-up; overflow corridors opened.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Trace contamination detected in a municipal bath; 24-hour sanitation cycle and targeted recalls of herbal infusions.", urgency="MEDIUM"},
    {desc="Counterfeit Hostian blessing tokens surface in the bathhouse market; confiscations spark brief scuffles.", urgency="MEDIUM"},
    {desc="Localized power dip darkens a spa dome mid-session; orderly evacuation executed without injury.", urgency="MEDIUM"},
    {desc="Boardwalk subsidence over a mud pot injures four; structural inspections expand citywide.", urgency="MEDIUM"},
    {desc="Rival pilgrim groups trade blows near a mountainside shrine; baton dispersal, no arrests.", urgency="MEDIUM"},
    {desc="Geothermal gas seeping into a dormitory causes mild poisoning; two blocks ventilated and sealed overnight.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Arson attempt inside a hydrotherapy complex triggers sprinklers; smoke damage forces weeklong closure.", urgency="HIGH"},
    {desc="Disinformation about ‘cursed waters’ causes near-stampede at a popular spring; crowd control activated.", urgency="HIGH"},
    {desc="Blackmail ring installs hidden cameras in bath changing rooms; coordinated raids make 12 arrests.", urgency="HIGH"},
    {desc="Dozens fall ill after tainted ritual teas sold near springs; rogue vendor network dismantled.", urgency="HIGH"},
    {desc="Sabotage suspected as a primary well’s output collapses; rationing introduced for outer wards.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Three synchronized IEDs planted across the spa district; two rendered safe, one partially detonates—mass-casualty triage underway; War League support requested.", urgency="CRITICAL"},
    {desc="Hydrogen sulfide surge in a subterranean bath drops multiple patrons; HazMat ventilates and seals caverns.", urgency="CRITICAL"},
    {desc="Armed zealots seize a Hostland spring and broadcast demands for doctrinal recognition; standoff declared.", urgency="CRITICAL"},
    {desc="Rain-driven slope failure ruptures hot-spring galleries and floods lower wards; emergency shelters opened.", urgency="CRITICAL"}
  }
  },
["Akróstadium"] = {
  events = {
    -- LOW (1–5)
    {desc="Dust devil downs flag masts on the drill square; two cadets treated for scrapes.", urgency="LOW"},
    {desc="Stable-hay flare from a lantern singes rafters; fire bucket line extinguishes within minutes.", urgency="LOW"},
    {desc="Novice overexertion wave clogs infirmary after forced march; training tempo adjusted.", urgency="LOW"},
    {desc="Supply caravan arrives late after switchback washouts; rationing invoked for one mess.", urgency="LOW"},
    {desc="Demonstration pyrotechnic misfires during tactics lecture; courtyard evacuated briefly.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Armory inventory mismatch triggers audit; two missing crates later found in mislogged storage.", urgency="MEDIUM"},
    {desc="Unauthorized quad-rotor drones spotted over the parade ground; three seized, pilots detained.", urgency="MEDIUM"},
    {desc="Mess-hall bartering ring trades ration chits for contraband stimulants; arrests carried out.", urgency="MEDIUM"},
    {desc="Cliff path spalls onto a mule track; access restricted to daylight until rock-bolt work completes.", urgency="MEDIUM"},
    {desc="Climbing-wall anchor tampered with; three trainees injured—courses suspended pending inspection.", urgency="MEDIUM"},
    {desc="Signal jammer hidden near review stand discovered before parade; frequency plan rotated.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Insurgent skirmishers harass a watchpost from scrub hills; one guard wounded, red alert issued.", urgency="HIGH"},
    {desc="Explosive charges found beneath grandstand benches on the eve of martial games; EOD conducts disrupts.", urgency="HIGH"},
    {desc="Rogue instructor cadre attempts barracks takeover; MPs quell mutiny and secure armory.", urgency="HIGH"},
    {desc="Fuel-farm leak ignites brush up-slope, threatening an outer sally-port; aerial water drops requested.", urgency="HIGH"},
    {desc="Dissidents seize the signal tower and jam base comms; tower retaken after stairwell assault.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Coordinated coup faction forces inner-gate breach and seizes the magazine; War League Manipulus requested for clearance.", urgency="CRITICAL"},
    {desc="VBIED rams the fortress gatehouse during shift change; numerous casualties and wall damage reported.", urgency="CRITICAL"},
    {desc="Drone swarm strikes command spire and substation; blackout across terraces; backup nets activated.", urgency="CRITICAL"},
    {desc="Mortar team on ridge pins units in the lower courts; counter-battery and air support tasked.", urgency="CRITICAL"}
  }
  },
["Sufriya"] = {
  events = {
    -- LOW (1–5)
    {desc="Storm-surge watch issued; foreshore stalls relocated inland for the market day.", urgency="LOW"},
    {desc="Two suspicious manifests flagged at customs; containers re-inspected with minor delays.", urgency="LOW"},
    {desc="Forklift tire blowout on cracked quay slab; lane coned off and patched.", urgency="LOW"},
    {desc="Unpermitted ritual on a jetty blocks crew access; officiants fined and site cleared.", urgency="LOW"},
    {desc="Light diesel sheen near barge slip; absorbent booms deployed, no wildlife impact.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Dockworker sit-in over hazard pay halts one pier for a shift; mediation scheduled.", urgency="MEDIUM"},
    {desc="Counterfeit customs stamps seized from brokers’ office; audits widened to three agencies.", urgency="MEDIUM"},
    {desc="Brownouts hit reefer stacks in the export yard; backup gensets spun up.", urgency="MEDIUM"},
    {desc="Fever cluster among stevedores prompts mass testing and limited quay quarantine.", urgency="MEDIUM"},
    {desc="Allegations of fee-skimming in the harbormaster’s office spark street protests.", urgency="MEDIUM"},
    {desc="Quay crane gearbox jam stalls two feeders; manual derricks relieve backlog.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Hidden slave market uncovered in warehouse row; large rescue op triggers violent clashes.", urgency="HIGH"},
    {desc="Assassination attempt on a high-ranking temple official outside a shrine; citywide alert declared.", urgency="HIGH"},
    {desc="Privateer skiffs harass inbound coasters at inlet mouth; patrol boats repel with warning fire.", urgency="HIGH"},
    {desc="Rival smuggling crews trade gunfire in back-canals; bystanders injured in crossfire.", urgency="HIGH"},
    {desc="Storm surge breaches a seawall segment; emergency pumps and sandbag lines deployed.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Coordinated arson attacks ignite bonded warehouses; smoke plumes force mass evacuations of the harbor ward.", urgency="CRITICAL"},
    {desc="Crowds defy a quarantine order at Pier 3; riot control fails—War League Manipulus requested to restore order.", urgency="CRITICAL"},
    {desc="Explosive-laden container discovered at the ro-ro ramp; terminal locked down for EOD disruption.", urgency="CRITICAL"},
    {desc="Armed flotilla attempts an inlet blockade; naval **Tabur-i Derya** support requested for intercept and clearance.", urgency="CRITICAL"}
  }
  },
["Lykopolis"] = {
  events = {
    -- LOW (1–5)
    {desc="Methane monitor blips in an old drift; ventilation purged as precaution.", urgency="LOW"},
    {desc="Yard shunter derails a coal skip at walking speed; no injuries, crane rerails within hour.", urgency="LOW"},
    {desc="Night horn complaints from the loading loop lead to revised quiet-hours.", urgency="LOW"},
    {desc="Weighbridge misreads tender mass; recalibration and re-weigh complete by midday.", urgency="LOW"},
    {desc="Fence breach by scrap-pickers at a siding; trespassers ejected and section re-secured.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Roof spall in a secondary seam injures two; adit sealed and crews reassigned.", urgency="MEDIUM"},
    {desc="Vent-fan trip raises dust concentrations; production paused for duct inspection.", urgency="MEDIUM"},
    {desc="Hairline rail crack on the TME spur imposes a slow order; ultrasonic scan scheduled.", urgency="MEDIUM"},
    {desc="Wash-plant overflow after cloudburst threatens creek; containment berms raised.", urgency="MEDIUM"},
    {desc="Fuel-theft ring targeting mine vehicles dismantled after night surveillance.", urgency="MEDIUM"},
    {desc="Union march over safety budgets encircles the coal exchange; minor scuffles reported.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Arson at an open coal stack produces towering smoke; residential blocks advised to shelter.", urgency="HIGH"},
    {desc="Gas pocket blowout rocks a working face; six miners evacuated with injuries.", urgency="HIGH"},
    {desc="Syndicate extorts haulers at the weighbridge; armed escorts added to outbound convoys.", urgency="HIGH"},
    {desc="Sabotaged trestle bolts discovered ahead of dawn freight; line closed for emergency repair.", urgency="HIGH"},
    {desc="Explosives planted beneath a pithead elevator; EOD renders safe and locks the shaft.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Major collapse in the main seam traps dozens; War League engineering vehicles requested for mass rescue.", urgency="CRITICAL"},
    {desc="Armed militants seize the control room and threaten to ignite a methane build-up; city enters emergency posture.", urgency="CRITICAL"},
    {desc="Tanker spill of reagent into the river triggers downstream evacuations and water shutoffs.", urgency="CRITICAL"},
    {desc="Coordinated attacks strike the TME yard and conveyor galleries, cutting power and forcing a night-long curfew.", urgency="CRITICAL"}
  }
  },

  ----------------------------------------------------------------------------
  -- NEW CITIES IN BASSARIDIAN NORMARK
  ----------------------------------------------------------------------------
["Ardclach"] = {
  events = {
    -- LOW (1–5)
    {desc="Drifting ice scuffs a harbor pontoon; divers patch seams and reopen Berth 3.", urgency="LOW"},
    {desc="Shoreline frost-heave cracks quay paving; cones and speed limits posted.", urgency="LOW"},
    {desc="Unauthorized hobby drone over the drydock; operator fined and memory card impounded.", urgency="LOW"},
    {desc="Brief brownout in worker barracks during auroral activity; heaters restored within 20 minutes.", urgency="LOW"},
    {desc="Seal rookery blocks a service path; wardens reroute foot traffic until pups disperse.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Gale-driven surge floods warehouse row; pump crews hold water line behind sandbags.", urgency="MEDIUM"},
    {desc="Diamond-mine ventilation alert triggers evacuation; two treated for smoke inhalation.", urgency="MEDIUM"},
    {desc="Navigation beacon cabling stolen; three channel lights dark; temporary buoys laid under patrol.", urgency="MEDIUM"},
    {desc="Counterfeit work permits detected at shipyard gate; 14 detainees and audit widened.", urgency="MEDIUM"},
    {desc="Diesel contamination at fuel depot interrupts patrol sortie; backup stocks issued to quays.", urgency="MEDIUM"},
    {desc="Cliff road subsidence near the old garrison steps forces one-way traffic under watch.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Smuggler crew hides rifles in frozen-fish crates; firefight at Quay 7 leaves two officers wounded.", urgency="HIGH"},
    {desc="Shipyard crane gearbox seizes; boom collapse narrowly misses hull under refit; yard evacuated.", urgency="HIGH"},
    {desc="Mine gas pocket blows out in Mid-Drift 9; three miners rescued; shift suspended for inspection.", urgency="HIGH"},
    {desc="Cyberattack scrambles berth schedules and transponders; harbor VTS reverts to manual control.", urgency="HIGH"},
    {desc="Ice storm knocks power to garrison clinic; generator convoy escorted through whiteout.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Explosive-laden trawler attempts ramming at the breakwater; EOD neutralizes; harbor locked down; War League support requested.", urgency="CRITICAL"},
    {desc="Ambush seizes diamond convoy on the causeway to the ferry head; hostages reported; aerial overwatch tasked.", urgency="CRITICAL"},
    {desc="Legacy ordnance from the historic orbital strike dredged near the old repair yard; mass evacuation until clearance complete.", urgency="CRITICAL"},
    {desc="Sabotage in desalination intake tunnels collapses city water pressure; emergency distribution declared.", urgency="CRITICAL"}
  }
  },
["Riddersborg"] = {
  events = {
    -- LOW (1–5)
    {desc="Snowdrifts close a lane on the North Esplanade; plows clear the route by noon.", urgency="LOW"},
    {desc="Rail crossing barrier sticks at Dock Spur; flaggers direct traffic during reset.", urgency="LOW"},
    {desc="Ferry ramp hinge misalignment delays two car loads; welders complete adjustment.", urgency="LOW"},
    {desc="Polar foxes raid depot bins; wardens secure lids; no contamination reported.", urgency="LOW"},
    {desc="Student march at the civic square disperses peacefully after permit review.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Cold-snap substation trip triggers rolling brownouts; clinics prioritized on backup feeds.", urgency="MEDIUM"},
    {desc="Ice jam raises river level at Old Wharf; sandbag line established as precaution.", urgency="MEDIUM"},
    {desc="TME yard software glitch misroutes wagons; manual sort restores departures.", urgency="MEDIUM"},
    {desc="Counterfeit passes seized at garrison gate; three arrests; ID audit widened.", urgency="MEDIUM"},
    {desc="Sea fog halts strait ferries; freight backlog diverted to overland detours.", urgency="MEDIUM"},
    {desc="Apartment gas leak prompts block evacuation; repairs completed by evening.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Roadside IED discovered along the Normark–Lindley Passage; EOD disruption and overnight closure.", urgency="HIGH"},
    {desc="Convoy ambushed on forest road toward Sjorsborg; two escorts wounded; air medevac lifts casualties.", urgency="HIGH"},
    {desc="Bridge de-icing failure triggers multi-vehicle collision on east span; mass casualty response.", urgency="HIGH"},
    {desc="Cyberattack on signal interlocking causes false-clear indications; district reverts to manual block.", urgency="HIGH"},
    {desc="Arms-smuggling ring using fishing skiffs raided in harbor flats; suspects exchange fire with watch.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Multi-site assault hits the TME terminus and passenger concourse; triage surge; War League manipulus requested.", urgency="CRITICAL"},
    {desc="Fuel-depot sabotage ignites tank farm near docks; two wards evacuated under smoke.", urgency="CRITICAL"},
    {desc="Drone swarm strikes garrison comms masts and repeater sites; citywide emergency as networks degrade.", urgency="CRITICAL"},
    {desc="Blizzard collapses highline towers and freezes intake pumps; hospitals on generator; disaster posture declared.", urgency="CRITICAL"}
  }
  },

  -- Caledonian City-States
["Notranskja"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Coordinated arson–sabotage at White Ruby grain elevators sparks dust flashover; City Watch and depot foam tenders halt extension to rail sidings.", urgency="CRITICAL"},
    {desc="Armed crew attempts stipend-voucher heist at Temple Bank kiosk beside agrimarket; Horjin patrol car locks the street and Tadpole VT-UAVs chase getaway van into snowfields.", urgency="CRITICAL"},
    {desc="Contaminant plume detected in herb-drying barns after illicit solvent dump; mass nausea cases reported—boil-water and market-closure orders issued.", urgency="CRITICAL"},
    {desc="Blizzard shear derails two hopper wagons on Trans-Morovian spur; magnetically braked consist stabilized while hypothermia evac underway.", urgency="CRITICAL"},
    {desc="Encrypted drone swarm probes perimeter of White Ruby distribution yard; counter-UAS net and signal jammer grid force crash-landings in peat bog.", urgency="CRITICAL"},

    -- HIGH (6–10)
    {desc="Voucher registry latency stalls redemption at farmers’ hall; mobile counters deployed, Temple Bank auditors verify batch integrity.", urgency="HIGH"},
    {desc="Cold-chain failure in meat packing sheds after substation trip; backup gensets spin up and inspectors cull compromised lots.", urgency="HIGH"},
    {desc="Smuggling ring swaps investor scrip for counterfeit receipts; market syndics seize stall and freeze accounts pending arbitration.", urgency="HIGH"},
    {desc="Wolfpack sightings along northern haul road spook haulage teams; dusk curfew and armed outriders added to convoy SOP.", urgency="HIGH"},
    {desc="Silo scaffold icing causes panel shed; safety cordon and rope teams clear catwalks before dawn opening.", urgency="HIGH"},

    -- MEDIUM (11–15)
    {desc="Frost fog closes aerostat pad; postal drops diverted to rail until visibility improves.", urgency="MEDIUM"},
    {desc="Herb-auction backlog clogs quay sheds awaiting lake ferry slots; investor brokers stagger lot releases by ward.", urgency="MEDIUM"},
    {desc="Unauthorized burners spotted near peat reserve; wardens extinguish and cite three for fuel theft.", urgency="MEDIUM"},
    {desc="Farm-to-port convoy backed up by jackknifed lorry at timber bridge; pulley team resets trailer and reopens one-way flow.", urgency="MEDIUM"},
    {desc="Market scales audit finds tampered weights at two stalls; licenses suspended and restitution ordered.", urgency="MEDIUM"},

    -- LOW (16–20)
    {desc="Community grain-mill marathon draws crowds; steward lanes mark emergency egress.", urgency="LOW"},
    {desc="Voucher literacy clinic oversubscribed; extra session scheduled at cooper hall.", urgency="LOW"},
    {desc="Lantern-sled parade overruns market crescent; barriers extended for next cycle.", urgency="LOW"},
    {desc="Ice fog etches rail signal lenses; maintenance crews polish and reseal housings.", urgency="LOW"},
    {desc="Stray dogs trail butcher carts; animal control sets humane pens off main lane.", urgency="LOW"}
  }
},
["Slevik"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Amber shaft collapse traps eight cutters; mine rescue rigs descend while medics stage at headframe.", urgency="CRITICAL"},
    {desc="Pressure-ridged sea-ice breaks harbor boom and crushes barge berth; Fjord Pilots redirect traffic and deploy tugs to hold floes clear.", urgency="CRITICAL"},
    {desc="Militant cell raids bonded amber warehouse to mask contraband exfil; Keltia Command MPs interdict and secure quay.", urgency="CRITICAL"},
    {desc="Fuel depot flash fire near winch lines threatens quay cranes; fixed-foam deluge activates and isolates tanks.", urgency="CRITICAL"},
    {desc="Explosive device discovered under customs weighbridge for Amber Ports convoy; EOD renders safe, quay evacuated during sweep.", urgency="CRITICAL"},

    -- HIGH (6–10)
    {desc="Invoice-spoof campaign targets Amber Ports clearinghouse; compliance desk rotates staff to manual verification queue.", urgency="HIGH"},
    {desc="Polar bear incursion around outer bunders; wardens tranquilize and tow animal off ice road.", urgency="HIGH"},
    {desc="Wind shear tears tarp stacks; flying debris risks line workers—operations paused to retie cargo.", urgency="HIGH"},
    {desc="Illicit dredge skiff grazes protected kelp beds; harbor court fines master and impounds gear.", urgency="HIGH"},
    {desc="Bulk-amber drying kiln overtemps after sensor fault; plant auto-dump quenches charge and flags recalibration.", urgency="HIGH"},

    -- MEDIUM (11–15)
    {desc="Blowing snow blinds beacons on north approach; lighthouse crew scrapes lenses and boosts lamp output.", urgency="MEDIUM"},
    {desc="Queue snarl at passport hut from cruise tender; second window opened and foot-traffic split by ward.", urgency="MEDIUM"},
    {desc="Amber cutters’ guild election draws noisy rally; stewards cordon square and keep quay road open.", urgency="MEDIUM"},
    {desc="Harbor seal colony relocates to pilot steps; barriers erected to deter tourist crowding.", urgency="MEDIUM"},
    {desc="Icing on crane booms halts lifts; de-ice crews warm joints and resume staggered shifts.", urgency="MEDIUM"},

    -- LOW (16–20)
    {desc="Lantern regatta rehearsal tangles pennants in gusts; organizers issue shorter lines.", urgency="LOW"},
    {desc="Amber polishing dust coats arcade; sweepers shift to wet method after hours.", urgency="LOW"},
    {desc="Fisherfolk complaint over new net gauge posted; mediation slated next watch.", urgency="LOW"},
    {desc="Quay musicians block hose cabinets; moved to designated alcove.", urgency="LOW"},
    {desc="School tour overruns weighbridge lane; guides reroute to museum deck.", urgency="LOW"}
  }
},
["Fanghorn"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="UXO uncovered in hillside drainage from past Fanghorn campaigns; perimeter sealed while EOD teams vent and detonate safely.", urgency="CRITICAL"},
    {desc="Incendiary attack against Fange Velvet processing loft during night shift; sprinkler mains hold, arson squad pursues suspects into pine belt.", urgency="CRITICAL"},
    {desc="Sniper pair targets gendarme watchpost above funicular; counter-snipers neutralize and evacuate tourists from ridge path.", urgency="CRITICAL"},
    {desc="Landslip triggered by illegal quarry blasting cuts cliff road; rock-bolting rigs and mountain engineers stabilize buttress.", urgency="CRITICAL"},
    {desc="Tanker lorry jackknifes on switchback and leaks solvent toward river intake; hazmat berms set and waterworks closed pending flush.", urgency="CRITICAL"},

    -- HIGH (6–10)
    {desc="Pilgrim-healer fair overwhelms clinic square; crowd lanes and triage gazebo erected to thin queues.", urgency="HIGH"},
    {desc="Counterfeit velvet-remedy vials seized at market stairs; wardens trace lot numbers to rogue workshop.", urgency="HIGH"},
    {desc="Cable car stalls mid-span after gearbox overheat; rope techs brake cabin and rappel supplies to passengers.", urgency="HIGH"},
    {desc="Poachers strip antler from preserve margin; rangers intercept quad-bikes and impound gear.", urgency="HIGH"},
    {desc="Power sags trip tunnel ventilators on lower loop; portable extractors rotated through galleries.", urgency="HIGH"},

    -- MEDIUM (11–15)
    {desc="Highland football derby funnels crowds into narrow lanes; one-way footbridges declared for post-match egress.", urgency="MEDIUM"},
    {desc="Unauthorized relic stall pops up by shrine stair; inspectors seize etchings and issue fines.", urgency="MEDIUM"},
    {desc="Feral goat herd blocks ridge trail; shepherd drones haze animals back to pasture.", urgency="MEDIUM"},
    {desc="Tour bus radiator boil-over at panorama bend; breakdown lane coned and tow dispatched.", urgency="MEDIUM"},
    {desc="Clinic receives batch of expired tinctures; pharmacists quarantine and notify brokers.", urgency="MEDIUM"},

    -- LOW (16–20)
    {desc="Lantern-walk congestion at cliff overlook; stewards extend rope barriers.", urgency="LOW"},
    {desc="Street drummers occupy steps above funicular; relocated to terrace stage.", urgency="LOW"},
    {desc="Wind-loosened slate tiles near guildhall; cordon placed and roofers scheduled.", urgency="LOW"},
    {desc="Lost hikers trigger beacon after dusk; patrol guides them to wayhouse.", urgency="LOW"},
    {desc="Market cat colony raids fishmonger scraps; pest-control arranges adoption drive.", urgency="LOW"}
  }
},
["Sårensby"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Attempted breach at Sårensby Arsenal pattern-shop; guard platoon secures toolroom while Keltia Command investigators sweep for insider aid.", urgency="CRITICAL"},
    {desc="Sabotage on Trans-Keltian Express munitions consist—bridge sensors flag tamper bolts; convoy halted and Horjin CV56(N) escorts establish perimeter.", urgency="CRITICAL"},
    {desc="Explosive UAV dives at Sårensby Depot roof; counter-UAS lasers disable over fjord—debris recovery boat launched.", urgency="CRITICAL"},
    {desc="Cyberattack on stipend kiosks in dockyard quarter causes payout outages; offline issuance activated and forensics isolate malware node.", urgency="CRITICAL"},
    {desc="Container feeder scrapes channel marker in crosswind and loses steerage; tug triad pins bow and averts collision with ferry.", urgency="CRITICAL"},

    -- HIGH (6–10)
    {desc="Rolling blackout after busbar fault in depot substation; priority feeds to drydocks and arsenal lines restored within the watch.", urgency="HIGH"},
    {desc="Counterfeit port IDs detected at turnstiles; contractor audit and badge re-issuance ordered across three yards.", urgency="HIGH"},
    {desc="Hazmat leak from paint shed near slipway; foam units deploy and storm drains plugged.", urgency="HIGH"},
    {desc="Union picket slows shift change at crane row; arbitration tabled for second watch.", urgency="HIGH"},
    {desc="Sudden squall topples yard stacks; reach-stackers restack under wind-limit rules.", urgency="HIGH"},

    -- MEDIUM (11–15)
    {desc="Harbor pilotage backlog after fog; arrival slots resequenced and ferry timetable trimmed.", urgency="MEDIUM"},
    {desc="Depot gate congestion during stipend redemption hour; stewards convert two lanes to pedestrian flow.", urgency="MEDIUM"},
    {desc="UXO dredged from old quay; cordon set until EOD scuttles offshore.", urgency="MEDIUM"},
    {desc="Tadpole VT-UAV detects unauthorized night swimmers near drydock caissons; patrol boats warn off and cite trespassers.", urgency="MEDIUM"},
    {desc="Road salt shortage pinches hill wards; convoy fetches supply from inland depot.", urgency="MEDIUM"},

    -- LOW (16–20)
    {desc="Lantern regatta signup booth crowds footbridge; marshals extend queue maze.", urgency="LOW"},
    {desc="Festival buskers block stipend hall steps; moved to arcade niche.", urgency="LOW"},
    {desc="Routine mussel scraping slows ferry cycle; revised departure board posted.", urgency="LOW"},
    {desc="Quay gulls foul nav cams; fresh-water sprayers added to housings.", urgency="LOW"},
    {desc="Volunteer drill at siren towers draws onlookers; information desk set beside gate.", urgency="LOW"}
  }
},

["Skøda"] = {
  events = {
    -- LOW (1–5)
    {desc="Frost-heave tilts milepost stones on the high trail; survey crew resets markers before dusk.", urgency="LOW"},
    {desc="Goatherds trespass in monastery herb plots; hands fined and stock returned.", urgency="LOW"},
    {desc="Scree-clearing crews briefly close the pilgrim traverse; detour posted via lower notch.", urgency="LOW"},
    {desc="Festival permit mix-up over rope course slots; stewards spread spectators along ridge.", urgency="LOW"},
    {desc="Climber queue congestion at Iron Rungs; marshals open an overflow staging ledge.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Rockfall blocks mule path below Glacier Gate; rope team drills and clears chockstones.", urgency="MEDIUM"},
    {desc="Unauthorized rare-earth dig near moraine wall collapses trench; two treated for fractures.", urgency="MEDIUM"},
    {desc="Cableway cabin stalls at mid-span after sensor fault; crews haul to nearest tower.", urgency="MEDIUM"},
    {desc="Outbreak of camp gastro traced to unboiled meltwater at Shelters 3–4; sanitation sweep enacted.", urgency="MEDIUM"},
    {desc="Timber bridge at Pastor's Cut found rotten; closure while trestle is re-decked.", urgency="MEDIUM"},
    {desc="Poacher pair snare chamois on sanctuary slopes; rangers seize quads and issue fines.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Illegal blasting undermines lateral moraine; tarn levee slumps and downstream trail evacuated.", urgency="HIGH"},
    {desc="Funicular brake glazing detected on descent; line suspended pending full inspection.", urgency="HIGH"},
    {desc="Bandits ambush salt convoy at Cloud Bench; escorts trade fire, two wounded.", urgency="HIGH"},
    {desc="Leachate from clandestine ore heap enters creek; boil-water order for two hamlets.", urgency="HIGH"},
    {desc="Cornice-control shot misfires and triggers partial slab release; search teams sweep runout.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Avalanche buries High Pass road-cut after cornice failure; multiple missing; mass SAR alert.", urgency="CRITICAL"},
    {desc="Explosive charges discovered on Cable Tower 3 baseplates; EOD disrupts; ridge cordon maintained.", urgency="CRITICAL"},
    {desc="Rock-glacier surge shears the valley pipeline; upstream hamlets isolated; emergency tanks deployed.", urgency="CRITICAL"},
    {desc="Gunmen seize tollhouse at Saddle Gate to extort caravans; War League requested for clearance.", urgency="CRITICAL"}
  }
},

["Eikbu"] = {
  events = {
    -- LOW (1–5)
    {desc="Rope-bridge planks replaced above Tarn Nar; 30-minute holds posted.", urgency="LOW"},
    {desc="Reindeer herd wanders into village square; shepherd drones guide animals back to range.", urgency="LOW"},
    {desc="Museum humidifier fault fogs display cases; collection sealed and sensors recalibrated.", urgency="LOW"},
    {desc="Lost pilgrim located via beacon near Peridot Scree; escorted to shelter.", urgency="LOW"},
    {desc="Seasonal trailhead signboards refreshed; brief parking congestion.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Scree slide covers the mule-grade; shovel crews and a loader reopen by dusk.", urgency="MEDIUM"},
    {desc="Unauthorized adit found in permafrost lens; CO₂ build-up; entrance blasted shut.", urgency="MEDIUM"},
    {desc="Hydro station icing forces rolling brownouts; clinics prioritized on backup.", urgency="MEDIUM"},
    {desc="Equipment theft ring targets crampon lockers; three arrests after sting.", urgency="MEDIUM"},
    {desc="Feral dog pack harasses hamlet outskirts; vaccination clinic and patrols deployed.", urgency="MEDIUM"},
    {desc="Fraudulent ‘guide’ badges seized at lower cable lift; fines issued.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Cornice collapse injures two climbers on North Face; airlift to valley clinic.", urgency="HIGH"},
    {desc="Suspicious abrasion found on haul-rope strands; cable car closed for magnetic inspection.", urgency="HIGH"},
    {desc="Debris dam forms on hanging stream; outburst risk prompts night watch on culverts.", urgency="HIGH"},
    {desc="Supply caches raided at ridge huts; evidence of organized crew using culvert network.", urgency="HIGH"},
    {desc="Sabotage suspected in avalanche gallery shutter jam; pass closed pending repair.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Moraine-breach debris flood sweeps lower hamlet streets; casualties reported; War League engineers requested.", urgency="CRITICAL"},
    {desc="Explosive charges discovered in snow-shed pylons; EOD disrupts; route sealed.", urgency="CRITICAL"},
    {desc="Armed group seizes tarn outlet gate to threaten release; negotiation team on scene.", urgency="CRITICAL"},
    {desc="Illegal mine galleries collapse under the ridge; multiple trapped; heavy rescue underway.", urgency="CRITICAL"}
  }
},

["Galvø"] = {
  events = {
    -- LOW (1–5)
    {desc="Kettle-lake boardwalk sections replaced; birders rerouted along dry loop.", urgency="LOW"},
    {desc="Beaver dam repairs redirect trail; signage updated.", urgency="LOW"},
    {desc="Peat-cutting festival crowds spill onto quay; stewards add barriers.", urgency="LOW"},
    {desc="Spruce-beetle trap grid maintained; extra lures hung near mill road.", urgency="LOW"},
    {desc="Fish-market scales audit issues minor fines to two stalls.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Frost-heave buckles the causeway; axle-weight limits imposed until regrade.", urgency="MEDIUM"},
    {desc="Invasive reed stands choke marsh cut; crews deploy harvesters to clear.", urgency="MEDIUM"},
    {desc="Night gill-netting ring caught on reservoir; boats seized, four detained.", urgency="MEDIUM"},
    {desc="Sawmill wage protest blocks timber yard gate; mediation scheduled.", urgency="MEDIUM"},
    {desc="Land records server outage stalls title office; clerks shift to paper queue.", urgency="MEDIUM"},
    {desc="Cattle deaths traced to anthrax on old burn; quarantine lines ring three paddocks.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Karst sinkhole opens beneath dirt lane; one tractor swallowed; perimeter secured.", urgency="HIGH"},
    {desc="Fuel-theft crew siphons depot tanks; pursuit ends in crash; two suspects in custody.", urgency="HIGH"},
    {desc="Drumlin cut slumps onto hillside road; heavy plant mobilized for clearance and rock-bolting.", urgency="HIGH"},
    {desc="Timber cartel intimidates co-op buyers; two assaulted; protection details added.", urgency="HIGH"},
    {desc="Illegal peat fire smolders under bog; toxic smoke prompts school closures.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Lake-ice shove forms pressure ridges that crush boathouses along the north quay; multiple injuries.", urgency="CRITICAL"},
    {desc="Deliberate solvent dump enters municipal reservoir; mass nausea cases; city declares emergency.", urgency="CRITICAL"},
    {desc="Armed faction attacks ranger station to seize explosives; firefight and lockdown of forest district.", urgency="CRITICAL"},
    {desc="Landslide-dam breach unleashes outburst flood through lower ward; War League QRF requested.", urgency="CRITICAL"}
  }
},

["Krlsgorod"] = {
  events = {
    -- LOW (1–5)
    {desc="Ferry slip ladders replaced after ice scouring; brief schedule delay.", urgency="LOW"},
    {desc="Smelt-run festival crowds jam quay; extra railings put in place.", urgency="LOW"},
    {desc="Marsh boardwalk maintenance closes two loops; detours posted.", urgency="LOW"},
    {desc="Dune grass volunteers plant new plots along windward spit.", urgency="LOW"},
    {desc="Minor fuel sheen at co-op berth; booms deployed and recovered.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Black-market fish processing ring raided; refrigerated van seized at depot gate.", urgency="MEDIUM"},
    {desc="Ice-road speed-trap blitz nets 22 violators; one rollover, no serious injuries.", urgency="MEDIUM"},
    {desc="Hatchery contamination traced to unauthorized antibiotic; cull ordered for two tanks.", urgency="MEDIUM"},
    {desc="Illicit sand harvesters caught cutting dune face at night; loaders impounded.", urgency="MEDIUM"},
    {desc="Customs datalink outage forces manual stamping; cargo backlog grows.", urgency="MEDIUM"},
    {desc="Sewer lift-station blockage spills into back-alley; disinfection and sampling underway.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Ice-jam packs the river outlet and backs water into low wards; voluntary evacuations begin.", urgency="HIGH"},
    {desc="Cyanobacteria bloom causes mass fish kill along lee shore; intake throttled pending assays.", urgency="HIGH"},
    {desc="Smuggler convoy crosses lake ice using blackout lights; shots fired; one arrest.", urgency="HIGH"},
    {desc="Quay crane slew-ring failure drops container; four injured; labor walkout looms.", urgency="HIGH"},
    {desc="Sabotage attempt on fuel farm caught by patrol; detonators and timers recovered.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Lake-ice shove drives pressure ridges through inner quay; two cranes topple; mass-casualty triage active.", urgency="CRITICAL"},
    {desc="VBIED detonates beside customs weighbridge during shift change; War League EOD requested.", urgency="CRITICAL"},
    {desc="Water-intake poisoning with industrial solvent floods clinics; city issues do-not-use order.", urgency="CRITICAL"},
    {desc="Armed flotilla attempts to blockade channel off the dunes; naval intercept requested.", urgency="CRITICAL"}
  }
},

["Kaledonija"] = {
  events = {
    -- LOW (1–5)
    {desc="Tourists intercepted on unsafe shore-ice; wardens redirect to museum pier.", urgency="LOW"},
    {desc="Winter fair crowding around Old Dock causes minor scuffles; extra marshals deployed.", urgency="LOW"},
    {desc="Drumlin trail signage replaced after vandalism; two loops reopen by noon.", urgency="LOW"},
    {desc="Harbor slip guardrails repaired; access resumes.", urgency="LOW"},
    {desc="Boat museum power hiccup triggers alarm; cleared and reopened.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Bulkhead rot discovered along peninsula quay; heavy vehicles restricted pending repair.", urgency="MEDIUM"},
    {desc="Unauthorized ATVs tear up drumlin preserve; fines issued and fencing reinforced.", urgency="MEDIUM"},
    {desc="Counterfeit ferry passes seized at footbridge; four detained.", urgency="MEDIUM"},
    {desc="Septic field leak at lakeside cottages prompts bathing advisories for west bay.", urgency="MEDIUM"},
    {desc="Fishery quota protest blocks auction hall; brief clashes with watch.", urgency="MEDIUM"},
    {desc="Copper cabling stolen from lighthouse service tunnel; beacon on generator.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Pressure ridges damage ferry ramp and shear mooring bollards; service suspended for inspection.", urgency="HIGH"},
    {desc="Illegal dredging in the channel sends silt into waterworks intake; plant throttled, bottled water issued.", urgency="HIGH"},
    {desc="Marina arson spreads across three berths; foam lines hold at fuel dock.", urgency="HIGH"},
    {desc="Explosive charges found under causeway deck; EOD renders safe; peninsula isolated until inspection.", urgency="HIGH"},
    {desc="Protection racket demands ‘ice-lane fees’ from quay merchants; arrests after undercover sting.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Mass-casualty attack couples pier bombs with small-arms ambush at ferry queues; city enters curfew.", urgency="CRITICAL"},
    {desc="Deliberate contaminant release at central waterworks; hospitals surge; emergency declared.", urgency="CRITICAL"},
    {desc="Large floe rams Old Dock, collapsing timbers and crushing a festival crowd; War League airlift requested.", urgency="CRITICAL"},
    {desc="Pipeline sabotage ignites along causeway embankment; neighborhoods evacuated under smoke.", urgency="CRITICAL"}
  }
},
["Sjøsborg"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Coordinated arson strikes three bonded-warehouse rows along the Inner Esplanade; foam tenders deploy as quay cranes are powered down and cordons extended to the customs arcade.", urgency="CRITICAL"},
    {desc="Explosive device discovered beneath an auction rostrum during high-value amber sale; evacuation successful, EOD renders safe; auction ledgers impounded for forensic review.", urgency="CRITICAL"},
    {desc="Armed crew hijacks a container transfer tractor and attempts breach of the rail inland gate; intercept at Chancery Cut after spikes deployed.", urgency="CRITICAL"},
    {desc="Cyber-physical attack cripples quay PLCs and gate kiosks during shift change; stipend kiosks revert to manual issuance as harbor tugs maintain passive positions.", urgency="CRITICAL"},
    {desc="Fuel-manifold rupture at cold-chain pier ignites; two reefer stacks threatened; harbor suppression grid activated; casualty clearing station set at Bailiwick Hall.", urgency="CRITICAL"},

    -- HIGH (6–10)
    {desc="Counterfeit customs seals identified across six lots in bonded shed 12; seizure orders issued and auction floor paused pending re-verification.", urgency="HIGH"},
    {desc="Synchronized pilferage ring targets quay-side truck queues; license sweeps and random strip-inspections enacted for the next three watches.", urgency="HIGH"},
    {desc="Quay crane slew-ring microfractures discovered during audit; three booms idled and replacement pins requisitioned; backlog grows to 36 hours.", urgency="HIGH"},
    {desc="Stevedore–contractor confrontation at union gate escalates; riot lines and mediators separate groups; two ambulances dispatched.", urgency="HIGH"},
    {desc="Bonded amber lots contaminated with solvent dye; assay lab overrun; recall notices circulated to five brokers.", urgency="HIGH"},

    -- MEDIUM (11–15)
    {desc="Data mismatch between port registry and rail waybills delays five inland rakes; manual reconcile and paper fallback initiated.", urgency="MEDIUM"},
    {desc="Crew shuttle strike forces temporary lane changes around stipend arcade; foot traffic re-routed through parish green.", urgency="MEDIUM"},
    {desc="Thieves strip copper from an outlying beacon mast; approach lights degraded; temporary range markers set at dusk.", urgency="MEDIUM"},
    {desc="Illegal tender off-loads unmanifested drums at night berth; harbor watch impounds craft and interviews two pilots.", urgency="MEDIUM"},
    {desc="Fish-processing line halts over contaminated ice feed; batch destroyed; inspectors extend spot checks to adjacent sheds.", urgency="MEDIUM"},

    -- LOW (16–20)
    {desc="Quay forklift tips a pallet at bonded shed 6; superficial injuries; revised stacking protocols posted.", urgency="LOW"},
    {desc="Lost property surge at ferry stairs; wardens open temporary claim desk near stipend hall.", urgency="LOW"},
    {desc="Street hawkers obstruct the north esplanade during stipend hours; moved to licensed alcoves by ward stewards.", urgency="LOW"},
    {desc="Archival exhibit convoy from Chancery delayed for permit discrepancy; documents secured in municipal vaults overnight.", urgency="LOW"},
    {desc="Fuel spill sheen contained within skimmer booms at slip C; no wildlife impact; cleanup complete by next watch.", urgency="LOW"}
  }
},

["Storesund"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Sabotage at river-fuel farm ignites a manifold; foam cannons and levee pumps deployed as delta wind drives smoke over sheds 2–4; evacuation of flats ordered.", urgency="CRITICAL"},
    {desc="Coordinated smuggler convoy uses distributaries to bypass customs; shots fired near Lighthouse Reach; three boats seized and two fugitives at large.", urgency="CRITICAL"},
    {desc="VBIED detonates beside customs weighbridge during shift change; harbor sealed, casualty triage established at parish clinic.", urgency="CRITICAL"},
    {desc="Illicit dredger collapses a quay segment; two cranes at risk; cordon set and stabilization cribbing rushed from inland yards.", urgency="CRITICAL"},
    {desc="Intentional contaminant release at municipal ice plant triggers mass gastro cases; water carts dispatched while labs trace source.", urgency="CRITICAL"},

    -- HIGH (6–10)
    {desc="Delta extortion crew demands ‘channel insurance’ from co-op skippers; undercover sting scheduled for slack tide.", urgency="HIGH"},
    {desc="Customs datalink outage blacks out bonded shed registers; paper fallback initiated; porters instructed to post visual lot marks.", urgency="HIGH"},
    {desc="Fishery enforcement raid uncovers illegal eel pots in protected distributary; scuffles on the bank; gear confiscated.", urgency="HIGH"},
    {desc="Quay crane slew bearing seizes during lift; berth idled; load transferred by mobile shear-leg barge.", urgency="HIGH"},
    {desc="Counterfeit port ID badges discovered among seasonal laborers; contractor rosters purged and retraining ordered.", urgency="HIGH"},

    -- MEDIUM (11–15)
    {desc="Barge strikes uncharted deadman in a back-channel; minor hull damage; channel soundings extended for the night.", urgency="MEDIUM"},
    {desc="Cold-store compressor trips under brownout; perishables prioritized for transfer; generator hours extended.", urgency="MEDIUM"},
    {desc="Auction floor dispute over lot provenance halts bidding; mediators reconcile ledger stamps and restart sale.", urgency="MEDIUM"},
    {desc="Unauthorized scrap crews cutting rail at derelict siding; police disperse and mark site for fencing.", urgency="MEDIUM"},
    {desc="Silt surge forces temporary relocation of lightering station; pilots post revised approach plates.", urgency="MEDIUM"},

    -- LOW (16–20)
    {desc="Reed-cutter skiffs crowd a ferry landing during midday; wardens establish staggered mooring times.", urgency="LOW"},
    {desc="Minor ammonia leak alarm at ice works proves sensor fault; maintenance recalibrates and clears line.", urgency="LOW"},
    {desc="Market day overflow onto levee path; stewards extend rope barriers and open west gate.", urgency="LOW"},
    {desc="Loose dogs disturb fish-drying racks; animal control corrals and fines owners.", urgency="LOW"},
    {desc="Harbor notice misprints two berth numbers on the rota; corrected sheets posted by next bell.", urgency="LOW"}
  }
},

["Hammarfell"] = {
  events = {
    -- LOW (1–5)
    {desc="Pilgrim queue backs up at Iron Chapel switchbacks; stewards open an overflow ledge trail.", urgency="LOW"},
    {desc="Goat bell lines tangle across the market steps; herders unwind and clear within the watch.", urgency="LOW"},
    {desc="Climbing hut stove smoke trips a false alarm; wardens air out the dormitory.", urgency="LOW"},
    {desc="Wayfinding cairns repainted above Hammer Notch; short rolling closures announced.", urgency="LOW"},
    {desc="Seasonal timber inspection replaces three footbridge planks; brief traffic hold.", urgency="LOW"},

    -- MEDIUM (6–11)
    {desc="Scree slide blocks mule path below Black Gate; shovel teams reopen by dusk.", urgency="MEDIUM"},
    {desc="Unlicensed guides selling counterfeit summit passes; badges seized, fines issued.", urgency="MEDIUM"},
    {desc="Hydro station icing forces brownouts; clinics moved to generator priority list.", urgency="MEDIUM"},
    {desc="Poachers cut fence into caprine preserve; rangers recover two carcasses and snares.", urgency="MEDIUM"},
    {desc="Karst sink opens across the ridge track; detour posted along the old quarry lane.", urgency="MEDIUM"},
    {desc="Monastery infirmary reports gastro cluster traced to unboiled meltwater; boil order issued.", urgency="MEDIUM"},

    -- HIGH (12–16)
    {desc="Bandits ambush salt convoy at Hammer Shelf; escorts return fire; two injured.", urgency="HIGH"},
    {desc="Cornice-control shot misfires near Avalanche Gallery; stabilization crews deployed.", urgency="HIGH"},
    {desc="Sabotage suspected in funicular brake glazing; line closed pending magnetic inspection.", urgency="HIGH"},
    {desc="Clandestine adit collapses under the east buttress; rescue shaft started at first light.", urgency="HIGH"},
    {desc="Leachate from illegal ore heap discolors stream; intake throttled while assays run.", urgency="HIGH"},

    -- CRITICAL (17–20)
    {desc="Slab avalanche rips across the High Traverse after cornice failure; multiple missing; mass SAR declared.", urgency="CRITICAL"},
    {desc="Explosive charges found on Cable Tower 2 anchor plates; EOD disrupts; cordon remains overnight.", urgency="CRITICAL"},
    {desc="Armed faction seizes tollhouse at Hammer Gate to extort caravans; War League assistance requested.", urgency="CRITICAL"},
    {desc="Rock-glacier surge shears penstock to upper hydro; hamlets isolated; emergency water convoys roll.", urgency="CRITICAL"}
  }
},



  -- NEW (Valley cities appended here, formatted like the Normark block)
["Ourid"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Coordinated VBIED attempt against Ridge-Gate Shrine ring during morning rites; Shrine Watch cordon holds, EOD teams active in tunnel galleries.", urgency="CRITICAL"},
    {desc="Rochefort revivalist cell detonates charge on cliffside processional causeway; rockfall threatens lower sanctum district and pilgrim queue.", urgency="CRITICAL"},
    {desc="Intercepted ritual-contraband mule train in ridge tunnels; Aurantius UAVs track additional couriers toward frost-choked tributary culverts.", urgency="CRITICAL"},
    {desc="Counterbattery strike required after small-arms ambush on Thunderguard Citadel Train near Switchback 7; line closed pending girder inspection.", urgency="CRITICAL"},
    {desc="Flash-flood surge from freeze–thaw break overwhelms lower canal sluices; emergency evacuation of shrine archives underway.", urgency="CRITICAL"},

    -- HIGH (6–10)
    {desc="Cascading landslide cuts Northern Pass; engineers requesting quadwalker dozer units to clear debris and stabilize slope with rock bolts.", urgency="HIGH"},
    {desc="Temple Bank audit reveals forged stipend ledgers at two hillside sanctums; Guild of Golden Shadows initiates seizure of tithe caches.", urgency="HIGH"},
    {desc="Biometric registry outage at Shrine Instruction Institute stalls oath renewals; crowd control and mobile kiosks deployed to courtyard.", urgency="HIGH"},
    {desc="Suspected cyanotoxin dump detected at Ouriana feeder canal; Sanctum Vitalis issues boil-water advisory for three wards.", urgency="HIGH"},
    {desc="Night raid targets missionary clinic pharmacy; perimeter sensors tripped, suspects flee via ridge culvert network.", urgency="HIGH"},

    -- MEDIUM (11–15)
    {desc="Pilgrimage surge during Flood-Blessing festival gridlocks ridge roads; emergency lanes enforced and footbridges one-wayed.", urgency="MEDIUM"},
    {desc="Unauthorized relic market emerges along cliff stairs; Shrine Watch seizes carved icons linked to prohibited texts.", urgency="MEDIUM"},
    {desc="Power sags at tunnel ventilators trigger intermittent gas alarms; maintenance crews rotate with portable extractors.", urgency="MEDIUM"},
    {desc="Quadwalker patrol reports feral pack activity near Upper Gallery; public guidance issued for dusk travel restrictions.", urgency="MEDIUM"},
    {desc="Ouriad River Fisheries Cooperative convoy delayed by washed-out ford; temporary rope ferry established for cold-chain continuity.", urgency="MEDIUM"},

    -- LOW (16–20)
    {desc="Counterfeit missionary badges discovered at checkpoint; registrar sweeps contractor rosters and revokes three licenses.", urgency="LOW"},
    {desc="Shrine bell casting cracks during rehearsal; artisans request additional bronze feedstock from Vaeringheim foundry.", urgency="LOW"},
    {desc="Youth procession blocks stairway between Upper and Middle Sanctums; stewards redirect pilgrims to canyon switchbacks.", urgency="LOW"},
    {desc="Seasonal quagga mussel fouling reported on cliff cistern pipes; scraping crews scheduled off-peak.", urgency="LOW"},
    {desc="Lantern-walk crowd spillover at river overlook; rope barriers extended and wardens reassigned for next cycle.", urgency="LOW"}
  }
  },
["Bashkim"] = {
  events = {
    -- CRITICAL (1–5)
    {desc="Armed smuggling crew attempts breach of sacramental market vault during stipend redemption; Shrine Watch cadets lock down arcades.", urgency="CRITICAL"},
    {desc="Improvised charges found on caravan licensing center weighbridge; EOD neutralizes while perimeter evacuated.", urgency="CRITICAL"},
    {desc="Coordinated arson at depot rows adjacent to caravan yards; armored water tenders requested as wind shifts toward bazaar quarter.", urgency="CRITICAL"},
    {desc="Insurgent sniper pair targets Shrine Watch graduation at Bashkim Academy; ceremony suspended, dragnet underway.", urgency="CRITICAL"},
    {desc="Explosive drone intercepted over tithe counting house roof; ISR drones vector to suspected launch van fleeing east spur.", urgency="CRITICAL"},

    -- HIGH (6–10)
    {desc="General Port spur software outage stalls bonded-warehouse manifests; throughput to caravan park drops 40% until patch applied.", urgency="HIGH"},
    {desc="Counterfeit caravan licenses detected across three guild stalls; Guild of Golden Shadows orders immediate re-vetting of brokers.", urgency="HIGH"},
    {desc="Food-oil tank-tote spill in bazaar lane sends 11 to clinic; hazmat crews deploy sand berms to protect drain inlets.", urgency="HIGH"},
    {desc="Mass pilferage ring hits high-value metals shed; pursuit bikes chase fast skiff toward Ouriana ferry crossing.", urgency="HIGH"},
    {desc="Rolling blackouts after substation bus fault near market arcades; generators prioritized for stipend redemption halls.", urgency="HIGH"},

    -- MEDIUM (11–15)
    {desc="Caravan congestion at east gate during equinox fair; one-way loop and animal watering windows enforced by stewards.", urgency="MEDIUM"},
    {desc="Tithe audit flags under-declaration across three spice stalls; mediators schedule shrine arbitration hearings.", urgency="MEDIUM"},
    {desc="Livestock scare from Caspazani remuda bolting through south square; mounted wardens re-route foot traffic.", urgency="MEDIUM"},
    {desc="Quarry lorry overturns on ring road; crane requested to right vehicle and reopen access to academy drill field.", urgency="MEDIUM"},
    {desc="Market roof tile-shedding during crosswinds; engineers tape off arcades for inspection and re-slating.", urgency="MEDIUM"},

    -- LOW (16–20)
    {desc="Public rally at caravan park over new inspection fees; shrine mediation tabled for next watch.", urgency="LOW"},
    {desc="Counterfeit port ID badges seized at North Gate; contractor sweep and retraining ordered.", urgency="LOW"},
    {desc="Lantern regatta recruitment booth causes crowding near canal footbridge; additional barriers installed.", urgency="LOW"},
    {desc="Street performers block stipend hall steps during festival; relocated to designated alcove by wardens.", urgency="LOW"},
    {desc="Routine mussel scraping on ferry hulls reduces schedule to half service; advisories posted at embarkation.", urgency="LOW"}
  }
  }

}

-------------------------------------------------------------------------------
-- (E) WEIGHTED RANDOM SELECTION: 80% chance "No reports"
-------------------------------------------------------------------------------
local function getWeight(urg)
  if urg == "LOW" then return 4 end
  if urg == "MEDIUM" then return 3 end
  if urg == "HIGH" then return 2 end
  if urg == "CRITICAL" then return 1 end
  return 1
end

local function pickWeightedEvent(events)
  local total = 0
  for _, ev in ipairs(events) do
    total = total + getWeight(ev.urgency)
  end
  local roll = math.random(total)
  local cumul = 0
  for _, ev in ipairs(events) do
    cumul = cumul + getWeight(ev.urgency)
    if roll <= cumul then
      return ev
    end
  end
  return events[#events]
end

-------------------------------------------------------------------------------
-- (F) MAKE TABLE FUNCTION: Day-based seed, 80% "No reports", else weighted pick
-------------------------------------------------------------------------------
function p.makeTable()
  local dateInfo = getPSSCDate()
  local seed = dateInfo.year * 1000 + dateInfo.dayOfYear
  math.randomseed(seed)
  local lines = {}
  table.insert(lines, '{| class="wikitable"')
  table.insert(lines, '! Date !! City !! Event !! Urgency')
  for _, cityName in ipairs(cityOrder) do
    local data = cityData[cityName]
    -- Set the "no reports" threshold. Default is 0.80 (20% event chance)
    -- For Pelagia, lower the threshold to 0.60 (40% event chance, which is 2x as likely)
    local threshold = (cityName == "Pelagia") and 0.60 or 0.80
    if data then
      local roll = math.random()
      if roll < threshold then
        table.insert(lines, '|-')
        table.insert(lines, '| ' .. dateInfo.text .. ' || ' .. cityName .. ' || No reports || N/A')
      else
        local ev = pickWeightedEvent(data.events)
        table.insert(lines, '|-')
        table.insert(lines, '| ' .. dateInfo.text .. ' || ' .. cityName .. ' || ' .. ev.desc .. ' || ' .. ev.urgency)
      end
    else
      table.insert(lines, '|-')
      table.insert(lines, '| ' .. dateInfo.text .. ' || ' .. cityName .. ' || No data || N/A')
    end
  end
  table.insert(lines, '|}')
  return table.concat(lines, '\n')
end

return p