Module:BassaridianDailyEvents: Difference between revisions

From MicrasWiki
Jump to navigationJump to search
NewZimiaGov (talk | contribs)
No edit summary
NewZimiaGov (talk | contribs)
No edit summary
 
(29 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 serious 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 illusions of a monstrous beast in 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="Disturbing transformations among vineyard workers, traced to possible chemical doping, 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="Heavily armored raiders sabotage Saltsteppes routes, all commerce suspended, city in crisis mode.", 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="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="Stripping Path radicals occupy coral trade posts, local officials found dead at scene.", 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="Council crackdown on extremist Path offshoot triggers pitched street battles in coral markets.", 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