{
  "schema": "schym-data-story-contract/v1",
  "manifesto": {
    "title": "The Page Must Change Shape: A Schym Data Story Manifesto",
    "version": "1.0",
    "source": "05_qa/SCHYM_DATA_STORY_MANIFESTO.md",
    "source_sha256": "03d9cf49627120e655e32cca68725dbd05ff14932481726d80c398921843e50b"
  },
  "driving_question": "Do far-right music events, protests and violence appear as isolated local events, or do they co-locate and recur as a local activity system—and what can the complete governed Bundestag archive from 2002 to 2025 actually support about alignment with AfD vote shares?",
  "reader_role": "investigator",
  "primary_story_engine": "forensic-timeline",
  "signature_interaction": {
    "name": "County tape",
    "editorial_job": "Select one county and scrub 2013–2024 while its music, protest, violence-coverage and typology states remain synchronized across three map lanes and one trajectory.",
    "necessity": true,
    "static_rationale": null,
    "static_fallback": "The 2024 triptych, full county trajectory matrix, Land aggregate, seven-row Bundestag evidence table, electoral-correlation figure and exact-value tables preserve every critical claim without interaction."
  },
  "persistent_specimen": {
    "type": "county",
    "identity": "One of 400 German counties on fixed 2024 boundaries, selected by the reader or from an authored default.",
    "states": [
      "subculture only",
      "mobilisation only",
      "violence only",
      "multi-channel activity",
      "no recorded activity",
      "violence coverage unavailable"
    ]
  },
  "convenient_explanation": "Music, protest, violence and AfD vote share can be read as interchangeable expressions of one far-right map because all are regionally concentrated.",
  "failure_and_repair": {
    "failure": "The isolated-event explanation weakens where multiple recorded channels co-locate, persist, or follow one another within the same county; the interchangeable-map explanation weakens when electoral correlations change across ballots and attenuate inside Länder.",
    "repair": "Separate observed overlap, temporal sequencing and modeled lag association; then distinguish the seven-event Bundestag archive from the three valid Bundestag/FARAC pairs, change scale explicitly, reconcile the 400-county activity frame and 401-row Bundestag 2025 source to 396 stable regions without duplication, and let readers compare raw with within-Land associations across six unpooled ballots."
  },
  "evidence_boundary": {
    "observed": [
      "FARAC county-year event counts for music and protest",
      "FARAC counseling-center violence counts where coverage exists",
      "annual population and fixed 2024 county boundaries",
      "governed identities for seven Bundestag elections from 2002 to 2025",
      "named-party AfD vote counts and valid-vote denominators for four Bundestag and three European Parliament elections from 2013 to 2025",
      "two governed IP-CURRENT-RESEARCH crosswalks pinned to commit 898c7a56f6076570e677a1ab04f964d950abf8a8",
      "passing Bundestag 2025 source, stable-panel and Land-comparison validation products"
    ],
    "derived": [
      "per-100,000 rates",
      "percentile classes",
      "mutually exclusive county-year states",
      "state transitions and overlap summaries",
      "east-west and single-location sensitivity samples",
      "16-Land annual aggregates and Land-level typology distributions",
      "lossless additive conversion of 400 current FARAC counties and 401 official Bundestag 2025 Kreis rows to the same 396 stable election regions",
      "four national Bundestag AfD shares derived from summed stable-region integer counts",
      "seven Bundestag evidence states: three context-only, one vote-only and three paired",
      "AfD valid-vote shares and six preceding-calendar-year activity pairings across both election families",
      "raw, rank, vote-weighted and within-Land ecological correlations"
    ],
    "modelled": [
      "negative-binomial and Poisson fixed-effects lag associations",
      "binary any-protest sensitivity estimates",
      "descriptive Land-fixed-effect vote-share slopes with HC3 uncertainty and no spatial correction"
    ],
    "proxy": [
      "recorded music events as observable subcultural infrastructure",
      "documented protest and violence as partial measures of activity"
    ],
    "unavailable": [
      "violence counts in uncovered county-years",
      "covert music events not individually disclosed",
      "unrecorded protests and within-county event coordinates",
      "individual voting behavior and mobility between event locations and voter residences",
      "numerical AfD outcomes for Bundestag 2002, 2005 and 2009, for which the party was not on the ballot and the pinned package admits no result route",
      "FARAC activity before 2013, including the 2012 window required to pair Bundestag 2013"
    ],
    "not_identified": [
      "causal effects of concerts on protests or violence",
      "the effect of activism on elections",
      "the 2026 campaign or current activity after 2024"
    ]
  },
  "truth_contract": {
    "primary": "empirical",
    "empirical_boundary": "Geographic concentration, sequencing and electoral co-location are descriptive or associational. Aggregate correlations are ecological, scale-dependent and do not identify causality or individual behavior.",
    "memory_boundary": "No autobiographical memory is used as evidence.",
    "fiction_boundary": "No fictional material enters the analysis."
  },
  "portable_result": {
    "type": "deep-linked local evidence state",
    "artifact_or_state": "Selected county, year, map metric, Bundestag archive event, correlatable ballot, stable election region, activity channel and raw-versus-within-Land mode plus a static profile summary.",
    "url_restorable": true
  },
  "technology_route": {
    "site_shell": "native route inside the existing Schym.de Next.js/React modular monolith",
    "selected_stack": "semantic Server Component shell, a deferred React client island, native SVG, CSS Modules and precomputed JSON",
    "rationale": "The claim needs synchronized maps, yearly state and county lookup, but no client charting dependency, browser database, tiles, WebGL or remote runtime.",
    "rejected_heavier_alternatives": [
      "MapLibre and online tiles",
      "DuckDB-WASM",
      "Canvas/WebGL",
      "Babylon.js or decorative 3D"
    ]
  },
  "mobile_composition": "Three labeled map lanes stack vertically beneath native county, year, measure and region controls; the trajectory wraps to six years per row; the seven-election archive becomes a vertical evidence timeline; and the separate six-ballot rail, Land comparison and electoral panels recompose without page overflow.",
  "accessibility_route": {
    "keyboard": "County select, year slider, measure radios, seven-event Bundestag radiogroup, six-election analytical ballot rail, vote mode, exact-region select and reset control are keyboard operable with visible focus; the archive supports arrow, Home and End keys, and each map exposes one focusable summary rather than 400 tab stops.",
    "screen_reader": "Every figure has a concise summary, SVG title/description and an adjacent exact-value disclosure.",
    "reduced_motion": "State changes occur without animated morphing; authored step controls replace scroll animation.",
    "exact_values": "One CSV per figure plus in-page tables, a seven-row Bundestag availability download and a downloadable corrected analysis panel.",
    "colour_redundancy": "Channel labels, direct values, state abbreviations and hatching for unavailable violence coverage supplement color.",
    "audio_transcript": "not applicable"
  },
  "performance_budget": {
    "initial_js_gzip_kb": 180,
    "heavy_module_gzip_kb": 350,
    "lcp_seconds": 2.5,
    "inp_ms": 200,
    "cls": 0.1,
    "deferred_modules": [
      "county-level interaction after the semantic first frame"
    ]
  },
  "structural_variance": {
    "page_silhouette": "A wide three-lane map stage narrows into a 12-year county tape, opens to a 16-Land comparison, passes through a seven-event, three-state Bundestag evidence timeline and six-ballot electoral-correlation field, then ends at a coefficient instrument and source boundary.",
    "reader_action": "Trace one county through synchronized channels and years.",
    "adjacent_story_difference": "Unlike the demographic atlas, the page is time-synchronized; unlike the political case file, it does not stage prosecution and defence; unlike the aging chartbook, the selected county persists through every evidence state.",
    "grayscale_sameness_test": true
  },
  "evidence_sequence": [
    {
      "stage": "orient",
      "purpose": "Introduce the three recorded channels and the 2013–2024/2026 timing boundary."
    },
    {
      "stage": "commit-or-witness",
      "purpose": "Select a county or accept the authored default and inspect the same place on all three 2024 maps."
    },
    {
      "stage": "prove",
      "purpose": "Show overlap, the full trajectory matrix and state transitions, then recompute the channels at Land scale."
    },
    {
      "stage": "own",
      "purpose": "Carry the selected county across 12 years and compare its path with the national and regional pattern."
    },
    {
      "stage": "audit",
      "purpose": "Expose the lag model, sensitivity checks, source correction, coverage gaps, seven-event Bundestag availability boundary, dual 400/401-to-396 election bridge, six selectable raw-versus-within-Land vote comparisons and independent derived-analysis boundary."
    },
    {
      "stage": "carry",
      "purpose": "Export or deep-link the selected county evidence card and continue to the three related Schym stories."
    }
  ]
}
