{
  "schema_version": 1,
  "generated_at": "2026-10-02T22:45:35Z",
  "last_editorial_review": "2026-10-02T22:45:35Z",
  "coverage_note": "Research snapshot, 1 Jan 2024–2 Oct 2026: 84 sourced episodes across 81 countries and territories. A recent-activity search on 2 Oct 2026 logged 167 searches but could not open news articles, so no newer records were added. AI-assisted, no independent human editorial sign-off. Missing records and unknown status are coverage limits, not evidence that no protests occurred.",
  "events": [
    {
      "id": "in-electoral-20261002",
      "title": "Electoral roll revisions and accountability",
      "country": "IN",
      "country_name": "India",
      "region": "Asia",
      "location": {
        "label": "Mumbai and New Delhi",
        "precision": "multi-location"
      },
      "issues": [
        "Elections",
        "Government accountability"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_observed_at": "2026-10-02",
      "last_verified": "2026-10-02T21:09:52Z",
      "summary": "Demonstrators challenged electoral roll revisions and demanded the election chief’s resignation.",
      "positions": [
        {
          "actor": "Youth movement and student activists",
          "stance": "oppose",
          "target": "Electoral roll revision process",
          "claim": "Concerns are attributed to protesters, not established findings of misconduct.",
          "source_ids": [
            "in-ap"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Disruption not established by this record.",
        "violence": "Not established by this record.",
        "source_ids": [
          "in-ap"
        ]
      },
      "state_response": [
        {
          "action": "Police prevented gathering and detained demonstrators in New Delhi",
          "attribution": "AP reporting",
          "source_ids": [
            "in-ap"
          ]
        }
      ],
      "sources": [
        {
          "id": "in-ap",
          "url": "https://apnews.com/article/1d43de28dfd6fa920133d98e9d0e8e35",
          "title": "India: electoral protest reporting, 2 October",
          "publisher": "Associated Press",
          "published_at": "2026-10-02",
          "accessed_at": "2026-10-02T19:15:18Z"
        },
        {
          "id": "in-electoral-ap-seattle",
          "url": "https://www.seattletimes.com/nation-world/indias-cockroach-youth-protesters-are-to-rally-again-and-demand-ouster-of-election-chief/",
          "title": "‘Cockroach’ protesters demand India’s election chief resign over voter list changes",
          "publisher": "Associated Press via The Seattle Times",
          "published_at": "2026-10-02T06:08:05Z",
          "accessed_at": "2026-10-02T21:09:52Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check. No independent human editorial review. Observation is day-level; present activity and full movement onset are not established."
      },
      "timeline": [
        {
          "date": "2026-10-02",
          "text": "Dated report of protest activity; full onset and end not established.",
          "source_ids": [
            "in-ap"
          ]
        }
      ]
    },
    {
      "id": "fr-schools-20261002",
      "title": "School conditions and education funding",
      "country": "FR",
      "country_name": "France",
      "region": "Europe",
      "location": {
        "label": "France",
        "precision": "country"
      },
      "issues": [
        "Education",
        "Public services"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_observed_at": "2026-10-02",
      "last_verified": "2026-10-02T21:09:52Z",
      "summary": "Students protested over classroom conditions and funding.",
      "positions": [
        {
          "actor": "Student demonstrators",
          "stance": "support",
          "target": "Improved school conditions and education funding",
          "claim": "Demands described by Reuters.",
          "source_ids": [
            "fr-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "School disruption reported.",
        "violence": "Clashes and property fires reported; attribution varies by incident.",
        "source_ids": [
          "fr-reuters"
        ]
      },
      "state_response": [
        {
          "action": "Tear gas reported",
          "attribution": "Reuters reporting",
          "source_ids": [
            "fr-reuters"
          ]
        }
      ],
      "sources": [
        {
          "id": "fr-reuters",
          "url": "https://www.reuters.com/world/about-400-french-schools-closed-some-student-protests-turn-violent-2026-10-02/",
          "title": "France: school protest reporting, 2 October",
          "publisher": "Reuters",
          "published_at": "2026-10-02",
          "accessed_at": "2026-10-02T19:15:18Z"
        },
        {
          "id": "fr-schools-reuters-marketscreener",
          "url": "https://www.marketscreener.com/news/about-400-french-schools-closed-as-some-student-protests-turn-violent-ce785ddadc8bf325",
          "title": "Students and police clash as France struggles to quell school protests",
          "publisher": "Reuters via MarketScreener",
          "published_at": "2026-10-02",
          "accessed_at": "2026-10-02T21:09:52Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check. No independent human editorial review. Observation is day-level; present activity and full movement onset are not established."
      },
      "timeline": [
        {
          "date": "2026-10-02",
          "text": "Dated report of protest activity; full onset and end not established.",
          "source_ids": [
            "fr-reuters"
          ]
        }
      ]
    },
    {
      "id": "es-housing-20261002",
      "title": "Housing affordability and tenant protection",
      "country": "ES",
      "country_name": "Spain",
      "region": "Europe",
      "location": {
        "label": "Madrid",
        "precision": "city"
      },
      "issues": [
        "Housing",
        "Cost of living"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_observed_at": "2026-10-02",
      "last_verified": "2026-10-02T21:09:52Z",
      "summary": "Protesters demanded help for renters as parliament rejected housing measures.",
      "positions": [
        {
          "actor": "Housing demonstrators",
          "stance": "support",
          "target": "Tenant protection",
          "claim": "Demanded assistance for renters.",
          "source_ids": [
            "es-aj"
          ]
        },
        {
          "actor": "Junts lawmakers",
          "stance": "oppose",
          "target": "Proposed housing decrees",
          "claim": "Argued the measures would constrain the rental market; parliamentary position, not a counterprotest.",
          "source_ids": [
            "es-aj"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Hundreds, as reported; no numeric range inferred."
        },
        "disruption": "Disruption beyond the reported march not established.",
        "violence": "Not established by this record.",
        "source_ids": [
          "es-aj"
        ]
      },
      "state_response": [
        {
          "action": "Parliament rejected the decrees",
          "attribution": "Legislative response reported by Al Jazeera; no police action established for this event",
          "source_ids": [
            "es-aj"
          ]
        }
      ],
      "sources": [
        {
          "id": "es-aj",
          "url": "https://www.aljazeera.com/news/2026/10/2/spains-parliament-rejects-govt-housing-decrees-amid-mass-protests",
          "title": "Spain: housing protest reporting, 2 October",
          "publisher": "Al Jazeera, with AP and Reuters",
          "published_at": "2026-10-02",
          "accessed_at": "2026-10-02T21:09:52Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check. No independent human editorial review. Observation is day-level; present activity and full movement onset are not established."
      },
      "timeline": [
        {
          "date": "2026-10-02",
          "text": "Dated report of protest activity; full onset and end not established.",
          "source_ids": [
            "es-aj"
          ]
        }
      ]
    },
    {
      "id": "tz-drivers-20260929",
      "title": "Bus and truck drivers' licensing-system strike",
      "country": "TZ",
      "country_name": "Tanzania, United Republic of",
      "region": "Africa",
      "location": {
        "label": "Dar es Salaam and other cities",
        "precision": "multi-location"
      },
      "issues": [
        "Labor",
        "Transport"
      ],
      "start_date": "2026-09-29",
      "start_date_precision": "day",
      "end_date": "2026-09-30",
      "status": "ended",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2026-10-01",
      "summary": "Drivers suspended a two-day nationwide stoppage after government talks and suspension of a contested licence-points system.",
      "positions": [
        {
          "actor": "Bus and truck drivers",
          "stance": "oppose",
          "target": "15-point licence system",
          "claim": "Drivers challenged liability and enforcement rules that threatened their livelihoods.",
          "source_ids": [
            "tz-drivers-20260929-source-2"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Passenger and freight transport halted, leaving travelers stranded.",
        "violence": "unknown",
        "source_ids": [
          "tz-drivers-20260929-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Government suspended points system and opened a review",
          "attribution": "The Chanzo's reporting",
          "source_ids": [
            "tz-drivers-20260929-source-2"
          ]
        }
      ],
      "sources": [
        {
          "id": "tz-drivers-20260929-source-1",
          "url": "https://dailynews.co.tz/leaders-of-bus-truck-drivers-call-off-the-two-day-strike-after-talks-with-pm-nchemba/",
          "title": "Leaders of bus, truck drivers call off the two-day strike after talks with PM Nchemba - Daily News",
          "publisher": "Daily News",
          "published_at": "2026-09-30",
          "accessed_at": "2026-10-02T21:13:01.479Z"
        },
        {
          "id": "tz-drivers-20260929-source-2",
          "url": "https://thechanzo.com/2026/10/02/tanzania-bus-strike-ends-but-drivers-fight-is-far-from-over/",
          "title": "Tanzania Bus Strike Ends, but Drivers’ Fight Is Far From Over - The Chanzo",
          "publisher": "The Chanzo",
          "published_at": "2026-10-01",
          "accessed_at": "2026-10-02T21:13:01.479Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2026-09-29",
          "text": "Drivers began the stoppage.",
          "source_ids": [
            "tz-drivers-20260929-source-2"
          ]
        },
        {
          "date": "2026-09-30",
          "text": "Driver leaders agreed to resume services after talks.",
          "source_ids": [
            "tz-drivers-20260929-source-1"
          ]
        },
        {
          "date": "2026-10-01",
          "text": "Review began and the nationwide stoppage was reported over.",
          "source_ids": [
            "tz-drivers-20260929-source-2"
          ]
        }
      ]
    },
    {
      "id": "au-victorian-hospital-strike-20261001",
      "title": "Victorian hospital workers strike over pay and fatigue",
      "country": "AU",
      "country_name": "Australia",
      "region": "Oceania",
      "location": {
        "label": "Victoria, including Mildura",
        "precision": "region"
      },
      "issues": [
        "Labour",
        "Health services"
      ],
      "start_date": "2026-10-01",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:15:18.222Z",
      "last_observed_at": "2026-10-01",
      "summary": "Doctors and allied health professionals stopped work over stalled pay and conditions negotiations, with emergency-care exemptions.",
      "positions": [
        {
          "actor": "AMA Victoria and Victorian Allied Health Professionals Association",
          "stance": "support",
          "target": "Improved pay, staffing and working conditions",
          "claim": "Unions called for safer hours and better retention.",
          "source_ids": [
            "au-victorian-hospital-strike-20261001-abc"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Reliable comparable count not established."
        },
        "disruption": "Work stoppages at public hospitals; emergency-care exemptions reported.",
        "violence": "No violence described in the reviewed report.",
        "source_ids": [
          "au-victorian-hospital-strike-20261001-abc"
        ]
      },
      "state_response": [
        {
          "action": "Negotiations continuing",
          "attribution": "Victorian health minister quoted by ABC.",
          "source_ids": [
            "au-victorian-hospital-strike-20261001-abc"
          ]
        }
      ],
      "sources": [
        {
          "id": "au-victorian-hospital-strike-20261001-abc",
          "url": "https://www.abc.net.au/news/2026-10-01/victoria-doctors-allied-health-professionals-strike/107216718",
          "title": "Victorian doctors and allied health professionals strike amid ongoing pay disputes",
          "publisher": "ABC News",
          "published_at": "2026-10-01",
          "accessed_at": "2026-10-02T21:15:18.222Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source reading; no human editorial sign-off. This is a bounded historical episode; present activity is not established."
      },
      "timeline": [
        {
          "date": "2026-10-01",
          "text": "Public hospital workers staged work stoppages; talks remained unresolved.",
          "source_ids": [
            "au-victorian-hospital-strike-20261001-abc"
          ]
        }
      ]
    },
    {
      "id": "as-noaa-seabed-mining-protest-20260902",
      "title": "Community protest against seabed-mining research concerns",
      "country": "AS",
      "country_name": "American Samoa",
      "region": "Oceania",
      "location": {
        "label": "Pago Pago",
        "precision": "city"
      },
      "issues": [
        "Environment",
        "Indigenous rights"
      ],
      "start_date": "2026-09-02",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:17:35.356Z",
      "last_observed_at": "2026-09-02",
      "summary": "Community leaders and Greenpeace USA activists peacefully confronted a NOAA research ship, fearing mineral-mapping work would assist proposed deep-sea mining.",
      "positions": [
        {
          "actor": "Finafinau and Greenpeace USA activists",
          "stance": "oppose",
          "target": "Research potentially facilitating commercial seabed mining",
          "claim": "Activists linked mineral exploration with extraction risks.",
          "source_ids": [
            "as-noaa-seabed-mining-protest-20260902-talanei"
          ]
        },
        {
          "actor": "NOAA research ship representatives",
          "stance": "support",
          "target": "Ocean-science research mission",
          "claim": "Ship response described its mission as research and decisions as belonging to politicians and the public.",
          "source_ids": [
            "as-noaa-seabed-mining-protest-20260902-talanei"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Reliable comparable count not established."
        },
        "disruption": "Peaceful confrontation and radio exchange; operational disruption not established.",
        "violence": "Described as peaceful.",
        "source_ids": [
          "as-noaa-seabed-mining-protest-20260902-talanei"
        ]
      },
      "state_response": [
        {
          "action": "Research ship replied to protest message",
          "attribution": "Radio response quoted by Talanei.",
          "source_ids": [
            "as-noaa-seabed-mining-protest-20260902-talanei"
          ]
        }
      ],
      "sources": [
        {
          "id": "as-noaa-seabed-mining-protest-20260902-talanei",
          "url": "https://www.talanei.com/2026/09/03/protestors-deliver-message-to-noaa-research-ship/",
          "title": "Protestors deliver message to NOAA research ship",
          "publisher": "Talanei",
          "published_at": "2026-09-03",
          "accessed_at": "2026-10-02T21:17:35.356Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source reading; no human editorial sign-off. This is a bounded historical episode; present activity is not established."
      },
      "timeline": [
        {
          "date": "2026-09-02",
          "text": "Activists displayed banners and delivered a radio protest message; ship personnel responded.",
          "source_ids": [
            "as-noaa-seabed-mining-protest-20260902-talanei"
          ]
        }
      ]
    },
    {
      "id": "al-flamingo-rallies-2026",
      "title": "Nightly rallies against coastal development and corruption",
      "country": "AL",
      "country_name": "Albania",
      "region": "Europe",
      "location": {
        "label": "Tirana",
        "precision": "city"
      },
      "issues": [
        "Environment",
        "Government accountability",
        "Public services"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:20:26.792Z",
      "last_observed_at": "2026-07-28",
      "summary": "Nightly Tirana rallies opposed a coastal resort project and broadened into demands for accountability, political reform and improved public services.",
      "positions": [
        {
          "actor": "Citizens opposing the Zvërnec development",
          "stance": "support",
          "target": "Protected-area policy and government accountability",
          "claim": "Participants sought protected-area safeguards and political change; many called for the prime minister to resign.",
          "source_ids": [
            "al-flamingo-rallies-2026-bbc",
            "al-flamingo-rallies-2026-ata"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Repeated street rallies were reported.",
        "violence": "unknown",
        "source_ids": [
          "al-flamingo-rallies-2026-bbc",
          "al-flamingo-rallies-2026-ata"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "al-flamingo-rallies-2026-bbc",
          "url": "https://www.bbc.com/news/articles/c8925jnl0z3o",
          "title": "'Flamingo Revolution' takes off as thousands demand Albanian PM's resignation",
          "publisher": "BBC News",
          "published_at": "2026-07-04",
          "accessed_at": "2026-10-02T21:16:15.166Z"
        },
        {
          "id": "al-flamingo-rallies-2026-ata",
          "url": "https://en.ata.gov.al/2026/07/28/protests-against-controversial-zvernec-investment-enter-their-59th-consecutive-day/",
          "title": "Protests against controversial Zvërnec investment enter their 59th consecutive day",
          "publisher": "Albanian Telegraphic Agency",
          "published_at": "2026-07-28",
          "accessed_at": "2026-10-02T21:16:57.603Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted article review; no independent human editorial sign-off. BBC original interviews and state news agency reporting support episode identity. ATA has institutional incentives and is not treated as neutral on government performance. Exact onset is not inferred from consecutive-day counts."
      },
      "timeline": [
        {
          "date": "2026-07-28",
          "text": "Dated report documents this episode; precise onset remains unknown.",
          "source_ids": [
            "al-flamingo-rallies-2026-bbc",
            "al-flamingo-rallies-2026-ata"
          ]
        }
      ]
    },
    {
      "id": "ht-textile-minimum-wage-protests-2026",
      "title": "Textile workers demand higher minimum pay",
      "country": "HT",
      "country_name": "Haiti",
      "region": "Americas",
      "location": {
        "label": "Port-au-Prince and Ouanaminthe",
        "precision": "multi-location"
      },
      "issues": [
        "Pay",
        "Cost of living"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2026-05-08",
      "summary": "Textile workers protested living costs. Ouanaminthe workers rejected a government wage rise and continued their stoppage.",
      "positions": [
        {
          "actor": "Haitian textile workers and UTRACO",
          "stance": "support",
          "target": "Higher minimum wage",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "ht-textile-minimum-wage-protests-2026-s2"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "CODEVI activity slowed, affecting nearby livelihoods.",
        "violence": "Unknown",
        "source_ids": [
          "ht-textile-minimum-wage-protests-2026-s2"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "ht-textile-minimum-wage-protests-2026-s1",
          "url": "https://www.pbs.org/newshour/world/surging-oil-prices-spark-protest-in-haiti-as-workers-demand-salary-increases",
          "title": "Surging oil prices spark protest in Haiti as workers demand salary increases",
          "publisher": "Associated Press via PBS",
          "published_at": "2026-04-13",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        },
        {
          "id": "ht-textile-minimum-wage-protests-2026-s2",
          "url": "https://haitiantimes.com/2026/05/08/haiti-textile-workers-striking/",
          "title": "Haiti textile workers reject government’s modest pay raise, maintain strike",
          "publisher": "The Haitian Times",
          "published_at": "2026-05-08",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. AP copy at PBS is one source, not two. Haitian Times separately reports CODEVI workers; exact joint campaign onset unestablished."
      },
      "timeline": [
        {
          "date": "2026-04-13",
          "text": "Workers protested wages in Port-au-Prince.",
          "source_ids": [
            "ht-textile-minimum-wage-protests-2026-s1"
          ]
        },
        {
          "date": "2026-05-04",
          "text": "Government announced 1,000-gourde daily minimum.",
          "source_ids": [
            "ht-textile-minimum-wage-protests-2026-s2"
          ]
        }
      ]
    },
    {
      "id": "do-romero-mine-protests-2026",
      "title": "Protests over Romero mine and water protection",
      "country": "DO",
      "country_name": "Dominican Republic",
      "region": "Americas",
      "location": {
        "label": "San Juan province",
        "precision": "region"
      },
      "issues": [
        "Water",
        "Environment",
        "Mining"
      ],
      "start_date": "2026-05-03",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2026-05-04",
      "summary": "Residents protested possible water pollution from the Romero mine; the president suspended related activity.",
      "positions": [
        {
          "actor": "San Juan water-protection movement",
          "stance": "oppose",
          "target": "Romero mining project",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "do-romero-mine-protests-2026-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "do-romero-mine-protests-2026-s1",
          "url": "https://www.reuters.com/world/dominican-republic-president-halts-goldquest-mining-project-after-protests-2026-05-05/",
          "title": "Dominican Republic president halts GoldQuest mining project after protests",
          "publisher": "Reuters",
          "published_at": "2026-05-05",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. Suspension is neither permanent cancellation nor proof protests ended."
      },
      "timeline": [
        {
          "date": "2026-05-03",
          "text": "Residents protested environmental concerns.",
          "source_ids": [
            "do-romero-mine-protests-2026-s1"
          ]
        },
        {
          "date": "2026-05-04",
          "text": "President suspended project activity.",
          "source_ids": [
            "do-romero-mine-protests-2026-s1"
          ]
        }
      ]
    },
    {
      "id": "ar-labor-reform-protests-2026",
      "title": "Union opposition to labour reform",
      "country": "AR",
      "country_name": "Argentina",
      "region": "Americas",
      "location": {
        "label": "Argentina",
        "precision": "city"
      },
      "issues": [
        "Labour rights",
        "Collective bargaining"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2026-02-27",
      "summary": "Unions and opposition groups protested outside Congress as lawmakers approved Milei's labour reform.",
      "positions": [
        {
          "actor": "Union and opposition demonstrators",
          "stance": "oppose",
          "target": "Government labour reform",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "ar-labor-reform-protests-2026-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Unknown",
        "violence": "Police-protester clashes reported.",
        "source_ids": [
          "ar-labor-reform-protests-2026-s1"
        ]
      },
      "state_response": [
        {
          "action": "At least three arrests reported.",
          "attribution": "Associated Press reporting",
          "source_ids": [
            "ar-labor-reform-protests-2026-s1"
          ]
        }
      ],
      "sources": [
        {
          "id": "ar-labor-reform-protests-2026-s1",
          "url": "https://apnews.com/article/argentina-milei-labor-reform-protests-4746f019e02ad8eb2dd4355a2b4beb99",
          "title": "Argentine lawmakers approve historic labor reform",
          "publisher": "Associated Press",
          "published_at": "2026-02-27",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. Legislative passage does not establish protest cessation."
      },
      "timeline": [
        {
          "date": "2026-02-27",
          "text": "Senate passed reform amid protests.",
          "source_ids": [
            "ar-labor-reform-protests-2026-s1"
          ]
        }
      ]
    },
    {
      "id": "fj-yaqara-pastoral-strike-20260216",
      "title": "Yaqara Pastoral workers strike for unpaid entitlements",
      "country": "FJ",
      "country_name": "Fiji",
      "region": "Oceania",
      "location": {
        "label": "Yaqara, Tavua",
        "precision": "region"
      },
      "issues": [
        "Labour",
        "Pay"
      ],
      "start_date": "2026-02-16",
      "start_date_precision": "day",
      "end_date": "2026-02-19",
      "status": "ended",
      "last_verified": "2026-10-02T21:15:18.222Z",
      "last_observed_at": "2026-02-19",
      "summary": "National Union of Workers members struck over unpaid cost-of-living adjustments and employment entitlements; a negotiated agreement ended the dispute.",
      "positions": [
        {
          "actor": "National Union of Workers members at Yaqara",
          "stance": "support",
          "target": "Outstanding wage adjustments and employment entitlements",
          "claim": "Workers sought compliance with agreed conditions.",
          "source_ids": [
            "fj-yaqara-pastoral-strike-20260216-village"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Reliable comparable count not established."
        },
        "disruption": "Four days of industrial action.",
        "violence": "Violence not reported in the reviewed accounts.",
        "source_ids": [
          "fj-yaqara-pastoral-strike-20260216-times",
          "fj-yaqara-pastoral-strike-20260216-sun"
        ]
      },
      "state_response": [
        {
          "action": "Government-brokered negotiations",
          "attribution": "Employment ministry statements carried by Fijivillage and Fiji Sun.",
          "source_ids": [
            "fj-yaqara-pastoral-strike-20260216-village",
            "fj-yaqara-pastoral-strike-20260216-sun"
          ]
        }
      ],
      "sources": [
        {
          "id": "fj-yaqara-pastoral-strike-20260216-village",
          "url": "https://www.fijivillage.com/news/yaqara-workers-on-strike-agree-in-principle-to-meet-employer-after-ministry-steps-in-7cdd35/",
          "title": "Yaqara workers on strike agree in principle to meet employer",
          "publisher": "Fijivillage",
          "published_at": "2026-02-17",
          "accessed_at": "2026-10-02T21:15:18.222Z"
        },
        {
          "id": "fj-yaqara-pastoral-strike-20260216-times",
          "url": "https://www.fijitimes.com.fj/union-hails-big-win-after-yaqara-pastoral-dispute-resolved/",
          "title": "Union hails big win after Yaqara Pastoral dispute resolved",
          "publisher": "The Fiji Times",
          "published_at": "2026-02-19T19:05:43Z",
          "accessed_at": "2026-10-02T21:15:18.222Z"
        },
        {
          "id": "fj-yaqara-pastoral-strike-20260216-sun",
          "url": "https://fijisun.com.fj/news/nation/four-day-yaqara-pastoral-workers-strike-ends-with-wage-breakthrough",
          "title": "Four-day Yaqara Pastoral workers strike ends with wage breakthrough",
          "publisher": "Fiji Sun",
          "published_at": "2026-02-21",
          "accessed_at": "2026-10-02T21:15:18.222Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted source reading; no human editorial sign-off. This is a bounded historical episode; present activity is not established."
      },
      "timeline": [
        {
          "date": "2026-02-16",
          "text": "Workers began a strike.",
          "source_ids": [
            "fj-yaqara-pastoral-strike-20260216-village"
          ]
        },
        {
          "date": "2026-02-19",
          "text": "Agreement ended four days of industrial action.",
          "source_ids": [
            "fj-yaqara-pastoral-strike-20260216-times",
            "fj-yaqara-pastoral-strike-20260216-sun"
          ]
        }
      ]
    },
    {
      "id": "eg-jadetextile-20260208",
      "title": "Jade Textile wage strike and bargaining agreement",
      "country": "EG",
      "country_name": "Egypt",
      "region": "Africa",
      "location": {
        "label": "10th of Ramadan City and Ismailia",
        "precision": "multi-location"
      },
      "issues": [
        "Labor",
        "Wages"
      ],
      "start_date": "2026-02-08",
      "start_date_precision": "day",
      "end_date": "2026-02-10",
      "status": "ended",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2026-02-10",
      "summary": "Textile workers returned after a wage-restructuring agreement, while some questioned its terms and representation.",
      "positions": [
        {
          "actor": "Jade Textile workers",
          "stance": "support",
          "target": "Higher wages",
          "claim": "Workers said the annual raise did not match living costs.",
          "source_ids": [
            "eg-jadetextile-20260208-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Factories experienced a two-day walkout.",
        "violence": "unknown",
        "source_ids": [
          "eg-jadetextile-20260208-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Labor minister attended bargaining",
          "attribution": "Al Manassa reporting and ministry statement",
          "source_ids": [
            "eg-jadetextile-20260208-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "eg-jadetextile-20260208-source-1",
          "url": "https://manassa.news/en/news/30248",
          "title": "Jade Textile Egypt workers end strike after wage restructure deal | Al Manassa",
          "publisher": "Al Manassa",
          "published_at": "2026-02-10",
          "accessed_at": "2026-10-02T21:12:46.430Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2026-02-08",
          "text": "Workers began striking.",
          "source_ids": [
            "eg-jadetextile-20260208-source-1"
          ]
        },
        {
          "date": "2026-02-10",
          "text": "Workers ended the strike after bargaining.",
          "source_ids": [
            "eg-jadetextile-20260208-source-1"
          ]
        }
      ]
    },
    {
      "id": "gl-self-determination-rally-2026",
      "title": "Nuuk rally against US takeover demand",
      "country": "GL",
      "country_name": "Greenland",
      "region": "Americas",
      "location": {
        "label": "Greenland",
        "precision": "city"
      },
      "issues": [
        "Self-determination",
        "Territorial sovereignty"
      ],
      "start_date": "2026-01-17",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2026-01-17",
      "summary": "Demonstrators in Nuuk, including the prime minister, opposed Trump's demand for US control and supported Greenland's own choice.",
      "positions": [
        {
          "actor": "Nuuk self-determination demonstrators",
          "stance": "oppose",
          "target": "Proposed US takeover of Greenland",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "gl-self-determination-rally-2026-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "gl-self-determination-rally-2026-s1",
          "url": "https://www.reuters.com/world/europe/protesters-denmark-support-greenland-after-trumps-takeover-threat-2026-01-17/",
          "title": "Protesters rally in Denmark and Greenland against Trump annexation threat",
          "publisher": "Reuters",
          "published_at": "2026-01-17",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. No policy concession or broader movement ending established; Copenhagen crowd estimates are not applied to Nuuk."
      },
      "timeline": [
        {
          "date": "2026-01-17",
          "text": "Nuuk demonstration defended self-determination.",
          "source_ids": [
            "gl-self-determination-rally-2026-s1"
          ]
        }
      ]
    },
    {
      "id": "dk-greenland-solidarity-2026",
      "title": "Demonstration for Greenlandic self-determination",
      "country": "DK",
      "country_name": "Denmark",
      "region": "Europe",
      "location": {
        "label": "Copenhagen",
        "precision": "city"
      },
      "issues": [
        "Self-determination",
        "Foreign policy"
      ],
      "start_date": "2026-01-17",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:20:26.791Z",
      "last_observed_at": "2026-01-17",
      "summary": "Demonstrators in Copenhagen opposed a US takeover of Greenland.",
      "positions": [
        {
          "actor": "Greenland-solidarity demonstrators",
          "stance": "support",
          "target": "Greenlandic self-determination",
          "claim": "Demonstrators rejected annexation.",
          "source_ids": [
            "dk-greenland-solidarity-2026-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "unknown",
        "violence": "unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "dk-greenland-solidarity-2026-reuters",
          "url": "https://www.reuters.com/world/europe/protesters-denmark-support-greenland-after-trumps-takeover-threat-2026-01-17/",
          "title": "Protesters rally in Denmark and Greenland against Trump annexation threat",
          "publisher": "Reuters",
          "published_at": "2026-01-17",
          "accessed_at": "2026-10-02T21:15:54.861Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. Reuters body reviewed via fallback; no policy outcome established."
      },
      "timeline": [
        {
          "date": "2026-01-17",
          "text": "Demonstrators in Copenhagen opposed a US takeover of Greenland.",
          "source_ids": [
            "dk-greenland-solidarity-2026-reuters"
          ]
        }
      ]
    },
    {
      "id": "ir-economic-unrest-2025-2026",
      "title": "Economic protests broadening into anti-government unrest",
      "country": "IR",
      "country_name": "Iran, Islamic Republic of",
      "region": "Asia",
      "location": {
        "label": "Tehran",
        "precision": "city"
      },
      "issues": [
        "Cost of living",
        "Governance"
      ],
      "start_date": "2025-12-28",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:18:18.575Z",
      "last_observed_at": "2026-01-09",
      "summary": "Economic protests broadened into anti-government demonstrations. Reuters verified Tehran marches; authorities imposed an internet shutdown.",
      "positions": [
        {
          "actor": "Anti-government demonstrators",
          "stance": "oppose",
          "target": "Economic conditions and Iran’s leadership",
          "claim": "Economic grievances broadened into slogans against authorities.",
          "source_ids": [
            "ir-economic-unrest-2025-2026-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "ir-economic-unrest-2025-2026-reuters",
          "url": "https://www.reuters.com/world/middle-east/iran-cut-off-world-supreme-leader-warns-protesters-2026-01-09/",
          "title": "New Trump warning as Iran cuts internet with protests across country",
          "publisher": "Reuters",
          "published_at": "2026-01-09",
          "accessed_at": "2026-10-02T21:16:15.819Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted review of underlying reporting via extraction fallback. No human sign-off; current activity is not established."
      },
      "timeline": [
        {
          "date": "2026-01-09",
          "text": "Reuters-verified videos showed marches in Tehran amid an internet blackout.",
          "source_ids": [
            "ir-economic-unrest-2025-2026-reuters"
          ]
        }
      ]
    },
    {
      "id": "vu-teachers-resumed-strike-20240810",
      "title": "Teachers resume industrial action over unpaid entitlements",
      "country": "VU",
      "country_name": "Vanuatu",
      "region": "Oceania",
      "location": {
        "label": "Vanuatu, nationwide",
        "precision": "country"
      },
      "issues": [
        "Labour",
        "Education",
        "Pay"
      ],
      "start_date": "2024-08-10",
      "start_date_precision": "day",
      "end_date": "2025-12-22",
      "status": "ended",
      "last_verified": "2026-10-02T21:17:35.356Z",
      "last_observed_at": "2025-12-22",
      "summary": "Teachers resumed a strike over unpaid salary and allowances. Suspensions were challenged in court; a collective agreement led the union to call off the strike.",
      "positions": [
        {
          "actor": "Vanuatu Teachers Union",
          "stance": "support",
          "target": "Payment of teacher entitlements and payroll reforms",
          "claim": "Union disputed unpaid salary and allowances.",
          "source_ids": [
            "vu-teachers-resumed-strike-20240810-court",
            "vu-teachers-resumed-strike-20240810-rnz"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Reliable comparable count not established."
        },
        "disruption": "Prolonged withdrawal from classrooms; over 1,000 union members reported in end-of-strike account.",
        "violence": "Violence not described in reviewed reports.",
        "source_ids": [
          "vu-teachers-resumed-strike-20240810-post"
        ]
      },
      "state_response": [
        {
          "action": "Teaching Service Commission suspended striking teachers; suspensions challenged",
          "attribution": "Court record and RNZ reporting.",
          "source_ids": [
            "vu-teachers-resumed-strike-20240810-court",
            "vu-teachers-resumed-strike-20240810-rnz"
          ]
        }
      ],
      "sources": [
        {
          "id": "vu-teachers-resumed-strike-20240810-court",
          "url": "https://courts.gov.vu/court-activity/judgments/660695-teaching-service-commission-v-vanuatu-teachers-union-2",
          "title": "Teaching Service Commission v Vanuatu Teachers Union, Civil Appeal 63 of 2025",
          "publisher": "Judiciary of Vanuatu",
          "published_at": "2025-02-14",
          "accessed_at": "2026-10-02T21:17:35.356Z"
        },
        {
          "id": "vu-teachers-resumed-strike-20240810-rnz",
          "url": "https://www.rnz.co.nz/news/pacific/562928/teacher-suspensions-quashed-by-vanuatu-supreme-court",
          "title": "Teacher suspensions quashed by Vanuatu Supreme Court",
          "publisher": "RNZ",
          "published_at": "2025-06-03",
          "accessed_at": "2026-10-02T21:17:35.356Z"
        },
        {
          "id": "vu-teachers-resumed-strike-20240810-post",
          "url": "https://www.dailypost.vu/news/teachers-strike-ends-with-cba/article_d560c43b-b9c8-5544-a751-bc900e72f6ea.html",
          "title": "Teachers strike ends with CBA",
          "publisher": "Vanuatu Daily Post",
          "published_at": "2025-12-23",
          "accessed_at": "2026-10-02T21:17:35.356Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted source reading; no human editorial sign-off. This is a bounded historical episode; present activity is not established."
      },
      "timeline": [
        {
          "date": "2024-08-10",
          "text": "Teachers resumed industrial action.",
          "source_ids": [
            "vu-teachers-resumed-strike-20240810-court"
          ]
        },
        {
          "date": "2025-02-14",
          "text": "Court of Appeal refused leave to challenge interim orders staying teacher suspensions.",
          "source_ids": [
            "vu-teachers-resumed-strike-20240810-court"
          ]
        },
        {
          "date": "2025-12-22",
          "text": "Union called off nationwide strike after collective agreement signing.",
          "source_ids": [
            "vu-teachers-resumed-strike-20240810-post"
          ]
        }
      ]
    },
    {
      "id": "pt-labour-reform-strike-2025",
      "title": "General strike opposing labour-law overhaul",
      "country": "PT",
      "country_name": "Portugal",
      "region": "Europe",
      "location": {
        "label": "Portugal",
        "precision": "country"
      },
      "issues": [
        "Labor rights",
        "Job security"
      ],
      "start_date": "2025-12-11",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:20:26.792Z",
      "last_observed_at": "2025-12-11",
      "summary": "Portugal's two major union federations struck against proposed labour reforms affecting job security and dismissal protections.",
      "positions": [
        {
          "actor": "CGTP and UGT",
          "stance": "oppose",
          "target": "Labour-law overhaul",
          "claim": "Union federations opposed measures they said weakened workers' rights.",
          "source_ids": [
            "pt-labour-reform-strike-2025-bbc"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Transport, schools, hospitals and refuse collection were disrupted.",
        "violence": "unknown",
        "source_ids": [
          "pt-labour-reform-strike-2025-bbc"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "pt-labour-reform-strike-2025-bbc",
          "url": "https://www.bbc.com/news/articles/cdxwrvl1734o",
          "title": "Severe disruption hits Portugal in first general strike for 12 years",
          "publisher": "BBC News",
          "published_at": "2025-12-11",
          "accessed_at": "2026-10-02T21:16:26.116Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. BBC original reporting from Lisbon reviewed; policy passage or concession and beneficiary outcome were not established."
      },
      "timeline": [
        {
          "date": "2025-12-11",
          "text": "Portugal's two major union federations struck against proposed labour reforms affecting job security and dismissal protections.",
          "source_ids": [
            "pt-labour-reform-strike-2025-bbc"
          ]
        }
      ]
    },
    {
      "id": "bg-budget-protests-2025",
      "title": "Protests against the proposed 2026 budget",
      "country": "BG",
      "country_name": "Bulgaria",
      "region": "Europe",
      "location": {
        "label": "Sofia, Plovdiv, Varna, Burgas, Blagoevgrad",
        "precision": "multi-location"
      },
      "issues": [
        "Taxes",
        "Government accountability"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:22:16.463761Z",
      "last_observed_at": "2025-12-02",
      "summary": "Demonstrators opposed proposed tax and contribution increases and alleged corruption; the government withdrew its draft budget.",
      "positions": [
        {
          "actor": "Budget demonstrators",
          "stance": "support",
          "target": "Withdrawal of proposed tax and contribution increases",
          "claim": "Protesters opposed the draft budget and called for accountability.",
          "source_ids": [
            "bg-budget-protests-2025-bbc"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Mass rallies; clashes in Sofia.",
        "violence": "Masked protesters attacked party offices; police arrests were reported.",
        "source_ids": [
          "bg-budget-protests-2025-bbc"
        ]
      },
      "state_response": [
        {
          "action": "Government announced withdrawal of its draft budget proposals and a new budget procedure.",
          "attribution": "Reported in the cited article.",
          "source_ids": [
            "bg-budget-protests-2025-bbc"
          ]
        }
      ],
      "sources": [
        {
          "id": "bg-budget-protests-2025-bbc",
          "url": "https://www.bbc.com/news/articles/cjezwzw088jo",
          "title": "Bulgaria ditches budget plan after tens of thousands join protests",
          "publisher": "BBC News",
          "published_at": "2025-12-02",
          "accessed_at": "2026-10-02T21:22:16.463761Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. BBC article includes wire material and named official statements. No later outcome or protest cessation inferred."
      },
      "timeline": [
        {
          "date": "2025-12-02",
          "text": "Dated report documents this mobilisation; precise onset remains unknown.",
          "source_ids": [
            "bg-budget-protests-2025-bbc"
          ]
        }
      ]
    },
    {
      "id": "ug-traders-20251104",
      "title": "Kampala traders' tax and flood-compensation strike",
      "country": "UG",
      "country_name": "Uganda",
      "region": "Africa",
      "location": {
        "label": "Kampala",
        "precision": "city"
      },
      "issues": [
        "Taxation",
        "Labor",
        "Disaster relief"
      ],
      "start_date": "2025-11-04",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2025-11-10",
      "summary": "Traders suspended a sit-down strike after promised meetings; tax and flood-loss grievances remained unresolved.",
      "positions": [
        {
          "actor": "Kampala City Traders Association",
          "stance": "support",
          "target": "Tax changes and flood compensation",
          "claim": "Traders challenged VAT enforcement and demanded compensation.",
          "source_ids": [
            "ug-traders-20251104-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "unknown",
        "violence": "unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "ug-traders-20251104-source-1",
          "url": "https://www.monitor.co.ug/uganda/news/national/traders-suspend-strike-as-museveni-pledges-talks-5259466",
          "title": "Traders suspend strike as Museveni pledges talks | Monitor",
          "publisher": "Daily Monitor",
          "published_at": "2025-11-10",
          "accessed_at": "2026-10-02T21:13:12.280Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2025-11-04",
          "text": "The reported sit-down strike began.",
          "source_ids": [
            "ug-traders-20251104-source-1"
          ]
        }
      ]
    },
    {
      "id": "ec-diesel-subsidy-strike-2025",
      "title": "Indigenous national strike over diesel subsidies",
      "country": "EC",
      "country_name": "Ecuador",
      "region": "Americas",
      "location": {
        "label": "Quito and Imbabura",
        "precision": "multi-location"
      },
      "issues": [
        "Fuel prices",
        "Indigenous rights"
      ],
      "start_date": "2025-09-18",
      "start_date_precision": "day",
      "end_date": "2025-10-22",
      "status": "ended",
      "last_verified": "2026-10-02T21:16:01.603Z",
      "last_observed_at": "2025-10-22",
      "summary": "CONAIE opposed diesel-subsidy removal and ended highway-blocking protests after a threat of military clearance.",
      "positions": [
        {
          "actor": "Confederation of Indigenous Nationalities of Ecuador",
          "stance": "oppose",
          "target": "Diesel subsidy removal",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "ec-diesel-subsidy-strike-2025-s2"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Highway blockades impeded traffic.",
        "violence": "HRW documented excessive force; some protesters also engaged in violence.",
        "source_ids": [
          "ec-diesel-subsidy-strike-2025-s2"
        ]
      },
      "state_response": [
        {
          "action": "Government declared emergencies and deployed military forces.",
          "attribution": "Associated Press reporting",
          "source_ids": [
            "ec-diesel-subsidy-strike-2025-s2"
          ]
        }
      ],
      "sources": [
        {
          "id": "ec-diesel-subsidy-strike-2025-s1",
          "url": "https://apnews.com/article/ecuador-indigenous-protests-diesel-noboa-subsidy-521777333a079090e8dee4698fc0ca70",
          "title": "Indigenous alliance ends highway-blocking protests after military threat",
          "publisher": "Associated Press",
          "published_at": "2025-10-22",
          "accessed_at": "2026-10-02T21:16:01.603Z"
        },
        {
          "id": "ec-diesel-subsidy-strike-2025-s2",
          "url": "https://www.hrw.org/news/2025/10/21/ecuador-abusive-response-to-protests",
          "title": "Ecuador: Abusive Response to Protests",
          "publisher": "Human Rights Watch",
          "published_at": "2025-10-21",
          "accessed_at": "2026-10-02T21:16:01.603Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. AP ending report plus HRW investigation, which has rights-monitoring incentives."
      },
      "timeline": [
        {
          "date": "2025-09-18",
          "text": "CONAIE announced national strike.",
          "source_ids": [
            "ec-diesel-subsidy-strike-2025-s2"
          ]
        },
        {
          "date": "2025-10-22",
          "text": "CONAIE announced protest termination.",
          "source_ids": [
            "ec-diesel-subsidy-strike-2025-s1"
          ]
        }
      ]
    },
    {
      "id": "tn-gabes-20251021",
      "title": "Gabès pollution protests and general strike",
      "country": "TN",
      "country_name": "Tunisia",
      "region": "Africa",
      "location": {
        "label": "Gabès",
        "precision": "city"
      },
      "issues": [
        "Environment",
        "Healthcare"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2025-10-21",
      "summary": "UGTT called a general strike demanding closure of a polluting chemical plant.",
      "positions": [
        {
          "actor": "UGTT and Gabès demonstrators",
          "stance": "support",
          "target": "Closure of polluting units",
          "claim": "Protesters demanded the chemical complex be dismantled.",
          "source_ids": [
            "tn-gabes-20251021-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Shops, schools and markets closed.",
        "violence": "unknown",
        "source_ids": [
          "tn-gabes-20251021-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Health minister announced a cancer-hospital plan without a timetable",
          "attribution": "Reuters reporting",
          "source_ids": [
            "tn-gabes-20251021-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "tn-gabes-20251021-source-1",
          "url": "https://www.reuters.com/sustainability/climate-energy/general-strike-protests-paralyse-tunisias-gabes-over-pollution-crisis-2025-10-21/",
          "title": "General strike, protests paralyse Tunisia's Gabes over pollution crisis | Reuters",
          "publisher": "Reuters",
          "published_at": "2025-10-21",
          "accessed_at": "2026-10-02T21:13:04.200Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Reuters body read with web open/find; no completed hospital or plant closure inferred."
      },
      "timeline": [
        {
          "date": "2025-10-21",
          "text": "General strike and demonstrations halted city activity.",
          "source_ids": [
            "tn-gabes-20251021-source-1"
          ]
        }
      ]
    },
    {
      "id": "ma-genz212-20250927",
      "title": "GenZ 212 protests for healthcare and education",
      "country": "MA",
      "country_name": "Morocco",
      "region": "Africa",
      "location": {
        "label": "Casablanca, Rabat, Marrakesh and Agadir",
        "precision": "multi-location"
      },
      "issues": [
        "Healthcare",
        "Education",
        "Governance"
      ],
      "start_date": "2025-09-27",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2025-10-16",
      "summary": "Young protesters sought better public services; the finance minister pledged budget reprioritisation.",
      "positions": [
        {
          "actor": "GenZ 212 demonstrators",
          "stance": "support",
          "target": "Health, education and social justice",
          "claim": "Protesters criticized stadium spending alongside neglected services.",
          "source_ids": [
            "ma-genz212-20250927-source-2"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "unknown",
        "violence": "Arrests, property damage and deaths reported.",
        "source_ids": [
          "ma-genz212-20250927-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Police made arrests; prime minister offered dialogue",
          "attribution": "BBC reporting",
          "source_ids": [
            "ma-genz212-20250927-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "ma-genz212-20250927-source-1",
          "url": "https://www.bbc.co.uk/news/articles/c8rv2l3me40o",
          "title": "Morocco's Gen Z protesters: 'We need hospitals more than football stadiums' - BBC News",
          "publisher": "BBC",
          "published_at": "2025-10-04",
          "accessed_at": "2026-10-02T21:15:08.623Z"
        },
        {
          "id": "ma-genz212-20250927-source-2",
          "url": "https://www.aljazeera.com/news/2025/9/29/gen-z-protesters-rally-across-morocco-demanding-health-education-reforms",
          "title": "Gen Z protesters rally across Morocco demanding health, education reforms | Protests News | Al Jazeera",
          "publisher": "Al Jazeera with AFP",
          "published_at": "2025-09-29",
          "accessed_at": "2026-10-02T21:15:08.623Z"
        },
        {
          "id": "ma-genz212-20250927-source-3",
          "url": "https://www.reuters.com/world/africa/morocco-will-prioritize-health-education-spending-2026-budget-finance-minister-2025-10-16/",
          "title": "Morocco will prioritize health, education spending in 2026 budget, finance minister says | Reuters",
          "publisher": "Reuters",
          "published_at": "2025-10-16",
          "accessed_at": "2026-10-02T21:18:11.880Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2025-09-27",
          "text": "Nationwide youth-led protests began.",
          "source_ids": [
            "ma-genz212-20250927-source-1"
          ]
        },
        {
          "date": "2025-10-02",
          "text": "Prime minister said he was open to dialogue.",
          "source_ids": [
            "ma-genz212-20250927-source-1"
          ]
        }
      ]
    },
    {
      "id": "mg-genz-20250925",
      "title": "Youth-led public-services protests and transfer of power",
      "country": "MG",
      "country_name": "Madagascar",
      "region": "Africa",
      "location": {
        "label": "Antananarivo, Antsiranana and Toliara",
        "precision": "multi-location"
      },
      "issues": [
        "Public services",
        "Governance"
      ],
      "start_date": "2025-09-25",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2025-10-14",
      "summary": "Youth protests over water, electricity and governance preceded cabinet dismissal and a contested military takeover.",
      "positions": [
        {
          "actor": "Gen Z protest movement",
          "stance": "support",
          "target": "Government change and public services",
          "claim": "Protesters demanded Rajoelina's resignation after cabinet dismissal.",
          "source_ids": [
            "mg-genz-20250925-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "unknown",
        "violence": "UN reported deaths and injuries; government disputed the figures.",
        "source_ids": [
          "mg-genz-20250925-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Tear gas and cabinet dismissal",
          "attribution": "France 24 with AFP reporting",
          "source_ids": [
            "mg-genz-20250925-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "mg-genz-20250925-source-1",
          "url": "https://www.france24.com/en/africa/20251001-youth-protests-madagascar-president",
          "title": "Mass protests and strikes grip Madagascar amid calls for president to resign - France 24",
          "publisher": "France 24 with AFP",
          "published_at": "2025-10-01",
          "accessed_at": "2026-10-02T21:13:12.280Z"
        },
        {
          "id": "mg-genz-20250925-source-2",
          "url": "https://www.bbc.com/news/articles/cn8xjjdgl8vo",
          "title": "Military says it has seized power in Madagascar after president moves to 'safe place'",
          "publisher": "BBC",
          "published_at": "2025-10-14",
          "accessed_at": "2026-10-02T21:14:43.327Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2025-09-25",
          "text": "Youth-led protests began.",
          "source_ids": [
            "mg-genz-20250925-source-1"
          ]
        },
        {
          "date": "2025-09-29",
          "text": "Rajoelina dismissed the government.",
          "source_ids": [
            "mg-genz-20250925-source-1"
          ]
        },
        {
          "date": "2025-10-14",
          "text": "CAPSAT claimed power; lawmakers impeached Rajoelina.",
          "source_ids": [
            "mg-genz-20250925-source-2"
          ]
        }
      ]
    },
    {
      "id": "ng-pengassan-20250928",
      "title": "Oil workers' union-rights strike and redeployment deal",
      "country": "NG",
      "country_name": "Nigeria",
      "region": "Africa",
      "location": {
        "label": "Nigeria's oil and gas sector",
        "precision": "country"
      },
      "issues": [
        "Labor",
        "Union rights"
      ],
      "start_date": "2025-09-28",
      "start_date_precision": "day",
      "end_date": "2025-10-01",
      "status": "ended",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2025-10-01",
      "summary": "PENGASSAN suspended a strike after government-brokered terms to redeploy dismissed staff without lost pay.",
      "positions": [
        {
          "actor": "PENGASSAN",
          "stance": "support",
          "target": "Union rights and reinstatement",
          "claim": "The union alleged anti-union dismissal.",
          "source_ids": [
            "ng-pengassan-20250928-source-2"
          ]
        },
        {
          "actor": "Dangote management",
          "stance": "support",
          "target": "Company reorganisation",
          "claim": "Management attributed dismissals to restructuring.",
          "source_ids": [
            "ng-pengassan-20250928-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Oil and gas operations disrupted; gas shortages reduced grid generation.",
        "violence": "unknown",
        "source_ids": [
          "ng-pengassan-20250928-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Government mediated a redeployment agreement",
          "attribution": "THISDAY reporting",
          "source_ids": [
            "ng-pengassan-20250928-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "ng-pengassan-20250928-source-1",
          "url": "https://www.thisdaylive.com/2025/10/01/dangote-pengassan-reach-truce-strike-to-be-called-off-sacked-workers-to-be-recalled/",
          "title": "Dangote, PENGASSAN Reach Truce, Strike to Be Called Off, Sacked Workers to be Recalled – THISDAYLIVE",
          "publisher": "THISDAY",
          "published_at": "2025-10-01",
          "accessed_at": "2026-10-02T21:13:09.573Z"
        },
        {
          "id": "ng-pengassan-20250928-source-2",
          "url": "https://punchng.com/breaking-dangote-refinery-dispute-pengassan-suspends-strike-after-fg-intervention/",
          "title": "PENGASSAN suspends Dangote Refinery strike after FG talks",
          "publisher": "PUNCH",
          "published_at": "2025-10-01",
          "accessed_at": "2026-10-02T21:14:46.023Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2025-09-28",
          "text": "Union action began.",
          "source_ids": [
            "ng-pengassan-20250928-source-2"
          ]
        },
        {
          "date": "2025-10-01",
          "text": "Union announced temporary suspension after negotiations.",
          "source_ids": [
            "ng-pengassan-20250928-source-2"
          ]
        }
      ]
    },
    {
      "id": "gh-tewu-20251001",
      "title": "Educational workers suspend conditions-of-service strike",
      "country": "GH",
      "country_name": "Ghana",
      "region": "Africa",
      "location": {
        "label": "Ghana",
        "precision": "country"
      },
      "issues": [
        "Labor",
        "Education"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": "2025-10-01",
      "status": "ended",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2025-10-01",
      "summary": "TEWU suspended a nationwide strike after the wage commission committed to renewed conditions-of-service negotiations.",
      "positions": [
        {
          "actor": "TEWU",
          "stance": "support",
          "target": "Conditions-of-service negotiations",
          "claim": "The union sought progress on delayed conditions of service.",
          "source_ids": [
            "gh-tewu-20251001-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Educational institutions experienced disruption.",
        "violence": "unknown",
        "source_ids": [
          "gh-tewu-20251001-source-1"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "gh-tewu-20251001-source-1",
          "url": "https://3news.com/news/tewu-suspends-nationwide-strike-after-agreement-with-fair-wages-and-salaries-commission",
          "title": "TEWU suspends nationwide strike after agreement with Fair Wages and Salaries Commission | 3News",
          "publisher": "3News",
          "published_at": "2025-10-01",
          "accessed_at": "2026-10-02T21:12:49.097Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2025-10-01",
          "text": "TEWU announced immediate provisional suspension.",
          "source_ids": [
            "gh-tewu-20251001-source-1"
          ]
        }
      ]
    },
    {
      "id": "py-youth-accountability-protests-2025",
      "title": "Youth-led accountability protest in Asunción",
      "country": "PY",
      "country_name": "Paraguay",
      "region": "Americas",
      "location": {
        "label": "Paraguay",
        "precision": "city"
      },
      "issues": [
        "Corruption",
        "Public services",
        "Democratic accountability"
      ],
      "start_date": "2025-09-28",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2025-09-28",
      "summary": "Youth-led demonstrators demanded accountability and better services; arrests and reported excessive force drew institutional condemnation.",
      "positions": [
        {
          "actor": "Generation Z youth activists",
          "stance": "support",
          "target": "Government accountability and public services",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "py-youth-accountability-protests-2025-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [
        {
          "action": "International IDEA reported 31 arrests and condemnation of police conduct.",
          "attribution": "International IDEA reporting",
          "source_ids": [
            "py-youth-accountability-protests-2025-s1"
          ]
        }
      ],
      "sources": [
        {
          "id": "py-youth-accountability-protests-2025-s1",
          "url": "https://www.idea.int/democracytracker/report/paraguay/september-2025",
          "title": "Paraguay — September 2025: Crackdown on youth-led protests",
          "publisher": "International IDEA",
          "published_at": null,
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. IDEA is an intergovernmental democracy monitor summarizing other records; condemnation dates and underlying documents not independently fetched."
      },
      "timeline": [
        {
          "date": "2025-09-28",
          "text": "Youth-led protest met police crackdown.",
          "source_ids": [
            "py-youth-accountability-protests-2025-s1"
          ]
        }
      ]
    },
    {
      "id": "tl-lawmaker-pensions-protests-2025",
      "title": "Student protests over lawmakers’ vehicles and pensions",
      "country": "TL",
      "country_name": "Timor-Leste",
      "region": "Asia",
      "location": {
        "label": "Dili",
        "precision": "city"
      },
      "issues": [
        "Public spending",
        "Governance"
      ],
      "start_date": "2025-09-15",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:34.758Z",
      "last_observed_at": "2025-09-26",
      "summary": "Students opposed lawmakers’ vehicle procurement and lifetime pensions. MPs later voted to scrap the pensions, pending presidential signature.",
      "positions": [
        {
          "actor": "Student demonstrators",
          "stance": "oppose",
          "target": "Lawmakers’ lifetime allowances",
          "claim": "Demanded cancellation of lifetime allowances.",
          "source_ids": [
            "tl-lawmaker-pensions-protests-2025-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "tl-lawmaker-pensions-protests-2025-reuters",
          "url": "https://www.reuters.com/world/asia-pacific/east-timor-lawmakers-agree-scrap-lawmaker-pension-allowances-that-sparked-2025-09-17/",
          "title": "East Timor lawmakers agree to scrap lawmaker pension allowances that sparked student protests",
          "publisher": "Reuters",
          "published_at": "2025-09-17",
          "accessed_at": "2026-10-02T21:16:18.012Z"
        },
        {
          "id": "tl-lawmaker-pensions-protests-2025-afp-abc",
          "url": "https://www.abc.net.au/news/2025-09-26/timor-leste-scraps-lifetime-pensions-student-protests/105822222",
          "title": "Timor-Leste scraps lifetime pensions after student-led protests",
          "publisher": "Agence France-Presse via ABC News",
          "published_at": "2025-09-26",
          "accessed_at": "2026-10-02T21:20:02.295Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted review of underlying Reuters reporting and a second source; partial source dependencies noted in context. No human sign-off."
      },
      "timeline": [
        {
          "date": "2025-09-17",
          "text": "Parties agreed to cancel the plan and reported cessation.",
          "source_ids": [
            "tl-lawmaker-pensions-protests-2025-reuters"
          ]
        },
        {
          "date": "2025-09-26",
          "text": "Parliament voted unanimously to scrap lifetime pensions, pending presidential signature.",
          "source_ids": [
            "tl-lawmaker-pensions-protests-2025-afp-abc"
          ]
        }
      ]
    },
    {
      "id": "et-healthworkers-20250513",
      "title": "Public health workers' pay and conditions strike",
      "country": "ET",
      "country_name": "Ethiopia",
      "region": "Africa",
      "location": {
        "label": "Ethiopia, including Addis Ababa",
        "precision": "multi-location"
      },
      "issues": [
        "Labor",
        "Healthcare"
      ],
      "start_date": "2025-05-13",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2025-09-12",
      "summary": "Health professionals halted non-emergency care over pay and conditions, facing arrests and association suspension.",
      "positions": [
        {
          "actor": "Ethiopian Health Professionals Movement",
          "stance": "support",
          "target": "Pay and working conditions",
          "claim": "Workers sought salaries, insurance, housing and transport support.",
          "source_ids": [
            "et-healthworkers-20250513-source-2"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Non-emergency services halted.",
        "violence": "unknown",
        "source_ids": [
          "et-healthworkers-20250513-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Workers detained and supporting association suspended",
          "attribution": "Human Rights Watch investigation",
          "source_ids": [
            "et-healthworkers-20250513-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "et-healthworkers-20250513-source-1",
          "url": "https://www.hrw.org/news/2025/06/25/ethiopia-crackdown-on-health-workers-protests",
          "title": "Ethiopia: Crackdown on Health Workers’ Protests | Human Rights Watch",
          "publisher": "Human Rights Watch",
          "published_at": "2025-06-26",
          "accessed_at": "2026-10-02T21:12:49.097Z"
        },
        {
          "id": "et-healthworkers-20250513-source-2",
          "url": "https://www.hrw.org/news/2025/09/12/ethiopian-health-professionals-to-resume-striking",
          "title": "Ethiopian Health Professionals to Resume Striking | Human Rights Watch",
          "publisher": "Human Rights Watch",
          "published_at": "2025-09-12",
          "accessed_at": "2026-10-02T21:12:49.097Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2025-05-13",
          "text": "Health workers halted non-emergency services.",
          "source_ids": [
            "et-healthworkers-20250513-source-1"
          ]
        },
        {
          "date": "2025-09-12",
          "text": "HRW reported unresolved grievances and plans for another strike.",
          "source_ids": [
            "et-healthworkers-20250513-source-2"
          ]
        }
      ]
    },
    {
      "id": "cy-cola-strike-2025",
      "title": "General strike for cost-of-living allowance restoration",
      "country": "CY",
      "country_name": "Cyprus",
      "region": "Asia",
      "location": {
        "label": "Limassol",
        "precision": "city"
      },
      "issues": [
        "Labour",
        "Pay"
      ],
      "start_date": "2025-09-11",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:18:54.825Z",
      "last_observed_at": "2025-09-11",
      "summary": "Public and private sector workers rallied during a general strike, seeking full restoration and wider coverage of the cost-of-living allowance.",
      "positions": [
        {
          "actor": "SEK, PEO and DEOK trade union representatives",
          "stance": "support",
          "target": "Cost-of-living allowance",
          "claim": "Sought full restoration and expansion to all workers.",
          "source_ids": [
            "cy-cola-strike-2025-source"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "cy-cola-strike-2025-source",
          "url": "https://cyprus-mail.com/2025/09/11/thousands-rally-in-limassol-for-full-restoration-of-cost-of-living-allowance",
          "title": "Thousands rally in Limassol for full restoration of cost-of-living allowance",
          "publisher": "Cyprus Mail",
          "published_at": "2025-09-11",
          "accessed_at": "2026-10-02T21:18:54.825Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "Original local reporting reviewed. The union estimated turnout while police offered no count; no policy concession established. AI-assisted; no human sign-off."
      },
      "timeline": [
        {
          "date": "2025-09-11",
          "text": "Workers rallied during the island-wide general strike.",
          "source_ids": [
            "cy-cola-strike-2025-source"
          ]
        }
      ]
    },
    {
      "id": "np-gen-z-protests-2025",
      "title": "Youth protests against corruption and the social media ban",
      "country": "NP",
      "country_name": "Nepal",
      "region": "Asia",
      "location": {
        "label": "Kathmandu, Itahari, Biratnagar, Bharatpur and Pokhara",
        "precision": "multi-location"
      },
      "issues": [
        "Corruption",
        "Digital rights"
      ],
      "start_date": "2025-09-08",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:34.758Z",
      "last_observed_at": "2025-09-09",
      "summary": "Youth protests against corruption and a social media ban escalated after deaths. Oli resigned and the ban was lifted; unrest continued.",
      "positions": [
        {
          "actor": "Youth anti-corruption demonstrators",
          "stance": "oppose",
          "target": "Corruption and social media restrictions",
          "claim": "Opposed corruption and the ban.",
          "source_ids": [
            "np-gen-z-protests-2025-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "np-gen-z-protests-2025-reuters",
          "url": "https://www.reuters.com/world/asia-pacific/young-anti-corruption-protesters-oust-nepal-pm-oli-2025-09-09/",
          "title": "Young anti-corruption protesters oust Nepal PM Oli",
          "publisher": "Reuters",
          "published_at": "2025-09-09",
          "accessed_at": "2026-10-02T21:15:54.964Z"
        },
        {
          "id": "np-gen-z-protests-2025-abc",
          "url": "https://www.abc.net.au/news/2025-09-10/nepal-kathmandu-gen-z-protests-social-media/105756398",
          "title": "A deadly 'Gen Z' protest in Nepal was sparked by a social media ban. But the anger goes beyond blocked apps",
          "publisher": "ABC News with Wires",
          "published_at": "2025-09-10",
          "accessed_at": "2026-10-02T21:20:04.244Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted review of underlying Reuters reporting and a second source; partial source dependencies noted in context. No human sign-off."
      },
      "timeline": [
        {
          "date": "2025-09-09",
          "text": "Oli resigned, while protesters remained in the streets.",
          "source_ids": [
            "np-gen-z-protests-2025-reuters"
          ]
        }
      ]
    },
    {
      "id": "id-lawmakers-perks-protests-2025",
      "title": "Protests over lawmakers’ perks and police violence",
      "country": "ID",
      "country_name": "Indonesia",
      "region": "Asia",
      "location": {
        "label": "Jakarta and Bandung",
        "precision": "multi-location"
      },
      "issues": [
        "Public spending",
        "Policing"
      ],
      "start_date": "2025-08-25",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:18:18.574Z",
      "last_observed_at": "2025-09-02",
      "summary": "Protests against lawmakers’ allowances broadened after a police vehicle killed a motorcycle driver. Prabowo announced cuts to some perks.",
      "positions": [
        {
          "actor": "Student groups and other demonstrators",
          "stance": "oppose",
          "target": "Lawmakers’ perks and policing",
          "claim": "Opposed allowances and sought police reform.",
          "source_ids": [
            "id-lawmakers-perks-protests-2025-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "id-lawmakers-perks-protests-2025-reuters",
          "url": "https://www.reuters.com/world/asia-pacific/whats-fuelling-rage-indonesia-2025-09-02/",
          "title": "Explainer: What's fuelling the rage in Indonesia?",
          "publisher": "Reuters",
          "published_at": "2025-09-02",
          "accessed_at": "2026-10-02T21:15:51.351Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted review of underlying reporting via extraction fallback. No human sign-off; current activity is not established."
      },
      "timeline": [
        {
          "date": "2025-09-02",
          "text": "Smaller demonstrations continued despite announced concessions.",
          "source_ids": [
            "id-lawmakers-perks-protests-2025-reuters"
          ]
        }
      ]
    },
    {
      "id": "ua-anti-graft-independence-2025",
      "title": "Protests for independent anti-corruption agencies",
      "country": "UA",
      "country_name": "Ukraine",
      "region": "Europe",
      "location": {
        "label": "Kyiv",
        "precision": "city"
      },
      "issues": [
        "Government accountability",
        "Rule of law"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:20:26.791Z",
      "last_observed_at": "2025-07-31",
      "summary": "Protesters opposed removal of anti-corruption agencies' independence; parliament reversed the changes and Zelensky signed the replacement law.",
      "positions": [
        {
          "actor": "Anti-corruption demonstrators",
          "stance": "support",
          "target": "NABU and SAPO independence",
          "claim": "Protesters demanded preservation of independent anti-corruption investigations.",
          "source_ids": [
            "ua-anti-graft-independence-2025-bbc",
            "ua-anti-graft-independence-2025-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "unknown",
        "violence": "unknown",
        "source_ids": []
      },
      "state_response": [
        {
          "action": "Parliament approved a replacement bill and the president signed it.",
          "attribution": "Reported in the cited articles.",
          "source_ids": [
            "ua-anti-graft-independence-2025-bbc",
            "ua-anti-graft-independence-2025-reuters"
          ]
        }
      ],
      "sources": [
        {
          "id": "ua-anti-graft-independence-2025-bbc",
          "url": "https://www.bbc.com/news/articles/cpv0n0ky4xro",
          "title": "Young Ukrainians get their way as Zelensky overturns law to defuse crisis",
          "publisher": "BBC News",
          "published_at": "2025-07-31",
          "accessed_at": "2026-10-02T21:16:15.166Z"
        },
        {
          "id": "ua-anti-graft-independence-2025-reuters",
          "url": "https://www.reuters.com/world/zelenskiy-moving-defuse-crisis-restores-power-anti-graft-agencies-2025-07-31/",
          "title": "Zelenskiy, moving to defuse crisis, restores power of anti-graft agencies",
          "publisher": "Reuters",
          "published_at": "2025-07-31",
          "accessed_at": "2026-10-02T21:16:15.166Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted article review; no independent human editorial sign-off. BBC and Reuters bodies independently reviewed; Reuters explicitly reports signature and notes pressure from both protesters and European officials, so sole protest causation is not asserted."
      },
      "timeline": [
        {
          "date": "2025-07-31",
          "text": "Dated report documents this episode; precise onset remains unknown.",
          "source_ids": [
            "ua-anti-graft-independence-2025-bbc",
            "ua-anti-graft-independence-2025-reuters"
          ]
        }
      ]
    },
    {
      "id": "ao-fuel-20250728",
      "title": "Fuel-price and taxi-fare protests",
      "country": "AO",
      "country_name": "Angola",
      "region": "Africa",
      "location": {
        "label": "Luanda and other provinces",
        "precision": "multi-location"
      },
      "issues": [
        "Cost of living",
        "Transport"
      ],
      "start_date": "2025-07-28",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2025-07-30",
      "summary": "A taxi strike against higher fuel costs expanded into unrest in Luanda and other provinces.",
      "positions": [
        {
          "actor": "Taxi unions",
          "stance": "oppose",
          "target": "Diesel-price increase",
          "claim": "The unions called a three-day strike and rejected looting.",
          "source_ids": [
            "ao-fuel-20250728-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Shops closed and transport disrupted.",
        "violence": "Deaths, injuries and property destruction reported.",
        "source_ids": [
          "ao-fuel-20250728-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Mass arrests and security deployments",
          "attribution": "Police and interior minister, reported by BBC",
          "source_ids": [
            "ao-fuel-20250728-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "ao-fuel-20250728-source-1",
          "url": "https://www.bbc.com/news/articles/clyvjeexn85o",
          "title": "Angola's petrol protest death toll rises to 22 as medics overwhelmed",
          "publisher": "BBC",
          "published_at": "2025-07-30",
          "accessed_at": "2026-10-02T21:12:40.941Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2025-07-28",
          "text": "Taxi strike began.",
          "source_ids": [
            "ao-fuel-20250728-source-1"
          ]
        },
        {
          "date": "2025-07-30",
          "text": "Interior minister reported deaths and arrests.",
          "source_ids": [
            "ao-fuel-20250728-source-1"
          ]
        }
      ]
    },
    {
      "id": "my-turun-anwar-rally-2025",
      "title": "Turun Anwar rally over living costs and reforms",
      "country": "MY",
      "country_name": "Malaysia",
      "region": "Asia",
      "location": {
        "label": "Kuala Lumpur",
        "precision": "city"
      },
      "issues": [
        "Cost of living",
        "Governance"
      ],
      "start_date": "2025-07-26",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:34.758Z",
      "last_observed_at": "2025-07-26",
      "summary": "Opposition supporters demanded Anwar’s resignation over living costs and alleged unfulfilled reforms.",
      "positions": [
        {
          "actor": "Opposition rally participants",
          "stance": "oppose",
          "target": "Anwar’s premiership",
          "claim": "Demanded resignation over costs and reforms.",
          "source_ids": [
            "my-turun-anwar-rally-2025-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "my-turun-anwar-rally-2025-reuters",
          "url": "https://www.reuters.com/world/asia-pacific/thousands-rally-malaysia-call-pm-anwars-resignation-2025-07-26/",
          "title": "Thousands rally in Malaysia to call for PM Anwar's resignation",
          "publisher": "Reuters",
          "published_at": "2025-07-26",
          "accessed_at": "2026-10-02T21:21:34.758Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted review of underlying reporting via extraction fallback. No human sign-off; current activity is not established."
      },
      "timeline": [
        {
          "date": "2025-07-26",
          "text": "Protesters marched and heard opposition speeches.",
          "source_ids": [
            "my-turun-anwar-rally-2025-reuters"
          ]
        }
      ]
    },
    {
      "id": "tg-governance-20250626",
      "title": "Protests against Gnassingbé's tenure and governance",
      "country": "TG",
      "country_name": "Togo",
      "region": "Africa",
      "location": {
        "label": "Lomé",
        "precision": "city"
      },
      "issues": [
        "Governance",
        "Cost of living"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2025-06-26",
      "summary": "Activists protested Gnassingbé's continued rule; soldiers dispersed demonstrators.",
      "positions": [
        {
          "actor": "Bloggers and activist demonstrators",
          "stance": "oppose",
          "target": "Gnassingbé's continued rule",
          "claim": "Participants called for his resignation.",
          "source_ids": [
            "tg-governance-20250626-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Road blockages and shop closures.",
        "violence": "Barricades burned; soldiers used tear gas and batons.",
        "source_ids": [
          "tg-governance-20250626-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Soldiers dispersed protesters",
          "attribution": "Reuters eyewitness reporting",
          "source_ids": [
            "tg-governance-20250626-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "tg-governance-20250626-source-1",
          "url": "https://www.reuters.com/world/africa/togo-soldiers-break-up-protests-against-longtime-leader-2025-06-26/",
          "title": "Togo soldiers break up protests against longtime leader",
          "publisher": "Reuters",
          "published_at": "2025-06-26",
          "accessed_at": "2026-10-02T21:13:04.200Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Reuters body read with web open after Exa truncation; onset and end not established."
      },
      "timeline": [
        {
          "date": "2025-06-26",
          "text": "Demonstrators blocked roads and soldiers dispersed them.",
          "source_ids": [
            "tg-governance-20250626-source-1"
          ]
        }
      ]
    },
    {
      "id": "co-labor-referendum-strike-2025",
      "title": "Union strike backing labour reform referendum",
      "country": "CO",
      "country_name": "Colombia",
      "region": "Americas",
      "location": {
        "label": "Colombia",
        "precision": "multi-location"
      },
      "issues": [
        "Labour rights",
        "Referendum"
      ],
      "start_date": "2025-05-28",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2025-06-20",
      "summary": "Unions began a 48-hour strike backing Petro's labour referendum; Congress subsequently approved a negotiated labour-reform text.",
      "positions": [
        {
          "actor": "Pro-reform labour unions",
          "stance": "support",
          "target": "Labour rights reform and referendum",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "co-labor-referendum-strike-2025-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Bogotá bus lanes blocked.",
        "violence": "Unknown",
        "source_ids": [
          "co-labor-referendum-strike-2025-s1"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "co-labor-referendum-strike-2025-s1",
          "url": "https://apnews.com/article/colombia-president-petro-labor-reform-referendum-congress-d11ec381d5e47a2c005c5bc3369ce6cf",
          "title": "Colombia’s labor unions participate in 48-hour strike",
          "publisher": "Associated Press",
          "published_at": "2025-05-28",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        },
        {
          "id": "co-labor-referendum-strike-2025-s2",
          "url": "https://www.senado.gov.co/index.php/el-senado/noticias/6576-reforma-laboral-a-sancion-presidencial",
          "title": "Reforma laboral a sanción presidencial",
          "publisher": "Senate of Colombia",
          "published_at": "2025-06-20",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. Senate source describes its own legislative work; no claim that a referendum actually occurred."
      },
      "timeline": [
        {
          "date": "2025-05-28",
          "text": "Unions began strike backing referendum.",
          "source_ids": [
            "co-labor-referendum-strike-2025-s1"
          ]
        },
        {
          "date": "2025-06-20",
          "text": "Congress approved reconciled reform text.",
          "source_ids": [
            "co-labor-referendum-strike-2025-s2"
          ]
        }
      ]
    },
    {
      "id": "pa-banana-strike-2025",
      "title": "Banana workers seek pension protections",
      "country": "PA",
      "country_name": "Panama",
      "region": "Americas",
      "location": {
        "label": "Bocas del Toro province; Changuinola talks",
        "precision": "region"
      },
      "issues": [
        "Pensions",
        "Labour rights"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:16:01.603Z",
      "last_observed_at": "2025-06-11",
      "summary": "SITRAIBANA struck over pension changes; June talks produced legislative commitments while employment after Chiquita's closure remained unsettled.",
      "positions": [
        {
          "actor": "SITRAIBANA banana workers",
          "stance": "support",
          "target": "Restoration of pension protections",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "pa-banana-strike-2025-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Roadblocks obstructed banana exports.",
        "violence": "Unknown",
        "source_ids": [
          "pa-banana-strike-2025-s1"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "pa-banana-strike-2025-s1",
          "url": "https://www.bananalink.org.uk/news/panama-banana-workers-union-government-talks-bring-agreement-to-end-chiquita-strike/",
          "title": "Union-government talks bring agreement to end Chiquita strike",
          "publisher": "Banana Link",
          "published_at": "2025-06-12",
          "accessed_at": "2026-10-02T21:16:01.603Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. Labour-rights advocacy source; commitments are not represented as enacted benefits."
      },
      "timeline": [
        {
          "date": "2025-06-11",
          "text": "Assembly leader announced agreement with SITRAIBANA.",
          "source_ids": [
            "pa-banana-strike-2025-s1"
          ]
        }
      ]
    },
    {
      "id": "mn-anti-corruption-protests-2025",
      "title": "Anti-corruption protests and prime minister’s resignation",
      "country": "MN",
      "country_name": "Mongolia",
      "region": "Asia",
      "location": {
        "label": "Ulaanbaatar",
        "precision": "city"
      },
      "issues": [
        "Corruption",
        "Governance"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:34.758Z",
      "last_observed_at": "2025-06-03",
      "summary": "Weeks of demonstrations alleged corruption involving Oyun-Erdene’s family. He resigned after losing parliamentary support.",
      "positions": [
        {
          "actor": "Anti-corruption demonstrators",
          "stance": "oppose",
          "target": "Alleged corruption involving the prime minister’s family",
          "claim": "Questioned alleged corruption and demanded the prime minister’s resignation.",
          "source_ids": [
            "mn-anti-corruption-protests-2025-reuters",
            "mn-anti-corruption-protests-2025-bbc"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "mn-anti-corruption-protests-2025-reuters",
          "url": "https://www.reuters.com/world/china/mongolian-pm-resigns-after-losing-parliament-backing-street-protests-2025-06-03/",
          "title": "Mongolian PM resigns after losing parliament backing, street protests",
          "publisher": "Reuters",
          "published_at": "2025-06-03",
          "accessed_at": "2026-10-02T21:15:52.676Z"
        },
        {
          "id": "mn-anti-corruption-protests-2025-bbc",
          "url": "https://www.bbc.com/news/articles/c5yg8dxv5w9o",
          "title": "Mongolia PM resigns after son's luxury holiday stirs public fury",
          "publisher": "BBC News",
          "published_at": "2025-06-03",
          "accessed_at": "2026-10-02T21:19:33.391Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted review of underlying Reuters reporting and a second source; partial source dependencies noted in context. No human sign-off."
      },
      "timeline": [
        {
          "date": "2025-06-03",
          "text": "Parliament’s failed confidence ballot caused the prime minister’s resignation.",
          "source_ids": [
            "mn-anti-corruption-protests-2025-reuters"
          ]
        }
      ]
    },
    {
      "id": "nz-wellington-treaty-hikoi-20241119",
      "title": "Wellington hīkoi against Treaty Principles Bill",
      "country": "NZ",
      "country_name": "New Zealand",
      "region": "Oceania",
      "location": {
        "label": "Wellington",
        "precision": "city"
      },
      "issues": [
        "Indigenous rights",
        "Governance"
      ],
      "start_date": "2024-11-19",
      "start_date_precision": "day",
      "end_date": "2024-11-19",
      "status": "ended",
      "last_verified": "2026-10-02T21:17:35.356Z",
      "last_observed_at": "2025-04-10",
      "summary": "The hīkoi culminated in a peaceful mass protest against the Treaty Principles Bill, then concluded with a concert. Parliament later rejected the bill.",
      "positions": [
        {
          "actor": "Hīkoi mō te Tiriti supporters",
          "stance": "oppose",
          "target": "Treaty Principles Bill",
          "claim": "Supporters demanded the bill be abandoned.",
          "source_ids": [
            "nz-wellington-treaty-hikoi-20241119-rnz"
          ]
        },
        {
          "actor": "ACT Party",
          "stance": "support",
          "target": "Treaty Principles Bill",
          "claim": "ACT defended the bill as a debate about Treaty principles.",
          "source_ids": [
            "nz-wellington-treaty-hikoi-20241119-rnz"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "RNZ reported more than 42,000 participants; exact comparable bounds not adopted."
        },
        "disruption": "Street traffic stopped during the march; business disruption reported.",
        "violence": "RNZ described peaceful protest.",
        "source_ids": [
          "nz-wellington-treaty-hikoi-20241119-rnz"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "nz-wellington-treaty-hikoi-20241119-rnz",
          "url": "https://www.rnz.co.nz/news/te-ao-maori/534238/what-s-good-for-maori-is-good-for-everyone-hikoi-ends-with-peaceful-protest",
          "title": "Hikoi ends with peaceful protest",
          "publisher": "RNZ",
          "published_at": "2024-11-20",
          "accessed_at": "2026-10-02T21:17:35.356Z"
        },
        {
          "id": "nz-wellington-treaty-hikoi-20241119-justice",
          "url": "https://www.justice.govt.nz/justice-sector-policy/key-initiatives/a-treaty-principles-bill/",
          "title": "A Treaty Principles Bill",
          "publisher": "New Zealand Ministry of Justice",
          "published_at": null,
          "accessed_at": "2026-10-02T21:17:35.356Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted source reading; no human editorial sign-off. This is a bounded historical episode; present activity is not established."
      },
      "timeline": [
        {
          "date": "2024-11-19",
          "text": "Wellington march reached Parliament and later returned for a concert.",
          "source_ids": [
            "nz-wellington-treaty-hikoi-20241119-rnz"
          ]
        },
        {
          "date": "2025-04-10",
          "text": "Parliament rejected the bill at second reading 112 votes to 11.",
          "source_ids": [
            "nz-wellington-treaty-hikoi-20241119-justice"
          ]
        }
      ]
    },
    {
      "id": "hu-pride-ban-protests-2025",
      "title": "Demonstrations opposing the Pride ban",
      "country": "HU",
      "country_name": "Hungary",
      "region": "Europe",
      "location": {
        "label": "Budapest, Miskolc",
        "precision": "multi-location"
      },
      "issues": [
        "LGBTQ rights",
        "Freedom of assembly"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:22:16.463761Z",
      "last_observed_at": "2025-04-08",
      "summary": "Demonstrators opposed Hungary's March 2025 law restricting Pride events.",
      "positions": [
        {
          "actor": "Pride-ban opponents",
          "stance": "support",
          "target": "Withdrawal of the Pride ban",
          "claim": "Protesters demanded withdrawal of the law.",
          "source_ids": [
            "hu-pride-ban-protests-2025-ap"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Bridge traffic was blocked.",
        "violence": "unknown",
        "source_ids": [
          "hu-pride-ban-protests-2025-ap"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "hu-pride-ban-protests-2025-ap",
          "url": "https://apnews.com/article/hungary-protests-against-lgbtq-pride-ban-3ea6e7b74008ff472780468319dbe49a",
          "title": "Protesters rally for the fourth week against Hungary’s law banning LGBTQ+ Pride events",
          "publisher": "Associated Press",
          "published_at": "2025-04-08",
          "accessed_at": "2026-10-02T21:22:16.463761Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. AP body read via fallback. No repeal established."
      },
      "timeline": [
        {
          "date": "2025-04-08",
          "text": "Dated report documents this mobilisation; precise onset remains unknown.",
          "source_ids": [
            "hu-pride-ban-protests-2025-ap"
          ]
        }
      ]
    },
    {
      "id": "es-housing-demonstrations-2025",
      "title": "Nationwide demonstrations for affordable housing",
      "country": "ES",
      "country_name": "Spain",
      "region": "Europe",
      "location": {
        "label": "Madrid, Palma de Mallorca",
        "precision": "multi-location"
      },
      "issues": [
        "Housing",
        "Tourism"
      ],
      "start_date": "2025-04-05",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:20:26.792Z",
      "last_observed_at": "2025-04-05",
      "summary": "Demonstrators sought affordable homes amid rising rents and expansion of tourist flats.",
      "positions": [
        {
          "actor": "Housing demonstrators and tenants' unions",
          "stance": "support",
          "target": "Affordable housing",
          "claim": "Demonstrators sought lower rents and housing rights.",
          "source_ids": [
            "es-housing-demonstrations-2025-reuters",
            "es-housing-demonstrations-2025-guardian"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Street marches took place across multiple cities.",
        "violence": "unknown",
        "source_ids": [
          "es-housing-demonstrations-2025-reuters",
          "es-housing-demonstrations-2025-guardian"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "es-housing-demonstrations-2025-reuters",
          "url": "https://www.reuters.com/world/europe/protesters-rally-across-spain-against-housing-crisis-tourist-flats-2025-04-05/",
          "title": "Protesters rally across Spain against housing crisis, tourist flats",
          "publisher": "Reuters",
          "published_at": "2025-04-05",
          "accessed_at": "2026-10-02T21:16:56.862Z"
        },
        {
          "id": "es-housing-demonstrations-2025-guardian",
          "url": "https://www.theguardian.com/world/2025/apr/05/spain-protest-march-housing-crisis",
          "title": "Thousands in Spain join nationwide march to protest against housing crisis",
          "publisher": "The Guardian",
          "published_at": "2025-04-05",
          "accessed_at": "2026-10-02T21:16:56.862Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted article review; no independent human editorial sign-off. Both article bodies reviewed; crowd estimates vary, so none adopted. No policy change linked to this day's mobilisation established."
      },
      "timeline": [
        {
          "date": "2025-04-05",
          "text": "Demonstrators sought affordable homes amid rising rents and expansion of tourist flats.",
          "source_ids": [
            "es-housing-demonstrations-2025-reuters",
            "es-housing-demonstrations-2025-guardian"
          ]
        }
      ]
    },
    {
      "id": "ad-housing-rally-2025",
      "title": "Housing affordability demonstration in Andorra la Vella",
      "country": "AD",
      "country_name": "Andorra",
      "region": "Europe",
      "location": {
        "label": "Andorra la Vella",
        "precision": "city"
      },
      "issues": [
        "Housing"
      ],
      "start_date": "2025-04-05",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:22:16.463761Z",
      "last_observed_at": "2025-04-05",
      "summary": "Residents demonstrated in Andorra la Vella seeking solutions to rising housing prices.",
      "positions": [
        {
          "actor": "Housing demonstrators",
          "stance": "support",
          "target": "Affordable housing",
          "claim": "Demonstrators demanded solutions to increased housing prices.",
          "source_ids": [
            "ad-housing-rally-2025-civicus"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "A street demonstration was reported.",
        "violence": "unknown",
        "source_ids": [
          "ad-housing-rally-2025-civicus"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "ad-housing-rally-2025-civicus",
          "url": "https://monitor.civicus.org/explore/protest-for-decent-housing/",
          "title": "Protest for decent housing",
          "publisher": "CIVICUS Monitor",
          "published_at": "2025-04-23",
          "accessed_at": "2026-10-02T21:22:16.463761Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. Rights-monitoring synthesis has a civic-space advocacy perspective and links local reporting; police and organiser turnout estimates differ, so no numerical estimate is adopted."
      },
      "timeline": [
        {
          "date": "2025-04-05",
          "text": "Residents demonstrated in Andorra la Vella seeking solutions to rising housing prices.",
          "source_ids": [
            "ad-housing-rally-2025-civicus"
          ]
        }
      ]
    },
    {
      "id": "kr-yoon-removal-protests-2024-2025",
      "title": "Rival rallies over Yoon’s impeachment",
      "country": "KR",
      "country_name": "Korea, Republic of",
      "region": "Asia",
      "location": {
        "label": "Seoul",
        "precision": "city"
      },
      "issues": [
        "Democracy",
        "Governance"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:34.758Z",
      "last_observed_at": "2025-04-04",
      "summary": "Opposing rallies sought Yoon’s removal or reinstatement after martial law. The Constitutional Court removed him on April 4.",
      "positions": [
        {
          "actor": "Anti-Yoon demonstrators",
          "stance": "oppose",
          "target": "Yoon’s presidency",
          "claim": "Called for Yoon’s ouster.",
          "source_ids": [
            "kr-yoon-removal-protests-2024-2025-reuters"
          ]
        },
        {
          "actor": "Pro-Yoon demonstrators",
          "stance": "oppose",
          "target": "Yoon’s removal",
          "claim": "Opposed impeachment and sought restoration of presidential powers.",
          "source_ids": [
            "kr-yoon-removal-protests-2024-2025-december-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "kr-yoon-removal-protests-2024-2025-reuters",
          "url": "https://www.reuters.com/world/asia-pacific/south-koreas-impeached-president-yoon-faces-court-ruling-decide-his-fate-2025-04-03/",
          "title": "South Korea's Yoon removed from office over martial law, election looms",
          "publisher": "Reuters",
          "published_at": "2025-04-04",
          "accessed_at": "2026-10-02T21:14:11.388Z"
        },
        {
          "id": "kr-yoon-removal-protests-2024-2025-december-reuters",
          "url": "https://www.reuters.com/world/asia-pacific/rival-protests-over-south-koreas-impeached-president-yoon-held-seoul-2024-12-21/",
          "title": "Rival protests over South Korea's impeached President Yoon held in Seoul",
          "publisher": "Reuters",
          "published_at": "2024-12-21",
          "accessed_at": "2026-10-02T21:20:19.364Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted review of underlying reporting via extraction fallback. No human sign-off; present activity is not established."
      },
      "timeline": [
        {
          "date": "2024-12-21",
          "text": "Rival pro- and anti-Yoon rallies gathered in Seoul.",
          "source_ids": [
            "kr-yoon-removal-protests-2024-2025-december-reuters"
          ]
        },
        {
          "date": "2025-04-04",
          "text": "Anti-Yoon crowds celebrated removal; supporters expressed anger.",
          "source_ids": [
            "kr-yoon-removal-protests-2024-2025-reuters"
          ]
        }
      ]
    },
    {
      "id": "tr-imamoglu-detention-protests-2025",
      "title": "Protests against İmamoğlu’s detention",
      "country": "TR",
      "country_name": "Türkiye",
      "region": "Asia",
      "location": {
        "label": "Istanbul",
        "precision": "city"
      },
      "issues": [
        "Political detention",
        "Democracy"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:18:18.574Z",
      "last_observed_at": "2025-03-29",
      "summary": "Crowds rallied against İmamoğlu’s imprisonment. CHP sought his release and an early election; government denied influencing the judiciary.",
      "positions": [
        {
          "actor": "CHP-led demonstrators",
          "stance": "oppose",
          "target": "İmamoğlu’s detention",
          "claim": "Sought release and an early election.",
          "source_ids": [
            "tr-imamoglu-detention-protests-2025-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "tr-imamoglu-detention-protests-2025-reuters",
          "url": "https://www.reuters.com/world/middle-east/large-crowds-rally-istanbul-over-jailing-citys-mayor-2025-03-29/",
          "title": "Large crowds rally in Istanbul over jailing of Erdogan's main rival",
          "publisher": "Reuters",
          "published_at": "2025-03-29",
          "accessed_at": "2026-10-02T21:15:56.535Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted review of underlying reporting via extraction fallback. No human sign-off; current activity is not established."
      },
      "timeline": [
        {
          "date": "2025-03-29",
          "text": "A large Istanbul rally demanded freedom for İmamoğlu.",
          "source_ids": [
            "tr-imamoglu-detention-protests-2025-reuters"
          ]
        }
      ]
    },
    {
      "id": "sb-guadalcanal-health-sitin-202501",
      "title": "Guadalcanal health workers sit in over unresolved wage claims",
      "country": "SB",
      "country_name": "Solomon Islands",
      "region": "Oceania",
      "location": {
        "label": "Guadalcanal Province",
        "precision": "region"
      },
      "issues": [
        "Labour",
        "Health services",
        "Pay"
      ],
      "start_date": "2025-01-27",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:17:35.356Z",
      "last_observed_at": "2025-03-21",
      "summary": "Health workers held a sit-in over claims lodged in 2018. They returned to work while negotiations continued; a later agreement still awaited formal approval.",
      "positions": [
        {
          "actor": "Guadalcanal health workers and Workers Union of Solomon Islands",
          "stance": "support",
          "target": "Resolution of outstanding employment claims",
          "claim": "Workers sought action on long-standing claims, primarily wage issues.",
          "source_ids": [
            "sb-guadalcanal-health-sitin-202501-sibc",
            "sb-guadalcanal-health-sitin-202501-star"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Reliable comparable count not established."
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [
        {
          "action": "Met union and workers while calling sit-in illegal",
          "attribution": "Guadalcanal premier quoted by SIBC.",
          "source_ids": [
            "sb-guadalcanal-health-sitin-202501-sibc"
          ]
        }
      ],
      "sources": [
        {
          "id": "sb-guadalcanal-health-sitin-202501-sibc",
          "url": "https://www.sibconline.com.sb/guadalcanal-health-workers-end-sit-in-protest-after-government-commits-to-resolving-2018-demands/",
          "title": "Guadalcanal health workers end sit-in protest",
          "publisher": "Solomon Islands Broadcasting Corporation",
          "published_at": "2025-01-31",
          "accessed_at": "2026-10-02T21:17:35.356Z"
        },
        {
          "id": "sb-guadalcanal-health-sitin-202501-star",
          "url": "https://www.solomonstarnews.com/workers-claims-finalised/",
          "title": "Workers claims finalised",
          "publisher": "Solomon Star",
          "published_at": "2025-03-21",
          "accessed_at": "2026-10-02T21:17:35.356Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted source reading; no human editorial sign-off. This is a bounded historical episode; present activity is not established."
      },
      "timeline": [
        {
          "date": "2025-01-27",
          "text": "A Monday sit-in was reported in the January 31 account.",
          "source_ids": [
            "sb-guadalcanal-health-sitin-202501-sibc"
          ]
        },
        {
          "date": "2025-03-21",
          "text": "Negotiations were reported concluded, with provincial approval still pending.",
          "source_ids": [
            "sb-guadalcanal-health-sitin-202501-star"
          ]
        }
      ]
    },
    {
      "id": "sx-palestine-protest-rights-2025",
      "title": "Palestine solidarity protest and withdrawn restrictions",
      "country": "SX",
      "country_name": "Sint Maarten (Dutch part)",
      "region": "Americas",
      "location": {
        "label": "Sint Maarten (Dutch part)",
        "precision": "country"
      },
      "issues": [
        "Palestine solidarity",
        "Assembly rights"
      ],
      "start_date": "2025-01-10",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2025-03-14",
      "summary": "Organizers held a peaceful Palestine solidarity demonstration and challenged imposed restrictions; the minister subsequently withdrew them.",
      "positions": [
        {
          "actor": "SXM in Solidarity with Palestine",
          "stance": "support",
          "target": "Palestine solidarity and lawful protest conditions",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "sx-palestine-protest-rights-2025-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Unknown",
        "violence": "Legal representatives described the demonstration as peaceful.",
        "source_ids": [
          "sx-palestine-protest-rights-2025-s1"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "sx-palestine-protest-rights-2025-s1",
          "url": "https://pilp.nu/en/sxm-in-solidarity-with-palestine-vindicated-minister-withdraws-conditions-that-were-imposed-on-the-peaceful-demonstration-held-on-january-10th-2025/",
          "title": "New case won in Sint Maarten: Minister lifts conditions on peaceful protest",
          "publisher": "PILP",
          "published_at": "2025-03-14",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. PILP represented organizers and has litigation incentives; exact withdrawal date and protest city were not supplied."
      },
      "timeline": [
        {
          "date": "2025-01-10",
          "text": "Demonstration held under contested conditions.",
          "source_ids": [
            "sx-palestine-protest-rights-2025-s1"
          ]
        }
      ]
    },
    {
      "id": "gr-tempe-accountability-2025",
      "title": "Rail-disaster accountability demonstrations",
      "country": "GR",
      "country_name": "Greece",
      "region": "Europe",
      "location": {
        "label": "Athens, Thessaloniki",
        "precision": "multi-location"
      },
      "issues": [
        "Government accountability",
        "Transport safety"
      ],
      "start_date": "2025-02-28",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:22:16.463761Z",
      "last_observed_at": "2025-02-28",
      "summary": "Unions and victims' relatives mobilised for accountability on the Tempe rail disaster's second anniversary.",
      "positions": [
        {
          "actor": "Victims' relatives and unions",
          "stance": "support",
          "target": "Rail-disaster accountability",
          "claim": "Demonstrators sought justice and safer railways.",
          "source_ids": [
            "gr-tempe-accountability-2025-ap"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Flights, trains and ferries were halted.",
        "violence": "Clashes with riot police were reported.",
        "source_ids": [
          "gr-tempe-accountability-2025-ap"
        ]
      },
      "state_response": [
        {
          "action": "Police used tear gas and water cannon.",
          "attribution": "Reported in the cited article.",
          "source_ids": [
            "gr-tempe-accountability-2025-ap"
          ]
        }
      ],
      "sources": [
        {
          "id": "gr-tempe-accountability-2025-ap",
          "url": "https://apnews.com/article/greece-tempe-rail-disaster-strike-d9996948371c5ec703d27006ae23db9b",
          "title": "Violent protests in Greece on rail crash anniversary as frustration at system failures boils over",
          "publisher": "Associated Press",
          "published_at": "2025-02-28",
          "accessed_at": "2026-10-02T21:22:16.463761Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. AP article body read via fallback. No durable outcome established."
      },
      "timeline": [
        {
          "date": "2025-02-28",
          "text": "Unions and victims' relatives mobilised for accountability on the Tempe rail disaster's second anniversary.",
          "source_ids": [
            "gr-tempe-accountability-2025-ap"
          ]
        }
      ]
    },
    {
      "id": "ck-china-partnership-rallies-20250218",
      "title": "Rallies over China partnership and political accountability",
      "country": "CK",
      "country_name": "Cook Islands",
      "region": "Oceania",
      "location": {
        "label": "Avarua",
        "precision": "city"
      },
      "issues": [
        "Governance",
        "Foreign policy"
      ],
      "start_date": "2025-02-18",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:15:18.222Z",
      "last_observed_at": "2025-02-25",
      "summary": "Demonstrators opposed opaque decision-making around a China partnership and passport proposals; follow-up protesters sought new leadership.",
      "positions": [
        {
          "actor": "Opposition-led demonstrators",
          "stance": "oppose",
          "target": "Government decision-making on China partnership",
          "claim": "Demonstrators criticized lack of consultation and transparency.",
          "source_ids": [
            "ck-china-partnership-rallies-20250218-abc",
            "ck-china-partnership-rallies-20250218-rnz"
          ]
        },
        {
          "actor": "Mark Brown government",
          "stance": "support",
          "target": "Diversified international partnerships",
          "claim": "Prime minister defended the partnership as offering development opportunities.",
          "source_ids": [
            "ck-china-partnership-rallies-20250218-abc"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Reliable comparable count not established."
        },
        "disruption": "Peaceful demonstration reported.",
        "violence": "Initial rally described as peaceful.",
        "source_ids": [
          "ck-china-partnership-rallies-20250218-abc"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "ck-china-partnership-rallies-20250218-abc",
          "url": "https://www.abc.net.au/news/2025-02-19/hundreds-protest-in-cook-islands-after-pm-signs-deal-with-china/104952958",
          "title": "Cook Islands Prime Minister to face no confidence vote amid protests",
          "publisher": "ABC News with wires",
          "published_at": "2025-02-19",
          "accessed_at": "2026-10-02T21:15:18.222Z"
        },
        {
          "id": "ck-china-partnership-rallies-20250218-rnz",
          "url": "https://www.rnz.co.nz/news/pacific/543035/protesters-rally-for-new-cook-islands-leadership-amid-no-confidence-vote-delay",
          "title": "Protesters rally for new Cook Islands leadership",
          "publisher": "Cook Islands News via RNZ",
          "published_at": "2025-02-25",
          "accessed_at": "2026-10-02T21:15:18.222Z"
        },
        {
          "id": "ck-china-partnership-rallies-20250218-cin",
          "url": "https://www.cookislandsnews.com/internal/national/parliament/pm-brown-and-cabinet-survive-vote-of-no-confidence/",
          "title": "PM Brown and Cabinet survive vote of no confidence",
          "publisher": "Cook Islands News",
          "published_at": "2025-02-26",
          "accessed_at": "2026-10-02T21:15:18.222Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source reading; no human editorial sign-off. This is a bounded historical episode; present activity is not established."
      },
      "timeline": [
        {
          "date": "2025-02-18",
          "text": "Hundreds rallied in Avarua.",
          "source_ids": [
            "ck-china-partnership-rallies-20250218-abc"
          ]
        },
        {
          "date": "2025-02-24",
          "text": "A smaller group gathered again seeking new leadership.",
          "source_ids": [
            "ck-china-partnership-rallies-20250218-rnz"
          ]
        },
        {
          "date": "2025-02-25",
          "text": "Cabinet defeated a no-confidence motion 13 to nine.",
          "source_ids": [
            "ck-china-partnership-rallies-20250218-cin"
          ]
        }
      ]
    },
    {
      "id": "dz-teachers-20250211",
      "title": "Teachers' pay and working conditions strike",
      "country": "DZ",
      "country_name": "Algeria",
      "region": "Africa",
      "location": {
        "label": "Algeria",
        "precision": "country"
      },
      "issues": [
        "Labor",
        "Education"
      ],
      "start_date": "2025-02-11",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2025-02-12",
      "summary": "Teachers staged a two-day nationwide strike over pay and working conditions.",
      "positions": [
        {
          "actor": "Teachers' unions",
          "stance": "support",
          "target": "Higher pay and better working conditions",
          "claim": "Unions said starting pay was inadequate.",
          "source_ids": [
            "dz-teachers-20250211-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Classrooms closed.",
        "violence": "unknown",
        "source_ids": [
          "dz-teachers-20250211-source-1"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "dz-teachers-20250211-source-1",
          "url": "https://apnews.com/article/algeria-teacher-strikes-293e93799469c3ec2072dcb6449b43de",
          "title": "Teachers across Algeria go on strike to protest low salaries and poor conditions | AP News",
          "publisher": "Associated Press",
          "published_at": "2025-02-12",
          "accessed_at": "2026-10-02T21:12:40.941Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Exa returned a truncated body; the underlying AP article was read with web open/find. No protest city was established; Algiers is a dateline."
      },
      "timeline": [
        {
          "date": "2025-02-11",
          "text": "Teachers began a two-day strike.",
          "source_ids": [
            "dz-teachers-20250211-source-1"
          ]
        }
      ]
    },
    {
      "id": "ba-flood-accountability-2025",
      "title": "Students seek accountability after deadly floods",
      "country": "BA",
      "country_name": "Bosnia and Herzegovina",
      "region": "Europe",
      "location": {
        "label": "Sarajevo",
        "precision": "city"
      },
      "issues": [
        "Government accountability",
        "Disaster response"
      ],
      "start_date": "2025-02-10",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:22:16.463761Z",
      "last_observed_at": "2025-02-10",
      "summary": "Students in Sarajevo demanded accountability and transparent reconstruction after deadly October 2024 floods.",
      "positions": [
        {
          "actor": "Sarajevo student demonstrators",
          "stance": "support",
          "target": "Flood accountability and reconstruction",
          "claim": "Students called for responsibility and transparency.",
          "source_ids": [
            "ba-flood-accountability-2025-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "unknown",
        "violence": "unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "ba-flood-accountability-2025-reuters",
          "url": "https://www.reuters.com/world/europe/bosnian-students-protest-government-inaction-after-deadly-floods-2025-02-10/",
          "title": "Bosnian students protest government inaction after deadly floods",
          "publisher": "Reuters",
          "published_at": "2025-02-10",
          "accessed_at": "2026-10-02T21:22:16.463761Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. Reuters body reviewed using web fallback after Exa extraction truncated. No subsequent concession established."
      },
      "timeline": [
        {
          "date": "2025-02-10",
          "text": "Students in Sarajevo demanded accountability and transparent reconstruction after deadly October 2024 floods.",
          "source_ids": [
            "ba-flood-accountability-2025-reuters"
          ]
        }
      ]
    },
    {
      "id": "rs-station-accountability-2024-2025",
      "title": "Station-collapse accountability mobilisation and resignations",
      "country": "RS",
      "country_name": "Serbia",
      "region": "Europe",
      "location": {
        "label": "Belgrade, Novi Sad",
        "precision": "multi-location"
      },
      "issues": [
        "Government accountability",
        "Public safety"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:20:26.791Z",
      "last_observed_at": "2025-01-28",
      "summary": "Students and supporters mobilised after the Novi Sad station disaster. The prime minister and city mayor announced resignations while students said demands remained unmet.",
      "positions": [
        {
          "actor": "Students of the Blockade and supporters",
          "stance": "support",
          "target": "Accountability for the station disaster",
          "claim": "Students demanded accountability and said the resignations did not satisfy their demands.",
          "source_ids": [
            "rs-station-accountability-2024-2025-rferl"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "A 24-hour Belgrade protest blockade began January 27.",
        "violence": "unknown",
        "source_ids": [
          "rs-station-accountability-2024-2025-rferl"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "rs-station-accountability-2024-2025-rferl",
          "url": "https://www.rferl.org/a/serbian-pm-resigns-angry-protests-train-tragedy-/33291676.html",
          "title": "Serbian PM Milos Vucevic Steps Down Amid Protests Over Novi Sad Train Station Tragedy",
          "publisher": "Radio Free Europe/Radio Liberty",
          "published_at": "2025-01-28",
          "accessed_at": "2026-10-02T21:15:37.245Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. RFE/RL body reviewed. Date is resignation announcement, not assumed legal completion of the transition; precise protest onset unknown."
      },
      "timeline": [
        {
          "date": "2025-01-28",
          "text": "Dated report documents this episode; precise onset remains unknown.",
          "source_ids": [
            "rs-station-accountability-2024-2025-rferl"
          ]
        }
      ]
    },
    {
      "id": "mz-election-20241021",
      "title": "Post-election protests and security crackdown",
      "country": "MZ",
      "country_name": "Mozambique",
      "region": "Africa",
      "location": {
        "label": "Maputo and other locations",
        "precision": "multi-location"
      },
      "issues": [
        "Elections",
        "Governance"
      ],
      "start_date": "2024-10-21",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2025-01-25",
      "summary": "Protesters disputed the election outcome; Amnesty documented a prolonged security crackdown.",
      "positions": [
        {
          "actor": "Venancio Mondlane supporters",
          "stance": "oppose",
          "target": "Declared election result",
          "claim": "Demonstrations supported the opposition challenger and disputed the result.",
          "source_ids": [
            "mz-election-20241021-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "unknown",
        "violence": "Amnesty reported security forces using deadly and less-lethal force; casualty totals were disputed.",
        "source_ids": [
          "mz-election-20241021-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Deadly force, arrests and internet restrictions alleged",
          "attribution": "Amnesty investigation described by AP",
          "source_ids": [
            "mz-election-20241021-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "mz-election-20241021-source-1",
          "url": "https://apnews.com/article/mozambique-protests-election-violence-amnesty-international-97a4d3553394ce87fd99ad5382106e62",
          "title": "Mozambique carried out a brutal crackdown on post-election protests, Amnesty says | AP News",
          "publisher": "Associated Press",
          "published_at": null,
          "accessed_at": "2026-10-02T21:13:06.859Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. AP body read with web open/find after Exa truncation; no exact publication timestamp available from the fetched page."
      },
      "timeline": [
        {
          "date": "2024-10-21",
          "text": "Beginning of Amnesty's documented crackdown period.",
          "source_ids": [
            "mz-election-20241021-source-1"
          ]
        },
        {
          "date": "2025-01-25",
          "text": "Latest date covered by the documented security-force response.",
          "source_ids": [
            "mz-election-20241021-source-1"
          ]
        }
      ]
    },
    {
      "id": "ca-postal-strike-2024",
      "title": "Postal strike and imposed return to work",
      "country": "CA",
      "country_name": "Canada",
      "region": "Americas",
      "location": {
        "label": "Canada; Mississauga picketing",
        "precision": "multi-location"
      },
      "issues": [
        "Labour rights",
        "Pay"
      ],
      "start_date": "2024-11-15",
      "start_date_precision": "day",
      "end_date": "2024-12-17",
      "status": "ended",
      "last_verified": "2026-10-02T21:23:44.808Z",
      "last_observed_at": "2024-12-18",
      "summary": "Canada Post workers' national stoppage was ordered to end after the labour board found bargaining at an impasse.",
      "positions": [
        {
          "actor": "Canadian Union of Postal Workers",
          "stance": "support",
          "target": "New collective agreements",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "ca-postal-strike-2024-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "National postal operations stopped.",
        "violence": "Unknown",
        "source_ids": [
          "ca-postal-strike-2024-s1"
        ]
      },
      "state_response": [
        {
          "action": "Labour board ordered a return to work.",
          "attribution": "Reuters reporting",
          "source_ids": [
            "ca-postal-strike-2024-s1"
          ]
        }
      ],
      "sources": [
        {
          "id": "ca-postal-strike-2024-s1",
          "url": "https://www.reuters.com/world/americas/canada-post-workers-strike-end-after-labor-board-ruling-2024-12-16/",
          "title": "Canada Post workers strike to end after labor board ruling",
          "publisher": "Reuters",
          "published_at": "2024-12-16",
          "accessed_at": "2026-10-02T21:16:01.603Z"
        },
        {
          "id": "ca-postal-strike-2024-s2",
          "url": "https://www.canadapost-postescanada.ca/cpc/en/our-company/news-and-media/corporate-news/negotiations/2024-12-16-cupw-negotiations-postal-operations-to-resume-on-tuesday-december-17-following-cirb-ruling",
          "title": "Postal operations to resume on December 17 following CIRB ruling",
          "publisher": "Canada Post",
          "published_at": "2024-12-16",
          "accessed_at": "2026-10-02T21:16:01.603Z"
        },
        {
          "id": "ca-postal-strike-2024-s3",
          "url": "https://www.canadapost-postescanada.ca/cpc/en/our-company/news-and-media/corporate-news/negotiations/2024-12-18-operations-update-accepting-parcels-and-mail-starting-december-19",
          "title": "Operations update: Accepting parcels and mail starting December 19",
          "publisher": "Canada Post",
          "published_at": "2024-12-18",
          "accessed_at": "2026-10-02T21:21:14.198Z"
        },
        {
          "id": "ca-postal-strike-2024-s4",
          "url": "https://www.cbc.ca/news/canada/british-columbia/canada-post-workers-to-return-tuesday-1.7411292",
          "title": "Canada Post says workers to return Tuesday after labour board ruling",
          "publisher": "The Canadian Press via CBC News",
          "published_at": "2024-12-15",
          "accessed_at": "2026-10-02T21:23:44.808Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human sign-off. Reuters and Canadian Press accounts plus employer statements. Employer confirms restart December 18; interim-pay details are attributed."
      },
      "timeline": [
        {
          "date": "2024-11-15",
          "text": "Picketing documented in Mississauga.",
          "source_ids": [
            "ca-postal-strike-2024-s1"
          ]
        },
        {
          "date": "2024-12-17",
          "text": "Mandated resumption date.",
          "source_ids": [
            "ca-postal-strike-2024-s1"
          ]
        },
        {
          "date": "2024-12-18",
          "text": "Employer confirmed network fully operational and mail delivery restarted.",
          "source_ids": [
            "ca-postal-strike-2024-s3"
          ]
        }
      ]
    },
    {
      "id": "pk-khan-islamabad-sitin-2024",
      "title": "Islamabad sit-in demanding Imran Khan’s release",
      "country": "PK",
      "country_name": "Pakistan",
      "region": "Asia",
      "location": {
        "label": "Islamabad",
        "precision": "city"
      },
      "issues": [
        "Political detention",
        "Governance"
      ],
      "start_date": "2024-11-24",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:15:36.852Z",
      "last_observed_at": "2024-11-27",
      "summary": "Khan supporters demanded his release. Security forces cleared the sit-in; PTI leaders disagreed over whether the protest had ended.",
      "positions": [
        {
          "actor": "Pakistan Tehreek-e-Insaf supporters",
          "stance": "oppose",
          "target": "Imran Khan’s detention",
          "claim": "Demanded Khan’s release.",
          "source_ids": [
            "pk-khan-islamabad-sitin-2024-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "pk-khan-islamabad-sitin-2024-reuters",
          "url": "https://www.reuters.com/world/asia-pacific/supporters-pakistans-imran-khan-call-off-protest-local-media-says-2024-11-27/",
          "title": "Nearly 1,000 held in Pakistan after pro-Khan protests",
          "publisher": "Reuters",
          "published_at": "2024-11-27",
          "accessed_at": "2026-10-02T21:14:24.780Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted review of underlying reporting via extraction fallback. No human sign-off; present activity is not established."
      },
      "timeline": [
        {
          "date": "2024-11-27",
          "text": "Security forces cleared the Islamabad sit-in; police reported arrests.",
          "source_ids": [
            "pk-khan-islamabad-sitin-2024-reuters"
          ]
        }
      ]
    },
    {
      "id": "sv-public-sector-budget-march-2024",
      "title": "Public-sector march opposing budget cuts",
      "country": "SV",
      "country_name": "El Salvador",
      "region": "Americas",
      "location": {
        "label": "El Salvador",
        "precision": "country"
      },
      "issues": [
        "Public services",
        "Labour rights",
        "Budget cuts"
      ],
      "start_date": "2024-10-19",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2024-11-01",
      "summary": "Workers marched against proposed education and health cuts; solidarity organization CISPES reported subsequent dismissals.",
      "positions": [
        {
          "actor": "Teachers, healthcare and public-sector unions",
          "stance": "oppose",
          "target": "2025 budget cuts and job eliminations",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "sv-public-sector-budget-march-2024-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "sv-public-sector-budget-march-2024-s1",
          "url": "https://cispes.org/article/wave-retaliation-follows-public-sector-union-march-against-budget-cuts?language=en",
          "title": "Wave of Retaliation Follows Public Sector Union March Against Budget Cuts",
          "publisher": "CISPES",
          "published_at": "2024-11-01",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. CISPES is a solidarity advocate relying partly on union testimony; individual layoff causes and full count not independently verified."
      },
      "timeline": [
        {
          "date": "2024-10-19",
          "text": "Public-sector workers marched against proposed austerity.",
          "source_ids": [
            "sv-public-sector-budget-march-2024-s1"
          ]
        },
        {
          "date": "2024-10-21",
          "text": "Teachers' union secretary-general dismissed, according to CISPES.",
          "source_ids": [
            "sv-public-sector-budget-march-2024-s1"
          ]
        }
      ]
    },
    {
      "id": "tw-bluebird-legislative-protests-20240528",
      "title": "Bluebird demonstrators oppose expanded legislative powers",
      "country": "TW",
      "country_name": "Taiwan, Province of China",
      "region": "Asia",
      "location": {
        "label": "Taipei and other reported cities",
        "precision": "multi-location"
      },
      "issues": [
        "Governance",
        "Civil liberties"
      ],
      "start_date": "2024-05-28",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:17:35.356Z",
      "last_observed_at": "2024-10-25",
      "summary": "Bluebird demonstrators rallied while opposition parties passed expanded legislative powers. Taiwan's Constitutional Court later invalidated multiple provisions while upholding others.",
      "positions": [
        {
          "actor": "Bluebird demonstrators and Economic Democracy Union",
          "stance": "oppose",
          "target": "Expanded legislative investigative and punishment powers",
          "claim": "Demonstrators sought rejection or review of the amendments.",
          "source_ids": [
            "tw-bluebird-legislative-protests-20240528-taipeitimes"
          ]
        },
        {
          "actor": "Kuomintang and Taiwan People's Party legislators",
          "stance": "support",
          "target": "Expanded legislative oversight",
          "claim": "Supporters presented the changes as accountability and anti-corruption measures.",
          "source_ids": [
            "tw-bluebird-legislative-protests-20240528-taipeitimes"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Reliable comparable count not established."
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "tw-bluebird-legislative-protests-20240528-taipeitimes",
          "url": "https://www.taipeitimes.com/News/front/archives/2024/05/29/2003818549",
          "title": "KMT, TPP pass controversial measures",
          "publisher": "Taipei Times, staff with agencies",
          "published_at": "2024-05-29",
          "accessed_at": "2026-10-02T21:17:35.356Z"
        },
        {
          "id": "tw-bluebird-legislative-protests-20240528-court",
          "url": "https://cons.judicial.gov.tw/en/docdata.aspx?fid=5506&id=354216",
          "title": "Case News on TCC Judgment 113-Hsien-Pan-9 (2024)",
          "publisher": "Taiwan Constitutional Court",
          "published_at": null,
          "accessed_at": "2026-10-02T21:17:35.356Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted source reading; no human editorial sign-off. This is a bounded historical episode; present activity is not established."
      },
      "timeline": [
        {
          "date": "2024-05-28",
          "text": "Legislature passed amendments while demonstrators gathered outside.",
          "source_ids": [
            "tw-bluebird-legislative-protests-20240528-taipeitimes"
          ]
        },
        {
          "date": "2024-10-25",
          "text": "Constitutional Court invalidated multiple provisions, including criminal contempt of legislature.",
          "source_ids": [
            "tw-bluebird-legislative-protests-20240528-court"
          ]
        }
      ]
    },
    {
      "id": "sg-workers-placard-action-2024",
      "title": "Migrant workers’ money-related placard action",
      "country": "SG",
      "country_name": "Singapore",
      "region": "Asia",
      "location": {
        "label": "Singapore",
        "precision": "city"
      },
      "issues": [
        "Labour",
        "Pay"
      ],
      "start_date": "2024-10-24",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:18:54.825Z",
      "last_observed_at": "2024-10-24",
      "summary": "Migrant workers held money-related placards in Geylang. The ministry said the workers denied salary arrears; the grievance remains uncertain.",
      "positions": [
        {
          "actor": "Migrant workers holding placards",
          "stance": "support",
          "target": "Money-related grievance",
          "claim": "Placards referred to an outstanding amount; unpaid salary was disputed.",
          "source_ids": [
            "sg-workers-placard-action-2024-source"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "sg-workers-placard-action-2024-source",
          "url": "https://mothership.sg/2024/10/migrant-workers-protest-bto-hdb-construction/",
          "title": "Migrant workers hold up money-related signs at Geylang BTO site, MOM says workers not owed salary",
          "publisher": "Mothership",
          "published_at": "2024-10-26",
          "accessed_at": "2026-10-02T21:18:54.825Z"
        }
      ],
      "verification": {
        "level": "contested",
        "note": "Local reporting reviewed, including a social media image and ministry/police responses. Placards establish action but salary arrears are disputed. AI-assisted; no human sign-off."
      },
      "timeline": [
        {
          "date": "2024-10-24",
          "text": "Workers were photographed holding placards; police later confirmed an investigation.",
          "source_ids": [
            "sg-workers-placard-action-2024-source"
          ]
        }
      ]
    },
    {
      "id": "pe-lima-transport-security-strike-2024",
      "title": "Transport strike demanding security",
      "country": "PE",
      "country_name": "Peru",
      "region": "Americas",
      "location": {
        "label": "Peru",
        "precision": "city"
      },
      "issues": [
        "Public safety",
        "Extortion"
      ],
      "start_date": "2024-10-23",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2024-10-23",
      "summary": "Bus drivers struck over extortion and attacks; markets also closed in solidarity.",
      "positions": [
        {
          "actor": "Transport unions and supporting market workers",
          "stance": "support",
          "target": "Protection from criminal attacks",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "pe-lima-transport-security-strike-2024-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Bus services and commuting disrupted.",
        "violence": "Unknown",
        "source_ids": [
          "pe-lima-transport-security-strike-2024-s1"
        ]
      },
      "state_response": [
        {
          "action": "Soldiers deployed; in-person school classes closed.",
          "attribution": "Reuters reporting",
          "source_ids": [
            "pe-lima-transport-security-strike-2024-s1"
          ]
        }
      ],
      "sources": [
        {
          "id": "pe-lima-transport-security-strike-2024-s1",
          "url": "https://www.reuters.com/world/americas/peru-bus-drivers-strike-disrupts-lima-amid-rising-crime-concerns-2024-10-23/",
          "title": "Peru bus drivers strike disrupts Lima amid rising crime concerns",
          "publisher": "Reuters",
          "published_at": "2024-10-23",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. President promised arrests, but no implemented security improvement established."
      },
      "timeline": [
        {
          "date": "2024-10-23",
          "text": "Drivers struck demanding action on insecurity.",
          "source_ids": [
            "pe-lima-transport-security-strike-2024-s1"
          ]
        }
      ]
    },
    {
      "id": "mx-judges-strike-2024",
      "title": "Judicial strike and contested return to work",
      "country": "MX",
      "country_name": "Mexico",
      "region": "Americas",
      "location": {
        "label": "Mexico",
        "precision": "country"
      },
      "issues": [
        "Judicial independence",
        "Labour rights"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:14.198Z",
      "last_observed_at": "2024-10-15",
      "summary": "Judges voted for work resumption, but judicial employees continued opposing reform and refused the planned October 16 return.",
      "positions": [
        {
          "actor": "Federal judges and magistrates",
          "stance": "oppose",
          "target": "Judicial reform",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "mx-judges-strike-2024-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "mx-judges-strike-2024-s1",
          "url": "https://www.jurist.org/news/2024/10/mexico-judges-end-strike-and-vow-job-action-against-judicial-reforms/",
          "title": "Mexico judges end strike and vow job action against judicial reforms",
          "publisher": "JURIST",
          "published_at": "2024-10-14",
          "accessed_at": "2026-10-02T21:16:01.603Z"
        },
        {
          "id": "mx-judges-strike-2024-s2",
          "url": "https://www.excelsior.com.mx/nacional/trabajadores-del-pjf-acuerdan-fin-de-paro-asumiran-otra-modalidad-de-protesta/1678805",
          "title": "Trabajadores del PJF acuerdan fin de paro; asumirán otra modalidad de protesta",
          "publisher": "Excélsior",
          "published_at": "2024-10-13",
          "accessed_at": "2026-10-02T21:21:14.198Z"
        },
        {
          "id": "mx-judges-strike-2024-s3",
          "url": "https://www.jornada.com.mx/2024/10/16/politica/008n1pol",
          "title": "Rechazan trabajadores de tribunales y juzgados federales retomar labores",
          "publisher": "La Jornada",
          "published_at": "2024-10-16",
          "accessed_at": "2026-10-02T21:21:14.198Z"
        }
      ],
      "verification": {
        "level": "contested",
        "note": "AI-assisted, no human editorial sign-off. JURIST's end date conflicts with local reporting of a planned October 16 return and continued worker stoppage; actual unified cessation unestablished."
      },
      "timeline": [
        {
          "date": "2024-09-16",
          "text": "Reform entered into force.",
          "source_ids": [
            "mx-judges-strike-2024-s2"
          ]
        },
        {
          "date": "2024-10-15",
          "text": "Judicial workers protested and announced continuing their stoppage.",
          "source_ids": [
            "mx-judges-strike-2024-s3"
          ]
        }
      ]
    },
    {
      "id": "za-decentwork-20241007",
      "title": "Decent-work strike against unemployment and austerity",
      "country": "ZA",
      "country_name": "South Africa",
      "region": "Africa",
      "location": {
        "label": "Cape Town and Johannesburg",
        "precision": "multi-location"
      },
      "issues": [
        "Labor",
        "Cost of living"
      ],
      "start_date": "2024-10-07",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2024-10-07",
      "summary": "Unions marched over unemployment, austerity, prices and working conditions.",
      "positions": [
        {
          "actor": "Cosatu and Fedusa",
          "stance": "support",
          "target": "Jobs, lower prices and working conditions",
          "claim": "Union members called for government intervention and protection of jobs.",
          "source_ids": [
            "za-decentwork-20241007-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Teachers missed work and some schools asked learners to stay home; roads closed.",
        "violence": "unknown",
        "source_ids": [
          "za-decentwork-20241007-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Police announced monitoring of a protected strike",
          "attribution": "Daily Maverick reporting",
          "source_ids": [
            "za-decentwork-20241007-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "za-decentwork-20241007-source-1",
          "url": "https://www.dailymaverick.co.za/article/2024-10-07-workers-take-to-sa-city-streets-to-call-for-rethink-on-austerity-measures-job-cuts-and-price-hikes/",
          "title": "Marchers protest over unemployment and austerity measures in day of solidarity with workers",
          "publisher": "Daily Maverick",
          "published_at": "2024-10-07",
          "accessed_at": "2026-10-02T21:13:06.859Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2024-10-07",
          "text": "Unions marched and handed over demands.",
          "source_ids": [
            "za-decentwork-20241007-source-1"
          ]
        }
      ]
    },
    {
      "id": "us-port-strike-2024",
      "title": "East and Gulf Coast dockworkers' strike",
      "country": "US",
      "country_name": "United States of America",
      "region": "Americas",
      "location": {
        "label": "East and Gulf Coast ports; Portsmouth documented",
        "precision": "multi-location"
      },
      "issues": [
        "Pay",
        "Automation",
        "Labour rights"
      ],
      "start_date": "2024-10-01",
      "start_date_precision": "day",
      "end_date": "2024-10-03",
      "status": "ended",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2024-10-04",
      "summary": "ILA dockworkers suspended their three-day stoppage after a tentative wage deal; ports reopened October 4.",
      "positions": [
        {
          "actor": "International Longshoremen’s Association",
          "stance": "support",
          "target": "Higher wages and protections against automation",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "us-port-strike-2024-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Shipping stopped at 36 ports.",
        "violence": "Unknown",
        "source_ids": [
          "us-port-strike-2024-s1"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "us-port-strike-2024-s1",
          "url": "https://www.reuters.com/world/us/us-port-strike-ends-clearing-long-ship-queues-will-take-time-2024-10-04/",
          "title": "US port strike ends, leaving cargo backlog",
          "publisher": "Reuters",
          "published_at": "2024-10-04",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. Tentative terms, not final ratified settlement; numerical membership is not rally turnout."
      },
      "timeline": [
        {
          "date": "2024-10-01",
          "text": "Stoppage began.",
          "source_ids": [
            "us-port-strike-2024-s1"
          ]
        },
        {
          "date": "2024-10-03",
          "text": "Tentative agreement suspended strike.",
          "source_ids": [
            "us-port-strike-2024-s1"
          ]
        },
        {
          "date": "2024-10-04",
          "text": "Ports reopened.",
          "source_ids": [
            "us-port-strike-2024-s1"
          ]
        }
      ]
    },
    {
      "id": "gb-england-doctor-strikes-2024",
      "title": "England doctors' 2024 strike rounds and pay settlement",
      "country": "GB",
      "country_name": "United Kingdom of Great Britain and Northern Ireland",
      "region": "Europe",
      "location": {
        "label": "England",
        "precision": "region"
      },
      "issues": [
        "Wages",
        "Healthcare"
      ],
      "start_date": "2024-01-03",
      "start_date_precision": "day",
      "end_date": "2024-09-16",
      "status": "ended",
      "last_verified": "2026-10-02T21:20:26.791Z",
      "last_observed_at": "2024-09-16",
      "summary": "Doctors in England escalated their pay dispute with a six-day January walkout and accepted a pay agreement in September that ended the dispute.",
      "positions": [
        {
          "actor": "BMA doctors in England",
          "stance": "support",
          "target": "Restoration of pay",
          "claim": "The BMA sought improved pay after years of erosion and recommended accepting the 2024 agreement.",
          "source_ids": [
            "gb-england-doctor-strikes-2024-bma",
            "gb-england-doctor-strikes-2024-government",
            "gb-england-doctor-strikes-2024-bbc-start"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "NHS routine appointments were cancelled or rescheduled during strike rounds.",
        "violence": "unknown",
        "source_ids": [
          "gb-england-doctor-strikes-2024-bma",
          "gb-england-doctor-strikes-2024-government",
          "gb-england-doctor-strikes-2024-bbc-start"
        ]
      },
      "state_response": [
        {
          "action": "Government reached a pay agreement with the BMA and committed to reviews of training and rotations.",
          "attribution": "Reported in the cited articles.",
          "source_ids": [
            "gb-england-doctor-strikes-2024-bma",
            "gb-england-doctor-strikes-2024-government",
            "gb-england-doctor-strikes-2024-bbc-start"
          ]
        }
      ],
      "sources": [
        {
          "id": "gb-england-doctor-strikes-2024-bma",
          "url": "https://www.bma.org.uk/our-campaigns/resident-doctor-campaigns/pay-in-england/2024-pay-deal-for-resident-doctors-working-in-england",
          "title": "2024 pay deal for resident doctors working in England",
          "publisher": "British Medical Association",
          "published_at": null,
          "accessed_at": "2026-10-02T21:15:21.851Z"
        },
        {
          "id": "gb-england-doctor-strikes-2024-government",
          "url": "https://www.gov.uk/government/news/junior-doctors-accept-government-pay-deal",
          "title": "Junior doctors accept government pay deal",
          "publisher": "UK Department of Health and Social Care",
          "published_at": "2024-09-16",
          "accessed_at": "2026-10-02T21:15:21.851Z"
        },
        {
          "id": "gb-england-doctor-strikes-2024-bbc-start",
          "url": "https://www.bbc.co.uk/news/articles/c06yd17m6jko",
          "title": "Six-day junior doctors strike begins in South East",
          "publisher": "BBC News",
          "published_at": "2024-01-03",
          "accessed_at": "2026-10-02T21:16:26.116Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted article review; no independent human editorial sign-off. Union and government are primary negotiating parties with incentives to present the deal positively; BBC independently documents the January strike. Government publication date is September 16 despite Exa's previous-day metadata."
      },
      "timeline": [
        {
          "date": "2024-01-03",
          "text": "Doctors in England escalated their pay dispute with a six-day January walkout and accepted a pay agreement in September that ended the dispute.",
          "source_ids": [
            "gb-england-doctor-strikes-2024-bma",
            "gb-england-doctor-strikes-2024-government",
            "gb-england-doctor-strikes-2024-bbc-start"
          ]
        },
        {
          "date": "2024-09-16",
          "text": "Doctors accepted an agreement providing additional backdated pay uplifts and a 2024–25 increase of 6% plus £1,000.",
          "source_ids": [
            "gb-england-doctor-strikes-2024-bma",
            "gb-england-doctor-strikes-2024-government",
            "gb-england-doctor-strikes-2024-bbc-start"
          ]
        }
      ]
    },
    {
      "id": "il-histadrut-hostage-strike-2024",
      "title": "General strike demanding a hostage agreement",
      "country": "IL",
      "country_name": "Israel",
      "region": "Asia",
      "location": {
        "label": "Haifa",
        "precision": "city"
      },
      "issues": [
        "Hostages",
        "Ceasefire"
      ],
      "start_date": "2024-09-02",
      "start_date_precision": "day",
      "end_date": "2024-09-02",
      "status": "ended",
      "last_verified": "2026-10-02T21:18:18.575Z",
      "last_observed_at": "2024-09-02",
      "summary": "Histadrut launched a general strike seeking a hostage deal. It accepted a Labour Court order and called the strike off.",
      "positions": [
        {
          "actor": "Histadrut union",
          "stance": "support",
          "target": "A deal returning hostages",
          "claim": "Pressed government to reach a hostage agreement.",
          "source_ids": [
            "il-histadrut-hostage-strike-2024-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "il-histadrut-hostage-strike-2024-reuters",
          "url": "https://www.reuters.com/world/middle-east/israeli-labour-strike-push-gaza-hostage-deal-disrupts-flights-buses-2024-09-02/",
          "title": "Israelis strike and protest to demand Gaza hostage deal",
          "publisher": "Reuters",
          "published_at": "2024-09-02",
          "accessed_at": "2026-10-02T21:16:20.581Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted review of underlying reporting via extraction fallback. No human sign-off; current activity is not established."
      },
      "timeline": [
        {
          "date": "2024-09-02",
          "text": "Histadrut ended its general strike following the court order.",
          "source_ids": [
            "il-histadrut-hostage-strike-2024-reuters"
          ]
        }
      ]
    },
    {
      "id": "gy-teachers-pay-strikes-2024",
      "title": "Teachers' strikes and multi-year settlement",
      "country": "GY",
      "country_name": "Guyana",
      "region": "Americas",
      "location": {
        "label": "Guyana",
        "precision": "country"
      },
      "issues": [
        "Pay",
        "Education"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": "2024-06-21",
      "status": "ended",
      "last_verified": "2026-10-02T21:16:01.603Z",
      "last_observed_at": "2024-08-21",
      "summary": "Teachers ended their stoppage by agreement; GTU and the ministry later signed a 2024–2026 pay and benefits deal.",
      "positions": [
        {
          "actor": "Guyana Teachers’ Union",
          "stance": "support",
          "target": "Multi-year pay and benefits agreement",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "gy-teachers-pay-strikes-2024-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "gy-teachers-pay-strikes-2024-s1",
          "url": "https://newsroom.gy/2024/06/21/teachers-back-to-work-govt-union-maintain-positions-for-multi-year-agreement/",
          "title": "Teachers back to work: multi-year agreement negotiations",
          "publisher": "News Room Guyana",
          "published_at": "2024-06-21",
          "accessed_at": "2026-10-02T21:16:01.603Z"
        },
        {
          "id": "gy-teachers-pay-strikes-2024-s2",
          "url": "https://www.stabroeknews.com/2024/08/21/news/guyana/education-ministry-gtusign-deal-for-2024-26/",
          "title": "Education Ministry, GTU sign deal for 2024-26",
          "publisher": "Stabroek News",
          "published_at": "2024-08-21",
          "accessed_at": "2026-10-02T21:16:01.603Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. Stabroek reproduces union statement and presidential figures; implementation unaudited."
      },
      "timeline": [
        {
          "date": "2024-06-21",
          "text": "Union and ministry agreed to end strike.",
          "source_ids": [
            "gy-teachers-pay-strikes-2024-s1"
          ]
        },
        {
          "date": "2024-08-21",
          "text": "Signed multi-year deal.",
          "source_ids": [
            "gy-teachers-pay-strikes-2024-s2"
          ]
        }
      ]
    },
    {
      "id": "bd-quota-uprising-2024",
      "title": "Quota reform protests and uprising",
      "country": "BD",
      "country_name": "Bangladesh",
      "region": "Asia",
      "location": {
        "label": "Dhaka and Chittagong",
        "precision": "multi-location"
      },
      "issues": [
        "Jobs",
        "Governance"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:25:26.241Z",
      "last_observed_at": "2024-08-05",
      "summary": "Student quota protests broadened into demands for Hasina’s resignation; she resigned and left Bangladesh on August 5.",
      "positions": [
        {
          "actor": "Students Against Discrimination",
          "stance": "oppose",
          "target": "Job quotas and Hasina’s government",
          "claim": "Sought quota reform, then Hasina’s resignation.",
          "source_ids": [
            "bd-quota-uprising-2024-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [
        {
          "action": "OHCHR found reasonable grounds for systematic serious violations by the former government and security apparatus.",
          "attribution": "OHCHR fact-finding report summary; inquiry invited by the interim government.",
          "source_ids": [
            "bd-quota-uprising-2024-ohchr"
          ]
        }
      ],
      "sources": [
        {
          "id": "bd-quota-uprising-2024-reuters",
          "url": "https://www.reuters.com/world/asia-pacific/why-did-bangladesh-pm-sheikh-hasina-resign-where-is-she-now-2024-08-06/",
          "title": "Why did Bangladesh PM Sheikh Hasina resign and where is she now?",
          "publisher": "Reuters",
          "published_at": "2024-08-07",
          "accessed_at": "2026-10-02T21:14:09.963Z"
        },
        {
          "id": "bd-quota-uprising-2024-ohchr",
          "url": "https://www.ohchr.org/sites/default/files/documents/countries/bangladesh/abuses-protests-july-august-bangladesh-infographic-1-en.pdf",
          "title": "BANGLADESH: Violations and abuses related to the protests of July and August 2024",
          "publisher": "OHCHR",
          "published_at": null,
          "accessed_at": "2026-10-02T21:20:00.787Z"
        },
        {
          "id": "bd-quota-uprising-2024-quota-reuters",
          "url": "https://www.reuters.com/world/asia-pacific/after-protests-bangladesh-government-formally-accept-ruling-job-quotas-2024-07-23/",
          "title": "Bangladesh accepts court ruling to cut state job quotas after unrest, eases curfew",
          "publisher": "Reuters",
          "published_at": "2024-07-23",
          "accessed_at": "2026-10-02T21:22:56.615Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted review of underlying Reuters reporting and a second source; partial source dependencies noted in context. No human sign-off."
      },
      "timeline": [
        {
          "date": "2024-07-23",
          "text": "Government accepted the ruling opening 93% of state jobs to competition.",
          "source_ids": [
            "bd-quota-uprising-2024-quota-reuters"
          ]
        },
        {
          "date": "2024-08-05",
          "text": "Hasina resigned following sustained demonstrations.",
          "source_ids": [
            "bd-quota-uprising-2024-reuters"
          ]
        }
      ]
    },
    {
      "id": "ve-election-protests-2024",
      "title": "Protests over disputed presidential result",
      "country": "VE",
      "country_name": "Venezuela, Bolivarian Republic of",
      "region": "Americas",
      "location": {
        "label": "Venezuela, Bolivarian Republic of",
        "precision": "city"
      },
      "issues": [
        "Elections",
        "Government accountability"
      ],
      "start_date": "2024-07-29",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2024-07-30",
      "summary": "Thousands protested Maduro's claimed election victory; opposition disputed the result and security forces dispersed crowds.",
      "positions": [
        {
          "actor": "Election-result demonstrators",
          "stance": "oppose",
          "target": "Official presidential election result",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "ve-election-protests-2024-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Unknown",
        "violence": "Clashes and burning objects reported.",
        "source_ids": [
          "ve-election-protests-2024-s1"
        ]
      },
      "state_response": [
        {
          "action": "Police used tear gas and rubber bullets.",
          "attribution": "BBC News reporting",
          "source_ids": [
            "ve-election-protests-2024-s1"
          ]
        }
      ],
      "sources": [
        {
          "id": "ve-election-protests-2024-s1",
          "url": "https://www.bbc.com/news/articles/cw5yze5k500o",
          "title": "Venezuelans clash with police after disputed election result",
          "publisher": "BBC News",
          "published_at": "2024-07-30",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. Election fraud is the opposition's claim; detentions' exact dates are unspecified."
      },
      "timeline": [
        {
          "date": "2024-07-29",
          "text": "Crowds demonstrated in Caracas.",
          "source_ids": [
            "ve-election-protests-2024-s1"
          ]
        }
      ]
    },
    {
      "id": "br-federal-education-strike-2024",
      "title": "Federal education strike and pay agreement",
      "country": "BR",
      "country_name": "Brazil",
      "region": "Americas",
      "location": {
        "label": "Brazil",
        "precision": "country"
      },
      "issues": [
        "Education",
        "Pay"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:16:01.603Z",
      "last_observed_at": "2024-06-27",
      "summary": "Federal education unions signed an agreement with government following their strike over pay and career conditions.",
      "positions": [
        {
          "actor": "ANDES-SN, Sinasefe and Fasubra",
          "stance": "support",
          "target": "Improved pay and career conditions",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "br-federal-education-strike-2024-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "br-federal-education-strike-2024-s1",
          "url": "https://www.andes.org.br/conteudos/noticia/aNDES-sN-assina-acordo-com-governo-apos-determinacao-das-bases1",
          "title": "ANDES-SN assina acordo com governo após determinação das bases",
          "publisher": "ANDES-SN",
          "published_at": "2024-06-27",
          "accessed_at": "2026-10-02T21:16:01.603Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. Primary union source has bargaining incentives; implementation not independently evaluated."
      },
      "timeline": [
        {
          "date": "2024-06-27",
          "text": "Unions signed the negotiated agreement.",
          "source_ids": [
            "br-federal-education-strike-2024-s1"
          ]
        }
      ]
    },
    {
      "id": "ke-financebill-202406",
      "title": "Finance Bill tax protests and withdrawal",
      "country": "KE",
      "country_name": "Kenya",
      "region": "Africa",
      "location": {
        "label": "Nairobi, Eldoret and other locations",
        "precision": "multi-location"
      },
      "issues": [
        "Taxation",
        "Cost of living"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2024-06-26",
      "summary": "Youth-led tax protests escalated; President Ruto announced he would not sign the Finance Bill.",
      "positions": [
        {
          "actor": "Youth-led demonstrators",
          "stance": "oppose",
          "target": "Finance Bill 2024 tax increases",
          "claim": "Demonstrators demanded withdrawal of the entire bill.",
          "source_ids": [
            "ke-financebill-202406-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Demonstrators entered parliament's compound.",
        "violence": "Police gunfire and deaths reported.",
        "source_ids": [
          "ke-financebill-202406-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Ruto announced refusal to sign and withdrawal of the bill",
          "attribution": "Reuters reporting",
          "source_ids": [
            "ke-financebill-202406-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "ke-financebill-202406-source-1",
          "url": "https://www.cbc.ca/news/world/kenya-protests-1.7246939",
          "title": "Kenyan president withdraws tax hikes after nationwide protests kill 23 | CBC News",
          "publisher": "Reuters via CBC",
          "published_at": "2024-06-26",
          "accessed_at": "2026-10-02T21:13:01.478Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2024-06-25",
          "text": "Protesters entered parliament's compound after lawmakers approved tax measures.",
          "source_ids": [
            "ke-financebill-202406-source-1"
          ]
        },
        {
          "date": "2024-06-26",
          "text": "Ruto announced the bill would be withdrawn.",
          "source_ids": [
            "ke-financebill-202406-source-1"
          ]
        }
      ]
    },
    {
      "id": "nc-electoral-reform-unrest-2024",
      "title": "Opposition to electoral reform and associated unrest",
      "country": "NC",
      "country_name": "New Caledonia",
      "region": "Oceania",
      "location": {
        "label": "New Caledonia, including Nouméa",
        "precision": "region"
      },
      "issues": [
        "Indigenous rights",
        "Voting rights",
        "Governance"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:17:35.356Z",
      "last_observed_at": "2024-06-12",
      "summary": "Pro-independence opponents resisted expansion of the provincial electorate, fearing dilution of the Kanak vote. Protests were associated with deadly unrest; France suspended the proposed reform.",
      "positions": [
        {
          "actor": "Kanak and pro-independence opponents",
          "stance": "oppose",
          "target": "Expansion of provincial electoral eligibility",
          "claim": "Opponents feared dilution of Indigenous voting influence.",
          "source_ids": [
            "nc-electoral-reform-unrest-2024-abc"
          ]
        },
        {
          "actor": "French government",
          "stance": "support",
          "target": "Electoral reform followed by negotiated settlement",
          "claim": "Macron suspended rather than withdrew the reform and sought dialogue.",
          "source_ids": [
            "nc-electoral-reform-unrest-2024-rnz"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Reliable comparable count not established."
        },
        "disruption": "Roadblocks, closed airport and destruction of businesses reported.",
        "violence": "Fatalities and injuries reported during unrest; participants are not collectively assigned responsibility.",
        "source_ids": [
          "nc-electoral-reform-unrest-2024-abc",
          "nc-electoral-reform-unrest-2024-rnz"
        ]
      },
      "state_response": [
        {
          "action": "Emergency measures, security reinforcements, curfew and TikTok ban",
          "attribution": "ABC reporting on French government measures.",
          "source_ids": [
            "nc-electoral-reform-unrest-2024-abc"
          ]
        }
      ],
      "sources": [
        {
          "id": "nc-electoral-reform-unrest-2024-abc",
          "url": "https://www.abc.net.au/news/2024-06-12/voting-changes-that-sparked-new-caledonia-riots-suspended/103970940",
          "title": "Voting changes proposed for New Caledonia suspended",
          "publisher": "ABC News with wires",
          "published_at": "2024-06-12",
          "accessed_at": "2026-10-02T21:17:35.356Z"
        },
        {
          "id": "nc-electoral-reform-unrest-2024-rnz",
          "url": "https://www.rnz.co.nz/news/pacific/519431/macron-new-caledonia-changes-suspended-not-withdrawn",
          "title": "Macron: New Caledonia changes suspended, not withdrawn",
          "publisher": "RNZ",
          "published_at": "2024-06-13",
          "accessed_at": "2026-10-02T21:17:35.356Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted source reading; no human editorial sign-off. This is a bounded historical episode; present activity is not established."
      },
      "timeline": [
        {
          "date": "2024-05-23",
          "text": "Macron said the reform would not be forced through in the current context.",
          "source_ids": [
            "nc-electoral-reform-unrest-2024-abc",
            "nc-electoral-reform-unrest-2024-rnz"
          ]
        },
        {
          "date": "2024-06-12",
          "text": "Macron announced suspension of the electoral reform.",
          "source_ids": [
            "nc-electoral-reform-unrest-2024-abc",
            "nc-electoral-reform-unrest-2024-rnz"
          ]
        }
      ]
    },
    {
      "id": "am-border-policy-protests-2024",
      "title": "Protests against border concessions and Pashinyan",
      "country": "AM",
      "country_name": "Armenia",
      "region": "Asia",
      "location": {
        "label": "Yerevan",
        "precision": "city"
      },
      "issues": [
        "Border policy",
        "Governance"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:15:36.852Z",
      "last_observed_at": "2024-06-12",
      "summary": "Demonstrators opposing border concessions demanded Pashinyan’s resignation. Police fired stun grenades during June 12 clashes.",
      "positions": [
        {
          "actor": "Anti-government demonstrators",
          "stance": "oppose",
          "target": "Pashinyan’s border policies and premiership",
          "claim": "Demanded his resignation.",
          "source_ids": [
            "am-border-policy-protests-2024-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "am-border-policy-protests-2024-reuters",
          "url": "https://www.reuters.com/world/asia-pacific/armenian-pm-says-peace-deal-with-azerbaijan-needs-only-adjustments-before-2024-06-12/",
          "title": "Protests erupt as Armenia nears peace deal with Azerbaijan",
          "publisher": "Reuters",
          "published_at": "2024-06-12",
          "accessed_at": "2026-10-02T21:14:26.155Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted review of underlying reporting via extraction fallback. No human sign-off; present activity is not established."
      },
      "timeline": [
        {
          "date": "2024-06-12",
          "text": "Police used stun grenades; authorities reported civilian injuries and detentions.",
          "source_ids": [
            "am-border-policy-protests-2024-reuters"
          ]
        }
      ]
    },
    {
      "id": "fo-workers-wage-strike-2024",
      "title": "Workers' wage strike and negotiated settlement",
      "country": "FO",
      "country_name": "Faroe Islands",
      "region": "Europe",
      "location": {
        "label": "Tórshavn",
        "precision": "city"
      },
      "issues": [
        "Wages",
        "Labor rights"
      ],
      "start_date": "2024-05-14",
      "start_date_precision": "day",
      "end_date": "2024-06-09",
      "status": "ended",
      "last_verified": "2026-10-02T21:22:16.463761Z",
      "last_observed_at": "2024-06-09",
      "summary": "Faroese workers struck for higher wages; five unions and employers agreed a two-year wage settlement that ended the strike.",
      "positions": [
        {
          "actor": "Faroese workers' unions",
          "stance": "support",
          "target": "Higher wages",
          "claim": "Unions rejected the initial offer and demanded a proper raise.",
          "source_ids": [
            "fo-workers-wage-strike-2024-localfo-end",
            "fo-workers-wage-strike-2024-localfo-start"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Supply chains, cargo transport and refuse collection were affected.",
        "violence": "unknown",
        "source_ids": [
          "fo-workers-wage-strike-2024-localfo-end",
          "fo-workers-wage-strike-2024-localfo-start"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "fo-workers-wage-strike-2024-localfo-end",
          "url": "https://local.fo/workers-strike-ends-in-agreement-on-wage-hike/",
          "title": "Workers’ strike ends in agreement on wage hike",
          "publisher": "Local.fo",
          "published_at": "2024-06-10",
          "accessed_at": "2026-10-02T21:22:16.463761Z"
        },
        {
          "id": "fo-workers-wage-strike-2024-localfo-start",
          "url": "https://local.fo/workers-strike-hits-faroe-islands-with-potentially-serious-implications/",
          "title": "Workers’ strike hits Faroe Islands with potentially serious implications",
          "publisher": "Local.fo",
          "published_at": "2024-05-14",
          "accessed_at": "2026-10-02T21:22:16.463761Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. Two reports from one local publisher; do not treat them as independent corroboration. End article page says June 10 although search metadata says June 9."
      },
      "timeline": [
        {
          "date": "2024-05-14",
          "text": "Faroese workers struck for higher wages; five unions and employers agreed a two-year wage settlement that ended the strike.",
          "source_ids": [
            "fo-workers-wage-strike-2024-localfo-end",
            "fo-workers-wage-strike-2024-localfo-start"
          ]
        },
        {
          "date": "2024-06-09",
          "text": "Five unions and employers signed a two-year contract with a total hourly wage increase of DKK 16.80 over two years.",
          "source_ids": [
            "fo-workers-wage-strike-2024-localfo-end"
          ]
        }
      ]
    },
    {
      "id": "ge-foreign-influence-law-protests-2024",
      "title": "Protests against the foreign influence law",
      "country": "GE",
      "country_name": "Georgia",
      "region": "Asia",
      "location": {
        "label": "Tbilisi",
        "precision": "city"
      },
      "issues": [
        "Civil liberties",
        "Governance"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:15:36.852Z",
      "last_observed_at": "2024-05-24",
      "summary": "Opponents protested the foreign influence bill. Parliament’s speaker signed it into law on June 3 despite opposition.",
      "positions": [
        {
          "actor": "Opponents of the foreign influence bill",
          "stance": "oppose",
          "target": "Foreign influence legislation",
          "claim": "Opposed the bill as a threat to dissent.",
          "source_ids": [
            "ge-foreign-influence-law-protests-2024-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "ge-foreign-influence-law-protests-2024-reuters",
          "url": "https://www.reuters.com/world/europe/georgian-parliamentary-speaker-signs-foreign-agents-bill-into-law-2024-06-03/",
          "title": "Georgian parliamentary speaker signs 'foreign agents' bill into law",
          "publisher": "Reuters",
          "published_at": "2024-06-03",
          "accessed_at": "2026-10-02T21:14:27.629Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted review of underlying reporting via extraction fallback. No human sign-off; present activity is not established."
      },
      "timeline": [
        {
          "date": "2024-05-24",
          "text": "A photographed protest procession opposed the bill in Tbilisi.",
          "source_ids": [
            "ge-foreign-influence-law-protests-2024-reuters"
          ]
        }
      ]
    },
    {
      "id": "bj-livingcosts-20240427",
      "title": "Union demonstrations over living costs",
      "country": "BJ",
      "country_name": "Benin",
      "region": "Africa",
      "location": {
        "label": "Cotonou",
        "precision": "city"
      },
      "issues": [
        "Cost of living",
        "Labor rights"
      ],
      "start_date": "2024-04-27",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2024-05-10",
      "summary": "Unions protested rising living costs; authorities dispersed and banned demonstrations.",
      "positions": [
        {
          "actor": "Beninese trade unions",
          "stance": "support",
          "target": "Purchasing power and dialogue",
          "claim": "Unions sought relief from high living costs and guarantees for union rights.",
          "source_ids": [
            "bj-livingcosts-20240427-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "unknown",
        "violence": "unknown",
        "source_ids": []
      },
      "state_response": [
        {
          "action": "Tear gas, arrests and bans",
          "attribution": "AFP reporting",
          "source_ids": [
            "bj-livingcosts-20240427-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "bj-livingcosts-20240427-source-1",
          "url": "https://www.france24.com/en/live-news/20240510-in-benin-tensions-soar-over-cost-of-living",
          "title": "In Benin, tensions soar over cost of living",
          "publisher": "AFP via France 24",
          "published_at": "2024-05-10",
          "accessed_at": "2026-10-02T21:12:43.695Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Historical evidence does not establish present activity."
      },
      "timeline": [
        {
          "date": "2024-04-27",
          "text": "Police dispersed the union demonstration.",
          "source_ids": [
            "bj-livingcosts-20240427-source-1"
          ]
        },
        {
          "date": "2024-05-01",
          "text": "Authorities banned another demonstration.",
          "source_ids": [
            "bj-livingcosts-20240427-source-1"
          ]
        }
      ]
    },
    {
      "id": "pl-ukraine-border-farm-blockades-2024",
      "title": "Farmers suspend Ukraine border blockades",
      "country": "PL",
      "country_name": "Poland",
      "region": "Europe",
      "location": {
        "label": "Poland",
        "precision": "country"
      },
      "issues": [
        "Agriculture",
        "Trade"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": "2024-04-29",
      "status": "ended",
      "last_verified": "2026-10-02T21:20:26.791Z",
      "last_observed_at": "2024-04-29",
      "summary": "Farmers suspended the remaining Ukraine border blockade; further protests remained possible.",
      "positions": [
        {
          "actor": "Polish farmer protesters",
          "stance": "support",
          "target": "Restrictions on cheap agricultural imports",
          "claim": "Protesters complained of unfair competition.",
          "source_ids": [
            "pl-ukraine-border-farm-blockades-2024-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Border freight traffic was blocked.",
        "violence": "unknown",
        "source_ids": [
          "pl-ukraine-border-farm-blockades-2024-reuters"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "pl-ukraine-border-farm-blockades-2024-reuters",
          "url": "https://www.reuters.com/world/europe/polish-protesters-lift-months-long-blockade-ukraine-border-2024-04-29/",
          "title": "Polish protesters suspend months-long blockade of Ukraine border",
          "publisher": "Reuters",
          "published_at": "2024-04-29",
          "accessed_at": "2026-10-02T21:15:36.559Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. Reuters body reviewed via fallback. Onset preceded 2024; precise farmer-joining date unverified."
      },
      "timeline": [
        {
          "date": "2024-04-29",
          "text": "Dated report documents this episode; precise onset remains unknown.",
          "source_ids": [
            "pl-ukraine-border-farm-blockades-2024-reuters"
          ]
        }
      ]
    },
    {
      "id": "jo-israel-treaty-rallies-2024",
      "title": "Amman rallies against the peace treaty with Israel",
      "country": "JO",
      "country_name": "Jordan",
      "region": "Asia",
      "location": {
        "label": "Amman",
        "precision": "city"
      },
      "issues": [
        "Palestine solidarity",
        "Foreign policy"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:18:18.575Z",
      "last_observed_at": "2024-03-28",
      "summary": "Demonstrators demanded closure of Israel’s embassy and an end to Jordan’s peace treaty. The fifth consecutive rally was peaceful.",
      "positions": [
        {
          "actor": "Pro-Palestinian demonstrators",
          "stance": "oppose",
          "target": "Jordan’s peace treaty and Israel’s embassy",
          "claim": "Demanded treaty termination and embassy closure.",
          "source_ids": [
            "jo-israel-treaty-rallies-2024-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "jo-israel-treaty-rallies-2024-reuters",
          "url": "https://www.reuters.com/world/middle-east/jordanians-protest-against-peace-treaty-with-israel-fresh-rallies-2024-03-29/",
          "title": "Jordanians protest against peace treaty with Israel in fresh rallies",
          "publisher": "Reuters",
          "published_at": "2024-03-29",
          "accessed_at": "2026-10-02T21:16:19.194Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted review of underlying reporting via extraction fallback. No human sign-off; current activity is not established."
      },
      "timeline": [
        {
          "date": "2024-03-28",
          "text": "Thousands rallied for a fifth consecutive day.",
          "source_ids": [
            "jo-israel-treaty-rallies-2024-reuters"
          ]
        }
      ]
    },
    {
      "id": "cu-santiago-shortages-protests-2024",
      "title": "Food and power protests in Santiago",
      "country": "CU",
      "country_name": "Cuba",
      "region": "Americas",
      "location": {
        "label": "Santiago de Cuba",
        "precision": "city"
      },
      "issues": [
        "Electricity",
        "Food access"
      ],
      "start_date": "2024-03-17",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:19:49.914Z",
      "last_observed_at": "2024-03-17",
      "summary": "Residents demonstrated over prolonged power blackouts and food shortages.",
      "positions": [
        {
          "actor": "Santiago demonstrators",
          "stance": "support",
          "target": "Electricity and food supply",
          "claim": "Demand attributed to the collective, not a finding of national support.",
          "source_ids": [
            "cu-santiago-shortages-protests-2024-s1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No verified numerical estimate retained"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "cu-santiago-shortages-protests-2024-s1",
          "url": "https://www.bbc.com/news/world-latin-america-68595885",
          "title": "Cubans stage rare street protest over power blackouts",
          "publisher": "BBC News",
          "published_at": "2024-03-18",
          "accessed_at": "2026-10-02T21:19:49.914Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no human editorial sign-off. BBC cites AFP resident account for relief; no causal or lasting concession inferred."
      },
      "timeline": [
        {
          "date": "2024-03-17",
          "text": "Residents protested shortages.",
          "source_ids": [
            "cu-santiago-shortages-protests-2024-s1"
          ]
        }
      ]
    },
    {
      "id": "sn-electiondelay-202402",
      "title": "Protests against presidential-election postponement",
      "country": "SN",
      "country_name": "Senegal",
      "region": "Africa",
      "location": {
        "label": "Dakar, Touba, Thiès, Richard Toll and Kolda",
        "precision": "multi-location"
      },
      "issues": [
        "Elections",
        "Governance"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2024-03-06",
      "summary": "Protests opposed an election delay; the court overturned it and government later set March 24.",
      "positions": [
        {
          "actor": "Anti-postponement demonstrators",
          "stance": "oppose",
          "target": "Delayed presidential election",
          "claim": "Demonstrators opposed the extension of Sall's mandate.",
          "source_ids": [
            "sn-electiondelay-202402-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "unknown",
        "violence": "Police and demonstrators clashed.",
        "source_ids": [
          "sn-electiondelay-202402-source-1"
        ]
      },
      "state_response": [
        {
          "action": "Tear gas and stun grenades used",
          "attribution": "Reuters eyewitness reporting",
          "source_ids": [
            "sn-electiondelay-202402-source-1"
          ]
        }
      ],
      "sources": [
        {
          "id": "sn-electiondelay-202402-source-1",
          "url": "https://www.reuters.com/world/africa/senegal-election-delay-was-legal-despite-backlash-says-minister-2024-02-09/",
          "title": "Senegal battles first major wave of unrest over vote delay | Reuters",
          "publisher": "Reuters",
          "published_at": "2024-02-10",
          "accessed_at": "2026-10-02T21:13:09.573Z"
        },
        {
          "id": "sn-electiondelay-202402-source-2",
          "url": "https://www.reuters.com/world/africa/senegal-constitutional-council-election-delay-was-unlawful-2024-02-15/",
          "title": "Senegal constitutional council finds election delay was unlawful",
          "publisher": "Reuters",
          "published_at": "2024-02-15",
          "accessed_at": "2026-10-02T21:14:40.507Z"
        },
        {
          "id": "sn-electiondelay-202402-source-3",
          "url": "https://www.dw.com/en/senegal-announces-new-date-for-delayed-presidential-election/a-68458491",
          "title": "Senegal announces new date for delayed presidential election",
          "publisher": "Deutsche Welle",
          "published_at": "2024-03-06",
          "accessed_at": "2026-10-02T21:14:40.507Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Reuters bodies read with web open. DW attributes its account to AP and Reuters; not treated as independent corroboration."
      },
      "timeline": [
        {
          "date": "2024-02-09",
          "text": "Widespread clashes occurred.",
          "source_ids": [
            "sn-electiondelay-202402-source-1"
          ]
        },
        {
          "date": "2024-02-15",
          "text": "Constitutional Council overturned postponement.",
          "source_ids": [
            "sn-electiondelay-202402-source-2"
          ]
        },
        {
          "date": "2024-03-06",
          "text": "Government announced a March 24 vote.",
          "source_ids": [
            "sn-electiondelay-202402-source-3"
          ]
        }
      ]
    },
    {
      "id": "gn-generalstrike-20240226",
      "title": "General strike for wages, rights and detainee release",
      "country": "GN",
      "country_name": "Guinea",
      "region": "Africa",
      "location": {
        "label": "Conakry and mining sector",
        "precision": "multi-location"
      },
      "issues": [
        "Labor",
        "Civil liberties"
      ],
      "start_date": "2024-02-26",
      "start_date_precision": "day",
      "end_date": "2024-02-28",
      "status": "ended",
      "last_verified": "2026-10-02T21:21:43.316Z",
      "last_observed_at": "2024-02-28",
      "summary": "Unions suspended a nationwide strike after a detained union leader was freed.",
      "positions": [
        {
          "actor": "Guinean Trade Union Movement",
          "stance": "support",
          "target": "Detainee release and wage commitments",
          "claim": "The release was a key demand; other grievances remained.",
          "source_ids": [
            "gn-generalstrike-20240226-source-1"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No reliable event-wide count established."
        },
        "disruption": "Businesses and mining operations disrupted.",
        "violence": "unknown",
        "source_ids": [
          "gn-generalstrike-20240226-source-1"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "gn-generalstrike-20240226-source-1",
          "url": "https://www.reuters.com/world/africa/guinea-trade-unions-suspend-nationwide-strike-2024-02-28/",
          "title": "Guinea trade unions suspend nationwide strike | Reuters",
          "publisher": "Reuters",
          "published_at": "2024-02-29",
          "accessed_at": "2026-10-02T21:12:43.695Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted source check; no independent human editorial sign-off. Article body read with web open/find after Exa truncation."
      },
      "timeline": [
        {
          "date": "2024-02-26",
          "text": "Nationwide strike began.",
          "source_ids": [
            "gn-generalstrike-20240226-source-1"
          ]
        },
        {
          "date": "2024-02-28",
          "text": "Unions announced suspension after the release.",
          "source_ids": [
            "gn-generalstrike-20240226-source-1"
          ]
        }
      ]
    },
    {
      "id": "in-farmers-march-2024",
      "title": "Farmers’ renewed march for guaranteed crop prices",
      "country": "IN",
      "country_name": "India",
      "region": "Asia",
      "location": {
        "label": "Shambhu",
        "precision": "city"
      },
      "issues": [
        "Agriculture",
        "Livelihoods"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:15:36.851Z",
      "last_observed_at": "2024-02-21",
      "summary": "Farmers seeking legally guaranteed crop prices paused their march after renewed talks were offered; police used tear gas and water cannons.",
      "positions": [
        {
          "actor": "Protesting farmers’ unions",
          "stance": "support",
          "target": "Legally guaranteed crop prices",
          "claim": "Demanded crop prices backed by law.",
          "source_ids": [
            "in-farmers-march-2024-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Not established"
        },
        "disruption": "Unknown",
        "violence": "Unknown",
        "source_ids": []
      },
      "state_response": [],
      "sources": [
        {
          "id": "in-farmers-march-2024-reuters",
          "url": "https://www.reuters.com/world/india/with-cranes-excavators-indian-farmers-prepare-march-capital-2024-02-21/",
          "title": "Police fire tear gas on Indian farmers marching to capital, government offers talks",
          "publisher": "Reuters",
          "published_at": "2024-02-21",
          "accessed_at": "2026-10-02T21:14:23.514Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted review of underlying reporting via extraction fallback. No human sign-off; present activity is not established."
      },
      "timeline": [
        {
          "date": "2024-02-21",
          "text": "Farmers paused for two days after a fresh talks offer.",
          "source_ids": [
            "in-farmers-march-2024-reuters"
          ]
        }
      ]
    },
    {
      "id": "fr-farmers-blockades-2024",
      "title": "Major farmers' unions suspend roadblock mobilisation",
      "country": "FR",
      "country_name": "France",
      "region": "Europe",
      "location": {
        "label": "Paris, Lyon",
        "precision": "multi-location"
      },
      "issues": [
        "Agriculture",
        "Wages",
        "Regulation"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": "2024-02-01",
      "status": "ended",
      "last_verified": "2026-10-02T21:20:26.790Z",
      "last_observed_at": "2024-02-01",
      "summary": "FNSEA and Young Farmers suspended their roadblock mobilisation after the government offered aid and regulatory concessions.",
      "positions": [
        {
          "actor": "FNSEA and Young Farmers",
          "stance": "support",
          "target": "Farm income support and fewer regulatory burdens",
          "claim": "The unions treated the announced measures as tangible progress and called for blockades to end.",
          "source_ids": [
            "fr-farmers-blockades-2024-rfi"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Roadblocks affected motorways around Paris and Lyon.",
        "violence": "unknown",
        "source_ids": [
          "fr-farmers-blockades-2024-rfi"
        ]
      },
      "state_response": [
        {
          "action": "Government announced livestock aid, loan support and a pause in its pesticide reduction plan.",
          "attribution": "Reported in the cited articles.",
          "source_ids": [
            "fr-farmers-blockades-2024-rfi"
          ]
        }
      ],
      "sources": [
        {
          "id": "fr-farmers-blockades-2024-rfi",
          "url": "https://www.rfi.fr/en/france/20240201-french-farmers-call-off-tractor-protest-after-pm-unveils-raft-of-concessions",
          "title": "French farmers unions call off protest after PM unveils raft of concessions",
          "publisher": "RFI with AFP",
          "published_at": "2024-02-01",
          "accessed_at": "2026-10-02T21:14:53.028Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. RFI article credits AFP; it is one reporting stream. Its February 2 update documents the suspension while noting other-union mobilisation."
      },
      "timeline": [
        {
          "date": "2024-02-01",
          "text": "Dated report documents this episode; precise onset remains unknown.",
          "source_ids": [
            "fr-farmers-blockades-2024-rfi"
          ]
        }
      ]
    },
    {
      "id": "fi-labour-reform-strikes-2024",
      "title": "Political strikes against labour reforms and welfare cuts",
      "country": "FI",
      "country_name": "Finland",
      "region": "Europe",
      "location": {
        "label": "Helsinki",
        "precision": "city"
      },
      "issues": [
        "Labor rights",
        "Social welfare"
      ],
      "start_date": "2024-02-01",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:20:26.792Z",
      "last_observed_at": "2024-02-01",
      "summary": "Finnish workers began strikes opposing labour reforms and welfare cuts.",
      "positions": [
        {
          "actor": "Finnish labour unions",
          "stance": "support",
          "target": "Withdrawal of labour reforms",
          "claim": "Unions opposed restrictions on strikes and welfare cuts.",
          "source_ids": [
            "fi-labour-reform-strikes-2024-reuters"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Companies anticipated transport and workplace disruption.",
        "violence": "unknown",
        "source_ids": [
          "fi-labour-reform-strikes-2024-reuters"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "fi-labour-reform-strikes-2024-reuters",
          "url": "https://www.reuters.com/world/europe/finnish-workers-begin-strikes-against-labour-reforms-welfare-cuts-2024-02-01/",
          "title": "Finnish workers on strike to protest labour reforms, welfare cuts",
          "publisher": "Reuters",
          "published_at": "2024-02-01",
          "accessed_at": "2026-10-02T21:15:54.861Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. Reuters body reviewed via fallback. No subsequent concession established."
      },
      "timeline": [
        {
          "date": "2024-02-01",
          "text": "Finnish workers began strikes opposing labour reforms and welfare cuts.",
          "source_ids": [
            "fi-labour-reform-strikes-2024-reuters"
          ]
        }
      ]
    },
    {
      "id": "ee-teachers-strike-2024",
      "title": "Teachers' strike ends with wage compromise",
      "country": "EE",
      "country_name": "Estonia",
      "region": "Europe",
      "location": {
        "label": "Tartu",
        "precision": "city"
      },
      "issues": [
        "Wages",
        "Education"
      ],
      "start_date": "2024-01-22",
      "start_date_precision": "day",
      "end_date": "2024-01-30",
      "status": "ended",
      "last_verified": "2026-10-02T21:20:26.791Z",
      "last_observed_at": "2024-01-30",
      "summary": "Estonian teachers struck over pay and ended the dispute after accepting extra salary funding and further collective negotiations.",
      "positions": [
        {
          "actor": "Estonian Education Personnel Union",
          "stance": "support",
          "target": "Higher teacher salaries",
          "claim": "The union accepted a compromise below its initial pay demand and sought longer-term negotiations.",
          "source_ids": [
            "ee-teachers-strike-2024-err",
            "ee-teachers-strike-2024-ministry"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Teaching was disrupted and solidarity rallies held.",
        "violence": "unknown",
        "source_ids": [
          "ee-teachers-strike-2024-err",
          "ee-teachers-strike-2024-ministry"
        ]
      },
      "state_response": [
        {
          "action": "Government offered an additional €5.7 million for teacher pay.",
          "attribution": "Reported in the cited articles.",
          "source_ids": [
            "ee-teachers-strike-2024-err",
            "ee-teachers-strike-2024-ministry"
          ]
        }
      ],
      "sources": [
        {
          "id": "ee-teachers-strike-2024-err",
          "url": "https://news.err.ee/1609237755/union-ends-teachers-strike",
          "title": "Union ends teachers’ strike",
          "publisher": "Estonian Public Broadcasting",
          "published_at": "2024-01-30",
          "accessed_at": "2026-10-02T21:16:15.166Z"
        },
        {
          "id": "ee-teachers-strike-2024-ministry",
          "url": "https://www.hm.ee/opetajate-streik",
          "title": "Õpetajate streik",
          "publisher": "Estonian Ministry of Education and Research",
          "published_at": null,
          "accessed_at": "2026-10-02T21:16:15.166Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted article review; no independent human editorial sign-off. ERR reporting and ministry's Estonian-language primary record corroborate onset and ending; parties had incentives to emphasize settlement. Tartu rally is identified in ERR's caption."
      },
      "timeline": [
        {
          "date": "2024-01-22",
          "text": "Estonian teachers struck over pay and ended the dispute after accepting extra salary funding and further collective negotiations.",
          "source_ids": [
            "ee-teachers-strike-2024-err",
            "ee-teachers-strike-2024-ministry"
          ]
        },
        {
          "date": "2024-01-30",
          "text": "Union accepted €5.7 million additional pay funding, raising the minimum salary to €1,820, with further collective bargaining planned.",
          "source_ids": [
            "ee-teachers-strike-2024-err",
            "ee-teachers-strike-2024-ministry"
          ]
        }
      ]
    },
    {
      "id": "pg-port-moresby-payroll-protest-20240110",
      "title": "Public-service payroll protest and associated unrest",
      "country": "PG",
      "country_name": "Papua New Guinea",
      "region": "Oceania",
      "location": {
        "label": "Port Moresby",
        "precision": "city"
      },
      "issues": [
        "Labour",
        "Pay",
        "Public order"
      ],
      "start_date": "2024-01-10",
      "start_date_precision": "day",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:15:18.222Z",
      "last_observed_at": "2024-01-16",
      "summary": "Police, defence personnel and public servants protested unexplained pay deductions. Separate looting and fires followed during reduced police coverage.",
      "positions": [
        {
          "actor": "Protesting public servants",
          "stance": "oppose",
          "target": "Unexplained payroll deductions",
          "claim": "Protest concerned reduced pay; officials denied a new tax.",
          "source_ids": [
            "pg-port-moresby-payroll-protest-20240110-abc"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "Reliable comparable count not established."
        },
        "disruption": "Police withdrew from duty; shops were looted and burned.",
        "violence": "Shootings, fires and injuries reported; original peaceful protesters are not equated with all perpetrators.",
        "source_ids": [
          "pg-port-moresby-payroll-protest-20240110-abc"
        ]
      },
      "state_response": [
        {
          "action": "Defence personnel authorized to assist police",
          "attribution": "Prime minister statement reported by ABC.",
          "source_ids": [
            "pg-port-moresby-payroll-protest-20240110-abc"
          ]
        }
      ],
      "sources": [
        {
          "id": "pg-port-moresby-payroll-protest-20240110-abc",
          "url": "https://www.abc.net.au/news/2024-01-10/port-moresby-revolt-over-public-service-payroll-error/103306972",
          "title": "Shopping centre torched and shops looted after payroll glitch",
          "publisher": "ABC News",
          "published_at": "2024-01-10",
          "accessed_at": "2026-10-02T21:15:18.222Z"
        },
        {
          "id": "pg-port-moresby-payroll-protest-20240110-national",
          "url": "https://www.thenational.com.pg/civil-servants-assured-all-deductions-will-be-repaid/",
          "title": "Civil servants assured all deductions will be repaid",
          "publisher": "The National",
          "published_at": "2024-01-16",
          "accessed_at": "2026-10-02T21:15:18.222Z"
        }
      ],
      "verification": {
        "level": "corroborated",
        "note": "AI-assisted source reading; no human editorial sign-off. This is a bounded historical episode; present activity is not established."
      },
      "timeline": [
        {
          "date": "2024-01-10",
          "text": "Pay protest and subsequent city unrest; government promised correction.",
          "source_ids": [
            "pg-port-moresby-payroll-protest-20240110-abc"
          ]
        },
        {
          "date": "2024-01-16",
          "text": "Prime minister repeated a commitment to reimburse deductions in the next pay run.",
          "source_ids": [
            "pg-port-moresby-payroll-protest-20240110-national"
          ]
        }
      ]
    },
    {
      "id": "de-farm-subsidy-protests-2024",
      "title": "Farm subsidy protests and partial government retreat",
      "country": "DE",
      "country_name": "Germany",
      "region": "Europe",
      "location": {
        "label": "Berlin, Dresden",
        "precision": "multi-location"
      },
      "issues": [
        "Agriculture",
        "Taxes"
      ],
      "start_date": null,
      "start_date_precision": "unknown",
      "end_date": null,
      "status": "unknown",
      "last_verified": "2026-10-02T21:20:26.790Z",
      "last_observed_at": "2024-01-08",
      "summary": "Farmers opposed subsidy cuts. Government diluted its plans on January 4, but nationwide protests continued.",
      "positions": [
        {
          "actor": "German farmers",
          "stance": "support",
          "target": "Retention of agricultural tax relief",
          "claim": "Farmers sought cancellation of both proposed cuts.",
          "source_ids": [
            "de-farm-subsidy-protests-2024-reuters-protest",
            "de-farm-subsidy-protests-2024-reuters-policy"
          ]
        }
      ],
      "intensity": {
        "turnout": {
          "min": null,
          "max": null,
          "qualifier": "No single verified numerical estimate adopted."
        },
        "disruption": "Tractor roadblocks caused traffic jams.",
        "violence": "unknown",
        "source_ids": [
          "de-farm-subsidy-protests-2024-reuters-protest",
          "de-farm-subsidy-protests-2024-reuters-policy"
        ]
      },
      "state_response": [],
      "sources": [
        {
          "id": "de-farm-subsidy-protests-2024-reuters-protest",
          "url": "https://www.reuters.com/world/europe/german-farmers-block-roads-highway-ramps-protest-subsidy-cuts-2024-01-08/",
          "title": "Nationwide German farmer blockades heap pressure on Scholz",
          "publisher": "Reuters",
          "published_at": "2024-01-08",
          "accessed_at": "2026-10-02T21:14:53.028Z"
        },
        {
          "id": "de-farm-subsidy-protests-2024-reuters-policy",
          "url": "https://www.reuters.com/markets/europe/german-coalition-dilutes-2024-subsidy-cuts-after-farmer-backlash-2024-01-04/",
          "title": "German budget savings shrink as farm subsidy cuts delayed",
          "publisher": "Reuters",
          "published_at": "2024-01-04",
          "accessed_at": "2026-10-02T21:14:53.028Z"
        }
      ],
      "verification": {
        "level": "single-source",
        "note": "AI-assisted article review; no independent human editorial sign-off. Two Reuters bodies reviewed via fallback; one publisher. The policy retreat preceded January 8's nationwide action and responded to earlier backlash."
      },
      "timeline": [
        {
          "date": "2024-01-08",
          "text": "Dated report documents this episode; precise onset remains unknown.",
          "source_ids": [
            "de-farm-subsidy-protests-2024-reuters-protest",
            "de-farm-subsidy-protests-2024-reuters-policy"
          ]
        }
      ]
    }
  ]
}
