GET /api/v1/story-map/edges -- Story Map v1 (wl:4bc012a3d8c1). Only edges that are
human-reviewed AND frozen; never a mined or unreviewed candidate. Each edge carries
edge_type ('similar' | 'context' | 'then_now'), from/to stat keys and labels,
narrative_text, caveat, social_eligible and page_url; then_now edges also carry the two
periods, the rule that fixed the past one, raw and today's-money values, the CPI source
and the definition status. social_eligible (migration 078) is fail-closed and
code-enforced: false for any edge touching story_map.BARRED_STAT_KEYS (PSRA/CSO Frontier
Series/ShareAlike sources per STYLE s7), or touching any stat NOT in
story_map.SOCIAL_ALLOWED_STAT_KEYS (unvetted stats are barred by default), regardless of
the underlying row's own column --
this is the one feed MKT auto-republishes from, so the consumer never has to
cross-reference a markdown doc to know what it may promote. withheld_not_comparable
counts frozen 'similar' edges that check_comparability() did not confirm -- withheld,
never listed as similar.