{
  "schema_version": 2,
  "snapshot_id": "parallax-enriched-5e218184736f",
  "content_hash": "5e218184736fc70876f60300ceeea4a973305a7eb46ade26c65ce967e0225e53",
  "source": "Parallax baseline plus reviewed Cannae research packet",
  "selector_contract": "core.ontology.model.OntologyGraph.select",
  "source_files": [
    {
      "path": "research/cannae/sources.json",
      "sha256": "27d22dc47e98ec6feb13333c4dd25e40db2955da0d6e2d926007099cf4b5cd0a"
    },
    {
      "path": "research/cannae/claims.json",
      "sha256": "59414bb8ada8d9ed6694e4a92228bdc55c9e17e27f141e940225bbe36f1723b0"
    },
    {
      "path": "research/cannae/validations.json",
      "sha256": "132311192a8234a6a7b4cfe914be097075a5594d9a22e69cae8ebe0ae70e3fe1"
    }
  ],
  "nodes": [
    {
      "id": "chapter-variant:alexander:crossing:greek",
      "kind": "chapter_variant",
      "label": "The Hellespont · greek",
      "summary": "The greek perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:crossing",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "greek",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/02-crossing.md"
      }
    },
    {
      "id": "chapter-variant:alexander:crossing:persian",
      "kind": "chapter_variant",
      "label": "The Hellespont · persian",
      "summary": "The persian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:crossing",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "persian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-persian/02-crossing.md"
      }
    },
    {
      "id": "chapter-variant:alexander:death:greek",
      "kind": "chapter_variant",
      "label": "Babylon · greek",
      "summary": "The greek perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:death",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "greek",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/09-death.md"
      }
    },
    {
      "id": "chapter-variant:alexander:death:persian",
      "kind": "chapter_variant",
      "label": "Babylon · persian",
      "summary": "The persian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:death",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "persian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-persian/09-death.md"
      }
    },
    {
      "id": "chapter-variant:alexander:egypt:greek",
      "kind": "chapter_variant",
      "label": "The Edge of the Known World · greek",
      "summary": "The greek perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:egypt",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "greek",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/05-egypt.md"
      }
    },
    {
      "id": "chapter-variant:alexander:egypt:persian",
      "kind": "chapter_variant",
      "label": "The Edge of the Known World · persian",
      "summary": "The persian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:egypt",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "persian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-persian/05-egypt.md"
      }
    },
    {
      "id": "chapter-variant:alexander:gaugamela:greek",
      "kind": "chapter_variant",
      "label": "The Decisive Hour · greek",
      "summary": "The greek perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:gaugamela",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "greek",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/06-gaugamela.md"
      }
    },
    {
      "id": "chapter-variant:alexander:gaugamela:persian",
      "kind": "chapter_variant",
      "label": "The Decisive Hour · persian",
      "summary": "The persian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:gaugamela",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "persian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-persian/06-gaugamela.md"
      }
    },
    {
      "id": "chapter-variant:alexander:granicus:greek",
      "kind": "chapter_variant",
      "label": "The First Battle · greek",
      "summary": "The greek perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:granicus",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "greek",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/03-granicus.md"
      }
    },
    {
      "id": "chapter-variant:alexander:granicus:persian",
      "kind": "chapter_variant",
      "label": "The First Battle · persian",
      "summary": "The persian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:granicus",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "persian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-persian/03-granicus.md"
      }
    },
    {
      "id": "chapter-variant:alexander:india:greek",
      "kind": "chapter_variant",
      "label": "The Army Refuses · greek",
      "summary": "The greek perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:india",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "greek",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/08-india.md"
      }
    },
    {
      "id": "chapter-variant:alexander:india:persian",
      "kind": "chapter_variant",
      "label": "The Army Refuses · persian",
      "summary": "The persian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:india",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "persian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-persian/08-india.md"
      }
    },
    {
      "id": "chapter-variant:alexander:inheritance:greek",
      "kind": "chapter_variant",
      "label": "What Philip Left · greek",
      "summary": "The greek perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:inheritance",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "greek",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/01-inheritance.md"
      }
    },
    {
      "id": "chapter-variant:alexander:inheritance:persian",
      "kind": "chapter_variant",
      "label": "What Philip Left · persian",
      "summary": "The persian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:inheritance",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "persian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-persian/01-inheritance.md"
      }
    },
    {
      "id": "chapter-variant:alexander:issus:greek",
      "kind": "chapter_variant",
      "label": "Darius in the Field · greek",
      "summary": "The greek perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:issus",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "greek",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/04-issus.md"
      }
    },
    {
      "id": "chapter-variant:alexander:issus:persian",
      "kind": "chapter_variant",
      "label": "Darius in the Field · persian",
      "summary": "The persian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:issus",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "persian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-persian/04-issus.md"
      }
    },
    {
      "id": "chapter-variant:alexander:persepolis:greek",
      "kind": "chapter_variant",
      "label": "The Seat of Empire · greek",
      "summary": "The greek perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:persepolis",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "greek",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/07-persepolis.md"
      }
    },
    {
      "id": "chapter-variant:alexander:persepolis:persian",
      "kind": "chapter_variant",
      "label": "The Seat of Empire · persian",
      "summary": "The persian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:persepolis",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "persian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-persian/07-persepolis.md"
      }
    },
    {
      "id": "chapter-variant:alexander:wider-world:greek",
      "kind": "chapter_variant",
      "label": "The Wider World · greek",
      "summary": "The greek perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:wider-world",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "greek",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/10-wider-world.md"
      }
    },
    {
      "id": "chapter-variant:alexander:wider-world:persian",
      "kind": "chapter_variant",
      "label": "The Wider World · persian",
      "summary": "The persian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "alexander",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "chapter_id": "chapter:alexander:wider-world",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "persian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-persian/10-wider-world.md"
      }
    },
    {
      "id": "chapter-variant:andalus:berber-revolt:asturian",
      "kind": "chapter_variant",
      "label": "The Revolt of the Berbers · asturian",
      "summary": "The asturian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "asturian"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:berber-revolt",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "asturian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-asturian/07-berber-revolt.md"
      }
    },
    {
      "id": "chapter-variant:andalus:berber-revolt:umayyad",
      "kind": "chapter_variant",
      "label": "The Revolt of the Berbers · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:berber-revolt",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/07-berber-revolt.md"
      }
    },
    {
      "id": "chapter-variant:andalus:berber-revolt:visigothic",
      "kind": "chapter_variant",
      "label": "The Revolt of the Berbers · visigothic",
      "summary": "The visigothic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "visigothic"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:berber-revolt",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigothic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigothic/07-berber-revolt.md"
      }
    },
    {
      "id": "chapter-variant:andalus:covadonga:asturian",
      "kind": "chapter_variant",
      "label": "Covadonga · asturian",
      "summary": "The asturian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "asturian"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:covadonga",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "asturian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-asturian/04-covadonga.md"
      }
    },
    {
      "id": "chapter-variant:andalus:covadonga:umayyad",
      "kind": "chapter_variant",
      "label": "Covadonga · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:covadonga",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/04-covadonga.md"
      }
    },
    {
      "id": "chapter-variant:andalus:covadonga:visigothic",
      "kind": "chapter_variant",
      "label": "Covadonga · visigothic",
      "summary": "The visigothic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "visigothic"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:covadonga",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigothic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigothic/04-covadonga.md"
      }
    },
    {
      "id": "chapter-variant:andalus:crossing:asturian",
      "kind": "chapter_variant",
      "label": "The Crossing · asturian",
      "summary": "The asturian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "asturian"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:crossing",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "asturian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-asturian/01-crossing.md"
      }
    },
    {
      "id": "chapter-variant:andalus:crossing:umayyad",
      "kind": "chapter_variant",
      "label": "The Crossing · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:crossing",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/01-crossing.md"
      }
    },
    {
      "id": "chapter-variant:andalus:crossing:visigothic",
      "kind": "chapter_variant",
      "label": "The Crossing · visigothic",
      "summary": "The visigothic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "visigothic"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:crossing",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigothic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigothic/01-crossing.md"
      }
    },
    {
      "id": "chapter-variant:andalus:guadalete:asturian",
      "kind": "chapter_variant",
      "label": "The Battle of Guadalete · asturian",
      "summary": "The asturian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "asturian"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:guadalete",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "asturian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-asturian/02-guadalete.md"
      }
    },
    {
      "id": "chapter-variant:andalus:guadalete:umayyad",
      "kind": "chapter_variant",
      "label": "The Battle of Guadalete · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:guadalete",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/02-guadalete.md"
      }
    },
    {
      "id": "chapter-variant:andalus:guadalete:visigothic",
      "kind": "chapter_variant",
      "label": "The Battle of Guadalete · visigothic",
      "summary": "The visigothic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "visigothic"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:guadalete",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigothic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigothic/02-guadalete.md"
      }
    },
    {
      "id": "chapter-variant:andalus:march-into-gaul:asturian",
      "kind": "chapter_variant",
      "label": "The March into Gaul · asturian",
      "summary": "The asturian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "asturian"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:march-into-gaul",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "asturian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-asturian/05-march-into-gaul.md"
      }
    },
    {
      "id": "chapter-variant:andalus:march-into-gaul:umayyad",
      "kind": "chapter_variant",
      "label": "The March into Gaul · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:march-into-gaul",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/05-march-into-gaul.md"
      }
    },
    {
      "id": "chapter-variant:andalus:march-into-gaul:visigothic",
      "kind": "chapter_variant",
      "label": "The March into Gaul · visigothic",
      "summary": "The visigothic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "visigothic"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:march-into-gaul",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigothic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigothic/05-march-into-gaul.md"
      }
    },
    {
      "id": "chapter-variant:andalus:the-refugee:asturian",
      "kind": "chapter_variant",
      "label": "The Refugee · asturian",
      "summary": "The asturian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "asturian"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:the-refugee",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "asturian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-asturian/08-the-refugee.md"
      }
    },
    {
      "id": "chapter-variant:andalus:the-refugee:umayyad",
      "kind": "chapter_variant",
      "label": "The Refugee · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:the-refugee",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/08-the-refugee.md"
      }
    },
    {
      "id": "chapter-variant:andalus:the-refugee:visigothic",
      "kind": "chapter_variant",
      "label": "The Refugee · visigothic",
      "summary": "The visigothic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "visigothic"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:the-refugee",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigothic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigothic/08-the-refugee.md"
      }
    },
    {
      "id": "chapter-variant:andalus:tours:asturian",
      "kind": "chapter_variant",
      "label": "The Road to Tours · asturian",
      "summary": "The asturian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "asturian"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:tours",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "asturian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-asturian/06-tours.md"
      }
    },
    {
      "id": "chapter-variant:andalus:tours:umayyad",
      "kind": "chapter_variant",
      "label": "The Road to Tours · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:tours",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/06-tours.md"
      }
    },
    {
      "id": "chapter-variant:andalus:tours:visigothic",
      "kind": "chapter_variant",
      "label": "The Road to Tours · visigothic",
      "summary": "The visigothic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "visigothic"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:tours",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigothic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigothic/06-tours.md"
      }
    },
    {
      "id": "chapter-variant:andalus:two-spains:asturian",
      "kind": "chapter_variant",
      "label": "Two Spains · asturian",
      "summary": "The asturian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "asturian"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:two-spains",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "asturian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-asturian/09-two-spains.md"
      }
    },
    {
      "id": "chapter-variant:andalus:two-spains:umayyad",
      "kind": "chapter_variant",
      "label": "Two Spains · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:two-spains",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/09-two-spains.md"
      }
    },
    {
      "id": "chapter-variant:andalus:two-spains:visigothic",
      "kind": "chapter_variant",
      "label": "Two Spains · visigothic",
      "summary": "The visigothic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "visigothic"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:two-spains",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigothic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigothic/09-two-spains.md"
      }
    },
    {
      "id": "chapter-variant:andalus:year-of-conquest:asturian",
      "kind": "chapter_variant",
      "label": "The Year of Conquest · asturian",
      "summary": "The asturian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "asturian"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:year-of-conquest",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "asturian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-asturian/03-year-of-conquest.md"
      }
    },
    {
      "id": "chapter-variant:andalus:year-of-conquest:umayyad",
      "kind": "chapter_variant",
      "label": "The Year of Conquest · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:year-of-conquest",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/03-year-of-conquest.md"
      }
    },
    {
      "id": "chapter-variant:andalus:year-of-conquest:visigothic",
      "kind": "chapter_variant",
      "label": "The Year of Conquest · visigothic",
      "summary": "The visigothic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "andalus",
        "visigothic"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "chapter_id": "chapter:andalus:year-of-conquest",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigothic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigothic/03-year-of-conquest.md"
      }
    },
    {
      "id": "chapter-variant:caesar:alesia:gallic",
      "kind": "chapter_variant",
      "label": "The Hill of Alesia · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:alesia",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-gallic/03-alesia.md"
      }
    },
    {
      "id": "chapter-variant:caesar:alesia:optimates",
      "kind": "chapter_variant",
      "label": "The Hill of Alesia · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:alesia",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/03-alesia.md"
      }
    },
    {
      "id": "chapter-variant:caesar:alesia:populares",
      "kind": "chapter_variant",
      "label": "The Hill of Alesia · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:alesia",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/03-alesia.md"
      }
    },
    {
      "id": "chapter-variant:caesar:alexandria:gallic",
      "kind": "chapter_variant",
      "label": "The Ptolemaic Court · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:alexandria",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": null
      }
    },
    {
      "id": "chapter-variant:caesar:alexandria:optimates",
      "kind": "chapter_variant",
      "label": "The Ptolemaic Court · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:alexandria",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/06-alexandria.md"
      }
    },
    {
      "id": "chapter-variant:caesar:alexandria:populares",
      "kind": "chapter_variant",
      "label": "The Ptolemaic Court · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:alexandria",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/06-alexandria.md"
      }
    },
    {
      "id": "chapter-variant:caesar:egyptian-shore:gallic",
      "kind": "chapter_variant",
      "label": "An Egyptian Shore · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:egyptian-shore",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": null
      }
    },
    {
      "id": "chapter-variant:caesar:egyptian-shore:optimates",
      "kind": "chapter_variant",
      "label": "An Egyptian Shore · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:egyptian-shore",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/05-egyptian-shore.md"
      }
    },
    {
      "id": "chapter-variant:caesar:egyptian-shore:populares",
      "kind": "chapter_variant",
      "label": "An Egyptian Shore · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:egyptian-shore",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/05-egyptian-shore.md"
      }
    },
    {
      "id": "chapter-variant:caesar:flight:gallic",
      "kind": "chapter_variant",
      "label": "The Road South · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:flight",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": null
      }
    },
    {
      "id": "chapter-variant:caesar:flight:optimates",
      "kind": "chapter_variant",
      "label": "The Road South · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:flight",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/02-flight.md"
      }
    },
    {
      "id": "chapter-variant:caesar:flight:populares",
      "kind": "chapter_variant",
      "label": "The Road South · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:flight",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/02-flight.md"
      }
    },
    {
      "id": "chapter-variant:caesar:four-triumphs:gallic",
      "kind": "chapter_variant",
      "label": "Four Times Through the City · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:four-triumphs",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-gallic/07-four-triumphs.md"
      }
    },
    {
      "id": "chapter-variant:caesar:four-triumphs:optimates",
      "kind": "chapter_variant",
      "label": "Four Times Through the City · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:four-triumphs",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/07-four-triumphs.md"
      }
    },
    {
      "id": "chapter-variant:caesar:four-triumphs:populares",
      "kind": "chapter_variant",
      "label": "Four Times Through the City · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:four-triumphs",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/07-four-triumphs.md"
      }
    },
    {
      "id": "chapter-variant:caesar:helvetii:gallic",
      "kind": "chapter_variant",
      "label": "The Helvetii Move · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:helvetii",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-gallic/01-helvetii.md"
      }
    },
    {
      "id": "chapter-variant:caesar:helvetii:optimates",
      "kind": "chapter_variant",
      "label": "The Helvetii Move · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:helvetii",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/01-helvetii.md"
      }
    },
    {
      "id": "chapter-variant:caesar:helvetii:populares",
      "kind": "chapter_variant",
      "label": "The Helvetii Move · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:helvetii",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/01-helvetii.md"
      }
    },
    {
      "id": "chapter-variant:caesar:ides:gallic",
      "kind": "chapter_variant",
      "label": "March Fifteenth · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:ides",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-gallic/10-ides.md"
      }
    },
    {
      "id": "chapter-variant:caesar:ides:optimates",
      "kind": "chapter_variant",
      "label": "March Fifteenth · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:ides",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/10-ides.md"
      }
    },
    {
      "id": "chapter-variant:caesar:ides:populares",
      "kind": "chapter_variant",
      "label": "March Fifteenth · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:ides",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/10-ides.md"
      }
    },
    {
      "id": "chapter-variant:caesar:lupercalia:gallic",
      "kind": "chapter_variant",
      "label": "The Festival of Lupercus · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:lupercalia",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": null
      }
    },
    {
      "id": "chapter-variant:caesar:lupercalia:optimates",
      "kind": "chapter_variant",
      "label": "The Festival of Lupercus · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:lupercalia",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/09-lupercalia.md"
      }
    },
    {
      "id": "chapter-variant:caesar:lupercalia:populares",
      "kind": "chapter_variant",
      "label": "The Festival of Lupercus · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:lupercalia",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/09-lupercalia.md"
      }
    },
    {
      "id": "chapter-variant:caesar:open-city:gallic",
      "kind": "chapter_variant",
      "label": "The Open City · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:open-city",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": null
      }
    },
    {
      "id": "chapter-variant:caesar:open-city:optimates",
      "kind": "chapter_variant",
      "label": "The Open City · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:open-city",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/03-open-city.md"
      }
    },
    {
      "id": "chapter-variant:caesar:open-city:populares",
      "kind": "chapter_variant",
      "label": "The Open City · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:open-city",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/03-open-city.md"
      }
    },
    {
      "id": "chapter-variant:caesar:pharsalus:gallic",
      "kind": "chapter_variant",
      "label": "The Plain of Thessaly · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:pharsalus",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": null
      }
    },
    {
      "id": "chapter-variant:caesar:pharsalus:optimates",
      "kind": "chapter_variant",
      "label": "The Plain of Thessaly · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:pharsalus",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/04-pharsalus.md"
      }
    },
    {
      "id": "chapter-variant:caesar:pharsalus:populares",
      "kind": "chapter_variant",
      "label": "The Plain of Thessaly · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:pharsalus",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/04-pharsalus.md"
      }
    },
    {
      "id": "chapter-variant:caesar:rubicon:gallic",
      "kind": "chapter_variant",
      "label": "One River · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:rubicon",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": null
      }
    },
    {
      "id": "chapter-variant:caesar:rubicon:optimates",
      "kind": "chapter_variant",
      "label": "One River · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:rubicon",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/01-rubicon.md"
      }
    },
    {
      "id": "chapter-variant:caesar:rubicon:populares",
      "kind": "chapter_variant",
      "label": "One River · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:rubicon",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/01-rubicon.md"
      }
    },
    {
      "id": "chapter-variant:caesar:width-of-gaul:gallic",
      "kind": "chapter_variant",
      "label": "The Width of Gaul · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:width-of-gaul",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-gallic/02-width-of-gaul.md"
      }
    },
    {
      "id": "chapter-variant:caesar:width-of-gaul:optimates",
      "kind": "chapter_variant",
      "label": "The Width of Gaul · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:width-of-gaul",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/02-width-of-gaul.md"
      }
    },
    {
      "id": "chapter-variant:caesar:width-of-gaul:populares",
      "kind": "chapter_variant",
      "label": "The Width of Gaul · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:width-of-gaul",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/02-width-of-gaul.md"
      }
    },
    {
      "id": "chapter-variant:caesar:without-end:gallic",
      "kind": "chapter_variant",
      "label": "Without Term · gallic",
      "summary": "The gallic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:without-end",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": null
      }
    },
    {
      "id": "chapter-variant:caesar:without-end:optimates",
      "kind": "chapter_variant",
      "label": "Without Term · optimates",
      "summary": "The optimates perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:without-end",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-optimates/08-without-end.md"
      }
    },
    {
      "id": "chapter-variant:caesar:without-end:populares",
      "kind": "chapter_variant",
      "label": "Without Term · populares",
      "summary": "The populares perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "chapter_id": "chapter:caesar:without-end",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/08-without-end.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:aachen:frankish",
      "kind": "chapter_variant",
      "label": "The New Rome · frankish",
      "summary": "The frankish perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:aachen",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "frankish",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/05-aachen.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:aachen:saxon",
      "kind": "chapter_variant",
      "label": "The New Rome · saxon",
      "summary": "The saxon perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "saxon"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:aachen",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "saxon",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-saxon/05-aachen.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:aachen:umayyad",
      "kind": "chapter_variant",
      "label": "The New Rome · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "umayyad"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:aachen",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-umayyad/05-aachen.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:coronation:frankish",
      "kind": "chapter_variant",
      "label": "Christmas 800 · frankish",
      "summary": "The frankish perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:coronation",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "frankish",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/06-coronation.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:coronation:saxon",
      "kind": "chapter_variant",
      "label": "Christmas 800 · saxon",
      "summary": "The saxon perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "saxon"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:coronation",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "saxon",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-saxon/06-coronation.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:coronation:umayyad",
      "kind": "chapter_variant",
      "label": "Christmas 800 · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "umayyad"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:coronation",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-umayyad/06-coronation.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:death-legacy:frankish",
      "kind": "chapter_variant",
      "label": "The Unfinished Empire · frankish",
      "summary": "The frankish perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:death-legacy",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "frankish",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/09-death-legacy.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:death-legacy:saxon",
      "kind": "chapter_variant",
      "label": "The Unfinished Empire · saxon",
      "summary": "The saxon perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "saxon"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:death-legacy",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "saxon",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-saxon/09-death-legacy.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:death-legacy:umayyad",
      "kind": "chapter_variant",
      "label": "The Unfinished Empire · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "umayyad"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:death-legacy",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-umayyad/09-death-legacy.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:elephant:frankish",
      "kind": "chapter_variant",
      "label": "The Elephant · frankish",
      "summary": "The frankish perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:elephant",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "frankish",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/08-elephant.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:elephant:saxon",
      "kind": "chapter_variant",
      "label": "The Elephant · saxon",
      "summary": "The saxon perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "saxon"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:elephant",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "saxon",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-saxon/08-elephant.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:elephant:umayyad",
      "kind": "chapter_variant",
      "label": "The Elephant · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "umayyad"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:elephant",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-umayyad/08-elephant.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:inheritance:frankish",
      "kind": "chapter_variant",
      "label": "The Inheritance · frankish",
      "summary": "The frankish perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:inheritance",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "frankish",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/01-inheritance.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:inheritance:saxon",
      "kind": "chapter_variant",
      "label": "The Inheritance · saxon",
      "summary": "The saxon perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "saxon"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:inheritance",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "saxon",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-saxon/01-inheritance.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:inheritance:umayyad",
      "kind": "chapter_variant",
      "label": "The Inheritance · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "umayyad"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:inheritance",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-umayyad/01-inheritance.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:march-system:frankish",
      "kind": "chapter_variant",
      "label": "The Marches · frankish",
      "summary": "The frankish perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:march-system",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "frankish",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/07-march-system.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:march-system:saxon",
      "kind": "chapter_variant",
      "label": "The Marches · saxon",
      "summary": "The saxon perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "saxon"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:march-system",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "saxon",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-saxon/07-march-system.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:march-system:umayyad",
      "kind": "chapter_variant",
      "label": "The Marches · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "umayyad"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:march-system",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-umayyad/07-march-system.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:roncevaux:frankish",
      "kind": "chapter_variant",
      "label": "Roncèsvaux · frankish",
      "summary": "The frankish perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:roncevaux",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "frankish",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/02-roncevaux.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:roncevaux:saxon",
      "kind": "chapter_variant",
      "label": "Roncèsvaux · saxon",
      "summary": "The saxon perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "saxon"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:roncevaux",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "saxon",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-saxon/02-roncevaux.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:roncevaux:umayyad",
      "kind": "chapter_variant",
      "label": "Roncèsvaux · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "umayyad"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:roncevaux",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-umayyad/02-roncevaux.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:saxon-wars:frankish",
      "kind": "chapter_variant",
      "label": "The Long War · frankish",
      "summary": "The frankish perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:saxon-wars",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "frankish",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/03-saxon-wars.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:saxon-wars:saxon",
      "kind": "chapter_variant",
      "label": "The Long War · saxon",
      "summary": "The saxon perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "saxon"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:saxon-wars",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "saxon",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-saxon/03-saxon-wars.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:saxon-wars:umayyad",
      "kind": "chapter_variant",
      "label": "The Long War · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "umayyad"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:saxon-wars",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-umayyad/03-saxon-wars.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:verden:frankish",
      "kind": "chapter_variant",
      "label": "Verden · frankish",
      "summary": "The frankish perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:verden",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "frankish",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/04-verden.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:verden:saxon",
      "kind": "chapter_variant",
      "label": "Verden · saxon",
      "summary": "The saxon perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "saxon"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:verden",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "saxon",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-saxon/04-verden.md"
      }
    },
    {
      "id": "chapter-variant:charlemagne:verden:umayyad",
      "kind": "chapter_variant",
      "label": "Verden · umayyad",
      "summary": "The umayyad perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "charlemagne",
        "umayyad"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "chapter_id": "chapter:charlemagne:verden",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-umayyad/04-verden.md"
      }
    },
    {
      "id": "chapter-variant:crusades:antioch-siege:byzantine",
      "kind": "chapter_variant",
      "label": "Eight Months · byzantine",
      "summary": "The byzantine perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "byzantine"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:antioch-siege",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "byzantine",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-byzantine/05-antioch-siege.md"
      }
    },
    {
      "id": "chapter-variant:crusades:antioch-siege:crusader",
      "kind": "chapter_variant",
      "label": "Eight Months · crusader",
      "summary": "The crusader perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:antioch-siege",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "crusader",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/05-antioch-siege.md"
      }
    },
    {
      "id": "chapter-variant:crusades:antioch-siege:fatimid",
      "kind": "chapter_variant",
      "label": "Eight Months · fatimid",
      "summary": "The fatimid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "fatimid"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:antioch-siege",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "fatimid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-fatimid/05-antioch-siege.md"
      }
    },
    {
      "id": "chapter-variant:crusades:clermont:byzantine",
      "kind": "chapter_variant",
      "label": "Deus Vult · byzantine",
      "summary": "The byzantine perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "byzantine"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:clermont",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "byzantine",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-byzantine/01-clermont.md"
      }
    },
    {
      "id": "chapter-variant:crusades:clermont:crusader",
      "kind": "chapter_variant",
      "label": "Deus Vult · crusader",
      "summary": "The crusader perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:clermont",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "crusader",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/01-clermont.md"
      }
    },
    {
      "id": "chapter-variant:crusades:clermont:fatimid",
      "kind": "chapter_variant",
      "label": "Deus Vult · fatimid",
      "summary": "The fatimid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "fatimid"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:clermont",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "fatimid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-fatimid/01-clermont.md"
      }
    },
    {
      "id": "chapter-variant:crusades:constantinople:byzantine",
      "kind": "chapter_variant",
      "label": "The Oaths · byzantine",
      "summary": "The byzantine perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "byzantine"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:constantinople",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "byzantine",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-byzantine/03-constantinople.md"
      }
    },
    {
      "id": "chapter-variant:crusades:constantinople:crusader",
      "kind": "chapter_variant",
      "label": "The Oaths · crusader",
      "summary": "The crusader perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:constantinople",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "crusader",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/03-constantinople.md"
      }
    },
    {
      "id": "chapter-variant:crusades:constantinople:fatimid",
      "kind": "chapter_variant",
      "label": "The Oaths · fatimid",
      "summary": "The fatimid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "fatimid"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:constantinople",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "fatimid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-fatimid/03-constantinople.md"
      }
    },
    {
      "id": "chapter-variant:crusades:dorylaeum:byzantine",
      "kind": "chapter_variant",
      "label": "The Line Holds · byzantine",
      "summary": "The byzantine perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "byzantine"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:dorylaeum",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "byzantine",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-byzantine/04-dorylaeum.md"
      }
    },
    {
      "id": "chapter-variant:crusades:dorylaeum:crusader",
      "kind": "chapter_variant",
      "label": "The Line Holds · crusader",
      "summary": "The crusader perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:dorylaeum",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "crusader",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/04-dorylaeum.md"
      }
    },
    {
      "id": "chapter-variant:crusades:dorylaeum:fatimid",
      "kind": "chapter_variant",
      "label": "The Line Holds · fatimid",
      "summary": "The fatimid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "fatimid"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:dorylaeum",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "fatimid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-fatimid/04-dorylaeum.md"
      }
    },
    {
      "id": "chapter-variant:crusades:holy-lance:byzantine",
      "kind": "chapter_variant",
      "label": "The Vision · byzantine",
      "summary": "The byzantine perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "byzantine"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:holy-lance",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "byzantine",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-byzantine/06-holy-lance.md"
      }
    },
    {
      "id": "chapter-variant:crusades:holy-lance:crusader",
      "kind": "chapter_variant",
      "label": "The Vision · crusader",
      "summary": "The crusader perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:holy-lance",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "crusader",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/06-holy-lance.md"
      }
    },
    {
      "id": "chapter-variant:crusades:holy-lance:fatimid",
      "kind": "chapter_variant",
      "label": "The Vision · fatimid",
      "summary": "The fatimid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "fatimid"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:holy-lance",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "fatimid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-fatimid/06-holy-lance.md"
      }
    },
    {
      "id": "chapter-variant:crusades:jerusalem-walls:byzantine",
      "kind": "chapter_variant",
      "label": "The Assault · byzantine",
      "summary": "The byzantine perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "byzantine"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:jerusalem-walls",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "byzantine",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-byzantine/08-jerusalem-walls.md"
      }
    },
    {
      "id": "chapter-variant:crusades:jerusalem-walls:crusader",
      "kind": "chapter_variant",
      "label": "The Assault · crusader",
      "summary": "The crusader perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:jerusalem-walls",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "crusader",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/08-jerusalem-walls.md"
      }
    },
    {
      "id": "chapter-variant:crusades:jerusalem-walls:fatimid",
      "kind": "chapter_variant",
      "label": "The Assault · fatimid",
      "summary": "The fatimid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "fatimid"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:jerusalem-walls",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "fatimid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-fatimid/08-jerusalem-walls.md"
      }
    },
    {
      "id": "chapter-variant:crusades:maarra:byzantine",
      "kind": "chapter_variant",
      "label": "The Road South · byzantine",
      "summary": "The byzantine perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "byzantine"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:maarra",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "byzantine",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-byzantine/07-maarra.md"
      }
    },
    {
      "id": "chapter-variant:crusades:maarra:crusader",
      "kind": "chapter_variant",
      "label": "The Road South · crusader",
      "summary": "The crusader perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:maarra",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "crusader",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/07-maarra.md"
      }
    },
    {
      "id": "chapter-variant:crusades:maarra:fatimid",
      "kind": "chapter_variant",
      "label": "The Road South · fatimid",
      "summary": "The fatimid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "fatimid"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:maarra",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "fatimid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-fatimid/07-maarra.md"
      }
    },
    {
      "id": "chapter-variant:crusades:peoples-crusade:byzantine",
      "kind": "chapter_variant",
      "label": "The Forerunners · byzantine",
      "summary": "The byzantine perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "byzantine"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:peoples-crusade",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "byzantine",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-byzantine/02-peoples-crusade.md"
      }
    },
    {
      "id": "chapter-variant:crusades:peoples-crusade:crusader",
      "kind": "chapter_variant",
      "label": "The Forerunners · crusader",
      "summary": "The crusader perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:peoples-crusade",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "crusader",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/02-peoples-crusade.md"
      }
    },
    {
      "id": "chapter-variant:crusades:peoples-crusade:fatimid",
      "kind": "chapter_variant",
      "label": "The Forerunners · fatimid",
      "summary": "The fatimid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "fatimid"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:peoples-crusade",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "fatimid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-fatimid/02-peoples-crusade.md"
      }
    },
    {
      "id": "chapter-variant:crusades:sack:byzantine",
      "kind": "chapter_variant",
      "label": "What Was Done · byzantine",
      "summary": "The byzantine perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "byzantine"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:sack",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "byzantine",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-byzantine/09-sack.md"
      }
    },
    {
      "id": "chapter-variant:crusades:sack:crusader",
      "kind": "chapter_variant",
      "label": "What Was Done · crusader",
      "summary": "The crusader perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:sack",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "crusader",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/09-sack.md"
      }
    },
    {
      "id": "chapter-variant:crusades:sack:fatimid",
      "kind": "chapter_variant",
      "label": "What Was Done · fatimid",
      "summary": "The fatimid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "crusades",
        "fatimid"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "chapter_id": "chapter:crusades:sack",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "fatimid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-fatimid/09-sack.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:cannae:carthaginian",
      "kind": "chapter_variant",
      "label": "Cannae · carthaginian",
      "summary": "The carthaginian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:cannae",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "carthaginian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/06-cannae.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:cannae:numidian",
      "kind": "chapter_variant",
      "label": "Cannae · numidian",
      "summary": "The numidian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "numidian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:cannae",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "numidian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-numidian/06-cannae.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:cannae:roman",
      "kind": "chapter_variant",
      "label": "Cannae · roman",
      "summary": "The roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "roman"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:cannae",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-roman/06-cannae.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:scipios-gambit:carthaginian",
      "kind": "chapter_variant",
      "label": "Scipio Crosses · carthaginian",
      "summary": "The carthaginian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:scipios-gambit",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "carthaginian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/08-scipio-crosses.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:scipios-gambit:numidian",
      "kind": "chapter_variant",
      "label": "Scipio Crosses · numidian",
      "summary": "The numidian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "numidian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:scipios-gambit",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "numidian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-numidian/08-scipio-crosses.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:scipios-gambit:roman",
      "kind": "chapter_variant",
      "label": "Scipio Crosses · roman",
      "summary": "The roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "roman"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:scipios-gambit",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-roman/08-scipio-crosses.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-fog:carthaginian",
      "kind": "chapter_variant",
      "label": "The Fog · carthaginian",
      "summary": "The carthaginian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-fog",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "carthaginian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/05-the-fog.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-fog:numidian",
      "kind": "chapter_variant",
      "label": "The Fog · numidian",
      "summary": "The numidian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "numidian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-fog",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "numidian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-numidian/05-the-fog.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-fog:roman",
      "kind": "chapter_variant",
      "label": "The Fog · roman",
      "summary": "The roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "roman"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-fog",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-roman/05-the-fog.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-long-stay:carthaginian",
      "kind": "chapter_variant",
      "label": "The Long Stay · carthaginian",
      "summary": "The carthaginian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-long-stay",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "carthaginian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/07-the-long-stay.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-long-stay:numidian",
      "kind": "chapter_variant",
      "label": "The Long Stay · numidian",
      "summary": "The numidian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "numidian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-long-stay",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "numidian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-numidian/07-the-long-stay.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-long-stay:roman",
      "kind": "chapter_variant",
      "label": "The Long Stay · roman",
      "summary": "The roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "roman"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-long-stay",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-roman/07-the-long-stay.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-oath:carthaginian",
      "kind": "chapter_variant",
      "label": "The Oath · carthaginian",
      "summary": "The carthaginian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-oath",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "carthaginian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/01-the-oath.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-oath:numidian",
      "kind": "chapter_variant",
      "label": "The Oath · numidian",
      "summary": "The numidian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "numidian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-oath",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "numidian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-numidian/01-the-oath.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-oath:roman",
      "kind": "chapter_variant",
      "label": "The Oath · roman",
      "summary": "The roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "roman"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-oath",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-roman/01-the-oath.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-pass:carthaginian",
      "kind": "chapter_variant",
      "label": "The Pass · carthaginian",
      "summary": "The carthaginian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-pass",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "carthaginian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/03-the-pass.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-pass:numidian",
      "kind": "chapter_variant",
      "label": "The Pass · numidian",
      "summary": "The numidian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "numidian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-pass",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "numidian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-numidian/03-the-pass.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-pass:roman",
      "kind": "chapter_variant",
      "label": "The Pass · roman",
      "summary": "The roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "roman"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-pass",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-roman/03-the-pass.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-river:carthaginian",
      "kind": "chapter_variant",
      "label": "The River · carthaginian",
      "summary": "The carthaginian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-river",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "carthaginian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/02-the-river.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-river:numidian",
      "kind": "chapter_variant",
      "label": "The River · numidian",
      "summary": "The numidian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "numidian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-river",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "numidian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-numidian/02-the-river.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:the-river:roman",
      "kind": "chapter_variant",
      "label": "The River · roman",
      "summary": "The roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "roman"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:the-river",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-roman/02-the-river.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:trebia:carthaginian",
      "kind": "chapter_variant",
      "label": "Trebia · carthaginian",
      "summary": "The carthaginian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:trebia",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "carthaginian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/04-trebia.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:trebia:numidian",
      "kind": "chapter_variant",
      "label": "Trebia · numidian",
      "summary": "The numidian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "numidian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:trebia",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "numidian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-numidian/04-trebia.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:trebia:roman",
      "kind": "chapter_variant",
      "label": "Trebia · roman",
      "summary": "The roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "roman"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:trebia",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-roman/04-trebia.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:zama:carthaginian",
      "kind": "chapter_variant",
      "label": "Zama · carthaginian",
      "summary": "The carthaginian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:zama",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "carthaginian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/09-zama.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:zama:numidian",
      "kind": "chapter_variant",
      "label": "Zama · numidian",
      "summary": "The numidian perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "numidian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:zama",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "numidian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-numidian/09-zama.md"
      }
    },
    {
      "id": "chapter-variant:hannibal:zama:roman",
      "kind": "chapter_variant",
      "label": "Zama · roman",
      "summary": "The roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "hannibal",
        "roman"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "chapter_id": "chapter:hannibal:zama",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-roman/09-zama.md"
      }
    },
    {
      "id": "chapter-variant:mongols:four-kingdoms:islamic",
      "kind": "chapter_variant",
      "label": "Four Kingdoms, One Memory · islamic",
      "summary": "The islamic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "islamic"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:four-kingdoms",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "islamic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-islamic/09-four-kingdoms.md"
      }
    },
    {
      "id": "chapter-variant:mongols:four-kingdoms:jin",
      "kind": "chapter_variant",
      "label": "Four Kingdoms, One Memory · jin",
      "summary": "The jin perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "jin"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:four-kingdoms",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "jin",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-jin/09-four-kingdoms.md"
      }
    },
    {
      "id": "chapter-variant:mongols:four-kingdoms:mongol",
      "kind": "chapter_variant",
      "label": "Four Kingdoms, One Memory · mongol",
      "summary": "The mongol perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:four-kingdoms",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mongol",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/09-four-kingdoms.md"
      }
    },
    {
      "id": "chapter-variant:mongols:night-caliphate-ended:islamic",
      "kind": "chapter_variant",
      "label": "The Night the Caliphate Ended · islamic",
      "summary": "The islamic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "islamic"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:night-caliphate-ended",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "islamic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-islamic/07-night-caliphate-ended.md"
      }
    },
    {
      "id": "chapter-variant:mongols:night-caliphate-ended:jin",
      "kind": "chapter_variant",
      "label": "The Night the Caliphate Ended · jin",
      "summary": "The jin perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "jin"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:night-caliphate-ended",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "jin",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-jin/07-night-caliphate-ended.md"
      }
    },
    {
      "id": "chapter-variant:mongols:night-caliphate-ended:mongol",
      "kind": "chapter_variant",
      "label": "The Night the Caliphate Ended · mongol",
      "summary": "The mongol perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:night-caliphate-ended",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mongol",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/07-night-caliphate-ended.md"
      }
    },
    {
      "id": "chapter-variant:mongols:river-of-bones:islamic",
      "kind": "chapter_variant",
      "label": "The River of Bones · islamic",
      "summary": "The islamic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "islamic"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:river-of-bones",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "islamic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-islamic/04-river-of-bones.md"
      }
    },
    {
      "id": "chapter-variant:mongols:river-of-bones:jin",
      "kind": "chapter_variant",
      "label": "The River of Bones · jin",
      "summary": "The jin perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "jin"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:river-of-bones",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "jin",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-jin/04-river-of-bones.md"
      }
    },
    {
      "id": "chapter-variant:mongols:river-of-bones:mongol",
      "kind": "chapter_variant",
      "label": "The River of Bones · mongol",
      "summary": "The mongol perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:river-of-bones",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mongol",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/04-river-of-bones.md"
      }
    },
    {
      "id": "chapter-variant:mongols:road-to-baghdad:islamic",
      "kind": "chapter_variant",
      "label": "The Road to Baghdad · islamic",
      "summary": "The islamic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "islamic"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:road-to-baghdad",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "islamic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-islamic/06-road-to-baghdad.md"
      }
    },
    {
      "id": "chapter-variant:mongols:road-to-baghdad:jin",
      "kind": "chapter_variant",
      "label": "The Road to Baghdad · jin",
      "summary": "The jin perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "jin"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:road-to-baghdad",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "jin",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-jin/06-road-to-baghdad.md"
      }
    },
    {
      "id": "chapter-variant:mongols:road-to-baghdad:mongol",
      "kind": "chapter_variant",
      "label": "The Road to Baghdad · mongol",
      "summary": "The mongol perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:road-to-baghdad",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mongol",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/06-road-to-baghdad.md"
      }
    },
    {
      "id": "chapter-variant:mongols:spring-of-goliath:islamic",
      "kind": "chapter_variant",
      "label": "The Spring of Goliath · islamic",
      "summary": "The islamic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "islamic"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:spring-of-goliath",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "islamic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-islamic/08-spring-of-goliath.md"
      }
    },
    {
      "id": "chapter-variant:mongols:spring-of-goliath:jin",
      "kind": "chapter_variant",
      "label": "The Spring of Goliath · jin",
      "summary": "The jin perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "jin"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:spring-of-goliath",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "jin",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-jin/08-spring-of-goliath.md"
      }
    },
    {
      "id": "chapter-variant:mongols:spring-of-goliath:mongol",
      "kind": "chapter_variant",
      "label": "The Spring of Goliath · mongol",
      "summary": "The mongol perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:spring-of-goliath",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mongol",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/08-spring-of-goliath.md"
      }
    },
    {
      "id": "chapter-variant:mongols:two-battles-two-days:islamic",
      "kind": "chapter_variant",
      "label": "Two Battles, Two Days · islamic",
      "summary": "The islamic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "islamic"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:two-battles-two-days",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "islamic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-islamic/05-two-battles-two-days.md"
      }
    },
    {
      "id": "chapter-variant:mongols:two-battles-two-days:jin",
      "kind": "chapter_variant",
      "label": "Two Battles, Two Days · jin",
      "summary": "The jin perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "jin"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:two-battles-two-days",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "jin",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-jin/05-two-battles-two-days.md"
      }
    },
    {
      "id": "chapter-variant:mongols:two-battles-two-days:mongol",
      "kind": "chapter_variant",
      "label": "Two Battles, Two Days · mongol",
      "summary": "The mongol perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:two-battles-two-days",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mongol",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/05-two-battles-two-days.md"
      }
    },
    {
      "id": "chapter-variant:mongols:wall-does-not-hold:islamic",
      "kind": "chapter_variant",
      "label": "The Wall Does Not Hold · islamic",
      "summary": "The islamic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "islamic"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:wall-does-not-hold",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "islamic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-islamic/02-wall-does-not-hold.md"
      }
    },
    {
      "id": "chapter-variant:mongols:wall-does-not-hold:jin",
      "kind": "chapter_variant",
      "label": "The Wall Does Not Hold · jin",
      "summary": "The jin perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "jin"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:wall-does-not-hold",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "jin",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-jin/02-wall-does-not-hold.md"
      }
    },
    {
      "id": "chapter-variant:mongols:wall-does-not-hold:mongol",
      "kind": "chapter_variant",
      "label": "The Wall Does Not Hold · mongol",
      "summary": "The mongol perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:wall-does-not-hold",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mongol",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/02-wall-does-not-hold.md"
      }
    },
    {
      "id": "chapter-variant:mongols:white-banner:islamic",
      "kind": "chapter_variant",
      "label": "The White Banner · islamic",
      "summary": "The islamic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "islamic"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:white-banner",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "islamic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-islamic/01-white-banner.md"
      }
    },
    {
      "id": "chapter-variant:mongols:white-banner:jin",
      "kind": "chapter_variant",
      "label": "The White Banner · jin",
      "summary": "The jin perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "jin"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:white-banner",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "jin",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-jin/01-white-banner.md"
      }
    },
    {
      "id": "chapter-variant:mongols:white-banner:mongol",
      "kind": "chapter_variant",
      "label": "The White Banner · mongol",
      "summary": "The mongol perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:white-banner",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mongol",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/01-white-banner.md"
      }
    },
    {
      "id": "chapter-variant:mongols:world-conqueror-turns-west:islamic",
      "kind": "chapter_variant",
      "label": "The World Conqueror Turns West · islamic",
      "summary": "The islamic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "islamic"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:world-conqueror-turns-west",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "islamic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-islamic/03-world-conqueror-turns-west.md"
      }
    },
    {
      "id": "chapter-variant:mongols:world-conqueror-turns-west:jin",
      "kind": "chapter_variant",
      "label": "The World Conqueror Turns West · jin",
      "summary": "The jin perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "jin"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:world-conqueror-turns-west",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "jin",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-jin/03-world-conqueror-turns-west.md"
      }
    },
    {
      "id": "chapter-variant:mongols:world-conqueror-turns-west:mongol",
      "kind": "chapter_variant",
      "label": "The World Conqueror Turns West · mongol",
      "summary": "The mongol perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "chapter_id": "chapter:mongols:world-conqueror-turns-west",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mongol",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/03-world-conqueror-turns-west.md"
      }
    },
    {
      "id": "chapter-variant:rome:adrianople:hunnic",
      "kind": "chapter_variant",
      "label": "The Battle of Adrianople · hunnic",
      "summary": "The hunnic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "hunnic"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:adrianople",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "hunnic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-hunnic/02-adrianople.md"
      }
    },
    {
      "id": "chapter-variant:rome:adrianople:visigoth",
      "kind": "chapter_variant",
      "label": "The Battle of Adrianople · visigoth",
      "summary": "The visigoth perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "visigoth"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:adrianople",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigoth",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigoth/02-adrianople.md"
      }
    },
    {
      "id": "chapter-variant:rome:adrianople:western_roman",
      "kind": "chapter_variant",
      "label": "The Battle of Adrianople · western_roman",
      "summary": "The western_roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:adrianople",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "western_roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/02-adrianople.md"
      }
    },
    {
      "id": "chapter-variant:rome:attila-gaul:hunnic",
      "kind": "chapter_variant",
      "label": "The Scourge of God · hunnic",
      "summary": "The hunnic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "hunnic"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:attila-gaul",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "hunnic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-hunnic/05-attila-gaul.md"
      }
    },
    {
      "id": "chapter-variant:rome:attila-gaul:visigoth",
      "kind": "chapter_variant",
      "label": "The Scourge of God · visigoth",
      "summary": "The visigoth perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "visigoth"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:attila-gaul",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigoth",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigoth/05-attila-gaul.md"
      }
    },
    {
      "id": "chapter-variant:rome:attila-gaul:western_roman",
      "kind": "chapter_variant",
      "label": "The Scourge of God · western_roman",
      "summary": "The western_roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:attila-gaul",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "western_roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/05-attila-gaul.md"
      }
    },
    {
      "id": "chapter-variant:rome:gothic-shore:hunnic",
      "kind": "chapter_variant",
      "label": "The Gothic Shore · hunnic",
      "summary": "The hunnic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "hunnic"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:gothic-shore",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "hunnic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-hunnic/01-gothic-shore.md"
      }
    },
    {
      "id": "chapter-variant:rome:gothic-shore:visigoth",
      "kind": "chapter_variant",
      "label": "The Gothic Shore · visigoth",
      "summary": "The visigoth perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "visigoth"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:gothic-shore",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigoth",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigoth/01-gothic-shore.md"
      }
    },
    {
      "id": "chapter-variant:rome:gothic-shore:western_roman",
      "kind": "chapter_variant",
      "label": "The Gothic Shore · western_roman",
      "summary": "The western_roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:gothic-shore",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "western_roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/01-gothic-shore.md"
      }
    },
    {
      "id": "chapter-variant:rome:romulus-augustulus:hunnic",
      "kind": "chapter_variant",
      "label": "September 476 · hunnic",
      "summary": "The hunnic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "hunnic"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:romulus-augustulus",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "hunnic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-hunnic/08-romulus-augustulus.md"
      }
    },
    {
      "id": "chapter-variant:rome:romulus-augustulus:visigoth",
      "kind": "chapter_variant",
      "label": "September 476 · visigoth",
      "summary": "The visigoth perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "visigoth"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:romulus-augustulus",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigoth",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigoth/08-romulus-augustulus.md"
      }
    },
    {
      "id": "chapter-variant:rome:romulus-augustulus:western_roman",
      "kind": "chapter_variant",
      "label": "September 476 · western_roman",
      "summary": "The western_roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:romulus-augustulus",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "western_roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/08-romulus-augustulus.md"
      }
    },
    {
      "id": "chapter-variant:rome:sack-of-rome-410:hunnic",
      "kind": "chapter_variant",
      "label": "The Eternal City Burns · hunnic",
      "summary": "The hunnic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "hunnic"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:sack-of-rome-410",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "hunnic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-hunnic/04-sack-of-rome-410.md"
      }
    },
    {
      "id": "chapter-variant:rome:sack-of-rome-410:visigoth",
      "kind": "chapter_variant",
      "label": "The Eternal City Burns · visigoth",
      "summary": "The visigoth perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "visigoth"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:sack-of-rome-410",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigoth",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigoth/04-sack-of-rome-410.md"
      }
    },
    {
      "id": "chapter-variant:rome:sack-of-rome-410:western_roman",
      "kind": "chapter_variant",
      "label": "The Eternal City Burns · western_roman",
      "summary": "The western_roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:sack-of-rome-410",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "western_roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/04-sack-of-rome-410.md"
      }
    },
    {
      "id": "chapter-variant:rome:stilicho:hunnic",
      "kind": "chapter_variant",
      "label": "The General Who Held It Together · hunnic",
      "summary": "The hunnic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "hunnic"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:stilicho",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "hunnic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-hunnic/03-stilicho.md"
      }
    },
    {
      "id": "chapter-variant:rome:stilicho:visigoth",
      "kind": "chapter_variant",
      "label": "The General Who Held It Together · visigoth",
      "summary": "The visigoth perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "visigoth"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:stilicho",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigoth",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigoth/03-stilicho.md"
      }
    },
    {
      "id": "chapter-variant:rome:stilicho:western_roman",
      "kind": "chapter_variant",
      "label": "The General Who Held It Together · western_roman",
      "summary": "The western_roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:stilicho",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "western_roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/03-stilicho.md"
      }
    },
    {
      "id": "chapter-variant:rome:the-long-unwinding:hunnic",
      "kind": "chapter_variant",
      "label": "The Puppet Emperors · hunnic",
      "summary": "The hunnic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "hunnic"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:the-long-unwinding",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "hunnic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-hunnic/07-the-long-unwinding.md"
      }
    },
    {
      "id": "chapter-variant:rome:the-long-unwinding:visigoth",
      "kind": "chapter_variant",
      "label": "The Puppet Emperors · visigoth",
      "summary": "The visigoth perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "visigoth"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:the-long-unwinding",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigoth",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigoth/07-the-long-unwinding.md"
      }
    },
    {
      "id": "chapter-variant:rome:the-long-unwinding:western_roman",
      "kind": "chapter_variant",
      "label": "The Puppet Emperors · western_roman",
      "summary": "The western_roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:the-long-unwinding",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "western_roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/07-the-long-unwinding.md"
      }
    },
    {
      "id": "chapter-variant:rome:vandals:hunnic",
      "kind": "chapter_variant",
      "label": "The Second Sack · hunnic",
      "summary": "The hunnic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "hunnic"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:vandals",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "hunnic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-hunnic/06-vandals.md"
      }
    },
    {
      "id": "chapter-variant:rome:vandals:visigoth",
      "kind": "chapter_variant",
      "label": "The Second Sack · visigoth",
      "summary": "The visigoth perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "visigoth"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:vandals",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigoth",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigoth/06-vandals.md"
      }
    },
    {
      "id": "chapter-variant:rome:vandals:western_roman",
      "kind": "chapter_variant",
      "label": "The Second Sack · western_roman",
      "summary": "The western_roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:vandals",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "western_roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/06-vandals.md"
      }
    },
    {
      "id": "chapter-variant:rome:what-fell:hunnic",
      "kind": "chapter_variant",
      "label": "What Fell in 476 · hunnic",
      "summary": "The hunnic perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "hunnic"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:what-fell",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "hunnic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-hunnic/09-what-fell.md"
      }
    },
    {
      "id": "chapter-variant:rome:what-fell:visigoth",
      "kind": "chapter_variant",
      "label": "What Fell in 476 · visigoth",
      "summary": "The visigoth perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "visigoth"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:what-fell",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "visigoth",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-visigoth/09-what-fell.md"
      }
    },
    {
      "id": "chapter-variant:rome:what-fell:western_roman",
      "kind": "chapter_variant",
      "label": "What Fell in 476 · western_roman",
      "summary": "The western_roman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "chapter_id": "chapter:rome:what-fell",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "western_roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/09-what-fell.md"
      }
    },
    {
      "id": "chapter-variant:timurids:ankara:mamluk",
      "kind": "chapter_variant",
      "label": "Ankara · mamluk",
      "summary": "The mamluk perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "mamluk"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:ankara",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mamluk",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-mamluk/05-the-sultan-in-chains.md"
      }
    },
    {
      "id": "chapter-variant:timurids:ankara:ottoman",
      "kind": "chapter_variant",
      "label": "Ankara · ottoman",
      "summary": "The ottoman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "ottoman"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:ankara",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "ottoman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-ottoman/05-the-sultan-in-chains.md"
      }
    },
    {
      "id": "chapter-variant:timurids:ankara:timurid",
      "kind": "chapter_variant",
      "label": "Ankara · timurid",
      "summary": "The timurid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:ankara",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "timurid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/05-the-sultan-in-chains.md"
      }
    },
    {
      "id": "chapter-variant:timurids:baghdad:mamluk",
      "kind": "chapter_variant",
      "label": "The Second Sack · mamluk",
      "summary": "The mamluk perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "mamluk"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:baghdad",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mamluk",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-mamluk/07-baghdad.md"
      }
    },
    {
      "id": "chapter-variant:timurids:baghdad:ottoman",
      "kind": "chapter_variant",
      "label": "The Second Sack · ottoman",
      "summary": "The ottoman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "ottoman"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:baghdad",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "ottoman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-ottoman/07-baghdad.md"
      }
    },
    {
      "id": "chapter-variant:timurids:baghdad:timurid",
      "kind": "chapter_variant",
      "label": "The Second Sack · timurid",
      "summary": "The timurid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:baghdad",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "timurid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/07-baghdad.md"
      }
    },
    {
      "id": "chapter-variant:timurids:clavijo:mamluk",
      "kind": "chapter_variant",
      "label": "The Ambassador · mamluk",
      "summary": "The mamluk perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "mamluk"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:clavijo",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mamluk",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-mamluk/06-clavijo.md"
      }
    },
    {
      "id": "chapter-variant:timurids:clavijo:ottoman",
      "kind": "chapter_variant",
      "label": "The Ambassador · ottoman",
      "summary": "The ottoman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "ottoman"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:clavijo",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "ottoman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-ottoman/06-clavijo.md"
      }
    },
    {
      "id": "chapter-variant:timurids:clavijo:timurid",
      "kind": "chapter_variant",
      "label": "The Ambassador · timurid",
      "summary": "The timurid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:clavijo",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "timurid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/06-clavijo.md"
      }
    },
    {
      "id": "chapter-variant:timurids:india:mamluk",
      "kind": "chapter_variant",
      "label": "The Elephants · mamluk",
      "summary": "The mamluk perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "mamluk"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:india",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mamluk",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-mamluk/04-india.md"
      }
    },
    {
      "id": "chapter-variant:timurids:india:ottoman",
      "kind": "chapter_variant",
      "label": "The Elephants · ottoman",
      "summary": "The ottoman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "ottoman"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:india",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "ottoman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-ottoman/04-india.md"
      }
    },
    {
      "id": "chapter-variant:timurids:india:timurid",
      "kind": "chapter_variant",
      "label": "The Elephants · timurid",
      "summary": "The timurid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:india",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "timurid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/04-india.md"
      }
    },
    {
      "id": "chapter-variant:timurids:samarkand:mamluk",
      "kind": "chapter_variant",
      "label": "The City · mamluk",
      "summary": "The mamluk perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "mamluk"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:samarkand",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mamluk",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-mamluk/01-samarkand.md"
      }
    },
    {
      "id": "chapter-variant:timurids:samarkand:ottoman",
      "kind": "chapter_variant",
      "label": "The City · ottoman",
      "summary": "The ottoman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "ottoman"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:samarkand",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "ottoman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-ottoman/01-samarkand.md"
      }
    },
    {
      "id": "chapter-variant:timurids:samarkand:timurid",
      "kind": "chapter_variant",
      "label": "The City · timurid",
      "summary": "The timurid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:samarkand",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "timurid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/01-samarkand.md"
      }
    },
    {
      "id": "chapter-variant:timurids:the-method:mamluk",
      "kind": "chapter_variant",
      "label": "The Method · mamluk",
      "summary": "The mamluk perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "mamluk"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:the-method",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mamluk",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-mamluk/02-the-method.md"
      }
    },
    {
      "id": "chapter-variant:timurids:the-method:ottoman",
      "kind": "chapter_variant",
      "label": "The Method · ottoman",
      "summary": "The ottoman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "ottoman"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:the-method",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "ottoman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-ottoman/02-the-method.md"
      }
    },
    {
      "id": "chapter-variant:timurids:the-method:timurid",
      "kind": "chapter_variant",
      "label": "The Method · timurid",
      "summary": "The timurid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:the-method",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "timurid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/02-the-method.md"
      }
    },
    {
      "id": "chapter-variant:timurids:the-turn-east:mamluk",
      "kind": "chapter_variant",
      "label": "The China Road · mamluk",
      "summary": "The mamluk perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "mamluk"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:the-turn-east",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mamluk",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-mamluk/08-the-turn-east.md"
      }
    },
    {
      "id": "chapter-variant:timurids:the-turn-east:ottoman",
      "kind": "chapter_variant",
      "label": "The China Road · ottoman",
      "summary": "The ottoman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "ottoman"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:the-turn-east",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "ottoman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-ottoman/08-the-turn-east.md"
      }
    },
    {
      "id": "chapter-variant:timurids:the-turn-east:timurid",
      "kind": "chapter_variant",
      "label": "The China Road · timurid",
      "summary": "The timurid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:the-turn-east",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "timurid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/08-the-turn-east.md"
      }
    },
    {
      "id": "chapter-variant:timurids:toktamish:mamluk",
      "kind": "chapter_variant",
      "label": "Twice on the Steppe · mamluk",
      "summary": "The mamluk perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "mamluk"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:toktamish",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mamluk",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-mamluk/03-toktamish.md"
      }
    },
    {
      "id": "chapter-variant:timurids:toktamish:ottoman",
      "kind": "chapter_variant",
      "label": "Twice on the Steppe · ottoman",
      "summary": "The ottoman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "ottoman"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:toktamish",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "ottoman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-ottoman/03-toktamish.md"
      }
    },
    {
      "id": "chapter-variant:timurids:toktamish:timurid",
      "kind": "chapter_variant",
      "label": "Twice on the Steppe · timurid",
      "summary": "The timurid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:toktamish",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "timurid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/03-toktamish.md"
      }
    },
    {
      "id": "chapter-variant:timurids:what-he-left:mamluk",
      "kind": "chapter_variant",
      "label": "The Ruin and the Gold · mamluk",
      "summary": "The mamluk perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "mamluk"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:what-he-left",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "mamluk",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-mamluk/09-what-he-left.md"
      }
    },
    {
      "id": "chapter-variant:timurids:what-he-left:ottoman",
      "kind": "chapter_variant",
      "label": "The Ruin and the Gold · ottoman",
      "summary": "The ottoman perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "ottoman"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:what-he-left",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "ottoman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters-ottoman/09-what-he-left.md"
      }
    },
    {
      "id": "chapter-variant:timurids:what-he-left:timurid",
      "kind": "chapter_variant",
      "label": "The Ruin and the Gold · timurid",
      "summary": "The timurid perspective variant of this chapter.",
      "tags": [
        "chapter-variant",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "chapter_id": "chapter:timurids:what-he-left",
        "domain": "parallax",
        "layer": "narrative",
        "perspective": "timurid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral",
        "text_file": "chapters/09-what-he-left.md"
      }
    },
    {
      "id": "chapter:alexander:crossing",
      "kind": "chapter",
      "label": "The Hellespont",
      "summary": "spring 334 BCE",
      "tags": [
        "chapter",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "contrast_header": "The crossing was uncontested. The Persian command argument about how to meet it was not.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            26.4,
            40.2
          ],
          "zoom": 7,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -334
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true,
              "segment": [
                0,
                5
              ]
            }
          },
          "annotations": [
            {
              "id": "lbl-hellespont",
              "text": "Hellespont",
              "lon": 26.4,
              "lat": 40.2,
              "style": "note"
            },
            {
              "id": "lbl-troy",
              "text": "Troy",
              "lon": 26.24,
              "lat": 39.96,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 2,
        "year": -334,
        "event_link_status": "unlinked_context",
        "perspective": "greek",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/02-crossing.md",
        "text_files": {
          "greek": "chapters/02-crossing.md",
          "persian": "chapters-persian/02-crossing.md"
        }
      }
    },
    {
      "id": "chapter:alexander:death",
      "kind": "chapter",
      "label": "Babylon",
      "summary": "June 323 BCE",
      "tags": [
        "chapter",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "contrast_header": "He adopted Persian dress and court ceremony. Sisygambis stayed at his court. She died five days after him.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            44.5,
            32.5
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -323
            },
            "events": {
              "visible": true,
              "highlight_id": "event-death-alexander"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true,
              "segment": [
                0,
                97
              ]
            }
          },
          "annotations": [
            {
              "id": "lbl-babylon-death",
              "text": "Babylon",
              "lon": 44.42,
              "lat": 32.54,
              "style": "place"
            },
            {
              "id": "lbl-empire",
              "text": "Empire of Alexander",
              "lon": 50.0,
              "lat": 35.0,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 9,
        "year": -323,
        "event_link_status": "direct",
        "perspective": "greek",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/09-death.md",
        "text_files": {
          "greek": "chapters/09-death.md",
          "persian": "chapters-persian/09-death.md"
        }
      }
    },
    {
      "id": "chapter:alexander:egypt",
      "kind": "chapter",
      "label": "The Edge of the Known World",
      "summary": "Egypt, winter 332–331 BCE",
      "tags": [
        "chapter",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "contrast_header": "The priests welcomed Alexander. The Persian treasury recorded the loss of 700 talents.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            30.5,
            29.5
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -332
            },
            "events": {
              "visible": true,
              "highlight_id": "event-founding-alexandria"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true,
              "segment": [
                0,
                24
              ]
            }
          },
          "annotations": [
            {
              "id": "lbl-alexandria",
              "text": "Alexandria (founded 331 BCE)",
              "lon": 29.89,
              "lat": 31.2,
              "style": "place"
            },
            {
              "id": "lbl-siwa",
              "text": "Oracle of Ammon",
              "lon": 25.52,
              "lat": 29.2,
              "style": "note"
            },
            {
              "id": "lbl-nile",
              "text": "Nile",
              "lon": 31.5,
              "lat": 27.5,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 5,
        "year": -332,
        "event_link_status": "direct",
        "perspective": "greek",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/05-egypt.md",
        "text_files": {
          "greek": "chapters/05-egypt.md",
          "persian": "chapters-persian/05-egypt.md"
        }
      }
    },
    {
      "id": "chapter:alexander:gaugamela",
      "kind": "chapter",
      "label": "The Decisive Hour",
      "summary": "Battle of Gaugamela, October 331 BCE",
      "tags": [
        "chapter",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "contrast_header": "Alexander won the plain. Bessus concluded the war — with a Persian blade.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            43.5,
            36.4
          ],
          "zoom": 7,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -331
            },
            "events": {
              "visible": true,
              "highlight_id": "event-q179670"
            },
            "places": {
              "visible": false
            },
            "routes": {
              "visible": true,
              "segment": [
                0,
                36
              ]
            }
          },
          "annotations": [
            {
              "id": "lbl-gaugamela",
              "text": "Gaugamela",
              "lon": 43.25,
              "lat": 36.36,
              "style": "battle"
            },
            {
              "id": "lbl-nineveh",
              "text": "Nineveh (ruins)",
              "lon": 43.16,
              "lat": 36.36,
              "style": "note"
            },
            {
              "id": "lbl-babylon",
              "text": "Babylon →",
              "lon": 44.2,
              "lat": 32.5,
              "style": "place"
            }
          ]
        },
        "map_states": {
          "persian": {
            "center": [
              54.0,
              35.5
            ],
            "zoom": 5.5,
            "annotations": [
              {
                "id": "lbl-gaugamela-p",
                "text": "Gaugamela — Darius flees east",
                "lon": 43.25,
                "lat": 36.36,
                "style": "battle"
              },
              {
                "id": "lbl-hecatompylos",
                "text": "Hecatompylos",
                "lon": 53.98,
                "lat": 36.65,
                "style": "place"
              },
              {
                "id": "lbl-darius-death",
                "text": "Darius murdered by Bessus",
                "lon": 55.2,
                "lat": 35.9,
                "style": "note"
              }
            ]
          }
        },
        "order": 6,
        "year": -331,
        "event_link_status": "direct",
        "perspective": "greek",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/06-gaugamela.md",
        "text_files": {
          "greek": "chapters/06-gaugamela.md",
          "persian": "chapters-persian/06-gaugamela.md"
        }
      }
    },
    {
      "id": "chapter:alexander:granicus",
      "kind": "chapter",
      "label": "The First Battle",
      "summary": "Battle of the Granicus, May 334 BCE",
      "tags": [
        "chapter",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "contrast_header": "A Macedonian charge won the river. Memnon's counsel was overruled; the right strategy died with the men who rejected it.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            27.15,
            40.1
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -334
            },
            "events": {
              "visible": true,
              "highlight_id": "event-q192938"
            },
            "places": {
              "visible": false
            },
            "routes": {
              "visible": true,
              "segment": [
                0,
                7
              ]
            }
          },
          "annotations": [
            {
              "id": "lbl-granicus",
              "text": "Granicus River",
              "lon": 27.32,
              "lat": 40.38,
              "style": "battle"
            },
            {
              "id": "lbl-sardis",
              "text": "Sardis",
              "lon": 28.05,
              "lat": 38.48,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 3,
        "year": -334,
        "event_link_status": "direct",
        "perspective": "greek",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/03-granicus.md",
        "text_files": {
          "greek": "chapters/03-granicus.md",
          "persian": "chapters-persian/03-granicus.md"
        }
      }
    },
    {
      "id": "chapter:alexander:india",
      "kind": "chapter",
      "label": "The Army Refuses",
      "summary": "The Hydaspes, July 326 BCE",
      "tags": [
        "chapter",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "contrast_header": "The army reached the edge of the Greek world. It had been the Achaemenid world for a century.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            68.0,
            32.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -326
            },
            "events": {
              "visible": true,
              "highlight_id": "event-q213074"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true,
              "segment": [
                0,
                73
              ]
            }
          },
          "annotations": [
            {
              "id": "lbl-hydaspes",
              "text": "Hydaspes River",
              "lon": 73.6,
              "lat": 32.8,
              "style": "battle"
            },
            {
              "id": "lbl-taxila",
              "text": "Taxila",
              "lon": 72.79,
              "lat": 33.75,
              "style": "place"
            },
            {
              "id": "lbl-edge",
              "text": "Edge of the known world",
              "lon": 76.0,
              "lat": 29.0,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 8,
        "year": -326,
        "event_link_status": "direct",
        "perspective": "greek",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/08-india.md",
        "text_files": {
          "greek": "chapters/08-india.md",
          "persian": "chapters-persian/08-india.md"
        }
      }
    },
    {
      "id": "chapter:alexander:inheritance",
      "kind": "chapter",
      "label": "What Philip Left",
      "summary": "Macedon, summer 336 BCE",
      "tags": [
        "chapter",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "contrast_header": "Macedon inherited one man's ambition. Persia absorbed three succession crises in three years.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            23.0,
            40.5
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -336
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-pella",
              "text": "Pella",
              "lon": 22.52,
              "lat": 40.76,
              "style": "place"
            },
            {
              "id": "lbl-athens",
              "text": "Athens",
              "lon": 23.72,
              "lat": 37.98,
              "style": "place"
            },
            {
              "id": "lbl-persia",
              "text": "Achaemenid Empire",
              "lon": 48.0,
              "lat": 32.0,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 1,
        "year": -336,
        "event_link_status": "unlinked_context",
        "perspective": "greek",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/01-inheritance.md",
        "text_files": {
          "greek": "chapters/01-inheritance.md",
          "persian": "chapters-persian/01-inheritance.md"
        }
      }
    },
    {
      "id": "chapter:alexander:issus",
      "kind": "chapter",
      "label": "Darius in the Field",
      "summary": "Battle of Issus, November 333 BCE",
      "tags": [
        "chapter",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "contrast_header": "The Greek sources record a rout. The Persian administrative record of Issus is absent.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            36.2,
            36.9
          ],
          "zoom": 7,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -333
            },
            "events": {
              "visible": true,
              "highlight_id": "event-q201526"
            },
            "places": {
              "visible": false
            },
            "routes": {
              "visible": true,
              "segment": [
                0,
                18
              ]
            }
          },
          "annotations": [
            {
              "id": "lbl-issus",
              "text": "Issus",
              "lon": 36.16,
              "lat": 36.84,
              "style": "battle"
            },
            {
              "id": "lbl-darius",
              "text": "← Darius fled east",
              "lon": 37.0,
              "lat": 37.1,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 4,
        "year": -333,
        "event_link_status": "direct",
        "perspective": "greek",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/04-issus.md",
        "text_files": {
          "greek": "chapters/04-issus.md",
          "persian": "chapters-persian/04-issus.md"
        }
      }
    },
    {
      "id": "chapter:alexander:persepolis",
      "kind": "chapter",
      "label": "The Seat of Empire",
      "summary": "Persepolis, winter 330 BCE",
      "tags": [
        "chapter",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "contrast_header": "Greek: revenge for Athens. Persian: 30,000 administrative tablets buried under the collapse.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            52.5,
            30.5
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -330
            },
            "events": {
              "visible": true,
              "highlight_id": "event-burning-persepolis"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true,
              "segment": [
                0,
                43
              ]
            }
          },
          "annotations": [
            {
              "id": "lbl-persepolis",
              "text": "Persepolis",
              "lon": 52.89,
              "lat": 29.94,
              "style": "place"
            },
            {
              "id": "lbl-susa",
              "text": "Susa",
              "lon": 48.25,
              "lat": 32.2,
              "style": "place"
            },
            {
              "id": "lbl-pasargadae",
              "text": "Pasargadae",
              "lon": 53.2,
              "lat": 30.2,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 7,
        "year": -330,
        "event_link_status": "direct",
        "perspective": "greek",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/07-persepolis.md",
        "text_files": {
          "greek": "chapters/07-persepolis.md",
          "persian": "chapters-persian/07-persepolis.md"
        }
      }
    },
    {
      "id": "chapter:alexander:wider-world",
      "kind": "chapter",
      "label": "The Wider World",
      "summary": "323 BCE — the concurrent civilizations",
      "tags": [
        "chapter",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "contrast_header": "The Achaemenid dynasty ended in 330 BCE. Its postal roads and satrapy system did not.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            70.0,
            27.0
          ],
          "zoom": 3,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -323
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": false
            },
            "routes": {
              "visible": true,
              "segment": [
                0,
                97
              ]
            }
          },
          "annotations": [
            {
              "id": "lbl-magadha",
              "text": "Magadha (Nanda → Maurya)",
              "lon": 83.0,
              "lat": 24.5,
              "style": "boundary"
            },
            {
              "id": "lbl-zhou",
              "text": "Zhou states",
              "lon": 112.0,
              "lat": 34.0,
              "style": "boundary"
            },
            {
              "id": "lbl-alexander-empire",
              "text": "Empire of Alexander",
              "lon": 52.0,
              "lat": 36.0,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 10,
        "year": -323,
        "event_link_status": "unlinked_context",
        "perspective": "greek",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/10-wider-world.md",
        "text_files": {
          "greek": "chapters/10-wider-world.md",
          "persian": "chapters-persian/10-wider-world.md"
        }
      }
    },
    {
      "id": "chapter:andalus:berber-revolt",
      "kind": "chapter",
      "label": "The Revolt of the Berbers",
      "summary": "al-Andalus, 740–742 CE",
      "tags": [
        "chapter",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "contrast_header": "The Berbers who conquered Hispania received the worst land — the cold, thin-soiled north — while Arab settlers took the fertile south. The revolt was not against Islam. It was against Arab aristocratic privilege wearing an Islamic face.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                -3.0,
                40.5
              ],
              "zoom": 6.0
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                -5.5,
                41.8
              ],
              "zoom": 7.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            -4.0,
            40.0
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 740
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-north",
              "text": "Berber frontier zones (abandoned)",
              "lon": -5.0,
              "lat": 41.5,
              "style": "note"
            },
            {
              "id": "lbl-asturias",
              "text": "Asturias (expanding)",
              "lon": -6.0,
              "lat": 43.2,
              "style": "boundary"
            },
            {
              "id": "lbl-cordoba",
              "text": "Córdoba",
              "lon": -4.78,
              "lat": 37.88,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 7,
        "year": 740,
        "event_link_status": "direct",
        "perspective": "umayyad",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/07-berber-revolt.md",
        "text_files": {
          "umayyad": "chapters/07-berber-revolt.md",
          "visigothic": "chapters-visigothic/07-berber-revolt.md",
          "asturian": "chapters-asturian/07-berber-revolt.md"
        }
      }
    },
    {
      "id": "chapter:andalus:covadonga",
      "kind": "chapter",
      "label": "Covadonga",
      "summary": "the Cantabrian mountains, 718 or 722 CE",
      "tags": [
        "chapter",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "contrast_header": "The Arabic sources that mention Covadonga dismiss it as a border skirmish — a minor operation against 'thirty wild donkeys' in impassable terrain. The Asturian chronicles call it the founding of Christian Spain. Both are writing the result backward from what followed.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                -4.0,
                41.0
              ],
              "zoom": 5.5
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                -5.07,
                43.3
              ],
              "zoom": 10.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            -5.07,
            43.3
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 718
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-covadonga",
              "text": "Covadonga",
              "lon": -5.07,
              "lat": 43.3,
              "style": "battle"
            },
            {
              "id": "lbl-pelayo",
              "text": "Pelayo's position",
              "lon": -5.1,
              "lat": 43.32,
              "style": "note"
            },
            {
              "id": "lbl-cantabria",
              "text": "Cantabrian mountains",
              "lon": -4.5,
              "lat": 43.1,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 4,
        "year": 718,
        "event_link_status": "direct",
        "perspective": "umayyad",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/04-covadonga.md",
        "text_files": {
          "umayyad": "chapters/04-covadonga.md",
          "visigothic": "chapters-visigothic/04-covadonga.md",
          "asturian": "chapters-asturian/04-covadonga.md"
        }
      }
    },
    {
      "id": "chapter:andalus:crossing",
      "kind": "chapter",
      "label": "The Crossing",
      "summary": "the Strait of Gibraltar, April–May 711 CE",
      "tags": [
        "chapter",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "contrast_header": "The Arabic sources say Count Julian invited Tariq. The Chronicle of 754, written in Hispania within living memory, does not mention Julian at all. One account needs an explanation for the crossing; the other simply records it.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                -5.0,
                35.5
              ],
              "zoom": 6.0
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                -5.35,
                36.14
              ],
              "zoom": 9.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            -5.5,
            36.0
          ],
          "zoom": 7,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 711
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-gibraltar",
              "text": "Jabal Tariq (Gibraltar)",
              "lon": -5.35,
              "lat": 36.14,
              "style": "place"
            },
            {
              "id": "lbl-ceuta",
              "text": "Ceuta →",
              "lon": -5.31,
              "lat": 35.89,
              "style": "place"
            },
            {
              "id": "lbl-visigothic",
              "text": "Visigothic Kingdom",
              "lon": -4.0,
              "lat": 37.5,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 1,
        "year": 711,
        "event_link_status": "direct",
        "perspective": "umayyad",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/01-crossing.md",
        "text_files": {
          "umayyad": "chapters/01-crossing.md",
          "visigothic": "chapters-visigothic/01-crossing.md",
          "asturian": "chapters-asturian/01-crossing.md"
        }
      }
    },
    {
      "id": "chapter:andalus:guadalete",
      "kind": "chapter",
      "label": "The Battle of Guadalete",
      "summary": "southern Iberia, July 711 CE",
      "tags": [
        "chapter",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "contrast_header": "Roderic did not fight a unified kingdom. The Witizian faction — sons of the king Tariq had reportedly been invited to overthrow — may have stood aside or defected during the battle. The kingdom shattered because it was already broken.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                -5.35,
                36.14
              ],
              "zoom": 7.5
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                -5.82,
                36.19
              ],
              "zoom": 10.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            -5.82,
            36.5
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 711
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-guadalete",
              "text": "Guadalete / Río Barbate (±30 km)",
              "lon": -5.82,
              "lat": 36.19,
              "style": "battle"
            },
            {
              "id": "lbl-tariq",
              "text": "Tariq's advance",
              "lon": -5.4,
              "lat": 36.3,
              "style": "note"
            },
            {
              "id": "lbl-roderic",
              "text": "Roderic",
              "lon": -6.0,
              "lat": 36.5,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 2,
        "year": 711,
        "event_link_status": "direct",
        "perspective": "umayyad",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/02-guadalete.md",
        "text_files": {
          "umayyad": "chapters/02-guadalete.md",
          "visigothic": "chapters-visigothic/02-guadalete.md",
          "asturian": "chapters-asturian/02-guadalete.md"
        }
      }
    },
    {
      "id": "chapter:andalus:march-into-gaul",
      "kind": "chapter",
      "label": "The March into Gaul",
      "summary": "Septimania and Aquitaine, 719–725 CE",
      "tags": [
        "chapter",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "contrast_header": "Narbonne fell in 719 and would remain Muslim for forty years — the longest-held foothold north of the Pyrenees. The subsequent push into Aquitaine was neither inevitable nor unified. These were raiding campaigns and opportunistic advances, not a planned conquest of Francia.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                -0.5,
                40.5
              ],
              "zoom": 5.5
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                1.5,
                42.8
              ],
              "zoom": 6.5
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                2.5,
                43.5
              ],
              "zoom": 7.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            1.0,
            43.5
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 719
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-narbonne",
              "text": "Narbonne (taken 719)",
              "lon": 3.0,
              "lat": 43.18,
              "style": "place"
            },
            {
              "id": "lbl-toulouse",
              "text": "Toulouse (besieged 721)",
              "lon": 1.44,
              "lat": 43.6,
              "style": "place"
            },
            {
              "id": "lbl-pyrenees",
              "text": "Pyrenees",
              "lon": 1.5,
              "lat": 42.7,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 5,
        "year": 719,
        "event_link_status": "unlinked_context",
        "perspective": "umayyad",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/05-march-into-gaul.md",
        "text_files": {
          "umayyad": "chapters/05-march-into-gaul.md",
          "visigothic": "chapters-visigothic/05-march-into-gaul.md",
          "asturian": "chapters-asturian/05-march-into-gaul.md"
        }
      }
    },
    {
      "id": "chapter:andalus:the-refugee",
      "kind": "chapter",
      "label": "The Refugee",
      "summary": "North Africa and Iberia, 750–756 CE",
      "tags": [
        "chapter",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "contrast_header": "Abd ar-Rahman crossed from Africa to Iberia exactly as Tariq had, forty-five years earlier — but running from a massacre rather than toward a conquest. The Abbasids would never reach him across the sea.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                -3.0,
                35.0
              ],
              "zoom": 5.5
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                -4.78,
                37.88
              ],
              "zoom": 8.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            -4.78,
            37.88
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 756
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-cordoba",
              "text": "Córdoba (new capital)",
              "lon": -4.78,
              "lat": 37.88,
              "style": "place"
            },
            {
              "id": "lbl-africa",
              "text": "← North Africa",
              "lon": -4.0,
              "lat": 35.5,
              "style": "note"
            },
            {
              "id": "lbl-musara",
              "text": "Battle of the Musara",
              "lon": -5.5,
              "lat": 37.5,
              "style": "battle"
            }
          ]
        },
        "map_states": null,
        "order": 8,
        "year": 750,
        "event_link_status": "direct",
        "perspective": "umayyad",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/08-the-refugee.md",
        "text_files": {
          "umayyad": "chapters/08-the-refugee.md",
          "visigothic": "chapters-visigothic/08-the-refugee.md",
          "asturian": "chapters-asturian/08-the-refugee.md"
        }
      }
    },
    {
      "id": "chapter:andalus:tours",
      "kind": "chapter",
      "label": "The Road to Tours",
      "summary": "Aquitaine, October 732 CE",
      "tags": [
        "chapter",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "contrast_header": "The 'Battle of Tours' was named by later European historians who needed a decisive date for the salvation of Christendom. Contemporary Muslim sources barely mention it. The Frankish sources call it 'the battle in the vicinity of Poitiers.' The location is uncertain within 20 kilometers.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                -1.0,
                41.5
              ],
              "zoom": 5.0
            }
          },
          {
            "offset": 0.55,
            "map_state": {
              "center": [
                0.34,
                46.58
              ],
              "zoom": 9.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            0.0,
            46.0
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 732
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-poitiers",
              "text": "Battle site (±20 km)",
              "lon": 0.34,
              "lat": 46.58,
              "style": "battle"
            },
            {
              "id": "lbl-tours",
              "text": "Tours",
              "lon": 0.69,
              "lat": 47.39,
              "style": "place"
            },
            {
              "id": "lbl-charles",
              "text": "Charles Martel",
              "lon": 0.5,
              "lat": 47.0,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 6,
        "year": 732,
        "event_link_status": "direct",
        "perspective": "umayyad",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/06-tours.md",
        "text_files": {
          "umayyad": "chapters/06-tours.md",
          "visigothic": "chapters-visigothic/06-tours.md",
          "asturian": "chapters-asturian/06-tours.md"
        }
      }
    },
    {
      "id": "chapter:andalus:two-spains",
      "kind": "chapter",
      "label": "Two Spains",
      "summary": "the peninsula, 756 CE and after",
      "tags": [
        "chapter",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "contrast_header": "The word 'Reconquista' was coined in the nineteenth century. No one in 756 CE was fighting to reconquer anything — Asturias was fighting to survive, and al-Andalus was consolidating an emirate. The eight-hundred-year arc was not visible to the people living its first decades.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                -4.78,
                37.88
              ],
              "zoom": 7.0
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                -4.0,
                40.0
              ],
              "zoom": 5.0
            }
          },
          {
            "offset": 0.9,
            "map_state": {
              "center": [
                -5.5,
                41.5
              ],
              "zoom": 5.5
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            -4.0,
            40.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 756
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-al-andalus",
              "text": "al-Andalus",
              "lon": -4.0,
              "lat": 38.5,
              "style": "boundary"
            },
            {
              "id": "lbl-asturias",
              "text": "Asturias",
              "lon": -6.5,
              "lat": 43.3,
              "style": "boundary"
            },
            {
              "id": "lbl-frontier",
              "text": "The frontier",
              "lon": -5.0,
              "lat": 41.0,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 9,
        "year": 756,
        "event_link_status": "unlinked_context",
        "perspective": "umayyad",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/09-two-spains.md",
        "text_files": {
          "umayyad": "chapters/09-two-spains.md",
          "visigothic": "chapters-visigothic/09-two-spains.md",
          "asturian": "chapters-asturian/09-two-spains.md"
        }
      }
    },
    {
      "id": "chapter:andalus:year-of-conquest",
      "kind": "chapter",
      "label": "The Year of Conquest",
      "summary": "Iberia, 712–716 CE",
      "tags": [
        "chapter",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "contrast_header": "The speed of the conquest is not fully explained by military superiority alone. Many cities surrendered on terms — guaranteed property, freedom of worship, existing laws retained. The Chronicle of 754 records this explicitly. The Visigothic nobility negotiated, then collaborated.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                -5.5,
                37.5
              ],
              "zoom": 6.5
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                -3.99,
                39.86
              ],
              "zoom": 8.0
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                -2.0,
                40.5
              ],
              "zoom": 6.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            -4.5,
            39.0
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 712
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-toledo",
              "text": "Toledo (Visigothic capital)",
              "lon": -3.99,
              "lat": 39.86,
              "style": "place"
            },
            {
              "id": "lbl-seville",
              "text": "Sevilla →",
              "lon": -5.99,
              "lat": 37.39,
              "style": "place"
            },
            {
              "id": "lbl-saragossa",
              "text": "Saragossa →",
              "lon": -0.88,
              "lat": 41.65,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 3,
        "year": 712,
        "event_link_status": "direct",
        "perspective": "umayyad",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/03-year-of-conquest.md",
        "text_files": {
          "umayyad": "chapters/03-year-of-conquest.md",
          "visigothic": "chapters-visigothic/03-year-of-conquest.md",
          "asturian": "chapters-asturian/03-year-of-conquest.md"
        }
      }
    },
    {
      "id": "chapter:caesar:alesia",
      "kind": "chapter",
      "label": "The Hill of Alesia",
      "summary": "Alesia, autumn 52 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": "The Roman account is an engineering masterpiece. There is no Gallic account. What happened inside the walls is silence.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                3.5,
                47.5
              ],
              "zoom": 6.0,
              "bearing": 0,
              "pitch": 0
            }
          },
          {
            "offset": 0.4,
            "map_state": {
              "center": [
                4.55,
                47.54
              ],
              "zoom": 9.5,
              "bearing": 10,
              "pitch": 30
            }
          },
          {
            "offset": 0.78,
            "map_state": {
              "center": [
                4.55,
                47.54
              ],
              "zoom": 8.5,
              "bearing": 0,
              "pitch": 10
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            4.55,
            47.54
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 20,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -52
            },
            "events": {
              "visible": true,
              "highlight_id": "event-siege-of-alesia"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-alesia",
              "text": "Alesia",
              "lon": 4.5525,
              "lat": 47.5366,
              "style": "battle"
            },
            {
              "id": "lbl-circumvallation",
              "text": "circumvallation",
              "lon": 4.45,
              "lat": 47.55,
              "style": "note"
            },
            {
              "id": "lbl-relief",
              "text": "relief army (NW)",
              "lon": 4.3,
              "lat": 47.6,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 3,
        "year": -52,
        "event_link_status": "direct",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/03-alesia.md",
          "optimates": "chapters-optimates/03-alesia.md",
          "gallic": "chapters-gallic/03-alesia.md"
        }
      }
    },
    {
      "id": "chapter:caesar:alexandria",
      "kind": "chapter",
      "label": "The Ptolemaic Court",
      "summary": "Alexandria, winter 48 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            29.92,
            31.2
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -48
            },
            "events": {
              "visible": true,
              "highlight_id": "event-caesar-meets-cleopatra"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-alexandria",
              "text": "Alexandria",
              "lon": 29.92,
              "lat": 31.2,
              "style": "place"
            },
            {
              "id": "lbl-royal-quarter",
              "text": "Royal Quarter",
              "lon": 29.93,
              "lat": 31.21,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 9,
        "year": -48,
        "event_link_status": "direct",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/06-alexandria.md",
          "optimates": "chapters-optimates/06-alexandria.md",
          "gallic": null
        }
      }
    },
    {
      "id": "chapter:caesar:egyptian-shore",
      "kind": "chapter",
      "label": "An Egyptian Shore",
      "summary": "the coast of Egypt, September 48 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            32.68,
            31.12
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -48
            },
            "events": {
              "visible": true,
              "highlight_id": "event-pompey-murdered-egypt"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-pelusium",
              "text": "Pelusium",
              "lon": 32.55,
              "lat": 31.02,
              "style": "place"
            },
            {
              "id": "lbl-casium",
              "text": "Cape Casium",
              "lon": 32.8,
              "lat": 31.23,
              "style": "note"
            },
            {
              "id": "lbl-uncertainty",
              "text": "location uncertain — sources disagree",
              "lon": 32.68,
              "lat": 30.8,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 8,
        "year": -48,
        "event_link_status": "direct",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/05-egyptian-shore.md",
          "optimates": "chapters-optimates/05-egyptian-shore.md",
          "gallic": null
        }
      }
    },
    {
      "id": "chapter:caesar:flight",
      "kind": "chapter",
      "label": "The Road South",
      "summary": "Rome to Brundisium, January 49 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            14.5,
            41.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -49
            },
            "events": {
              "visible": true,
              "highlight_id": "event-pompey-evacuates-rome"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-rome",
              "text": "Rome",
              "lon": 12.49,
              "lat": 41.89,
              "style": "place"
            },
            {
              "id": "lbl-brundisium",
              "text": "Brundisium",
              "lon": 17.94,
              "lat": 40.63,
              "style": "place"
            },
            {
              "id": "lbl-greece",
              "text": "→ Greece",
              "lon": 20.0,
              "lat": 39.5,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 5,
        "year": -49,
        "event_link_status": "direct",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/02-flight.md",
          "optimates": "chapters-optimates/02-flight.md",
          "gallic": null
        }
      }
    },
    {
      "id": "chapter:caesar:four-triumphs",
      "kind": "chapter",
      "label": "Four Times Through the City",
      "summary": "Rome, autumn 46 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": "In the Gallic triumph, Vercingetorix walked in chains before Caesar's chariot, six years after surrendering at Alesia. He was executed afterward.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.25,
            "map_state": {
              "center": [
                12.4736,
                41.9031
              ],
              "zoom": 13
            }
          },
          {
            "offset": 0.55,
            "map_state": {
              "center": [
                12.4875,
                41.8896
              ],
              "zoom": 14
            }
          },
          {
            "offset": 0.8,
            "map_state": {
              "center": [
                12.4829,
                41.8937
              ],
              "zoom": 14
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            12.49,
            41.89
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -46
            },
            "events": {
              "visible": true,
              "highlight_id": "event-caesars-four-triumphs"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-via-sacra",
              "text": "Via Sacra",
              "lon": 12.49,
              "lat": 41.892,
              "style": "note"
            },
            {
              "id": "lbl-capitoline",
              "text": "Capitoline",
              "lon": 12.483,
              "lat": 41.894,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 10,
        "year": -46,
        "event_link_status": "direct",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/07-four-triumphs.md",
          "optimates": "chapters-optimates/07-four-triumphs.md",
          "gallic": "chapters-gallic/07-four-triumphs.md"
        }
      }
    },
    {
      "id": "chapter:caesar:helvetii",
      "kind": "chapter",
      "label": "The Helvetii Move",
      "summary": "the Alps, spring 58 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": "To the Gauls, the Helvetii were a people in motion — displaced by Germanic pressure, seeking new land. To Rome, they were a pretext.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                8.0,
                47.5
              ],
              "zoom": 5.0,
              "bearing": 0,
              "pitch": 0
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                5.5,
                46.5
              ],
              "zoom": 6.0,
              "bearing": 0,
              "pitch": 10
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                3.0,
                46.0
              ],
              "zoom": 5.5,
              "bearing": 0,
              "pitch": 0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            6.5,
            47.2
          ],
          "zoom": 5.5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -58
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-helvetii",
              "text": "Helvetii",
              "lon": 7.5,
              "lat": 47.0,
              "style": "place"
            },
            {
              "id": "lbl-genava",
              "text": "Genava",
              "lon": 6.14,
              "lat": 46.2,
              "style": "place"
            },
            {
              "id": "lbl-provincia",
              "text": "Provincia Romana",
              "lon": 4.8,
              "lat": 44.0,
              "style": "note"
            },
            {
              "id": "lbl-rome-dir",
              "text": "→ Rome",
              "lon": 8.0,
              "lat": 43.5,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 1,
        "year": -58,
        "event_link_status": "unlinked_context",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/01-helvetii.md",
          "optimates": "chapters-optimates/01-helvetii.md",
          "gallic": "chapters-gallic/01-helvetii.md"
        }
      }
    },
    {
      "id": "chapter:caesar:ides",
      "kind": "chapter",
      "label": "March Fifteenth",
      "summary": "Rome, 44 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.3,
            "map_state": {
              "center": [
                12.4717,
                41.8997
              ],
              "zoom": 15
            }
          },
          {
            "offset": 0.65,
            "map_state": {
              "center": [
                12.4783,
                41.8962
              ],
              "zoom": 14
            }
          },
          {
            "offset": 0.82,
            "map_state": {
              "center": [
                12.4854,
                41.8925
              ],
              "zoom": 13
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            12.472,
            41.9
          ],
          "zoom": 11,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -44
            },
            "events": {
              "visible": true,
              "highlight_id": "event-ides-of-march"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-curia-pompei",
              "text": "Curia of Pompey",
              "lon": 12.472,
              "lat": 41.9,
              "style": "battle"
            },
            {
              "id": "lbl-forum-ides",
              "text": "Forum",
              "lon": 12.485,
              "lat": 41.892,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 13,
        "year": -44,
        "event_link_status": "direct",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/10-ides.md",
          "optimates": "chapters-optimates/10-ides.md",
          "gallic": "chapters-gallic/10-ides.md"
        }
      }
    },
    {
      "id": "chapter:caesar:lupercalia",
      "kind": "chapter",
      "label": "The Festival of Lupercus",
      "summary": "Rome, February 15, 44 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.25,
            "map_state": {
              "center": [
                12.4854,
                41.8925
              ],
              "zoom": 14
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                12.4717,
                41.8997
              ],
              "zoom": 13
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            12.485,
            41.892
          ],
          "zoom": 10,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -44
            },
            "events": {
              "visible": true,
              "highlight_id": "event-lupercalia-crown"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-forum-romanum",
              "text": "Forum Romanum",
              "lon": 12.485,
              "lat": 41.892,
              "style": "place"
            },
            {
              "id": "lbl-rostra",
              "text": "Rostra",
              "lon": 12.484,
              "lat": 41.892,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 12,
        "year": -44,
        "event_link_status": "direct",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/09-lupercalia.md",
          "optimates": "chapters-optimates/09-lupercalia.md",
          "gallic": null
        }
      }
    },
    {
      "id": "chapter:caesar:open-city",
      "kind": "chapter",
      "label": "The Open City",
      "summary": "Rome, spring 49 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            12.49,
            41.89
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -49
            },
            "events": {
              "visible": true,
              "highlight_id": "event-caesar-enters-rome"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-forum",
              "text": "Forum Romanum",
              "lon": 12.485,
              "lat": 41.892,
              "style": "place"
            },
            {
              "id": "lbl-saturn",
              "text": "Temple of Saturn",
              "lon": 12.484,
              "lat": 41.892,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 6,
        "year": -49,
        "event_link_status": "direct",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/03-open-city.md",
          "optimates": "chapters-optimates/03-open-city.md",
          "gallic": null
        }
      }
    },
    {
      "id": "chapter:caesar:pharsalus",
      "kind": "chapter",
      "label": "The Plain of Thessaly",
      "summary": "Pharsalus, August 48 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            22.43,
            39.29
          ],
          "zoom": 7,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -48
            },
            "events": {
              "visible": true,
              "highlight_id": "event-battle-pharsalus"
            },
            "places": {
              "visible": false
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-pharsalos",
              "text": "Pharsalos (±8 km)",
              "lon": 22.43,
              "lat": 39.29,
              "style": "battle"
            },
            {
              "id": "lbl-larissa",
              "text": "Larissa",
              "lon": 22.42,
              "lat": 39.64,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 7,
        "year": -48,
        "event_link_status": "direct",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/04-pharsalus.md",
          "optimates": "chapters-optimates/04-pharsalus.md",
          "gallic": null
        }
      }
    },
    {
      "id": "chapter:caesar:rubicon",
      "kind": "chapter",
      "label": "One River",
      "summary": "the Rubicon, January 49 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            12.4,
            44.28
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -49
            },
            "events": {
              "visible": true,
              "highlight_id": "event-rubicon-crossing"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-rubicon",
              "text": "Rubicon",
              "lon": 12.4,
              "lat": 44.28,
              "style": "battle"
            },
            {
              "id": "lbl-ariminum",
              "text": "Ariminum",
              "lon": 12.57,
              "lat": 44.06,
              "style": "place"
            },
            {
              "id": "lbl-rome-far",
              "text": "Rome →",
              "lon": 12.49,
              "lat": 41.89,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 4,
        "year": -49,
        "event_link_status": "direct",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/01-rubicon.md",
          "optimates": "chapters-optimates/01-rubicon.md",
          "gallic": null
        }
      }
    },
    {
      "id": "chapter:caesar:width-of-gaul",
      "kind": "chapter",
      "label": "The Width of Gaul",
      "summary": "Gaul, 57–54 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": "Caesar's dispatches named this pacification. Gallic memory called it something else.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                5.0,
                50.0
              ],
              "zoom": 5.0,
              "bearing": 0,
              "pitch": 0
            }
          },
          {
            "offset": 0.45,
            "map_state": {
              "center": [
                -1.0,
                48.0
              ],
              "zoom": 5.5,
              "bearing": 0,
              "pitch": 0
            }
          },
          {
            "offset": 0.8,
            "map_state": {
              "center": [
                4.0,
                47.0
              ],
              "zoom": 5.0,
              "bearing": 0,
              "pitch": 0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            2.0,
            47.5
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -55
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-belgae",
              "text": "Belgae",
              "lon": 4.5,
              "lat": 50.5,
              "style": "place"
            },
            {
              "id": "lbl-armorica",
              "text": "Armorica",
              "lon": -2.5,
              "lat": 47.8,
              "style": "place"
            },
            {
              "id": "lbl-britain",
              "text": "Britannia →",
              "lon": -1.5,
              "lat": 50.5,
              "style": "note"
            },
            {
              "id": "lbl-rhine",
              "text": "Rhine",
              "lon": 7.8,
              "lat": 50.0,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 2,
        "year": -55,
        "event_link_status": "unlinked_context",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/02-width-of-gaul.md",
          "optimates": "chapters-optimates/02-width-of-gaul.md",
          "gallic": "chapters-gallic/02-width-of-gaul.md"
        }
      }
    },
    {
      "id": "chapter:caesar:without-end",
      "kind": "chapter",
      "label": "Without Term",
      "summary": "Rome, February 44 BCE",
      "tags": [
        "chapter",
        "caesar"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            12.49,
            41.89
          ],
          "zoom": 9,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -44
            },
            "events": {
              "visible": true,
              "highlight_id": "event-dictator-perpetuo"
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-curia",
              "text": "Senate",
              "lon": 12.486,
              "lat": 41.893,
              "style": "place"
            },
            {
              "id": "lbl-forum-rostra",
              "text": "Forum",
              "lon": 12.485,
              "lat": 41.892,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 11,
        "year": -44,
        "event_link_status": "direct",
        "perspective": "",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": null,
        "text_files": {
          "populares": "chapters/08-without-end.md",
          "optimates": "chapters-optimates/08-without-end.md",
          "gallic": null
        }
      }
    },
    {
      "id": "chapter:charlemagne:aachen",
      "kind": "chapter",
      "label": "The New Rome",
      "summary": "Aachen, 790s CE",
      "tags": [
        "chapter",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "contrast_header": "Einhard describes the Palatine Chapel in terms that echo Eusebius on Constantine. The court scholars — Alcuin, Theodulf, Angilbert — called Charlemagne 'David' and their circle 'the Academy.' How far Charlemagne himself understood this as a Roman renovation, and how far it was the construction of his courtiers, is a question the sources cannot cleanly answer.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                8.0,
                50.5
              ],
              "zoom": 5.5
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                6.08,
                50.77
              ],
              "zoom": 9.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            6.08,
            50.77
          ],
          "zoom": 9,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 794
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-aachen",
              "text": "Aachen (Aix-la-Chapelle)",
              "lon": 6.08,
              "lat": 50.77,
              "style": "place"
            },
            {
              "id": "lbl-chapel",
              "text": "Palatine Chapel",
              "lon": 6.09,
              "lat": 50.77,
              "style": "note"
            },
            {
              "id": "lbl-frankfurt",
              "text": "Frankfurt (Council 794)",
              "lon": 8.68,
              "lat": 50.11,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 5,
        "year": 794,
        "event_link_status": "direct",
        "perspective": "frankish",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/05-aachen.md",
        "text_files": {
          "frankish": "chapters/05-aachen.md",
          "saxon": "chapters-saxon/05-aachen.md",
          "umayyad": "chapters-umayyad/05-aachen.md"
        }
      }
    },
    {
      "id": "chapter:charlemagne:coronation",
      "kind": "chapter",
      "label": "Christmas 800",
      "summary": "Rome, 25 December 800 CE",
      "tags": [
        "chapter",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "contrast_header": "Einhard says Charlemagne was surprised. The Royal Frankish Annals say the Roman people petitioned for the coronation. Byzantine sources note that the western throne was technically vacant — a woman, Irene, held power in Constantinople — and therefore a western claimant was at least arguable. Three sources, three different causal stories. Only one of them can be right; possibly none are.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                8.0,
                50.5
              ],
              "zoom": 5.0
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                12.45,
                41.9
              ],
              "zoom": 8.0
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                12.45,
                41.9
              ],
              "zoom": 10.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            12.45,
            41.9
          ],
          "zoom": 9,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 800
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-rome",
              "text": "Rome",
              "lon": 12.45,
              "lat": 41.9,
              "style": "place"
            },
            {
              "id": "lbl-stpeters",
              "text": "St Peter's Basilica",
              "lon": 12.45,
              "lat": 41.91,
              "style": "note"
            },
            {
              "id": "lbl-papal",
              "text": "Papal States",
              "lon": 12.5,
              "lat": 42.5,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 6,
        "year": 800,
        "event_link_status": "direct",
        "perspective": "frankish",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/06-coronation.md",
        "text_files": {
          "frankish": "chapters/06-coronation.md",
          "saxon": "chapters-saxon/06-coronation.md",
          "umayyad": "chapters-umayyad/06-coronation.md"
        }
      }
    },
    {
      "id": "chapter:charlemagne:death-legacy",
      "kind": "chapter",
      "label": "The Unfinished Empire",
      "summary": "Aachen, 814 CE and after",
      "tags": [
        "chapter",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "contrast_header": "Einhard ends the Vita Karoli with Charlemagne's death and burial, treating the succession as settled. The Treaty of Verdun (843), twenty-nine years later, divided the empire into three. Whether this partition was inevitable given the Frankish inheritance customs, or a failure of Louis the Pious's political management, is a question that generates disagreement in every generation of scholars.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                12.45,
                41.9
              ],
              "zoom": 5.5
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                8.0,
                50.0
              ],
              "zoom": 5.0
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                6.08,
                50.77
              ],
              "zoom": 8.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            8.0,
            50.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 814
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-aachen",
              "text": "Aachen (died here, 814)",
              "lon": 6.08,
              "lat": 50.77,
              "style": "place"
            },
            {
              "id": "lbl-empire",
              "text": "Carolingian Empire at its greatest extent",
              "lon": 9.0,
              "lat": 50.5,
              "style": "boundary"
            },
            {
              "id": "lbl-verdun",
              "text": "Verdun (partition 843)",
              "lon": 5.38,
              "lat": 49.16,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 9,
        "year": 814,
        "event_link_status": "direct",
        "perspective": "frankish",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/09-death-legacy.md",
        "text_files": {
          "frankish": "chapters/09-death-legacy.md",
          "saxon": "chapters-saxon/09-death-legacy.md",
          "umayyad": "chapters-umayyad/09-death-legacy.md"
        }
      }
    },
    {
      "id": "chapter:charlemagne:elephant",
      "kind": "chapter",
      "label": "The Elephant",
      "summary": "Aachen, 802 CE",
      "tags": [
        "chapter",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "contrast_header": "Einhard records the elephant Abul-Abbas as a curiosity and a gift. The Abbasid diplomatic context — Harun al-Rashid's desire for a counterweight to the Byzantine-Umayyad alliance — is absent from Frankish sources. The elephant that died in Saxony in 810 appears in one Frankish source as a bad omen. The same event, read from Baghdad and from Aachen, is not the same event.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                6.08,
                50.77
              ],
              "zoom": 7.0
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                10.0,
                49.0
              ],
              "zoom": 5.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            10.0,
            49.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 802
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true
            }
          },
          "annotations": [
            {
              "id": "lbl-aachen",
              "text": "Aachen (elephant delivered here)",
              "lon": 6.08,
              "lat": 50.77,
              "style": "place"
            },
            {
              "id": "lbl-baghdad",
              "text": "→ Baghdad (Harun al-Rashid)",
              "lon": 20.0,
              "lat": 47.0,
              "style": "note"
            },
            {
              "id": "lbl-empire",
              "text": "Carolingian Empire",
              "lon": 9.0,
              "lat": 50.5,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 8,
        "year": 802,
        "event_link_status": "unlinked_context",
        "perspective": "frankish",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/08-elephant.md",
        "text_files": {
          "frankish": "chapters/08-elephant.md",
          "saxon": "chapters-saxon/08-elephant.md",
          "umayyad": "chapters-umayyad/08-elephant.md"
        }
      }
    },
    {
      "id": "chapter:charlemagne:inheritance",
      "kind": "chapter",
      "label": "The Inheritance",
      "summary": "the Frankish realm, 768–771 CE",
      "tags": [
        "chapter",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "contrast_header": "Einhard presents Charlemagne's rule as providentially prepared. The Royal Frankish Annals record Carloman's death without commentary and the seizure of his kingdom without explanation. The silence in the Annals is not innocence — it is the record of a court that already knew who had won.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                6.96,
                49.68
              ],
              "zoom": 6.0
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                8.0,
                51.0
              ],
              "zoom": 5.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            8.0,
            50.5
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 768
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-aachen",
              "text": "Aachen (future capital)",
              "lon": 6.08,
              "lat": 50.77,
              "style": "place"
            },
            {
              "id": "lbl-frankish",
              "text": "Frankish Kingdom",
              "lon": 8.0,
              "lat": 50.0,
              "style": "boundary"
            },
            {
              "id": "lbl-saxony",
              "text": "Saxony (unconquered)",
              "lon": 10.0,
              "lat": 52.5,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 1,
        "year": 768,
        "event_link_status": "direct",
        "perspective": "frankish",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/01-inheritance.md",
        "text_files": {
          "frankish": "chapters/01-inheritance.md",
          "saxon": "chapters-saxon/01-inheritance.md",
          "umayyad": "chapters-umayyad/01-inheritance.md"
        }
      }
    },
    {
      "id": "chapter:charlemagne:march-system",
      "kind": "chapter",
      "label": "The Marches",
      "summary": "the frontiers, 790s–810s CE",
      "tags": [
        "chapter",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "contrast_header": "Carolingian administrative texts describe the march system in the dry language of capitularies and counts. What that language obscures: the Spanish March was contested territory depopulated by decades of warfare, its 'counts' often local strongmen with their own agendas. The Danish March was a response to pressure from the north that the annals barely acknowledge as a strategic threat until it was already serious.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                6.08,
                50.77
              ],
              "zoom": 5.5
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                8.0,
                50.0
              ],
              "zoom": 4.5
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                10.0,
                49.0
              ],
              "zoom": 5.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            8.0,
            50.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 800
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-spanish-march",
              "text": "Spanish March",
              "lon": 1.5,
              "lat": 42.0,
              "style": "boundary"
            },
            {
              "id": "lbl-danish-march",
              "text": "Danish March",
              "lon": 9.5,
              "lat": 54.5,
              "style": "boundary"
            },
            {
              "id": "lbl-avar-march",
              "text": "Avar March (post-791)",
              "lon": 17.0,
              "lat": 47.5,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 7,
        "year": 800,
        "event_link_status": "unlinked_context",
        "perspective": "frankish",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/07-march-system.md",
        "text_files": {
          "frankish": "chapters/07-march-system.md",
          "saxon": "chapters-saxon/07-march-system.md",
          "umayyad": "chapters-umayyad/07-march-system.md"
        }
      }
    },
    {
      "id": "chapter:charlemagne:roncevaux",
      "kind": "chapter",
      "label": "Roncèsvaux",
      "summary": "the Pyrenees, August 778 CE",
      "tags": [
        "chapter",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "contrast_header": "The Royal Frankish Annals describe the Iberian expedition in detail but mention the ambush at Roncevaux in a single sentence, as if minor. Einhard calls the attackers Basques. The Chanson de Roland, written three centuries later, replaces the Basques with Saracens and turns defeat into martyrdom. Al-Andalus sources record the Frankish withdrawal from Zaragoza as a victory — for the walls of the city, not for any army.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                6.0,
                50.0
              ],
              "zoom": 5.0
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                -0.5,
                42.5
              ],
              "zoom": 6.5
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                -1.32,
                43.01
              ],
              "zoom": 10.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            -1.0,
            43.5
          ],
          "zoom": 7,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 778
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-roncevaux",
              "text": "Roncèsvaux Pass",
              "lon": -1.32,
              "lat": 43.01,
              "style": "battle"
            },
            {
              "id": "lbl-zaragoza",
              "text": "Zaragoza (besieged, abandoned)",
              "lon": -0.88,
              "lat": 41.65,
              "style": "note"
            },
            {
              "id": "lbl-pyrenees",
              "text": "Pyrenees",
              "lon": 0.5,
              "lat": 42.8,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 2,
        "year": 778,
        "event_link_status": "direct",
        "perspective": "frankish",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/02-roncevaux.md",
        "text_files": {
          "frankish": "chapters/02-roncevaux.md",
          "saxon": "chapters-saxon/02-roncevaux.md",
          "umayyad": "chapters-umayyad/02-roncevaux.md"
        }
      }
    },
    {
      "id": "chapter:charlemagne:saxon-wars",
      "kind": "chapter",
      "label": "The Long War",
      "summary": "Saxony, 772–804 CE",
      "tags": [
        "chapter",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "contrast_header": "The Royal Frankish Annals record each Saxon campaign as a response to Saxon provocation or treachery. The sequence — Frankish advance, Saxon submission, Saxon revolt, renewed Frankish advance — repeats across three decades. A later Saxon perspective, preserved in traces through archaeology and hagiography, frames the same sequence differently: not treachery but resistance, not submission but strategic retreat.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                8.5,
                50.5
              ],
              "zoom": 5.5
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                9.5,
                52.0
              ],
              "zoom": 6.5
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                10.5,
                53.0
              ],
              "zoom": 6.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            9.5,
            52.0
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 785
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true
            }
          },
          "annotations": [
            {
              "id": "lbl-irminsul",
              "text": "Irminsul (destroyed 772)",
              "lon": 8.75,
              "lat": 51.72,
              "style": "note"
            },
            {
              "id": "lbl-paderborn",
              "text": "Paderborn (Frankish base)",
              "lon": 8.75,
              "lat": 51.72,
              "style": "place"
            },
            {
              "id": "lbl-saxony",
              "text": "Saxony",
              "lon": 10.5,
              "lat": 52.5,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 3,
        "year": 772,
        "event_link_status": "unlinked_context",
        "perspective": "frankish",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/03-saxon-wars.md",
        "text_files": {
          "frankish": "chapters/03-saxon-wars.md",
          "saxon": "chapters-saxon/03-saxon-wars.md",
          "umayyad": "chapters-umayyad/03-saxon-wars.md"
        }
      }
    },
    {
      "id": "chapter:charlemagne:verden",
      "kind": "chapter",
      "label": "Verden",
      "summary": "the Aller River, 782 CE",
      "tags": [
        "chapter",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "contrast_header": "The Royal Frankish Annals record the execution of 4,500 Saxons without comment or apparent unease. Alcuin of York wrote to Charlemagne afterward that baptism without instruction was not conversion — he did not condemn Verden directly, but the implication is audible. A century later, Nithard recorded the lasting Saxon resentment. The silence of the Annals and the clarity of Saxon memory pull in opposite directions.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                9.2,
                52.2
              ],
              "zoom": 7.5
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                9.23,
                52.92
              ],
              "zoom": 10.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            9.23,
            52.92
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 782
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-verden",
              "text": "Verden an der Aller",
              "lon": 9.23,
              "lat": 52.92,
              "style": "battle"
            },
            {
              "id": "lbl-suntel",
              "text": "Süntel Hills (Frankish defeat)",
              "lon": 9.2,
              "lat": 52.2,
              "style": "note"
            },
            {
              "id": "lbl-aller",
              "text": "Aller River",
              "lon": 9.5,
              "lat": 52.7,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 4,
        "year": 782,
        "event_link_status": "direct",
        "perspective": "frankish",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/04-verden.md",
        "text_files": {
          "frankish": "chapters/04-verden.md",
          "saxon": "chapters-saxon/04-verden.md",
          "umayyad": "chapters-umayyad/04-verden.md"
        }
      }
    },
    {
      "id": "chapter:crusades:antioch-siege",
      "kind": "chapter",
      "label": "Eight Months",
      "summary": "Antioch, October 1097 – June 1098 CE",
      "tags": [
        "chapter",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "contrast_header": "The Crusader sources report mass starvation, the eating of horses and leather, desertion by major figures including Stephen of Blois. They describe their own army as nearly broken. This is not self-deprecation — it is evidence that Antioch nearly ended the Crusade.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                34.0,
                37.5
              ],
              "zoom": 6.0
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                36.16,
                36.2
              ],
              "zoom": 10.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            36.16,
            36.2
          ],
          "zoom": 9,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1097
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true
            }
          },
          "annotations": [
            {
              "id": "lbl-antioch",
              "text": "Antioch",
              "lon": 36.16,
              "lat": 36.2,
              "style": "battle"
            },
            {
              "id": "lbl-orontes",
              "text": "Orontes River",
              "lon": 36.3,
              "lat": 36.35,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 5,
        "year": 1097,
        "event_link_status": "direct",
        "perspective": "crusader",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/05-antioch-siege.md",
        "text_files": {
          "crusader": "chapters/05-antioch-siege.md",
          "byzantine": "chapters-byzantine/05-antioch-siege.md",
          "fatimid": "chapters-fatimid/05-antioch-siege.md"
        }
      }
    },
    {
      "id": "chapter:crusades:clermont",
      "kind": "chapter",
      "label": "Deus Vult",
      "summary": "Clermont-Ferrand, November 1095 CE",
      "tags": [
        "chapter",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "contrast_header": "Urban II’s sermon at Clermont survives in five versions. No two agree on what he said. Every version was written after Jerusalem fell in 1099 — shaped by the knowledge that it worked.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                2.0,
                46.0
              ],
              "zoom": 4.5
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                3.08,
                45.78
              ],
              "zoom": 8.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            3.08,
            45.78
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1095
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-clermont",
              "text": "Clermont-Ferrand",
              "lon": 3.08,
              "lat": 45.78,
              "style": "place"
            },
            {
              "id": "lbl-rome",
              "text": "Rome (Urban’s seat)",
              "lon": 12.48,
              "lat": 41.89,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 1,
        "year": 1095,
        "event_link_status": "direct",
        "perspective": "crusader",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/01-clermont.md",
        "text_files": {
          "crusader": "chapters/01-clermont.md",
          "byzantine": "chapters-byzantine/01-clermont.md",
          "fatimid": "chapters-fatimid/01-clermont.md"
        }
      }
    },
    {
      "id": "chapter:crusades:constantinople",
      "kind": "chapter",
      "label": "The Oaths",
      "summary": "Constantinople, winter 1096–1097 CE",
      "tags": [
        "chapter",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "contrast_header": "Alexios required each Crusader prince to swear an oath of homage. The Latin sources say the princes swore reluctantly and did not consider the oaths fully binding. Anna Komnena says Alexios was deceived from the start. Both accounts are written to explain why the promises were broken.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                20.0,
                44.0
              ],
              "zoom": 4.5
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                28.97,
                41.01
              ],
              "zoom": 9.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            28.97,
            41.01
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1097
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-constantinople",
              "text": "Constantinople",
              "lon": 28.97,
              "lat": 41.01,
              "style": "place"
            },
            {
              "id": "lbl-alexios",
              "text": "Palace of Blachernae",
              "lon": 28.92,
              "lat": 41.03,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 3,
        "year": 1097,
        "event_link_status": "direct",
        "perspective": "crusader",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/03-constantinople.md",
        "text_files": {
          "crusader": "chapters/03-constantinople.md",
          "byzantine": "chapters-byzantine/03-constantinople.md",
          "fatimid": "chapters-fatimid/03-constantinople.md"
        }
      }
    },
    {
      "id": "chapter:crusades:dorylaeum",
      "kind": "chapter",
      "label": "The Line Holds",
      "summary": "Dorylaeum, July 1097 CE",
      "tags": [
        "chapter",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "contrast_header": "Kilij Arslan had destroyed the People’s Crusade at Civetot nine months earlier. He underestimated the princes’ army. The Gesta Francorum notes his cavalry’s speed and noise but says the infantry squares held. He would not make the same mistake twice.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                29.72,
                40.42
              ],
              "zoom": 7.5
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                30.52,
                39.77
              ],
              "zoom": 10.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            30.52,
            39.77
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1097
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true
            }
          },
          "annotations": [
            {
              "id": "lbl-dorylaeum",
              "text": "Dorylaeum",
              "lon": 30.52,
              "lat": 39.77,
              "style": "battle"
            },
            {
              "id": "lbl-nicaea",
              "text": "Nicaea (taken June 1097)",
              "lon": 29.72,
              "lat": 40.42,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 4,
        "year": 1097,
        "event_link_status": "direct",
        "perspective": "crusader",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/04-dorylaeum.md",
        "text_files": {
          "crusader": "chapters/04-dorylaeum.md",
          "byzantine": "chapters-byzantine/04-dorylaeum.md",
          "fatimid": "chapters-fatimid/04-dorylaeum.md"
        }
      }
    },
    {
      "id": "chapter:crusades:holy-lance",
      "kind": "chapter",
      "label": "The Vision",
      "summary": "Antioch, June 1098 CE",
      "tags": [
        "chapter",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "contrast_header": "The Bishop of Le Puy’s legate Adhémar doubted the Holy Lance was genuine. Raymond of Aguilers, who promoted it, acknowledges the doubts. The relic’s authenticity was contested within the army. Its effect on morale was real regardless.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                36.16,
                36.2
              ],
              "zoom": 9.0
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                36.2,
                36.25
              ],
              "zoom": 11.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            36.16,
            36.2
          ],
          "zoom": 9,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1098
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true
            }
          },
          "annotations": [
            {
              "id": "lbl-sortie",
              "text": "Crusader sortie, 28 June 1098",
              "lon": 36.1,
              "lat": 36.15,
              "style": "battle"
            },
            {
              "id": "lbl-kerbogha",
              "text": "Kerbogha’s camp",
              "lon": 36.25,
              "lat": 36.28,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 6,
        "year": 1098,
        "event_link_status": "direct",
        "perspective": "crusader",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/06-holy-lance.md",
        "text_files": {
          "crusader": "chapters/06-holy-lance.md",
          "byzantine": "chapters-byzantine/06-holy-lance.md",
          "fatimid": "chapters-fatimid/06-holy-lance.md"
        }
      }
    },
    {
      "id": "chapter:crusades:jerusalem-walls",
      "kind": "chapter",
      "label": "The Assault",
      "summary": "Jerusalem, June–July 1099 CE",
      "tags": [
        "chapter",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "contrast_header": "The Crusaders built two siege towers in the final weeks, using timber from ships they had broken up at Jaffa. Raymond of Aguilers and the Gesta Francorum describe the construction in detail that suggests they are drawing on the same source — or that both were there.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                35.5,
                32.5
              ],
              "zoom": 7.5
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                35.23,
                31.78
              ],
              "zoom": 12.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            35.23,
            31.78
          ],
          "zoom": 11,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1099
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true
            }
          },
          "annotations": [
            {
              "id": "lbl-jerusalem",
              "text": "Jerusalem",
              "lon": 35.23,
              "lat": 31.78,
              "style": "place"
            },
            {
              "id": "lbl-jaffa",
              "text": "← Jaffa (timber supply)",
              "lon": 34.9,
              "lat": 32.05,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 8,
        "year": 1099,
        "event_link_status": "direct",
        "perspective": "crusader",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/08-jerusalem-walls.md",
        "text_files": {
          "crusader": "chapters/08-jerusalem-walls.md",
          "byzantine": "chapters-byzantine/08-jerusalem-walls.md",
          "fatimid": "chapters-fatimid/08-jerusalem-walls.md"
        }
      }
    },
    {
      "id": "chapter:crusades:maarra",
      "kind": "chapter",
      "label": "The Road South",
      "summary": "Maarra al-Numan, November 1098 – January 1099 CE",
      "tags": [
        "chapter",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "contrast_header": "The sources record that Crusaders ate the bodies of the dead at Maarra al-Numan. Albert of Aachen, Radulf of Caen, and the Gesta Francorum all say so. No serious historian now disputes it happened. The sources disagree only on how to frame it.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                36.16,
                36.2
              ],
              "zoom": 7.5
            }
          },
          {
            "offset": 0.55,
            "map_state": {
              "center": [
                36.67,
                35.64
              ],
              "zoom": 10.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            36.67,
            35.64
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1098
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true
            }
          },
          "annotations": [
            {
              "id": "lbl-maarra",
              "text": "Maarra al-Numan",
              "lon": 36.67,
              "lat": 35.64,
              "style": "battle"
            },
            {
              "id": "lbl-antioch-ref",
              "text": "← Antioch",
              "lon": 36.25,
              "lat": 36.1,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 7,
        "year": 1098,
        "event_link_status": "unlinked_context",
        "perspective": "crusader",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/07-maarra.md",
        "text_files": {
          "crusader": "chapters/07-maarra.md",
          "byzantine": "chapters-byzantine/07-maarra.md",
          "fatimid": "chapters-fatimid/07-maarra.md"
        }
      }
    },
    {
      "id": "chapter:crusades:peoples-crusade",
      "kind": "chapter",
      "label": "The Forerunners",
      "summary": "The Rhineland and Anatolia, 1096 CE",
      "tags": [
        "chapter",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "contrast_header": "The Rhineland massacres of 1096 are documented in both Hebrew chronicles and Latin sources. The Hebrew accounts are contemporary; the Latin sources are apologetic or silent. They are not describing the same event.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                8.0,
                50.5
              ],
              "zoom": 6.0
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                20.0,
                46.0
              ],
              "zoom": 5.0
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                29.5,
                40.7
              ],
              "zoom": 8.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            15.0,
            47.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1096
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-rhineland",
              "text": "Rhineland massacres",
              "lon": 7.5,
              "lat": 50.9,
              "style": "battle"
            },
            {
              "id": "lbl-civetot",
              "text": "Civetot (annihilation, Oct 1096)",
              "lon": 29.5,
              "lat": 40.7,
              "style": "battle"
            }
          ]
        },
        "map_states": null,
        "order": 2,
        "year": 1096,
        "event_link_status": "unlinked_context",
        "perspective": "crusader",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/02-peoples-crusade.md",
        "text_files": {
          "crusader": "chapters/02-peoples-crusade.md",
          "byzantine": "chapters-byzantine/02-peoples-crusade.md",
          "fatimid": "chapters-fatimid/02-peoples-crusade.md"
        }
      }
    },
    {
      "id": "chapter:crusades:sack",
      "kind": "chapter",
      "label": "What Was Done",
      "summary": "Jerusalem, 15–16 July 1099 CE",
      "tags": [
        "chapter",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "contrast_header": "The Gesta Francorum says the streets ran with blood to the knights’ knees. Ibn al-Qalanisi gives specific numbers. Raymond of Aguilers waded through corpses to reach the Holy Sepulchre and called it a just and marvellous judgment. Modern population estimates suggest all the casualty figures are impossible at face value.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                35.23,
                31.78
              ],
              "zoom": 11.0
            }
          },
          {
            "offset": 0.7,
            "map_state": {
              "center": [
                35.23,
                31.778
              ],
              "zoom": 13.5
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            35.23,
            31.78
          ],
          "zoom": 12,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1099
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-holy-sepulchre",
              "text": "Church of the Holy Sepulchre",
              "lon": 35.229,
              "lat": 31.778,
              "style": "place"
            },
            {
              "id": "lbl-temple-mount",
              "text": "Temple Mount",
              "lon": 35.235,
              "lat": 31.776,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 9,
        "year": 1099,
        "event_link_status": "direct",
        "perspective": "crusader",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/09-sack.md",
        "text_files": {
          "crusader": "chapters/09-sack.md",
          "byzantine": "chapters-byzantine/09-sack.md",
          "fatimid": "chapters-fatimid/09-sack.md"
        }
      }
    },
    {
      "id": "chapter:hannibal:cannae",
      "kind": "chapter",
      "label": "Cannae",
      "summary": "Apulia, August 2, 216 BCE",
      "tags": [
        "chapter",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "contrast_header": "Carthage: geometry. Rome: the worst day in Roman history, and Rome refused to negotiate.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                14.0,
                41.0
              ],
              "zoom": 6.0
            }
          },
          {
            "offset": 0.45,
            "map_state": {
              "center": [
                16.13,
                41.31
              ],
              "zoom": 10.0
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                15.2,
                40.8
              ],
              "zoom": 6.5
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            15.2,
            41.2
          ],
          "zoom": 7.0,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -216
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-cannae",
              "text": "Cannae",
              "lon": 16.13,
              "lat": 41.31,
              "style": "battle"
            },
            {
              "id": "lbl-capua",
              "text": "Capua",
              "lon": 14.21,
              "lat": 41.11,
              "style": "place"
            },
            {
              "id": "lbl-aufidus",
              "text": "Aufidus",
              "lon": 15.8,
              "lat": 41.2,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 6,
        "year": -216,
        "event_link_status": "unlinked_context",
        "perspective": "carthaginian",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/06-cannae.md",
        "text_files": {
          "carthaginian": "chapters/06-cannae.md",
          "roman": "chapters-roman/06-cannae.md",
          "numidian": "chapters-numidian/06-cannae.md"
        }
      }
    },
    {
      "id": "chapter:hannibal:scipios-gambit",
      "kind": "chapter",
      "label": "Scipio Crosses",
      "summary": "North Africa, 204–203 BCE",
      "tags": [
        "chapter",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "contrast_header": "Carthage: Hannibal recalled too late. Rome: Scipio applied Cannae in reverse.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            5.5,
            37.0
          ],
          "zoom": 5.0,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -204
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-utica",
              "text": "Utica",
              "lon": 10.05,
              "lat": 37.07,
              "style": "place"
            },
            {
              "id": "lbl-carthage",
              "text": "Carthage",
              "lon": 10.32,
              "lat": 36.85,
              "style": "place"
            },
            {
              "id": "lbl-numidia",
              "text": "Numidia",
              "lon": 6.5,
              "lat": 35.0,
              "style": "boundary"
            },
            {
              "id": "lbl-rome",
              "text": "Rome",
              "lon": 12.49,
              "lat": 41.89,
              "style": "place"
            }
          ]
        },
        "map_states": {
          "numidian": {
            "center": [
              8.0,
              35.5
            ],
            "zoom": 5.5,
            "annotations": [
              {
                "id": "lbl-massylii",
                "text": "Massylii (Masinissa)",
                "lon": 8.5,
                "lat": 36.2,
                "style": "note"
              },
              {
                "id": "lbl-masaesyli",
                "text": "Masaesyli (Syphax)",
                "lon": 4.0,
                "lat": 35.8,
                "style": "note"
              },
              {
                "id": "lbl-carthage",
                "text": "Carthage",
                "lon": 10.32,
                "lat": 36.85,
                "style": "place"
              },
              {
                "id": "lbl-utica",
                "text": "Utica",
                "lon": 10.05,
                "lat": 37.07,
                "style": "place"
              }
            ]
          }
        },
        "order": 8,
        "year": -204,
        "event_link_status": "unlinked_context",
        "perspective": "carthaginian",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/08-scipio-crosses.md",
        "text_files": {
          "carthaginian": "chapters/08-scipio-crosses.md",
          "roman": "chapters-roman/08-scipio-crosses.md",
          "numidian": "chapters-numidian/08-scipio-crosses.md"
        }
      }
    },
    {
      "id": "chapter:hannibal:the-fog",
      "kind": "chapter",
      "label": "The Fog",
      "summary": "Lake Trasimene, June 217 BCE",
      "tags": [
        "chapter",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "contrast_header": "Carthage: the fog cooperated. Rome: Livy says omens; Polybius says reconnaissance failure.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            12.1,
            43.2
          ],
          "zoom": 7.0,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -217
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-trasimene",
              "text": "Trasimene",
              "lon": 12.08,
              "lat": 43.19,
              "style": "battle"
            },
            {
              "id": "lbl-arretium",
              "text": "Arretium",
              "lon": 11.88,
              "lat": 43.47,
              "style": "place"
            },
            {
              "id": "lbl-rome-distant",
              "text": "Rome",
              "lon": 12.49,
              "lat": 41.89,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 5,
        "year": -217,
        "event_link_status": "unlinked_context",
        "perspective": "carthaginian",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/05-the-fog.md",
        "text_files": {
          "carthaginian": "chapters/05-the-fog.md",
          "roman": "chapters-roman/05-the-fog.md",
          "numidian": "chapters-numidian/05-the-fog.md"
        }
      }
    },
    {
      "id": "chapter:hannibal:the-long-stay",
      "kind": "chapter",
      "label": "The Long Stay",
      "summary": "Southern Italy, 215–204 BCE",
      "tags": [
        "chapter",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "contrast_header": "Carthage: no siege equipment, no fleet, no reinforcement. Rome: Fabius was right — until he wasn't.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            15.5,
            40.0
          ],
          "zoom": 5.5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -215
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-rome",
              "text": "Rome",
              "lon": 12.49,
              "lat": 41.89,
              "style": "place"
            },
            {
              "id": "lbl-capua",
              "text": "Capua",
              "lon": 14.21,
              "lat": 41.11,
              "style": "place"
            },
            {
              "id": "lbl-tarentum",
              "text": "Tarentum",
              "lon": 17.33,
              "lat": 40.47,
              "style": "place"
            },
            {
              "id": "lbl-hannibal-zone",
              "text": "Hannibal's zone",
              "lon": 16.5,
              "lat": 39.2,
              "style": "note"
            }
          ]
        },
        "map_states": {
          "numidian": {
            "center": [
              10.0,
              37.5
            ],
            "zoom": 5.0,
            "annotations": [
              {
                "id": "lbl-numidia-east",
                "text": "Massylii",
                "lon": 8.5,
                "lat": 36.2,
                "style": "note"
              },
              {
                "id": "lbl-numidia-west",
                "text": "Masaesyli",
                "lon": 4.0,
                "lat": 35.8,
                "style": "note"
              },
              {
                "id": "lbl-carthage",
                "text": "Carthage",
                "lon": 10.32,
                "lat": 36.85,
                "style": "place"
              }
            ]
          }
        },
        "order": 7,
        "year": -215,
        "event_link_status": "unlinked_context",
        "perspective": "carthaginian",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/07-the-long-stay.md",
        "text_files": {
          "carthaginian": "chapters/07-the-long-stay.md",
          "roman": "chapters-roman/07-the-long-stay.md",
          "numidian": "chapters-numidian/07-the-long-stay.md"
        }
      }
    },
    {
      "id": "chapter:hannibal:the-oath",
      "kind": "chapter",
      "label": "The Oath",
      "summary": "Spain, 237 BCE",
      "tags": [
        "chapter",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "contrast_header": "Carthage: the oath was a mandate. Rome: Saguntum was the pretext.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            3.0,
            38.5
          ],
          "zoom": 4.5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -218
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-carthago-nova",
              "text": "Carthago Nova",
              "lon": -0.98,
              "lat": 37.6,
              "style": "place"
            },
            {
              "id": "lbl-carthage",
              "text": "Carthage",
              "lon": 10.32,
              "lat": 36.85,
              "style": "place"
            },
            {
              "id": "lbl-rome",
              "text": "Rome",
              "lon": 12.49,
              "lat": 41.89,
              "style": "place"
            },
            {
              "id": "lbl-carthaginian-empire",
              "text": "Carthaginian Empire",
              "lon": 1.0,
              "lat": 34.5,
              "style": "boundary"
            }
          ]
        },
        "map_states": {
          "numidian": {
            "center": [
              7.0,
              35.0
            ],
            "zoom": 5.0,
            "annotations": [
              {
                "id": "lbl-numidia",
                "text": "Numidia",
                "lon": 6.0,
                "lat": 35.5,
                "style": "boundary"
              },
              {
                "id": "lbl-carthage",
                "text": "Carthage",
                "lon": 10.32,
                "lat": 36.85,
                "style": "place"
              },
              {
                "id": "lbl-massylii",
                "text": "Massylii",
                "lon": 8.5,
                "lat": 36.2,
                "style": "note"
              },
              {
                "id": "lbl-masaesyli",
                "text": "Masaesyli",
                "lon": 4.0,
                "lat": 35.8,
                "style": "note"
              }
            ]
          }
        },
        "order": 1,
        "year": -218,
        "event_link_status": "unlinked_context",
        "perspective": "carthaginian",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/01-the-oath.md",
        "text_files": {
          "carthaginian": "chapters/01-the-oath.md",
          "roman": "chapters-roman/01-the-oath.md",
          "numidian": "chapters-numidian/01-the-oath.md"
        }
      }
    },
    {
      "id": "chapter:hannibal:the-pass",
      "kind": "chapter",
      "label": "The Pass",
      "summary": "The Alps, October 218 BCE",
      "tags": [
        "chapter",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "contrast_header": "Carthage: Hannibal's will overcame geography. Rome: impossible. Then he was there.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                5.0,
                44.2
              ],
              "zoom": 6.0,
              "bearing": 0,
              "pitch": 0
            }
          },
          {
            "offset": 0.4,
            "map_state": {
              "center": [
                7.05,
                45.17
              ],
              "zoom": 9.0,
              "bearing": 15,
              "pitch": 35
            }
          },
          {
            "offset": 0.82,
            "map_state": {
              "center": [
                8.8,
                44.8
              ],
              "zoom": 6.5,
              "bearing": 0,
              "pitch": 0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            7.8,
            45.0
          ],
          "zoom": 7.0,
          "bearing": 12,
          "pitch": 20,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -218
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-alps",
              "text": "The Alps",
              "lon": 7.05,
              "lat": 45.17,
              "style": "note"
            },
            {
              "id": "lbl-po-valley",
              "text": "Po Valley",
              "lon": 10.5,
              "lat": 45.2,
              "style": "note"
            },
            {
              "id": "lbl-taurini",
              "text": "Taurini",
              "lon": 7.68,
              "lat": 45.07,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 3,
        "year": -218,
        "event_link_status": "unlinked_context",
        "perspective": "carthaginian",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/03-the-pass.md",
        "text_files": {
          "carthaginian": "chapters/03-the-pass.md",
          "roman": "chapters-roman/03-the-pass.md",
          "numidian": "chapters-numidian/03-the-pass.md"
        }
      }
    },
    {
      "id": "chapter:hannibal:the-river",
      "kind": "chapter",
      "label": "The River",
      "summary": "The Rhône, August 218 BCE",
      "tags": [
        "chapter",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "contrast_header": "Carthage: logistics as strategy. Rome: three days late — Scipio missed him at Massalia.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                2.0,
                43.5
              ],
              "zoom": 5.5
            }
          },
          {
            "offset": 0.55,
            "map_state": {
              "center": [
                4.58,
                43.88
              ],
              "zoom": 9.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            4.2,
            43.7
          ],
          "zoom": 6.5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -218
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-massalia",
              "text": "Massalia",
              "lon": 5.37,
              "lat": 43.3,
              "style": "place"
            },
            {
              "id": "lbl-narbo",
              "text": "Narbo",
              "lon": 3.0,
              "lat": 43.18,
              "style": "place"
            },
            {
              "id": "lbl-rhone-crossing",
              "text": "Rhône crossing",
              "lon": 4.58,
              "lat": 43.88,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 2,
        "year": -218,
        "event_link_status": "unlinked_context",
        "perspective": "carthaginian",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/02-the-river.md",
        "text_files": {
          "carthaginian": "chapters/02-the-river.md",
          "roman": "chapters-roman/02-the-river.md",
          "numidian": "chapters-numidian/02-the-river.md"
        }
      }
    },
    {
      "id": "chapter:hannibal:trebia",
      "kind": "chapter",
      "label": "Trebia",
      "summary": "Northern Italy, December 218 BCE",
      "tags": [
        "chapter",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "contrast_header": "Carthage: the trap worked exactly as drawn. Rome: two consuls, two strategies, one disaster.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            10.0,
            45.0
          ],
          "zoom": 7.0,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -218
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-trebia",
              "text": "Trebia",
              "lon": 9.7,
              "lat": 45.06,
              "style": "battle"
            },
            {
              "id": "lbl-placentia",
              "text": "Placentia",
              "lon": 9.7,
              "lat": 45.05,
              "style": "place"
            },
            {
              "id": "lbl-cremona",
              "text": "Cremona",
              "lon": 10.02,
              "lat": 45.13,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 4,
        "year": -218,
        "event_link_status": "unlinked_context",
        "perspective": "carthaginian",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/04-trebia.md",
        "text_files": {
          "carthaginian": "chapters/04-trebia.md",
          "roman": "chapters-roman/04-trebia.md",
          "numidian": "chapters-numidian/04-trebia.md"
        }
      }
    },
    {
      "id": "chapter:hannibal:zama",
      "kind": "chapter",
      "label": "Zama",
      "summary": "Tunisia, October 202 BCE",
      "tags": [
        "chapter",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "contrast_header": "Carthage: Cannae reversed. Rome: Polybius calls it the most decisive battle in history.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                10.5,
                36.5
              ],
              "zoom": 6.0
            }
          },
          {
            "offset": 0.65,
            "map_state": {
              "center": [
                8.84,
                36.17
              ],
              "zoom": 10.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            9.5,
            36.2
          ],
          "zoom": 7.5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": -200
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-zama",
              "text": "Zama",
              "lon": 8.84,
              "lat": 36.17,
              "style": "battle"
            },
            {
              "id": "lbl-carthage",
              "text": "Carthage",
              "lon": 10.32,
              "lat": 36.85,
              "style": "place"
            },
            {
              "id": "lbl-hadrumetum",
              "text": "Hadrumetum",
              "lon": 10.63,
              "lat": 35.83,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 9,
        "year": -202,
        "event_link_status": "unlinked_context",
        "perspective": "carthaginian",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/09-zama.md",
        "text_files": {
          "carthaginian": "chapters/09-zama.md",
          "roman": "chapters-roman/09-zama.md",
          "numidian": "chapters-numidian/09-zama.md"
        }
      }
    },
    {
      "id": "chapter:mongols:four-kingdoms",
      "kind": "chapter",
      "label": "Four Kingdoms, One Memory",
      "summary": "the Eurasian steppe, 1260 CE",
      "tags": [
        "chapter",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                90.0,
                45.0
              ],
              "zoom": 3.5
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                70.0,
                40.0
              ],
              "zoom": 2.8
            }
          },
          {
            "offset": 0.9,
            "map_state": {
              "center": [
                70.0,
                38.0
              ],
              "zoom": 2.5
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            70.0,
            40.0
          ],
          "zoom": 3,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1260
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-golden-horde",
              "text": "Golden Horde",
              "lon": 55.0,
              "lat": 50.0,
              "style": "boundary"
            },
            {
              "id": "lbl-ilkhanate",
              "text": "Ilkhanate",
              "lon": 53.0,
              "lat": 33.0,
              "style": "boundary"
            },
            {
              "id": "lbl-chagatai",
              "text": "Chagatai Khanate",
              "lon": 73.0,
              "lat": 42.0,
              "style": "boundary"
            },
            {
              "id": "lbl-yuan",
              "text": "Yuan Dynasty",
              "lon": 110.0,
              "lat": 40.0,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 9,
        "year": 1260,
        "event_link_status": "unlinked_context",
        "perspective": "mongol",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/09-four-kingdoms.md",
        "text_files": {
          "mongol": "chapters/09-four-kingdoms.md",
          "islamic": "chapters-islamic/09-four-kingdoms.md",
          "jin": "chapters-jin/09-four-kingdoms.md"
        }
      }
    },
    {
      "id": "chapter:mongols:night-caliphate-ended",
      "kind": "chapter",
      "label": "The Night the Caliphate Ended",
      "summary": "Baghdad, February 1258 CE",
      "tags": [
        "chapter",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "contrast_header": "The casualty figures for Baghdad range from ninety thousand to eight hundred thousand across the sources. Modern demography makes the upper end impossible. The lower end is still the largest single massacre recorded in the medieval world.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                46.0,
                33.0
              ],
              "zoom": 5.5
            }
          },
          {
            "offset": 0.45,
            "map_state": {
              "center": [
                44.42,
                33.34
              ],
              "zoom": 7.5
            }
          },
          {
            "offset": 0.8,
            "map_state": {
              "center": [
                44.4,
                33.32
              ],
              "zoom": 10.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            44.42,
            33.34
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1258
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-baghdad",
              "text": "Baghdad",
              "lon": 44.42,
              "lat": 33.34,
              "style": "place"
            },
            {
              "id": "lbl-tigris",
              "text": "Tigris River",
              "lon": 44.38,
              "lat": 33.2,
              "style": "note"
            },
            {
              "id": "lbl-hulegu-camp",
              "text": "Hulegu's camp",
              "lon": 44.65,
              "lat": 33.45,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 7,
        "year": 1258,
        "event_link_status": "direct",
        "perspective": "mongol",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/07-night-caliphate-ended.md",
        "text_files": {
          "mongol": "chapters/07-night-caliphate-ended.md",
          "islamic": "chapters-islamic/07-night-caliphate-ended.md",
          "jin": "chapters-jin/07-night-caliphate-ended.md"
        }
      }
    },
    {
      "id": "chapter:mongols:river-of-bones",
      "kind": "chapter",
      "label": "The River of Bones",
      "summary": "the Pontic steppe, 1223 CE",
      "tags": [
        "chapter",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            37.52,
            47.55
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1223
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-kalka",
              "text": "Kalka River (±50 km)",
              "lon": 37.52,
              "lat": 47.55,
              "style": "battle"
            },
            {
              "id": "lbl-commanders",
              "text": "Jebe and Sübedei",
              "lon": 38.5,
              "lat": 47.0,
              "style": "note"
            },
            {
              "id": "lbl-kiev",
              "text": "Kiev →",
              "lon": 30.52,
              "lat": 50.45,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 4,
        "year": 1223,
        "event_link_status": "direct",
        "perspective": "mongol",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/04-river-of-bones.md",
        "text_files": {
          "mongol": "chapters/04-river-of-bones.md",
          "islamic": "chapters-islamic/04-river-of-bones.md",
          "jin": "chapters-jin/04-river-of-bones.md"
        }
      }
    },
    {
      "id": "chapter:mongols:road-to-baghdad",
      "kind": "chapter",
      "label": "The Road to Baghdad",
      "summary": "Persia, 1253–1257 CE",
      "tags": [
        "chapter",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            52.0,
            33.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1256
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-alamut",
              "text": "Alamut (destroyed 1256)",
              "lon": 50.57,
              "lat": 36.45,
              "style": "note"
            },
            {
              "id": "lbl-persia",
              "text": "Persian plateau →",
              "lon": 54.0,
              "lat": 32.0,
              "style": "note"
            },
            {
              "id": "lbl-baghdad-dir",
              "text": "Baghdad →",
              "lon": 46.5,
              "lat": 33.8,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 6,
        "year": 1256,
        "event_link_status": "unlinked_context",
        "perspective": "mongol",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/06-road-to-baghdad.md",
        "text_files": {
          "mongol": "chapters/06-road-to-baghdad.md",
          "islamic": "chapters-islamic/06-road-to-baghdad.md",
          "jin": "chapters-jin/06-road-to-baghdad.md"
        }
      }
    },
    {
      "id": "chapter:mongols:spring-of-goliath",
      "kind": "chapter",
      "label": "The Spring of Goliath",
      "summary": "Jezreel Valley, 3 September 1260 CE",
      "tags": [
        "chapter",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "contrast_header": "The conventional description of Ain Jalut is 'the first major Mongol defeat.' This requires precision: it was the first time the Mongol advance was permanently reversed. The distinction matters.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            35.38,
            32.59
          ],
          "zoom": 9,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1260
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-ain-jalut",
              "text": "Ain Jalut",
              "lon": 35.38,
              "lat": 32.59,
              "style": "battle"
            },
            {
              "id": "lbl-mamluk",
              "text": "Mamluk advance",
              "lon": 35.1,
              "lat": 32.8,
              "style": "note"
            },
            {
              "id": "lbl-damascus",
              "text": "Damascus →",
              "lon": 36.3,
              "lat": 33.51,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 8,
        "year": 1260,
        "event_link_status": "direct",
        "perspective": "mongol",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/08-spring-of-goliath.md",
        "text_files": {
          "mongol": "chapters/08-spring-of-goliath.md",
          "islamic": "chapters-islamic/08-spring-of-goliath.md",
          "jin": "chapters-jin/08-spring-of-goliath.md"
        }
      }
    },
    {
      "id": "chapter:mongols:two-battles-two-days",
      "kind": "chapter",
      "label": "Two Battles, Two Days",
      "summary": "Poland and Hungary, April 1241 CE",
      "tags": [
        "chapter",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "contrast_header": "Legnica and Mohi were fought two days apart, five hundred kilometres from each other, by separate Mongol columns. Europe had never seen coordinated warfare at this scale.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                15.0,
                51.0
              ],
              "zoom": 5.0
            }
          },
          {
            "offset": 0.4,
            "map_state": {
              "center": [
                16.16,
                51.21
              ],
              "zoom": 8.0
            }
          },
          {
            "offset": 0.75,
            "map_state": {
              "center": [
                20.77,
                47.98
              ],
              "zoom": 8.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            19.0,
            49.5
          ],
          "zoom": 4,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1241
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-legnica",
              "text": "Legnica (April 9)",
              "lon": 16.16,
              "lat": 51.21,
              "style": "battle"
            },
            {
              "id": "lbl-mohi",
              "text": "Mohi / Sajó River (April 11)",
              "lon": 20.77,
              "lat": 47.98,
              "style": "battle"
            },
            {
              "id": "lbl-distance",
              "text": "2 days, 500 km apart",
              "lon": 18.5,
              "lat": 50.5,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 5,
        "year": 1241,
        "event_link_status": "direct",
        "perspective": "mongol",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/05-two-battles-two-days.md",
        "text_files": {
          "mongol": "chapters/05-two-battles-two-days.md",
          "islamic": "chapters-islamic/05-two-battles-two-days.md",
          "jin": "chapters-jin/05-two-battles-two-days.md"
        }
      }
    },
    {
      "id": "chapter:mongols:wall-does-not-hold",
      "kind": "chapter",
      "label": "The Wall Does Not Hold",
      "summary": "northern China, 1211–1215 CE",
      "tags": [
        "chapter",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            116.39,
            39.92
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1215
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-zhongdu",
              "text": "Zhongdu (Beijing)",
              "lon": 116.39,
              "lat": 39.92,
              "style": "place"
            },
            {
              "id": "lbl-jin-capital",
              "text": "Jin Dynasty capital",
              "lon": 116.8,
              "lat": 39.6,
              "style": "note"
            },
            {
              "id": "lbl-great-wall",
              "text": "Great Wall direction →",
              "lon": 113.0,
              "lat": 41.5,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 2,
        "year": 1215,
        "event_link_status": "direct",
        "perspective": "mongol",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/02-wall-does-not-hold.md",
        "text_files": {
          "mongol": "chapters/02-wall-does-not-hold.md",
          "islamic": "chapters-islamic/02-wall-does-not-hold.md",
          "jin": "chapters-jin/02-wall-does-not-hold.md"
        }
      }
    },
    {
      "id": "chapter:mongols:white-banner",
      "kind": "chapter",
      "label": "The White Banner",
      "summary": "the Onon River, 1206 CE",
      "tags": [
        "chapter",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "contrast_header": "The Secret History of the Mongols is the only story in this project where the conquering civilization left a self-authored account. It is also a state document, not a confession.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            110.65,
            49.02
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1206
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-onon-river",
              "text": "Onon River",
              "lon": 110.65,
              "lat": 49.02,
              "style": "place"
            },
            {
              "id": "lbl-kurultai",
              "text": "Temüjin proclaimed Genghis Khan",
              "lon": 111.2,
              "lat": 48.7,
              "style": "note"
            },
            {
              "id": "lbl-karakorum",
              "text": "Karakorum direction →",
              "lon": 102.5,
              "lat": 47.5,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 1,
        "year": 1206,
        "event_link_status": "direct",
        "perspective": "mongol",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/01-white-banner.md",
        "text_files": {
          "mongol": "chapters/01-white-banner.md",
          "islamic": "chapters-islamic/01-white-banner.md",
          "jin": "chapters-jin/01-white-banner.md"
        }
      }
    },
    {
      "id": "chapter:mongols:world-conqueror-turns-west",
      "kind": "chapter",
      "label": "The World Conqueror Turns West",
      "summary": "Central Asia, 1219–1220 CE",
      "tags": [
        "chapter",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "contrast_header": "The pre-conquest population of Samarkand: sources say one hundred thousand houses. Modern demography says two hundred thousand people. The ruins Changchun walked through in 1221 held the answer; no one counted it then.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            66.97,
            39.65
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1220
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-samarkand",
              "text": "Samarkand",
              "lon": 66.97,
              "lat": 39.65,
              "style": "place"
            },
            {
              "id": "lbl-otrar",
              "text": "Otrar (destroyed 1219)",
              "lon": 68.3,
              "lat": 42.85,
              "style": "note"
            },
            {
              "id": "lbl-merv",
              "text": "Merv →",
              "lon": 62.18,
              "lat": 37.63,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 3,
        "year": 1220,
        "event_link_status": "direct",
        "perspective": "mongol",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/03-world-conqueror-turns-west.md",
        "text_files": {
          "mongol": "chapters/03-world-conqueror-turns-west.md",
          "islamic": "chapters-islamic/03-world-conqueror-turns-west.md",
          "jin": "chapters-jin/03-world-conqueror-turns-west.md"
        }
      }
    },
    {
      "id": "chapter:rome:adrianople",
      "kind": "chapter",
      "label": "The Battle of Adrianople",
      "summary": "Adrianople, 9 August 378 CE",
      "tags": [
        "chapter",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "contrast_header": "Ammianus Marcellinus gives two contradictory accounts of Valens's death in the same passage. The truth of the end of a Roman emperor depends on which sentence you read.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                27.5,
                42.5
              ],
              "zoom": 6.0
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                26.57,
                41.68
              ],
              "zoom": 10.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            26.57,
            41.68
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 400
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-adrianople",
              "text": "Adrianople (±2 km)",
              "lon": 26.57,
              "lat": 41.68,
              "style": "battle"
            },
            {
              "id": "lbl-valens-camp",
              "text": "Valens's camp",
              "lon": 26.5,
              "lat": 41.75,
              "style": "note"
            },
            {
              "id": "lbl-wagon-lager",
              "text": "Gothic wagon-lager",
              "lon": 26.62,
              "lat": 41.8,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 2,
        "year": 378,
        "event_link_status": "direct",
        "perspective": "western_roman",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/02-adrianople.md",
        "text_files": {
          "western_roman": "chapters/02-adrianople.md",
          "visigoth": "chapters-visigoth/02-adrianople.md",
          "hunnic": "chapters-hunnic/02-adrianople.md"
        }
      }
    },
    {
      "id": "chapter:rome:attila-gaul",
      "kind": "chapter",
      "label": "The Scourge of God",
      "summary": "the plains of Gaul, 451 CE",
      "tags": [
        "chapter",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            4.5,
            48.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 451
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-catalaunian",
              "text": "Catalaunian Plains (location uncertain)",
              "lon": 4.35,
              "lat": 48.83,
              "style": "battle"
            },
            {
              "id": "lbl-aetius",
              "text": "Aetius",
              "lon": 3.5,
              "lat": 48.5,
              "style": "note"
            },
            {
              "id": "lbl-attila",
              "text": "Attila",
              "lon": 5.5,
              "lat": 49.0,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 5,
        "year": 451,
        "event_link_status": "direct",
        "perspective": "western_roman",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/05-attila-gaul.md",
        "text_files": {
          "western_roman": "chapters/05-attila-gaul.md",
          "visigoth": "chapters-visigoth/05-attila-gaul.md",
          "hunnic": "chapters-hunnic/05-attila-gaul.md"
        }
      }
    },
    {
      "id": "chapter:rome:gothic-shore",
      "kind": "chapter",
      "label": "The Gothic Shore",
      "summary": "the Danube, 376 CE",
      "tags": [
        "chapter",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "contrast_header": "The Roman officers who settled Gothic families on the Danube took bribes and sold them rotten grain. The Goths remembered this when they chose whether to fight.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            27.0,
            44.5
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 376
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-danube",
              "text": "Danube frontier",
              "lon": 26.0,
              "lat": 44.2,
              "style": "note"
            },
            {
              "id": "lbl-adrianople",
              "text": "Adrianople →",
              "lon": 26.57,
              "lat": 41.68,
              "style": "place"
            },
            {
              "id": "lbl-constantinople",
              "text": "Constantinople →",
              "lon": 28.97,
              "lat": 41.01,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 1,
        "year": 376,
        "event_link_status": "unlinked_context",
        "perspective": "western_roman",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/01-gothic-shore.md",
        "text_files": {
          "western_roman": "chapters/01-gothic-shore.md",
          "visigoth": "chapters-visigoth/01-gothic-shore.md",
          "hunnic": "chapters-hunnic/01-gothic-shore.md"
        }
      }
    },
    {
      "id": "chapter:rome:romulus-augustulus",
      "kind": "chapter",
      "label": "September 476",
      "summary": "Ravenna, 4 September 476 CE",
      "tags": [
        "chapter",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "contrast_header": "Julius Nepos was alive and recognized by Constantinople as the legitimate Western emperor until 480 CE. The man deposed on September 4, 476 was a child emperor no one recognized anyway.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                12.2,
                44.41
              ],
              "zoom": 8.0,
              "bearing": 0,
              "pitch": 0
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                12.2,
                44.41
              ],
              "zoom": 8.0,
              "bearing": 0,
              "pitch": 10
            }
          },
          {
            "offset": 1.0,
            "map_state": {
              "center": [
                12.2,
                44.41
              ],
              "zoom": 8.0,
              "bearing": 0,
              "pitch": 20
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            12.2,
            44.41
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 476
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-ravenna",
              "text": "Ravenna",
              "lon": 12.2,
              "lat": 44.41,
              "style": "place"
            },
            {
              "id": "lbl-odoacer-camp",
              "text": "Odoacer's camp",
              "lon": 12.1,
              "lat": 44.5,
              "style": "note"
            },
            {
              "id": "lbl-constantinople",
              "text": "Constantinople →",
              "lon": 28.97,
              "lat": 41.01,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 8,
        "year": 476,
        "event_link_status": "direct",
        "perspective": "western_roman",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/08-romulus-augustulus.md",
        "text_files": {
          "western_roman": "chapters/08-romulus-augustulus.md",
          "visigoth": "chapters-visigoth/08-romulus-augustulus.md",
          "hunnic": "chapters-hunnic/08-romulus-augustulus.md"
        }
      }
    },
    {
      "id": "chapter:rome:sack-of-rome-410",
      "kind": "chapter",
      "label": "The Eternal City Burns",
      "summary": "Rome, 24 August 410 CE",
      "tags": [
        "chapter",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "contrast_header": "Alaric had requested a Roman military command and a settlement for his people for a decade before sacking Rome. The sack was the end of negotiation, not its beginning.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                13.0,
                42.5
              ],
              "zoom": 6.0
            }
          },
          {
            "offset": 0.4,
            "map_state": {
              "center": [
                12.49,
                41.89
              ],
              "zoom": 9.0
            }
          },
          {
            "offset": 0.75,
            "map_state": {
              "center": [
                12.498,
                41.913
              ],
              "zoom": 13.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            12.49,
            41.89
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 410
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-salarian-gate",
              "text": "Salarian Gate",
              "lon": 12.498,
              "lat": 41.913,
              "style": "note"
            },
            {
              "id": "lbl-forum",
              "text": "Forum Romanum",
              "lon": 12.485,
              "lat": 41.892,
              "style": "place"
            },
            {
              "id": "lbl-aventine",
              "text": "Aventine Hill",
              "lon": 12.479,
              "lat": 41.88,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 4,
        "year": 410,
        "event_link_status": "direct",
        "perspective": "western_roman",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/04-sack-of-rome-410.md",
        "text_files": {
          "western_roman": "chapters/04-sack-of-rome-410.md",
          "visigoth": "chapters-visigoth/04-sack-of-rome-410.md",
          "hunnic": "chapters-hunnic/04-sack-of-rome-410.md"
        }
      }
    },
    {
      "id": "chapter:rome:stilicho",
      "kind": "chapter",
      "label": "The General Who Held It Together",
      "summary": "Mediolanum / Milan, 395–408 CE",
      "tags": [
        "chapter",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            9.19,
            45.46
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 400
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-mediolanum",
              "text": "Mediolanum",
              "lon": 9.19,
              "lat": 45.46,
              "style": "place"
            },
            {
              "id": "lbl-western-court",
              "text": "Western court →",
              "lon": 10.5,
              "lat": 45.0,
              "style": "note"
            },
            {
              "id": "lbl-ravenna",
              "text": "Ravenna (after 402) →",
              "lon": 12.2,
              "lat": 44.41,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 3,
        "year": 400,
        "event_link_status": "unlinked_context",
        "perspective": "western_roman",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/03-stilicho.md",
        "text_files": {
          "western_roman": "chapters/03-stilicho.md",
          "visigoth": "chapters-visigoth/03-stilicho.md",
          "hunnic": "chapters-hunnic/03-stilicho.md"
        }
      }
    },
    {
      "id": "chapter:rome:the-long-unwinding",
      "kind": "chapter",
      "label": "The Puppet Emperors",
      "summary": "Ravenna, 455–475 CE",
      "tags": [
        "chapter",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            12.2,
            44.41
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 465
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-ravenna",
              "text": "Ravenna",
              "lon": 12.2,
              "lat": 44.41,
              "style": "place"
            },
            {
              "id": "lbl-western-empire",
              "text": "Western Empire ↓",
              "lon": 10.0,
              "lat": 43.0,
              "style": "note"
            },
            {
              "id": "lbl-constantinople",
              "text": "Constantinople →",
              "lon": 28.97,
              "lat": 41.01,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 7,
        "year": 465,
        "event_link_status": "unlinked_context",
        "perspective": "western_roman",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/07-the-long-unwinding.md",
        "text_files": {
          "western_roman": "chapters/07-the-long-unwinding.md",
          "visigoth": "chapters-visigoth/07-the-long-unwinding.md",
          "hunnic": "chapters-hunnic/07-the-long-unwinding.md"
        }
      }
    },
    {
      "id": "chapter:rome:vandals",
      "kind": "chapter",
      "label": "The Second Sack",
      "summary": "Rome, June 455 CE",
      "tags": [
        "chapter",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "contrast_header": null,
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            12.49,
            41.89
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 455
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-tiber",
              "text": "Tiber mouth",
              "lon": 12.23,
              "lat": 41.73,
              "style": "note"
            },
            {
              "id": "lbl-forum",
              "text": "Forum Romanum",
              "lon": 12.485,
              "lat": 41.892,
              "style": "place"
            },
            {
              "id": "lbl-ostia",
              "text": "Ostia →",
              "lon": 12.29,
              "lat": 41.76,
              "style": "place"
            }
          ]
        },
        "map_states": null,
        "order": 6,
        "year": 455,
        "event_link_status": "direct",
        "perspective": "western_roman",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/06-vandals.md",
        "text_files": {
          "western_roman": "chapters/06-vandals.md",
          "visigoth": "chapters-visigoth/06-vandals.md",
          "hunnic": "chapters-hunnic/06-vandals.md"
        }
      }
    },
    {
      "id": "chapter:rome:what-fell",
      "kind": "chapter",
      "label": "What Fell in 476",
      "summary": "the world, 476 CE and after",
      "tags": [
        "chapter",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "contrast_header": "No contemporary Latin source called 476 'the fall of Rome.' That framing was Gibbon's, fourteen centuries later.",
        "domain": "parallax",
        "keyframes": null,
        "layer": "narrative",
        "map_state": {
          "center": [
            15.0,
            44.0
          ],
          "zoom": 4,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 476
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-west",
              "text": "West",
              "lon": 5.0,
              "lat": 44.0,
              "style": "boundary"
            },
            {
              "id": "lbl-east",
              "text": "East",
              "lon": 33.0,
              "lat": 40.0,
              "style": "boundary"
            },
            {
              "id": "lbl-question",
              "text": "The question that remains",
              "lon": 15.0,
              "lat": 38.0,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 9,
        "year": 476,
        "event_link_status": "unlinked_context",
        "perspective": "western_roman",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/09-what-fell.md",
        "text_files": {
          "western_roman": "chapters/09-what-fell.md",
          "visigoth": "chapters-visigoth/09-what-fell.md",
          "hunnic": "chapters-hunnic/09-what-fell.md"
        }
      }
    },
    {
      "id": "chapter:timurids:ankara",
      "kind": "chapter",
      "label": "Ankara",
      "summary": "central Anatolia, 20 July 1402 CE",
      "tags": [
        "chapter",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "contrast_header": "Ibn Arabshah says Bayezid was kept in a cage as a footstool. Yazdi says he was treated as an honored prisoner and given a tent of his own. Both wrote within 30 years of the event. Neither was present.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                50.0,
                38.0
              ],
              "zoom": 5.0
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                32.85,
                39.93
              ],
              "zoom": 9.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            35.0,
            39.5
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1402
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-ankara",
              "text": "Ankara (battle site)",
              "lon": 32.85,
              "lat": 39.93,
              "style": "battle"
            },
            {
              "id": "lbl-ottoman",
              "text": "Ottoman Empire",
              "lon": 35.0,
              "lat": 39.0,
              "style": "boundary"
            },
            {
              "id": "lbl-const",
              "text": "Constantinople (under siege)",
              "lon": 28.98,
              "lat": 41.01,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 5,
        "year": 1402,
        "event_link_status": "direct",
        "perspective": "timurid",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/05-the-sultan-in-chains.md",
        "text_files": {
          "timurid": "chapters/05-the-sultan-in-chains.md",
          "ottoman": "chapters-ottoman/05-the-sultan-in-chains.md",
          "mamluk": "chapters-mamluk/05-the-sultan-in-chains.md"
        }
      }
    },
    {
      "id": "chapter:timurids:baghdad",
      "kind": "chapter",
      "label": "The Second Sack",
      "summary": "Baghdad, 1401 CE",
      "tags": [
        "chapter",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "contrast_header": "Yazdi records 90 towers of skulls — 1,500 skulls per tower — built after the sack of Baghdad. The population of Baghdad in 1401 cannot be reconstructed with confidence. The towers are confirmed. The arithmetic is impossible.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                39.0,
                35.0
              ],
              "zoom": 5.5
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                44.44,
                33.34
              ],
              "zoom": 9.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            44.44,
            33.34
          ],
          "zoom": 7,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1401
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-baghdad",
              "text": "Baghdad (sacked 1258, 1401)",
              "lon": 44.44,
              "lat": 33.34,
              "style": "battle"
            },
            {
              "id": "lbl-euphrates",
              "text": "Euphrates corridor",
              "lon": 42.0,
              "lat": 34.5,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 7,
        "year": 1401,
        "event_link_status": "direct",
        "perspective": "timurid",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/07-baghdad.md",
        "text_files": {
          "timurid": "chapters/07-baghdad.md",
          "ottoman": "chapters-ottoman/07-baghdad.md",
          "mamluk": "chapters-mamluk/07-baghdad.md"
        }
      }
    },
    {
      "id": "chapter:timurids:clavijo",
      "kind": "chapter",
      "label": "The Ambassador",
      "summary": "Samarkand, 1403–1404 CE",
      "tags": [
        "chapter",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "contrast_header": "Clavijo describes wine being served freely at Timur's court, a detail the Zafarnama omits entirely. Ibn Khaldun, who met Timur outside Damascus three years earlier, recorded their conversation about North African geography with the cold eye of someone being assessed for logistical intelligence. Both men left accounts. The Zafarnama does not mention either visitor's perspective.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                45.0,
                38.0
              ],
              "zoom": 4.5
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                66.97,
                39.65
              ],
              "zoom": 9.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            66.97,
            39.65
          ],
          "zoom": 8,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1404
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true
            }
          },
          "annotations": [
            {
              "id": "lbl-samarkand-clavijo",
              "text": "Samarkand (Timur's court)",
              "lon": 66.97,
              "lat": 39.65,
              "style": "place"
            },
            {
              "id": "lbl-castile",
              "text": "← Castile (Clavijo's origin)",
              "lon": 55.0,
              "lat": 42.0,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 6,
        "year": 1403,
        "event_link_status": "direct",
        "perspective": "timurid",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/06-clavijo.md",
        "text_files": {
          "timurid": "chapters/06-clavijo.md",
          "ottoman": "chapters-ottoman/06-clavijo.md",
          "mamluk": "chapters-mamluk/06-clavijo.md"
        }
      }
    },
    {
      "id": "chapter:timurids:india",
      "kind": "chapter",
      "label": "The Elephants",
      "summary": "Delhi, 1398 CE",
      "tags": [
        "chapter",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "contrast_header": "The Zafarnama frames the Delhi campaign as punishment for the Sultanate's insufficient Islamic governance toward Hindu subjects. The solution to the war elephants — driving burning camels into the elephant line — is confirmed across multiple sources. Timur did not attempt to hold Delhi. He took what was portable and withdrew across the Indus within months. The Sultanate survived. The city did not, for a generation.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                66.97,
                39.65
              ],
              "zoom": 4.5
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                77.21,
                28.63
              ],
              "zoom": 8.0
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                72.0,
                32.0
              ],
              "zoom": 5.5
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            75.0,
            30.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1398
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true
            }
          },
          "annotations": [
            {
              "id": "lbl-delhi",
              "text": "Delhi",
              "lon": 77.21,
              "lat": 28.63,
              "style": "battle"
            },
            {
              "id": "lbl-indus",
              "text": "Indus crossing",
              "lon": 71.0,
              "lat": 30.5,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 4,
        "year": 1398,
        "event_link_status": "direct",
        "perspective": "timurid",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/04-india.md",
        "text_files": {
          "timurid": "chapters/04-india.md",
          "ottoman": "chapters-ottoman/04-india.md",
          "mamluk": "chapters-mamluk/04-india.md"
        }
      }
    },
    {
      "id": "chapter:timurids:samarkand",
      "kind": "chapter",
      "label": "The City",
      "summary": "Samarkand, 1370 CE",
      "tags": [
        "chapter",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "contrast_header": "The Zafarnama names the suburbs of Samarkand after conquered cities — Cairo, Baghdad, Damascus — before those cities were sacked. Clavijo, arriving in 1404, describes the mosque gateway Timur ordered demolished and rebuilt larger because it was too low for his satisfaction. He was seventy years old and could not walk without support.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                62.0,
                40.0
              ],
              "zoom": 5.0
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                66.97,
                39.65
              ],
              "zoom": 9.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            66.97,
            39.65
          ],
          "zoom": 7,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1370
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-samarkand",
              "text": "Samarkand",
              "lon": 66.97,
              "lat": 39.65,
              "style": "place"
            },
            {
              "id": "lbl-transoxiana",
              "text": "Transoxiana",
              "lon": 65.0,
              "lat": 40.5,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 1,
        "year": 1370,
        "event_link_status": "direct",
        "perspective": "timurid",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/01-samarkand.md",
        "text_files": {
          "timurid": "chapters/01-samarkand.md",
          "ottoman": "chapters-ottoman/01-samarkand.md",
          "mamluk": "chapters-mamluk/01-samarkand.md"
        }
      }
    },
    {
      "id": "chapter:timurids:the-method",
      "kind": "chapter",
      "label": "The Method",
      "summary": "Central Asia, 1370s",
      "tags": [
        "chapter",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "contrast_header": "The Zafarnama frames the pyramids of skulls as just punishment for cities that broke surrender terms. Ibn Arabshah frames the same pyramids as policy designed to terrorize the next city into submission. Both are accurate descriptions of the same calculation. The Zafarnama is more honest about the logic than it intends to be.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                66.97,
                39.65
              ],
              "zoom": 5.5
            }
          },
          {
            "offset": 0.7,
            "map_state": {
              "center": [
                58.0,
                38.0
              ],
              "zoom": 5.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            63.0,
            39.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1375
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true
            }
          },
          "annotations": [
            {
              "id": "lbl-samarkand-2",
              "text": "Samarkand (center of operations)",
              "lon": 66.97,
              "lat": 39.65,
              "style": "place"
            },
            {
              "id": "lbl-isfahan",
              "text": "Isfahan (1387, 70,000 skulls)",
              "lon": 51.68,
              "lat": 32.66,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 2,
        "year": 1375,
        "event_link_status": "unlinked_context",
        "perspective": "timurid",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/02-the-method.md",
        "text_files": {
          "timurid": "chapters/02-the-method.md",
          "ottoman": "chapters-ottoman/02-the-method.md",
          "mamluk": "chapters-mamluk/02-the-method.md"
        }
      }
    },
    {
      "id": "chapter:timurids:the-turn-east",
      "kind": "chapter",
      "label": "The China Road",
      "summary": "Samarkand to Otrar, 1404 CE",
      "tags": [
        "chapter",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "contrast_header": "The Zafarnama frames the China campaign as the completion of Genghisid restoration. Clavijo, present in Samarkand when the preparations began, observed the Chinese ambassador at court without fully understanding the context. Whether Timur could have reversed 1368 and taken the Ming is one of the genuinely unanswerable questions of the period. The army assembled. Timur fell ill at Otrar. The question was never tested.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                66.97,
                39.65
              ],
              "zoom": 6.0
            }
          },
          {
            "offset": 0.6,
            "map_state": {
              "center": [
                68.77,
                41.12
              ],
              "zoom": 8.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            68.0,
            42.0
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1404
            },
            "events": {
              "visible": false
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": true
            }
          },
          "annotations": [
            {
              "id": "lbl-samarkand-east",
              "text": "Samarkand (departure, Nov 1404)",
              "lon": 66.97,
              "lat": 39.65,
              "style": "place"
            },
            {
              "id": "lbl-otrar",
              "text": "Otrar → death, Feb 1405",
              "lon": 68.77,
              "lat": 41.12,
              "style": "note"
            },
            {
              "id": "lbl-china",
              "text": "Ming China →",
              "lon": 76.0,
              "lat": 42.0,
              "style": "note"
            }
          ]
        },
        "map_states": null,
        "order": 8,
        "year": 1404,
        "event_link_status": "unlinked_context",
        "perspective": "timurid",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/08-the-turn-east.md",
        "text_files": {
          "timurid": "chapters/08-the-turn-east.md",
          "ottoman": "chapters-ottoman/08-the-turn-east.md",
          "mamluk": "chapters-mamluk/08-the-turn-east.md"
        }
      }
    },
    {
      "id": "chapter:timurids:toktamish",
      "kind": "chapter",
      "label": "Twice on the Steppe",
      "summary": "Terek River, 1391–1395",
      "tags": [
        "chapter",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "contrast_header": "Timur helped Toktamish take the Golden Horde's throne in the late 1370s. Toktamish invaded Timur's territories twice within a decade. The Zafarnama's account of the Terek battle emphasizes Timurid tactical superiority; later Russian chronicles note, without any celebration, that the Golden Horde's collapse removed the tribute structure that had kept the Russian principalities fragmented for over a century.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                60.0,
                45.0
              ],
              "zoom": 4.5
            }
          },
          {
            "offset": 0.55,
            "map_state": {
              "center": [
                44.52,
                43.47
              ],
              "zoom": 8.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            48.0,
            43.0
          ],
          "zoom": 6,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1395
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-terek",
              "text": "Terek River (battle site)",
              "lon": 44.52,
              "lat": 43.47,
              "style": "battle"
            },
            {
              "id": "lbl-golden-horde",
              "text": "Golden Horde (broken after 1395)",
              "lon": 52.0,
              "lat": 46.0,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 3,
        "year": 1395,
        "event_link_status": "direct",
        "perspective": "timurid",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/03-toktamish.md",
        "text_files": {
          "timurid": "chapters/03-toktamish.md",
          "ottoman": "chapters-ottoman/03-toktamish.md",
          "mamluk": "chapters-mamluk/03-toktamish.md"
        }
      }
    },
    {
      "id": "chapter:timurids:what-he-left",
      "kind": "chapter",
      "label": "The Ruin and the Gold",
      "summary": "Otrar and after, 1405 CE",
      "tags": [
        "chapter",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "contrast_header": "The Zafarnama and Ibn Arabshah agree on the same events and disagree on what they mean. One sees divine order restored; the other sees divine order shattered. The Timurid Renaissance — Ulugh Beg's observatory, Jami's poetry, Bihzad's miniatures — was funded by the extraction both sources describe. The ruins and the gold are not in conflict. They are the same record.",
        "domain": "parallax",
        "keyframes": [
          {
            "offset": 0.0,
            "map_state": {
              "center": [
                68.77,
                41.12
              ],
              "zoom": 7.0
            }
          },
          {
            "offset": 0.5,
            "map_state": {
              "center": [
                60.0,
                37.0
              ],
              "zoom": 4.5
            }
          },
          {
            "offset": 0.85,
            "map_state": {
              "center": [
                50.0,
                35.0
              ],
              "zoom": 4.0
            }
          }
        ],
        "layer": "narrative",
        "map_state": {
          "center": [
            60.0,
            38.0
          ],
          "zoom": 5,
          "bearing": 0,
          "pitch": 0,
          "layers": {
            "boundaries": {
              "visible": true,
              "filter_year": 1405
            },
            "events": {
              "visible": true
            },
            "places": {
              "visible": true
            },
            "routes": {
              "visible": false
            }
          },
          "annotations": [
            {
              "id": "lbl-otrar-death",
              "text": "Otrar (death, Feb 1405)",
              "lon": 68.77,
              "lat": 41.12,
              "style": "battle"
            },
            {
              "id": "lbl-samarkand-final",
              "text": "Samarkand (Timurid Renaissance)",
              "lon": 66.97,
              "lat": 39.65,
              "style": "place"
            },
            {
              "id": "lbl-extent",
              "text": "Timurid Empire extent",
              "lon": 55.0,
              "lat": 35.0,
              "style": "boundary"
            }
          ]
        },
        "map_states": null,
        "order": 9,
        "year": 1405,
        "event_link_status": "direct",
        "perspective": "timurid",
        "source_kind": "parallax_chapter_export",
        "status": "neutral",
        "text_file": "chapters/09-what-he-left.md",
        "text_files": {
          "timurid": "chapters/09-what-he-left.md",
          "ottoman": "chapters-ottoman/09-what-he-left.md",
          "mamluk": "chapters-mamluk/09-what-he-left.md"
        }
      }
    },
    {
      "id": "claim-conflict:roman-casualty-estimates",
      "kind": "claim_conflict",
      "label": "Roman casualty estimates at Cannae",
      "summary": "The source claims remain separate pending adjudication.",
      "tags": [
        "claim-conflict",
        "preserve_disagreement"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "claim",
        "resolution": "preserve_disagreement",
        "source_kind": "claim_conflict",
        "status": "contested"
      }
    },
    {
      "id": "claim-validation:appian-four-stratagems",
      "kind": "claim_validation",
      "label": "Claim validation: appian-four-stratagems",
      "summary": "Verified as Appian's four-part explanation; it is modeled as a later interpretation rather than a corroborated tactical reconstruction.",
      "tags": [
        "claim-validation",
        "later_source_interpretation",
        "role_bounded"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "appian-four-stratagems",
        "attribution_confidence": "high",
        "epistemic_status": "later_source_interpretation",
        "validation_state": "role_bounded",
        "note": "Verified as Appian's four-part explanation; it is modeled as a later interpretation rather than a corroborated tactical reconstruction.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:appian-roman-losses",
      "kind": "claim_validation",
      "label": "Claim validation: appian-roman-losses",
      "summary": "Appian's fifty-thousand figure is passage-verified but is a later report and does not resolve the casualty conflict.",
      "tags": [
        "claim-validation",
        "contested_estimate",
        "conflict_preserved"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "appian-roman-losses",
        "attribution_confidence": "high",
        "epistemic_status": "contested_estimate",
        "validation_state": "conflict_preserved",
        "note": "Appian's fifty-thousand figure is passage-verified but is a later report and does not resolve the casualty conflict.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:appian-varro-blame",
      "kind": "claim_validation",
      "label": "Claim validation: appian-varro-blame",
      "summary": "High confidence means Appian's blame language is explicit, not that Varro's responsibility is historically settled.",
      "tags": [
        "claim-validation",
        "later_source_framing",
        "role_bounded"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "appian-varro-blame",
        "attribution_confidence": "high",
        "epistemic_status": "later_source_framing",
        "validation_state": "role_bounded",
        "note": "High confidence means Appian's blame language is explicit, not that Varro's responsibility is historically settled.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:cannae-double-envelopment-reception",
      "kind": "claim_validation",
      "label": "Claim validation: cannae-double-envelopment-reception",
      "summary": "Verified to the institutional preface as a claim about Schlieffen's reception of Cannae, not the ancient battle itself.",
      "tags": [
        "claim-validation",
        "doctrinal_reception",
        "role_bounded"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "cannae-double-envelopment-reception",
        "attribution_confidence": "high",
        "epistemic_status": "doctrinal_reception",
        "validation_state": "role_bounded",
        "note": "Verified to the institutional preface as a claim about Schlieffen's reception of Cannae, not the ancient battle itself.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:cavalry-suited-ground",
      "kind": "claim_validation",
      "label": "Claim validation: cavalry-suited-ground",
      "summary": "Verified as a statement in Livy 22.44. It should not be read as independent topographic confirmation.",
      "tags": [
        "claim-validation",
        "source_attestation",
        "passage_verified_with_source_limit"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "cavalry-suited-ground",
        "attribution_confidence": "high",
        "epistemic_status": "source_attestation",
        "validation_state": "passage_verified_with_source_limit",
        "note": "Verified as a statement in Livy 22.44. It should not be read as independent topographic confirmation.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:hidden-defile-hypothesis",
      "kind": "claim_validation",
      "label": "Claim validation: hidden-defile-hypothesis",
      "summary": "The hypothesis is correctly qualified: no artifact survey or sampled section yet confirms that Hannibal used the defile.",
      "tags": [
        "claim-validation",
        "unconfirmed_hypothesis",
        "hypothesis_unconfirmed"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "hidden-defile-hypothesis",
        "attribution_confidence": "high",
        "epistemic_status": "unconfirmed_hypothesis",
        "validation_state": "hypothesis_unconfirmed",
        "note": "The hypothesis is correctly qualified: no artifact survey or sampled section yet confirms that Hannibal used the defile.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:livy-cannae-defections",
      "kind": "claim_validation",
      "label": "Claim validation: livy-cannae-defections",
      "summary": "Verified as Livy's account of Compsa's transfer after the report of Cannae; it is not a complete inventory of Italian political realignment.",
      "tags": [
        "claim-validation",
        "source_attestation",
        "passage_verified_with_source_limit"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "livy-cannae-defections",
        "attribution_confidence": "high",
        "epistemic_status": "source_attestation",
        "validation_state": "passage_verified_with_source_limit",
        "note": "Verified as Livy's account of Compsa's transfer after the report of Cannae; it is not a complete inventory of Italian political realignment.",
        "reviewed_on": "2026-07-19",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:livy-cannae-preparation",
      "kind": "claim_validation",
      "label": "Claim validation: livy-cannae-preparation",
      "summary": "Verified as Livy's campaign narrative and decision framing before the battle.",
      "tags": [
        "claim-validation",
        "source_attestation",
        "passage_verified_with_source_limit"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "livy-cannae-preparation",
        "attribution_confidence": "high",
        "epistemic_status": "source_attestation",
        "validation_state": "passage_verified_with_source_limit",
        "note": "Verified as Livy's campaign narrative and decision framing before the battle.",
        "reviewed_on": "2026-07-19",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:livy-roman-losses",
      "kind": "claim_validation",
      "label": "Claim validation: livy-roman-losses",
      "summary": "Livy's tally is passage-verified and remains one of three incompatible ancient estimates.",
      "tags": [
        "claim-validation",
        "contested_estimate",
        "conflict_preserved"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "livy-roman-losses",
        "attribution_confidence": "high",
        "epistemic_status": "contested_estimate",
        "validation_state": "conflict_preserved",
        "note": "Livy's tally is passage-verified and remains one of three incompatible ancient estimates.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:numidian-pursuit-role",
      "kind": "claim_validation",
      "label": "Claim validation: numidian-pursuit-role",
      "summary": "Verified as the role Polybius assigns to Numidian cavalry in 3.116; this is an attribution to the source.",
      "tags": [
        "claim-validation",
        "source_attestation",
        "passage_verified"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "numidian-pursuit-role",
        "attribution_confidence": "high",
        "epistemic_status": "source_attestation",
        "validation_state": "passage_verified",
        "note": "Verified as the role Polybius assigns to Numidian cavalry in 3.116; this is an attribution to the source.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:plutarch-bantius-cannae-memory",
      "kind": "claim_validation",
      "label": "Claim validation: plutarch-bantius-cannae-memory",
      "summary": "Verified as Plutarch's story about Bantius and Hannibal; it preserves a memory of individual valor, not a general account of the battle.",
      "tags": [
        "claim-validation",
        "later_source_framing",
        "role_bounded"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "plutarch-bantius-cannae-memory",
        "attribution_confidence": "high",
        "epistemic_status": "later_source_framing",
        "validation_state": "role_bounded",
        "note": "Verified as Plutarch's story about Bantius and Hannibal; it preserves a memory of individual valor, not a general account of the battle.",
        "reviewed_on": "2026-07-19",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:plutarch-cannae-survivor-memory",
      "kind": "claim_validation",
      "label": "Claim validation: plutarch-cannae-survivor-memory",
      "summary": "The passage is verified as Plutarch's account of the survivors and Roman response; its biographical arrangement is part of the evidence.",
      "tags": [
        "claim-validation",
        "later_source_framing",
        "role_bounded"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "plutarch-cannae-survivor-memory",
        "attribution_confidence": "high",
        "epistemic_status": "later_source_framing",
        "validation_state": "role_bounded",
        "note": "The passage is verified as Plutarch's account of the survivors and Roman response; its biographical arrangement is part of the evidence.",
        "reviewed_on": "2026-07-19",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:polybius-post-cannae-shock",
      "kind": "claim_validation",
      "label": "Claim validation: polybius-post-cannae-shock",
      "summary": "Verified as Polybius's account of the immediate strategic consequences; it should not be read as a neutral measure of actual alliance change across Italy.",
      "tags": [
        "claim-validation",
        "source_attestation",
        "passage_verified_with_source_limit"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "polybius-post-cannae-shock",
        "attribution_confidence": "high",
        "epistemic_status": "source_attestation",
        "validation_state": "passage_verified_with_source_limit",
        "note": "Verified as Polybius's account of the immediate strategic consequences; it should not be read as a neutral measure of actual alliance change across Italy.",
        "reviewed_on": "2026-07-19",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:polybius-roman-losses",
      "kind": "claim_validation",
      "label": "Claim validation: polybius-roman-losses",
      "summary": "The seventy-thousand figure is passage-verified but conflicts with Livy and Appian; the ontology does not adjudicate the historical total.",
      "tags": [
        "claim-validation",
        "contested_estimate",
        "conflict_preserved"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "polybius-roman-losses",
        "attribution_confidence": "high",
        "epistemic_status": "contested_estimate",
        "validation_state": "conflict_preserved",
        "note": "The seventy-thousand figure is passage-verified but conflicts with Livy and Appian; the ontology does not adjudicate the historical total.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:ridge-river-confinement",
      "kind": "claim_validation",
      "label": "Claim validation: ridge-river-confinement",
      "summary": "The wording is verified in Mahaney, but the paper notes multiple proposed battlefield locations and presents reconnaissance observations rather than a completed site survey.",
      "tags": [
        "claim-validation",
        "qualified_reconstruction",
        "passage_verified_with_source_limit"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "ridge-river-confinement",
        "attribution_confidence": "high",
        "epistemic_status": "qualified_reconstruction",
        "validation_state": "passage_verified_with_source_limit",
        "note": "The wording is verified in Mahaney, but the paper notes multiple proposed battlefield locations and presents reconnaissance observations rather than a completed site survey.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:roman-command-disagreement",
      "kind": "claim_validation",
      "label": "Claim validation: roman-command-disagreement",
      "summary": "Verified as Livy's narrative framing of disagreement between the consuls.",
      "tags": [
        "claim-validation",
        "source_attestation",
        "passage_verified"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "roman-command-disagreement",
        "attribution_confidence": "high",
        "epistemic_status": "source_attestation",
        "validation_state": "passage_verified",
        "note": "Verified as Livy's narrative framing of disagreement between the consuls.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:strabo-cannae-geographic-memory",
      "kind": "claim_validation",
      "label": "Claim validation: strabo-cannae-geographic-memory",
      "summary": "Verified as Strabo's geographic placement of the Aufidus, Canusium, and Cannae; it is contextual evidence rather than a tactical eyewitness account.",
      "tags": [
        "claim-validation",
        "later_source_interpretation",
        "passage_verified_with_source_limit"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "strabo-cannae-geographic-memory",
        "attribution_confidence": "high",
        "epistemic_status": "later_source_interpretation",
        "validation_state": "passage_verified_with_source_limit",
        "note": "Verified as Strabo's geographic placement of the Aufidus, Canusium, and Cannae; it is contextual evidence rather than a tactical eyewitness account.",
        "reviewed_on": "2026-07-19",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "claim-validation:tactical-victory-strategic-limit",
      "kind": "claim_validation",
      "label": "Claim validation: tactical-victory-strategic-limit",
      "summary": "Verified as Richard M. Swain's editorial qualification of the Cannae analogy in the Combat Studies Institute reprint.",
      "tags": [
        "claim-validation",
        "doctrinal_reception",
        "passage_verified"
      ],
      "source_path": null,
      "attributes": {
        "claim_id": "tactical-victory-strategic-limit",
        "attribution_confidence": "high",
        "epistemic_status": "doctrinal_reception",
        "validation_state": "passage_verified",
        "note": "Verified as Richard M. Swain's editorial qualification of the Cannae analogy in the Combat Studies Institute reprint.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "claim",
        "source_kind": "claim_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "collective:asturias",
      "kind": "collective",
      "label": "Asturian sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "asturian"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:byzantium",
      "kind": "collective",
      "label": "Byzantine sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "byzantine"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:carthage",
      "kind": "collective",
      "label": "Carthaginian sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "carthaginian"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:crusaders",
      "kind": "collective",
      "label": "Crusader sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "crusader"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:fatimids",
      "kind": "collective",
      "label": "Fatimid sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "fatimid"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:franks",
      "kind": "collective",
      "label": "Frankish sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "frankish"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:gauls",
      "kind": "collective",
      "label": "Gallic sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "gallic"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:greek-world",
      "kind": "collective",
      "label": "Greek world",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "greek"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:huns",
      "kind": "collective",
      "label": "Hunnic sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "hunnic"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:islamic-world",
      "kind": "collective",
      "label": "Islamic world",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "islamic"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:jin",
      "kind": "collective",
      "label": "Jin sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "jin"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:mamluks",
      "kind": "collective",
      "label": "Mamluk sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "mamluk"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:mongols",
      "kind": "collective",
      "label": "Mongol sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "mongol"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:numidia",
      "kind": "collective",
      "label": "Numidian sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "numidian"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:ottomans",
      "kind": "collective",
      "label": "Ottoman sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "ottoman"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:persia",
      "kind": "collective",
      "label": "Persian sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "persian"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:roman-optimates",
      "kind": "collective",
      "label": "Roman optimates",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "optimates"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:roman-populares",
      "kind": "collective",
      "label": "Roman populares",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "populares"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:rome",
      "kind": "collective",
      "label": "Roman sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "roman"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:saxons",
      "kind": "collective",
      "label": "Saxon sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "saxon"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:timurids",
      "kind": "collective",
      "label": "Timurid sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "timurid"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:umayyads",
      "kind": "collective",
      "label": "Umayyad sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "umayyad"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "collective:visigoths",
      "kind": "collective",
      "label": "Visigothic sphere",
      "summary": "A normalized perspective frame; this is not a claim of political or cultural homogeneity.",
      "tags": [
        "collective",
        "parallax",
        "visigothic"
      ],
      "source_path": "curated:parallax-perspective-normalization",
      "attributes": {
        "collective_type": "perspective_frame",
        "domain": "parallax",
        "layer": "polity",
        "source_kind": "curated_perspective_normalization",
        "status": "neutral"
      }
    },
    {
      "id": "conflict:asturian-resistance",
      "kind": "conflict",
      "label": "Asturian Resistance",
      "summary": "A small but durable resistance system represented by the Covadonga episode.",
      "tags": [
        "conflict",
        "parallax",
        "asturian-resistance",
        "campaign"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "conflict_type": "campaign",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:andalus:event-covadonga-718"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 718,
          "to": 722
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:caesars-civil-war",
      "kind": "conflict",
      "label": "Caesar's Civil War",
      "summary": "The rupture from the Rubicon through the collapse of the Republican order.",
      "tags": [
        "conflict",
        "parallax",
        "caesars-civil-war",
        "war"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "conflict_type": "war",
        "domain": "parallax",
        "event_count": 4,
        "event_ids": [
          "event:caesar:event-rubicon-crossing",
          "event:caesar:event-pompey-evacuates-rome",
          "event:caesar:event-battle-pharsalus",
          "event:caesar:event-battle-philippi"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": -49,
          "to": -42
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:first-crusade",
      "kind": "conflict",
      "label": "First Crusade",
      "summary": "The expedition from Clermont through Constantinople, Antioch, and Jerusalem.",
      "tags": [
        "conflict",
        "parallax",
        "first-crusade",
        "campaign"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "conflict_type": "campaign",
        "domain": "parallax",
        "event_count": 7,
        "event_ids": [
          "event:crusades:event-council-clermont-1095",
          "event:crusades:event-crusaders-constantinople-1097",
          "event:crusades:event-battle-dorylaeum-1097",
          "event:crusades:event-siege-antioch-1097",
          "event:crusades:event-battle-antioch-1098",
          "event:crusades:event-siege-jerusalem-1099",
          "event:crusades:event-sack-jerusalem-1099"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 1095,
          "to": 1099
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:first-punic-war",
      "kind": "conflict",
      "label": "First Punic War",
      "summary": "The Rome–Carthage conflict whose opening and closing are visible in the wider Mediterranean chronology.",
      "tags": [
        "conflict",
        "parallax",
        "first-punic-war",
        "war"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "conflict_type": "war",
        "domain": "parallax",
        "event_count": 2,
        "event_ids": [
          "event:alexander:event-first-punic-war-begins",
          "event:alexander:event-first-punic-war-ends"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": -264,
          "to": -241
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:frankish-imperial-consolidation",
      "kind": "conflict",
      "label": "Frankish Imperial Consolidation",
      "summary": "A political sequence connecting Charlemagne's consolidation to the imperial coronation, kept distinct from the Saxon Wars.",
      "tags": [
        "conflict",
        "parallax",
        "frankish-imperial-consolidation",
        "political_sequence"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "conflict_type": "political_sequence",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:charlemagne:event-christmas-coronation-800"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 800,
          "to": 800
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:gallic-war",
      "kind": "conflict",
      "label": "Gallic War",
      "summary": "Caesar's Gallic campaign, represented here through its declared Alesia anchor.",
      "tags": [
        "conflict",
        "parallax",
        "gallic-war",
        "campaign"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "conflict_type": "campaign",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:caesar:event-siege-of-alesia"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": -52,
          "to": -52
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:lamian-war",
      "kind": "conflict",
      "label": "Lamian War",
      "summary": "The Greek revolt against Macedonian authority after Alexander's death.",
      "tags": [
        "conflict",
        "parallax",
        "lamian-war",
        "war"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "conflict_type": "war",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:alexander:event-lamian-war"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": -323,
          "to": -322
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:late-roman-collapse",
      "kind": "conflict",
      "label": "Late Roman Collapse",
      "summary": "A bounded institutional sequence around the deposition of Romulus Augustulus; it is not reduced to a single military cause.",
      "tags": [
        "conflict",
        "parallax",
        "late-roman-collapse",
        "political_sequence"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "conflict_type": "political_sequence",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:rome:event-deposition-romulus-augustulus"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 476,
          "to": 476
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:mamluk-mongol-war",
      "kind": "conflict",
      "label": "Mamluk–Mongol War",
      "summary": "The Levantine confrontation represented by Ain Jalut and the halt of Mongol expansion.",
      "tags": [
        "conflict",
        "parallax",
        "mamluk-mongol-war",
        "war"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "conflict_type": "war",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:mongols:event-battle-ain-jalut-1260"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 1260,
          "to": 1260
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:mongol-jin-war",
      "kind": "conflict",
      "label": "Mongol–Jin War",
      "summary": "The northern campaign culminating in the fall of Zhongdu.",
      "tags": [
        "conflict",
        "parallax",
        "mongol-jin-war",
        "war"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "conflict_type": "war",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:mongols:event-sack-zhongdu-1215"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 1215,
          "to": 1215
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:mongol-middle-east-campaign",
      "kind": "conflict",
      "label": "Mongol Middle Eastern Campaign",
      "summary": "The campaign that culminates in Baghdad and the end of the Abbasid caliphate.",
      "tags": [
        "conflict",
        "parallax",
        "mongol-middle-east-campaign",
        "campaign"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "conflict_type": "campaign",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:mongols:event-sack-baghdad-1258"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 1258,
          "to": 1258
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:mongol-western-campaign",
      "kind": "conflict",
      "label": "Mongol Western Campaign",
      "summary": "The westward expansion through Samarkand and the Kalka River.",
      "tags": [
        "conflict",
        "parallax",
        "mongol-western-campaign",
        "campaign"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "conflict_type": "campaign",
        "domain": "parallax",
        "event_count": 2,
        "event_ids": [
          "event:mongols:event-destruction-samarkand-1220",
          "event:mongols:event-battle-kalka-river-1223"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 1220,
          "to": 1223
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:saxon-wars",
      "kind": "conflict",
      "label": "Saxon Wars",
      "summary": "Charlemagne's long conflict with Saxony, with Verden preserved as a political and human-cost node.",
      "tags": [
        "conflict",
        "parallax",
        "saxon-wars",
        "war"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "conflict_type": "war",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:charlemagne:event-verden-massacre-782"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 782,
          "to": 782
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:second-punic-war",
      "kind": "conflict",
      "label": "Second Punic War",
      "summary": "The multi-theater war connecting the Barcid buildup, Hannibal's invasion, Cannae, Iberia, allied theaters, and the eventual Roman victory.",
      "tags": [
        "conflict",
        "parallax",
        "second-punic-war",
        "war"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "conflict_type": "war",
        "domain": "parallax",
        "event_count": 11,
        "event_ids": [
          "event:hannibal:event-hamilcar-barca-spain",
          "event:hannibal:event-ebro-treaty",
          "event:hannibal:event-siege-of-saguntum",
          "event:alexander:event-hannibal-crosses-alps",
          "event:alexander:event-battle-of-cannae",
          "event:hannibal:event-philip-v-hannibal-alliance",
          "event:hannibal:event-fall-of-syracuse",
          "event:hannibal:event-hasdrubal-barca-metaurus",
          "event:hannibal:event-scipio-takes-carthago-nova",
          "event:hannibal:event-battle-of-ilipa",
          "event:alexander:event-battle-of-zama"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": -237,
          "to": -202
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:third-punic-war",
      "kind": "conflict",
      "label": "Third Punic War",
      "summary": "The final Rome–Carthage war, represented through the three-year siege and destruction of Carthage in 146 BCE.",
      "tags": [
        "conflict",
        "parallax",
        "third-punic-war",
        "war"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "conflict_type": "war",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:alexander:event-roman-destruction-of-carthage"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": -146,
          "to": -146
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:timurid-central-asian-expansion",
      "kind": "conflict",
      "label": "Timurid Central Asian Expansion",
      "summary": "Timur's rise and the campaigns that connect Samarkand, the steppe, India, and Baghdad.",
      "tags": [
        "conflict",
        "parallax",
        "timurid-central-asian-expansion",
        "campaign"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "conflict_type": "campaign",
        "domain": "parallax",
        "event_count": 5,
        "event_ids": [
          "event:timurids:event-timur-samarkand-1370",
          "event:timurids:event-battle-terek-1395",
          "event:timurids:event-sack-delhi-1398",
          "event:timurids:event-sack-baghdad-1401",
          "event:timurids:event-battle-ankara-1402"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 1370,
          "to": 1402
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:tours-campaign",
      "kind": "conflict",
      "label": "Tours Campaign",
      "summary": "The eighth-century encounter at Tours / Poitiers as a bounded theater event.",
      "tags": [
        "conflict",
        "parallax",
        "tours-campaign",
        "campaign"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "conflict_type": "campaign",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:andalus:event-battle-tours-732"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 732,
          "to": 732
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:umayyad-conquest-of-iberia",
      "kind": "conflict",
      "label": "Umayyad Conquest of Iberia",
      "summary": "The crossing, Guadalete, and fall of Toledo that open the al-Andalus story.",
      "tags": [
        "conflict",
        "parallax",
        "umayyad-conquest-of-iberia",
        "campaign"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "conflict_type": "campaign",
        "domain": "parallax",
        "event_count": 3,
        "event_ids": [
          "event:andalus:event-tariq-crossing-711",
          "event:andalus:event-battle-guadalete-711",
          "event:andalus:event-fall-toledo-712"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 711,
          "to": 712
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:vandal-sack-of-rome",
      "kind": "conflict",
      "label": "Vandal Sack of Rome",
      "summary": "The 455 sack of Rome as a distinct late Roman conflict episode.",
      "tags": [
        "conflict",
        "parallax",
        "vandal-sack-of-rome",
        "campaign"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "conflict_type": "campaign",
        "domain": "parallax",
        "event_count": 1,
        "event_ids": [
          "event:rome:event-sack-rome-455"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 455,
          "to": 455
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "conflict:visigothic-invasion-of-italy",
      "kind": "conflict",
      "label": "Visigothic Invasion of Italy",
      "summary": "The late Roman sequence from Adrianople to the sack of Rome by Alaric's Visigoths.",
      "tags": [
        "conflict",
        "parallax",
        "visigothic-invasion-of-italy",
        "campaign"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "conflict_type": "campaign",
        "domain": "parallax",
        "event_count": 2,
        "event_ids": [
          "event:rome:event-battle-adrianople",
          "event:rome:event-sack-rome-410"
        ],
        "layer": "campaign",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "period": {
          "from": 378,
          "to": 410
        },
        "source_kind": "curated_parallax_conflict_map",
        "status": "qualified"
      }
    },
    {
      "id": "event:alexander:event-artaxerxes-reconquers-egypt",
      "kind": "event",
      "label": "Artaxerxes III Reconquers Egypt",
      "summary": "After two failed attempts, Artaxerxes III expelled the last native pharaoh Nectanebo II and reintegrated Egypt into the Achaemenid Empire, ending 60 years of Egyptian independence. Egypt remained Persian until Alexander arrived eight years later.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "343 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -343,
        "year_latest": -343,
        "year_display": "343 BCE",
        "location": [
          31.25,
          29.85
        ],
        "region": "persia",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-ashoka-kalinga-war",
      "kind": "event",
      "label": "Ashoka's Kalinga War — and Conversion",
      "summary": "Ashoka's conquest of Kalinga killed or displaced hundreds of thousands; his own Major Rock Edict XIII records: 'One hundred and fifty thousand persons were thence carried away captive, one hundred thousand were there slain.' This public inscription of imperial guilt — unique in ancient history — marks his conversion to Buddhist dhamma.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "c. 261 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -261,
        "year_latest": -261,
        "year_display": "c. 261 BCE",
        "location": [
          85.82,
          20.17
        ],
        "region": "india",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-cannae",
      "kind": "event",
      "label": "Battle of Cannae — Rome's Worst Defeat",
      "summary": "Hannibal encircled and annihilated a Roman army of 70,000–80,000 at Cannae using a double-envelopment maneuver that military academies still study. Polybius estimates 70,000 Roman dead; Rome refused to negotiate, beginning the war's long reversal.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "216 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": "cannae-216-bce",
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": "Story significance is narrative framing; consult linked research claims for contested estimates.",
        "temporal_role": "context",
        "year_earliest": -216,
        "year_latest": -216,
        "year_display": "216 BCE",
        "location": [
          16.13,
          41.3
        ],
        "region": "rome",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-caudine-forks",
      "kind": "event",
      "label": "Battle of the Caudine Forks — Rome Humiliated",
      "summary": "An entire Roman army was surrounded by Samnite forces in a narrow mountain pass and forced to pass under the yoke — the most humiliating ritual defeat a Roman army could suffer. Rome ultimately repudiated the peace treaty and continued the Samnite Wars for another thirty years.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "321 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -321,
        "year_latest": -321,
        "year_display": "321 BCE",
        "location": [
          14.72,
          41.08
        ],
        "region": "rome",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-chaeronea",
      "kind": "event",
      "label": "Battle of Chaeronea — Philip II Unifies Greece",
      "summary": "Philip II and the young Alexander defeated the combined Athenian and Theban forces, ending the era of independent Greek city-state power. Demosthenes fled the field; the Sacred Band of Thebes was annihilated to the last man.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "338 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -338,
        "year_latest": -338,
        "year_display": "338 BCE",
        "location": [
          22.84,
          38.49
        ],
        "region": "greece",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-changping",
      "kind": "event",
      "label": "Battle of Changping — Qin Destroys Zhao",
      "summary": "Qin forces under Bai Qi defeated the Zhao army in a campaign of encirclement and executed approximately 400,000 prisoners of war — a figure in Sima Qian partially confirmed by modern archaeological excavation of mass graves. It was the largest engagement in Warring States history and effectively eliminated Zhao as a counterweight to Qin.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "260 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -260,
        "year_latest": -260,
        "year_display": "260 BCE",
        "location": [
          112.92,
          35.8
        ],
        "region": "china",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-crimissus",
      "kind": "event",
      "label": "Battle of the Crimissus — Timoleon Defeats Carthage",
      "summary": "Timoleon, the Corinthian liberator of Syracuse, caught a Carthaginian army crossing the Crimissus River in flood and destroyed the Carthaginian Sacred Band of 2,500 elite citizen soldiers. Plutarch calls it 'the most brilliant victory won by Greeks over barbarians.'",
      "tags": [
        "event",
        "alexander",
        "battle",
        "341 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -341,
        "year_latest": -341,
        "year_display": "341 BCE",
        "location": [
          12.82,
          37.91
        ],
        "region": "sicily",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-cunaxa",
      "kind": "event",
      "label": "Battle of Cunaxa — Cyrus the Younger's Revolt",
      "summary": "Cyrus the Younger led 10,000 Greek mercenaries against his brother Artaxerxes II; Cyrus was killed at the moment of apparent victory, stranding the Greeks deep in Persian territory. Xenophon's subsequent march home produced the Anabasis and demonstrated that Persian infantry could not stop a determined Greek force.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "401 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -401,
        "year_latest": -401,
        "year_display": "401 BCE",
        "location": [
          44.35,
          33.35
        ],
        "region": "persia",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-heraclea",
      "kind": "event",
      "label": "Battle of Heraclea — Pyrrhus Defeats Rome",
      "summary": "Pyrrhus of Epirus, summoned by Tarentum to fight Rome, defeated a Roman army but at enormous cost — his war elephants (the first Romans had ever seen) were decisive, but his officer losses were irreplaceable. Plutarch records his reply when congratulated: 'Another such victory over the Romans and we are undone.'",
      "tags": [
        "event",
        "alexander",
        "battle",
        "280 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -280,
        "year_latest": -280,
        "year_display": "280 BCE",
        "location": [
          16.67,
          40.21
        ],
        "region": "rome",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-ipsus",
      "kind": "event",
      "label": "Battle of Ipsus — The Last Diadochos Falls",
      "summary": "The coalition of Cassander, Lysimachus, Seleucus, and Ptolemy defeated and killed Antigonus I, the last general who had sought to reunite Alexander's empire under a single ruler. Seleucus's war elephants (received from Chandragupta) blocked Demetrius's cavalry from rejoining the battle; the Hellenistic world was now permanently divided.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "301 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -301,
        "year_latest": -301,
        "year_display": "301 BCE",
        "location": [
          31.03,
          38.6
        ],
        "region": "hellenistic",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-leuctra",
      "kind": "event",
      "label": "Battle of Leuctra — Spartan Hegemony Broken",
      "summary": "Epaminondas led Thebes to a decisive victory over Sparta, killing approximately 400 Spartiates and shattering the myth of Spartan invincibility. The Sacred Band's oblique attack became a tactical template studied for centuries.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "371 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -371,
        "year_latest": -371,
        "year_display": "371 BCE",
        "location": [
          23.17,
          38.3
        ],
        "region": "greece",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-magnesia",
      "kind": "event",
      "label": "Battle of Magnesia — Rome Breaks Seleucid Power",
      "summary": "A Roman and Pergamene army defeated Antiochus III's vastly larger Seleucid force — including scythed chariots, Indian war elephants, and cataphract cavalry. The subsequent Treaty of Apamea stripped the Seleucids of Asia Minor and imposed a crippling indemnity, permanently ending Seleucid westward ambitions.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "190 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -190,
        "year_latest": -190,
        "year_display": "190 BCE",
        "location": [
          27.44,
          38.62
        ],
        "region": "hellenistic",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-maling",
      "kind": "event",
      "label": "Battle of Maling — Sun Bin Destroys Wei",
      "summary": "The Qi general Sun Bin lured Wei's premier general Pang Juan into an ambush by simulating a retreating army that reduced its campfires each night; Pang Juan pursued into a narrow defile, was struck by massed crossbow fire, and died by suicide. Wei never recovered its dominant position among the Warring States.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "342 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -342,
        "year_latest": -342,
        "year_display": "342 BCE",
        "location": [
          116.08,
          35.39
        ],
        "region": "china",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-battle-of-zama",
      "kind": "event",
      "label": "Battle of Zama — Scipio Defeats Hannibal",
      "summary": "Scipio Africanus defeated Hannibal at Zama by opening lanes for the war elephants, then swinging his cavalry back to encircle the Carthaginian infantry. Polybius frames this as the battle that 'decided the supremacy of Rome and Carthage' over the Mediterranean.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "202 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -202,
        "year_latest": -202,
        "year_display": "202 BCE",
        "location": [
          8.84,
          36.17
        ],
        "region": "carthage",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-chandragupta-founds-maurya",
      "kind": "event",
      "label": "Chandragupta Founds the Maurya Empire",
      "summary": "Chandragupta Maurya, guided by Kautilya, overthrew the Nanda dynasty and established the first empire to unify most of the Indian subcontinent. Megasthenes, the Seleucid ambassador, describes Pataliputra as a city rivaling Babylon in scale — 9 miles by 1.5 miles, with 570 towers and 64 gates.",
      "tags": [
        "event",
        "alexander",
        "political",
        "c. 321 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -321,
        "year_latest": -320,
        "year_display": "c. 321 BCE",
        "location": [
          85.14,
          25.61
        ],
        "region": "india",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-chandragupta-seleucus-treaty",
      "kind": "event",
      "label": "Treaty of the Indus — Chandragupta and Seleucus Divide the World",
      "summary": "Seleucus I, failing to reconquer Alexander's eastern satrapies, ceded Arachosia, Gedrosia, and Paropamisadae (modern Afghanistan and Pakistan) in exchange for 500 war elephants. Strabo calls this the first formal territorial settlement between a Hellenistic and Indian power; the elephants later proved decisive at Ipsus.",
      "tags": [
        "event",
        "alexander",
        "political",
        "c. 305–303 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -305,
        "year_latest": -303,
        "year_display": "c. 305–303 BCE",
        "location": [
          72.83,
          33.74
        ],
        "region": "india",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-first-punic-war-begins",
      "kind": "event",
      "label": "First Punic War Begins — Rome Enters Sicily",
      "summary": "Rome intervened at Messana in Sicily, beginning a 23-year war that would transform Rome from an Italian land power into a Mediterranean naval empire. Polybius opens his Histories here as the moment Rome 'began to reach out for dominion beyond the sea.'",
      "tags": [
        "event",
        "alexander",
        "political",
        "264 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -264,
        "year_latest": -264,
        "year_display": "264 BCE",
        "location": [
          15.55,
          38.19
        ],
        "region": "carthage",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-first-punic-war-ends",
      "kind": "event",
      "label": "Battle of the Aegates Islands — First Punic War Ends",
      "summary": "Rome's rebuilt fleet defeated the Carthaginian relief fleet west of Sicily, forcing Carthage to sue for peace, cede Sicily, and pay a massive indemnity — making Rome the dominant power in the western Mediterranean. Hamilcar Barca, undefeated on land in Sicily, bitterly disputed the peace; his son Hannibal would later avenge it.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "241 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -241,
        "year_latest": -241,
        "year_display": "241 BCE",
        "location": [
          12.15,
          37.95
        ],
        "region": "carthage",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-galatian-invasion-delphi",
      "kind": "event",
      "label": "Galatian Invasion — Attack on Delphi",
      "summary": "Celtic (Galatian) tribes under Brennus invaded Greece and attempted to plunder the Oracle at Delphi — Greek sources report they were repulsed by earthquake and divine intervention as much as by defenders. The Galatians subsequently settled in central Anatolia (Galatia), reshaping western Asia Minor's political landscape for two centuries.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "279 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -279,
        "year_latest": -279,
        "year_display": "279 BCE",
        "location": [
          22.5,
          38.48
        ],
        "region": "greece",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-gracchi-tiberius",
      "kind": "event",
      "label": "Tiberius Gracchus Assassinated — Roman Republic Fractures",
      "summary": "Tiberius Gracchus's assassination during his land reform tribunate was the first political murder in Rome in over 300 years. Plutarch records senators beating him to death with chair legs on the Capitoline Hill; it opened the era of political violence that would culminate in Caesar and the fall of the Republic.",
      "tags": [
        "event",
        "alexander",
        "political",
        "133 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -133,
        "year_latest": -133,
        "year_display": "133 BCE",
        "location": [
          12.49,
          41.89
        ],
        "region": "rome",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-hannibal-crosses-alps",
      "kind": "event",
      "label": "Hannibal Crosses the Alps",
      "summary": "Hannibal led approximately 38,000 infantry, 8,000 cavalry, and 37 war elephants over the Alps in autumn, losing perhaps half his force to cold, rockfall, and Gallic raids. The passage was considered impossible for an army; its completion placed Carthaginian forces in northern Italy, where Hannibal would remain undefeated for fifteen years.",
      "tags": [
        "event",
        "alexander",
        "battle",
        "218 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -218,
        "year_latest": -218,
        "year_display": "218 BCE",
        "location": [
          7.27,
          44.97
        ],
        "region": "carthage",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-kings-peace-antalcidas",
      "kind": "event",
      "label": "King's Peace — Persia Dictates Terms to Greece",
      "summary": "Artaxerxes II imposed the King's Peace, recognizing Persian sovereignty over all Asian Greeks and guaranteeing autonomy to all Greek city-states — effectively reasserting Achaemenid authority over mainland Greek affairs without a Persian army setting foot in Greece.",
      "tags": [
        "event",
        "alexander",
        "political",
        "387 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -387,
        "year_latest": -387,
        "year_display": "387 BCE",
        "location": [
          28.04,
          38.49
        ],
        "region": "greece",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-lamian-war",
      "kind": "event",
      "label": "Lamian War — Greek Revolt Against Macedon",
      "summary": "On news of Alexander's death, Athens and other Greek states rose against Macedonian rule, besieging Antipater at Lamia in Thessaly. Macedonian reinforcements crushed the revolt; Demosthenes took poison rather than submit, and Athenian democracy was suppressed under Macedonian-imposed oligarchy.",
      "tags": [
        "event",
        "alexander",
        "political",
        "323–322 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -323,
        "year_latest": -322,
        "year_display": "323–322 BCE",
        "location": [
          22.44,
          38.9
        ],
        "region": "greece",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-maccabean-revolt-begins",
      "kind": "event",
      "label": "Maccabean Revolt — Judea Rises Against the Seleucids",
      "summary": "Antiochus IV Epiphanes desecrated the Jerusalem Temple and outlawed Jewish observance, triggering an armed revolt under Mattathias the Hasmonean and his son Judas Maccabaeus. The revolt succeeded in rededication of the Temple (165 BCE) — still commemorated in Hanukkah — and eventually produced an independent Hasmonean state.",
      "tags": [
        "event",
        "alexander",
        "political",
        "167 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -167,
        "year_latest": -167,
        "year_display": "167 BCE",
        "location": [
          35.01,
          31.78
        ],
        "region": "near-east",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-philip-ii-becomes-king",
      "kind": "event",
      "label": "Philip II Becomes King of Macedon",
      "summary": "Following the death of his brother Perdiccas III, Philip II assumed the Macedonian throne and began the military and diplomatic transformation that would make Macedon the dominant power in the Greek world within twenty years — the structural precondition for Alexander's campaigns.",
      "tags": [
        "event",
        "alexander",
        "political",
        "359 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -359,
        "year_latest": -359,
        "year_display": "359 BCE",
        "location": [
          22.52,
          40.76
        ],
        "region": "macedon",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-ptolemy-declares-pharaoh",
      "kind": "event",
      "label": "Ptolemy I Declares Himself Pharaoh",
      "summary": "Following Antigonus's assumption of the royal title, Ptolemy adopted the title of Pharaoh and Basileus, founding the dynasty that would rule Egypt for three centuries — ending only with Cleopatra VII in 30 BCE.",
      "tags": [
        "event",
        "alexander",
        "political",
        "305 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -305,
        "year_latest": -305,
        "year_display": "305 BCE",
        "location": [
          29.92,
          31.2
        ],
        "region": "egypt",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-qin-unification",
      "kind": "event",
      "label": "Qin Unification — First Emperor Proclaims the Empire",
      "summary": "Ying Zheng, King of Qin, completed the conquest of all six rival states and proclaimed himself Qin Shi Huangdi — 'First August Emperor' — inaugurating the imperial title and system that would govern China for two millennia. Sima Qian records the deliberate standardization of weights, measures, script, and axle-widths across a unified territory roughly equal to modern eastern China.",
      "tags": [
        "event",
        "alexander",
        "political",
        "221 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -221,
        "year_latest": -221,
        "year_display": "221 BCE",
        "location": [
          108.87,
          34.33
        ],
        "region": "china",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-roman-destruction-of-carthage",
      "kind": "event",
      "label": "Roman Destruction of Carthage",
      "summary": "After a three-year siege, Scipio Aemilianus destroyed Carthage — burning the city for seventeen days and selling approximately 50,000 survivors into slavery. Appian records Scipio weeping at the ruins and quoting Homer on the fall of Troy; in the same year Rome also razed Corinth.",
      "tags": [
        "event",
        "alexander",
        "political",
        "146 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -146,
        "year_latest": -146,
        "year_display": "146 BCE",
        "location": [
          10.32,
          36.85
        ],
        "region": "carthage",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-sack-of-corinth",
      "kind": "event",
      "label": "Roman Sack of Corinth — Greece Becomes a Province",
      "summary": "The Roman general Mummius destroyed Corinth, sold its population into slavery, and shipped its art treasures to Rome — in the same year Carthage was razed. The simultaneous elimination of the two wealthiest cities in the Mediterranean announced Rome's unchallenged dominance; Greece became in practice a Roman dependency.",
      "tags": [
        "event",
        "alexander",
        "political",
        "146 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -146,
        "year_latest": -146,
        "year_display": "146 BCE",
        "location": [
          22.88,
          37.91
        ],
        "region": "greece",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-seleucid-era-begins",
      "kind": "event",
      "label": "Seleucus Reconquers Babylon — Seleucid Era Begins",
      "summary": "Seleucus I retook Babylon from Antigonus's forces, establishing the Seleucid Era — a calendar system used throughout the Near East for centuries — and beginning the reconquest of Alexander's eastern territories. Diodorus notes that Seleucus arrived with just 1,000 men and built an empire within two decades.",
      "tags": [
        "event",
        "alexander",
        "political",
        "312 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -312,
        "year_latest": -312,
        "year_display": "312 BCE",
        "location": [
          44.42,
          32.54
        ],
        "region": "near-east",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:alexander:event-shang-yang-reforms-qin",
      "kind": "event",
      "label": "Shang Yang's Reforms — Qin's Transformation Begins",
      "summary": "Lord Shang implemented sweeping legal codification, agricultural reorganization, and military meritocracy in Qin — abolishing aristocratic privilege and subordinating the family to the state. Sima Qian records that 'the people of Qin obeyed the new laws and Qin daily grew stronger'; these reforms are the direct foundation of Qin's unification a century later.",
      "tags": [
        "event",
        "alexander",
        "political",
        "356–350 BCE"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -356,
        "year_latest": -350,
        "year_display": "356–350 BCE",
        "location": [
          108.87,
          34.33
        ],
        "region": "china",
        "story_id": "alexander",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:andalus:event-abd-ar-rahman-emirate-756",
      "kind": "event",
      "label": "Abd ar-Rahman I Establishes the Emirate of Córdoba",
      "summary": "Abd ar-Rahman ibn Mu'awiya, last survivor of the Umayyad dynasty after the Abbasid massacre of 750, crossed from North Africa to Iberia and defeated the Abbasid governor at the Battle of the Musara. He established al-Andalus as an independent emirate under Umayyad authority — refusing to acknowledge the Abbasid Caliph in Baghdad. The Córdoba emirate would survive until 1031, when it fragmented into the taifa kingdoms.",
      "tags": [
        "event",
        "andalus",
        "political",
        "756 CE"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 756,
        "year_latest": 756,
        "year_display": "756 CE",
        "location": [
          -4.78,
          37.88
        ],
        "region": "iberia",
        "story_id": "andalus",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:andalus:event-battle-guadalete-711",
      "kind": "event",
      "label": "Battle of Guadalete — Fall of Roderic",
      "summary": "King Roderic's Visigothic army met Tariq's force at the Transductine Promontories — a location near the Río Barbate, approximately [−5.82, 36.19] ± 30 km. Roderic was killed; the Chronicle of 754 confirms his death. The Visigothic kingdom, already fractured by dynastic rivalry between the Witizian and Rudericans, did not reorganize. No successor took the field. The battle was decisive not because of what happened on the day but because of what did not happen afterward.",
      "tags": [
        "event",
        "andalus",
        "battle",
        "July 711 CE"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 711,
        "year_latest": 711,
        "year_display": "July 711 CE",
        "location": [
          -5.82,
          36.19
        ],
        "region": "andalusia",
        "story_id": "andalus",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:andalus:event-battle-tours-732",
      "kind": "event",
      "label": "Battle of Tours / Poitiers",
      "summary": "Abd ar-Rahman al-Ghafiqi led a Muslim force from al-Andalus into Aquitaine, defeating Duke Odo of Aquitaine before being stopped by Charles Martel near Poitiers. The Arabic governor was killed in the battle. The Continuations of Fredegar and Isidore of Beja's continuation both confirm the engagement; casualty figures in later sources are wildly inflated. The battle marked the furthest Muslim advance into Francia. Whether it was 'decisive' for European history is a modern framing, not a contemporary one.",
      "tags": [
        "event",
        "andalus",
        "battle",
        "October 732 CE"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 732,
        "year_latest": 732,
        "year_display": "October 732 CE",
        "location": [
          0.34,
          46.58
        ],
        "region": "gaul",
        "story_id": "andalus",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:andalus:event-berber-revolt-740",
      "kind": "event",
      "label": "Berber Revolt in the Maghreb and al-Andalus",
      "summary": "Berber soldiers in the Maghreb and al-Andalus revolted against Arab administrative dominance — specifically against discriminatory land distribution and taxation that favored Arab settlers over the Berber majority of the conquering army. The revolt disrupted Umayyad control of the northern marches of al-Andalus, withdrawing troops from frontier zones. The Asturian kingdom used this instability to consolidate its position in the northwest.",
      "tags": [
        "event",
        "andalus",
        "political",
        "740–742 CE"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 740,
        "year_latest": 742,
        "year_display": "740–742 CE",
        "location": [
          -3.7,
          40.4
        ],
        "region": "iberia",
        "story_id": "andalus",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:andalus:event-covadonga-718",
      "kind": "event",
      "label": "Battle of Covadonga",
      "summary": "Pelayo, a Visigothic nobleman, defeated a Muslim force in the Cantabrian mountains at Covadonga. The date is disputed — 718 in the Chronicle of Alfonso III, 722 in the Chronicle of Albelda; both were written 150+ years after the event. The scale of the engagement is also contested: Arabic sources (al-Maqqari) dismiss it as a minor border skirmish; Asturian chronicles treat it as providential deliverance. Pelayo was subsequently recognized as king of Asturias. The site is confirmed; the details are hagiography.",
      "tags": [
        "event",
        "andalus",
        "battle",
        "718 or 722 CE"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 718,
        "year_latest": 722,
        "year_display": "718 or 722 CE",
        "location": [
          -5.07,
          43.3
        ],
        "region": "asturias",
        "story_id": "andalus",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:andalus:event-fall-toledo-712",
      "kind": "event",
      "label": "Fall of Toledo",
      "summary": "Musa ibn Nusayr followed Tariq with a larger Arab force in 712, completing the systematic conquest. Toledo — the Visigothic royal capital since Leovigild's reign — fell without major resistance. The Visigothic court had already fled north. The Chronicle of 754 records the conquest of the peninsula city by city; the Arabic sources (Ibn Abd al-Hakam) add legendary detail about hidden treasure that cannot be independently confirmed.",
      "tags": [
        "event",
        "andalus",
        "political",
        "712 CE"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 712,
        "year_latest": 712,
        "year_display": "712 CE",
        "location": [
          -3.99,
          39.86
        ],
        "region": "iberia",
        "story_id": "andalus",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:andalus:event-tariq-crossing-711",
      "kind": "event",
      "label": "Tariq ibn Ziyad Crosses to Iberia",
      "summary": "Tariq ibn Ziyad led approximately 7,000 Berber soldiers across the Strait of Gibraltar, landing near the rock that would take his name — Jabal Tariq. The Chronicle of 754, written in Hispania within living memory, confirms the landing. Whether Count Julian's invitation is historical or legendary remains disputed: it appears in Arabic sources but not in the near-contemporary Latin chronicle.",
      "tags": [
        "event",
        "andalus",
        "battle",
        "April–May 711 CE"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 711,
        "year_latest": 711,
        "year_display": "April–May 711 CE",
        "location": [
          -5.35,
          36.14
        ],
        "region": "strait_of_gibraltar",
        "story_id": "andalus",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-battle-pharsalus",
      "kind": "event",
      "label": "Battle of Pharsalus",
      "summary": "Caesar defeats Pompey's numerically superior forces on the plains of Thessaly. Pompey flees to Egypt. The decisive engagement of the civil war is over in a single afternoon.",
      "tags": [
        "event",
        "caesar",
        "battle",
        "August 9, 48 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -48,
        "year_latest": -48,
        "year_display": "August 9, 48 BCE",
        "location": [
          22.43,
          39.29
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-battle-philippi",
      "kind": "event",
      "label": "Battle of Philippi — End of the Liberatores",
      "summary": "Octavian and Antony defeat Brutus and Cassius in two engagements near Philippi, Macedonia. Both conspirators die. The Republic's last military defenders are gone; the Augustan settlement follows within twelve years.",
      "tags": [
        "event",
        "caesar",
        "battle",
        "October 3 and 23, 42 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -42,
        "year_latest": -42,
        "year_display": "October 3 and 23, 42 BCE",
        "location": [
          24.28,
          41.01
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-battle-thapsus",
      "kind": "event",
      "label": "Battle of Thapsus — Cato's Suicide at Utica",
      "summary": "Caesar destroys the last Pompeian army in Africa. Cato the Younger, refusing Caesar's pardon, kills himself at Utica — creating a martyr the optimates could invoke for generations. His death outlasted any military outcome.",
      "tags": [
        "event",
        "caesar",
        "battle",
        "February 6, 46 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -46,
        "year_latest": -46,
        "year_display": "February 6, 46 BCE",
        "location": [
          11.05,
          35.6
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-caesar-enters-rome",
      "kind": "event",
      "label": "Caesar Enters Rome — Treasury Seized",
      "summary": "Caesar enters Rome without resistance and seizes the treasury after breaking down the door of the Aerarium Sanctius despite the Tribune Metellus's obstruction. The act signals that constitutional norms no longer apply.",
      "tags": [
        "event",
        "caesar",
        "political",
        "April 1, 49 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -49,
        "year_latest": -49,
        "year_display": "April 1, 49 BCE",
        "location": [
          12.49,
          41.89
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-caesar-meets-cleopatra",
      "kind": "event",
      "label": "Caesar and Cleopatra — Alexandria",
      "summary": "Cleopatra VII reaches Caesar at the palace in Alexandria. Plutarch records she was carried past her brother's guards in a linen bundle — the mechanism is his account only, unconfirmed elsewhere. Their alliance would reshape the eastern Mediterranean.",
      "tags": [
        "event",
        "caesar",
        "political",
        "October–November 48 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -48,
        "year_latest": -48,
        "year_display": "October–November 48 BCE",
        "location": [
          29.92,
          31.2
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-caesars-four-triumphs",
      "kind": "event",
      "label": "Caesar's Four Triumphs",
      "summary": "Caesar celebrates four triumphs over Gaul, Egypt, Pontus, and Africa in rapid succession, the most triumphs any Roman had held in a single year. Vercingetorix, held six years in the Mamertine Prison, was executed at the climax of the Gallic triumph.",
      "tags": [
        "event",
        "caesar",
        "cultural",
        "September–October 46 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "cultural",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -46,
        "year_latest": -46,
        "year_display": "September–October 46 BCE",
        "location": [
          12.49,
          41.89
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-dictator-perpetuo",
      "kind": "event",
      "label": "Caesar Declared Dictator Perpetuo",
      "summary": "The Senate grants Caesar the title Dictator Perpetuo — dictator in perpetuity — breaking the republican norm that dictatorship was a temporary emergency office. The appointment is the immediate catalyst for the conspiracy.",
      "tags": [
        "event",
        "caesar",
        "political",
        "February 44 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -44,
        "year_latest": -44,
        "year_display": "February 44 BCE",
        "location": [
          12.49,
          41.89
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-ides-of-march",
      "kind": "event",
      "label": "Assassination of Julius Caesar — Ides of March",
      "summary": "Caesar is stabbed twenty-three times in the Theatre of Pompey by a group of senators calling themselves the Liberatores. The conspirators expected to restore the Republic; instead they triggered seventeen more years of civil war.",
      "tags": [
        "event",
        "caesar",
        "death",
        "March 15, 44 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "death",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -44,
        "year_latest": -44,
        "year_display": "March 15, 44 BCE",
        "location": [
          12.472,
          41.9
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-lupercalia-crown",
      "kind": "event",
      "label": "Antony Offers Caesar the Crown — Lupercalia",
      "summary": "At the Lupercalia festival, Mark Antony publicly offers Caesar a royal crown three times. Caesar refuses each time to crowd cheers, but the episode confirms senators' fears that he intends to make himself king.",
      "tags": [
        "event",
        "caesar",
        "political",
        "February 15, 44 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -44,
        "year_latest": -44,
        "year_display": "February 15, 44 BCE",
        "location": [
          12.485,
          41.892
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-pompey-evacuates-rome",
      "kind": "event",
      "label": "Pompey and the Senate Abandon Rome",
      "summary": "Pompey and the consuls flee Rome south to Brundisium, then to Greece, leaving the city and the treasury undefended. The Senate in exile would govern from Macedonia.",
      "tags": [
        "event",
        "caesar",
        "political",
        "January 17–18, 49 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -49,
        "year_latest": -49,
        "year_display": "January 17–18, 49 BCE",
        "location": [
          12.49,
          41.89
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-pompey-murdered-egypt",
      "kind": "event",
      "label": "Pompey Murdered on the Egyptian Shore",
      "summary": "Pompey is assassinated on orders of the boy-king Ptolemy XIII's advisors as he steps ashore at Pelusium, Egypt. His head is presented to Caesar, who reportedly wept.",
      "tags": [
        "event",
        "caesar",
        "death",
        "September 28, 48 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "death",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -48,
        "year_latest": -48,
        "year_display": "September 28, 48 BCE",
        "location": [
          32.68,
          31.12
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-rubicon-crossing",
      "kind": "event",
      "label": "Caesar Crosses the Rubicon",
      "summary": "Caesar leads the Thirteenth Legion across the Rubicon river, the legal boundary of the Roman Republic, triggering civil war. No Roman general was permitted to lead armed troops into Italy proper.",
      "tags": [
        "event",
        "caesar",
        "political",
        "January 49 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -49,
        "year_latest": -49,
        "year_display": "January 49 BCE",
        "location": [
          12.4,
          44.28
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:caesar:event-siege-of-alesia",
      "kind": "event",
      "label": "Siege of Alesia",
      "summary": "Caesar besieges Vercingetorix's Gallic coalition on a hill in Burgundy, building 40 km of fortifications to trap the defenders and repel a relief army. The fall of Alesia ends unified Gallic resistance. Caesar records the coalition at 250,000 — his figure only, likely inflated.",
      "tags": [
        "event",
        "caesar",
        "battle",
        "52 BCE"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -52,
        "year_latest": -52,
        "year_display": "52 BCE",
        "location": [
          4.5525,
          47.5366
        ],
        "region": "western-mediterranean",
        "story_id": "caesar",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:charlemagne:event-aachen-capital-794",
      "kind": "event",
      "label": "Aachen Established as Permanent Capital",
      "summary": "Charlemagne made Aachen his permanent residence and administrative center in the 790s, constructing the Palatine Chapel — consecrated around 805 — modeled on the Byzantine church of San Vitale in Ravenna. Einhard describes the palace complex in detail and Charlemagne's daily routine there. Aachen sits near thermal springs that Charlemagne used regularly; its selection as capital owed as much to geography and personal preference as to strategic calculation. The Synod of Frankfurt in 794 was held in the region, at which the Filioque controversy and the heresy of Adoptionism were condemned.",
      "tags": [
        "event",
        "charlemagne",
        "founding",
        "794 CE"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "founding",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 794,
        "year_latest": 794,
        "year_display": "794 CE",
        "location": [
          6.08,
          50.77
        ],
        "region": "frankia",
        "story_id": "charlemagne",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:charlemagne:event-charlemagne-accession-768",
      "kind": "event",
      "label": "Charlemagne Becomes Sole King of the Franks",
      "summary": "On the death of Pippin III in September 768, the Frankish kingdom was divided between his two sons — Charlemagne in the north and east, Carloman in the south and west. The Royal Frankish Annals record the partition without editorial comment. When Carloman died in December 771, Charlemagne seized his brother's portion and ruled the entire Frankish realm as sole king. Carloman's widow and sons fled to the Lombard court. Whether Charlemagne had any role in Carloman's death is unattested; the Annals record it as natural.",
      "tags": [
        "event",
        "charlemagne",
        "political",
        "768–771 CE"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 768,
        "year_latest": 771,
        "year_display": "768–771 CE",
        "location": [
          6.96,
          49.68
        ],
        "region": "frankia",
        "story_id": "charlemagne",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:charlemagne:event-christmas-coronation-800",
      "kind": "event",
      "label": "Imperial Coronation of Charlemagne",
      "summary": "On Christmas Day 800, Pope Leo III crowned Charlemagne as emperor in St Peter's Basilica in Rome. Einhard, in the Vita Karoli, claims Charlemagne would not have entered the church had he known what the Pope intended — a statement read by historians variously as genuine surprise, political theater, or retrospective distancing from a papally-driven act. The Royal Frankish Annals describe the coronation as the Roman people's petition. Byzantine court protocol did not recognize the title: Constantinople maintained that there could be only one Roman emperor. The coronation formalized a new political geography of the Latin West.",
      "tags": [
        "event",
        "charlemagne",
        "political",
        "25 December 800 CE"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 800,
        "year_latest": 800,
        "year_display": "25 December 800 CE",
        "location": [
          12.45,
          41.9
        ],
        "region": "rome",
        "story_id": "charlemagne",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:charlemagne:event-council-frankfurt-794",
      "kind": "event",
      "label": "Council of Frankfurt",
      "summary": "The Council of Frankfurt in 794 was the largest church council of the Carolingian period, attended by bishops from across the Frankish realm and including papal legates. It condemned the Adoptionist heresy of Elipandus of Toledo and Felix of Urgel, who held that Christ was God's son by adoption in his human nature. It also issued a response to the Second Council of Nicaea (787) on the veneration of images — the Frankish position was more restrictive than Byzantine practice and became a persistent theological fault line. The council's proceedings survive in the Capitulary of Frankfurt.",
      "tags": [
        "event",
        "charlemagne",
        "political",
        "794 CE"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 794,
        "year_latest": 794,
        "year_display": "794 CE",
        "location": [
          8.68,
          50.11
        ],
        "region": "frankia",
        "story_id": "charlemagne",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:charlemagne:event-death-charlemagne-814",
      "kind": "event",
      "label": "Death of Charlemagne at Aachen",
      "summary": "Charlemagne died at Aachen on 28 January 814 of pleurisy, aged approximately 65–70. Einhard describes his last days — the failed attempt at fasting, the fever, the final illness — with the detail of an eyewitness who was present at court. Louis the Pious, already crowned co-emperor in 813, inherited the entire realm. Within a generation the empire was partitioned by the Treaty of Verdun (843) into the three kingdoms that would become France, Germany, and a middle territory whose ownership remained contested for centuries.",
      "tags": [
        "event",
        "charlemagne",
        "death",
        "28 January 814 CE"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "death",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 814,
        "year_latest": 814,
        "year_display": "28 January 814 CE",
        "location": [
          6.08,
          50.77
        ],
        "region": "frankia",
        "story_id": "charlemagne",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:charlemagne:event-roncevaux-778",
      "kind": "event",
      "label": "Battle of Roncevaux Pass",
      "summary": "Returning from a failed campaign in Iberia where Charlemagne had besieged Zaragoza without result, his rear-guard was ambushed in the Pyrenees at Roncevaux Pass. The Royal Frankish Annals mention the attack only briefly and give no details of casualties. The Vita Karoli by Einhard identifies the attackers as Basques (Vascones). Among the dead was Roland, prefect of the Breton March — the historical kernel of the later Chanson de Roland, which transformed the Basque ambush into a heroic Arab battle and a Christian martyrdom. The actual engagement was a strategic setback for Charlemagne, not a clash of civilizations.",
      "tags": [
        "event",
        "charlemagne",
        "battle",
        "August 778 CE"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 778,
        "year_latest": 778,
        "year_display": "August 778 CE",
        "location": [
          -1.32,
          43.01
        ],
        "region": "pyrenees",
        "story_id": "charlemagne",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:charlemagne:event-verden-massacre-782",
      "kind": "event",
      "label": "Verden Massacre",
      "summary": "After a Saxon uprising killed a Frankish force at the Süntel Hills in 782, Charlemagne ordered 4,500 Saxon prisoners beheaded at Verden an der Aller in a single day. The Royal Frankish Annals record this without condemnation. Alcuin of York, Charlemagne's court scholar, subsequently wrote that forced baptism without instruction was not true conversion — an indirect critique. The Capitulary on Saxony issued the same year mandated the death penalty for refusing baptism, abandoning Christian practice, and eating meat during Lent. Verden is the event most cited in later Saxon and German memory as the price of Carolingian incorporation.",
      "tags": [
        "event",
        "charlemagne",
        "political",
        "782 CE"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 782,
        "year_latest": 782,
        "year_display": "782 CE",
        "location": [
          9.23,
          52.92
        ],
        "region": "saxony",
        "story_id": "charlemagne",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:crusades:event-battle-antioch-1098",
      "kind": "event",
      "label": "Battle of Antioch — Defeat of Kerbogha",
      "summary": "On 28 June 1098 the Crusaders sortied from Antioch against Kerbogha’s besieging army, reportedly carrying the Holy Lance discovered days earlier. Kerbogha’s coalition collapsed — his internal political tensions made coordinated resistance impossible. The Gesta Francorum describes his retreat as a rout. The victory secured Antioch and Bohemond’s subsequent claim to hold the city, in violation of his oath to Alexios.",
      "tags": [
        "event",
        "crusades",
        "battle",
        "June 1098 CE"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1098,
        "year_latest": 1098,
        "year_display": "June 1098 CE",
        "location": [
          36.16,
          36.2
        ],
        "region": "levant",
        "story_id": "crusades",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:crusades:event-battle-dorylaeum-1097",
      "kind": "event",
      "label": "Battle of Dorylaeum",
      "summary": "The Crusader army, led by Bohemond’s vanguard and the main force under Godfrey, defeated a Seljuk army under Kilij Arslan near Dorylaeum on 1 July 1097. The battle turned when the main Crusader column arrived to relieve Bohemond’s encircled force. Kilij Arslan abandoned his treasury and camp. The Gesta Francorum describes the battle in detail; the victory opened the road across Anatolia.",
      "tags": [
        "event",
        "crusades",
        "battle",
        "July 1097 CE"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1097,
        "year_latest": 1097,
        "year_display": "July 1097 CE",
        "location": [
          30.52,
          39.77
        ],
        "region": "anatolia",
        "story_id": "crusades",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:crusades:event-council-clermont-1095",
      "kind": "event",
      "label": "Council of Clermont",
      "summary": "Pope Urban II convened a church council at Clermont-Ferrand in November 1095. On the final day he preached a sermon calling for armed pilgrimage to recover Jerusalem from Muslim rule. Five versions of the sermon survive, all written after Jerusalem fell in 1099; no two agree on what Urban actually said. The response was immediate and overwhelming: crowds reportedly shouted “Deus vult” (God wills it). The sermon launched the First Crusade.",
      "tags": [
        "event",
        "crusades",
        "political",
        "November 1095 CE"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1095,
        "year_latest": 1095,
        "year_display": "November 1095 CE",
        "location": [
          3.08,
          45.78
        ],
        "region": "france",
        "story_id": "crusades",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:crusades:event-crusaders-constantinople-1097",
      "kind": "event",
      "label": "Crusader Princes Arrive at Constantinople",
      "summary": "The major Crusader contingents — led by Godfrey of Bouillon, Raymond of Toulouse, Bohemond of Taranto, and others — arrived at Constantinople across the winter of 1096–1097. Emperor Alexios I demanded each prince swear an oath of homage and promise to return any recovered Byzantine territory. The oaths were taken under duress; the question of whether they were binding would haunt Byzantine-Crusader relations for decades. Anna Komnena’s account of these negotiations is detailed and hostile.",
      "tags": [
        "event",
        "crusades",
        "political",
        "1096–1097 CE"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1096,
        "year_latest": 1097,
        "year_display": "1096–1097 CE",
        "location": [
          28.97,
          41.01
        ],
        "region": "byzantium",
        "story_id": "crusades",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:crusades:event-sack-jerusalem-1099",
      "kind": "event",
      "label": "Massacre at Jerusalem",
      "summary": "Following the fall of Jerusalem, Crusader forces killed a large portion of the city’s Muslim and Jewish inhabitants. The Gesta Francorum says streets ran with blood; Raymond of Aguilers describes wading through it to reach the Holy Sepulchre. Ibn al-Qalanisi records the massacre from Damascus. Modern historians dispute the scale — the city’s population before the siege was probably between 20,000 and 30,000. What is not disputed is that a massacre occurred and that it ended any prospect of accommodation between Crusader and Fatimid.",
      "tags": [
        "event",
        "crusades",
        "political",
        "15–16 July 1099 CE"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1099,
        "year_latest": 1099,
        "year_display": "15–16 July 1099 CE",
        "location": [
          35.23,
          31.78
        ],
        "region": "levant",
        "story_id": "crusades",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:crusades:event-siege-antioch-1097",
      "kind": "event",
      "label": "Siege of Antioch",
      "summary": "The Crusaders besieged Antioch from October 1097. The city’s walls were formidable; the Crusader army itself suffered severe attrition from disease, desertion, and starvation over eight months. A relief army under Kerbogha of Mosul was approaching when a traitor inside the city — identified in the sources as Firouz, an Armenian armorer — allowed the Crusaders through the walls on 3 June 1098. Within days Kerbogha’s army arrived and the besiegers became the besieged.",
      "tags": [
        "event",
        "crusades",
        "battle",
        "October 1097 – June 1098 CE"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1097,
        "year_latest": 1098,
        "year_display": "October 1097 – June 1098 CE",
        "location": [
          36.16,
          36.2
        ],
        "region": "levant",
        "story_id": "crusades",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:crusades:event-siege-jerusalem-1099",
      "kind": "event",
      "label": "Siege and Fall of Jerusalem",
      "summary": "Crusader forces besieged Jerusalem from June 7, 1099. The Fatimid garrison had expelled the Christian and Jewish populations before the siege. The walls were breached on 15 July after a final assault using siege towers. The Gesta Francorum and Ibn al-Qalanisi agree on the date; casualty accounts diverge dramatically. The city’s fall was the Crusade’s declared objective and its conventional endpoint.",
      "tags": [
        "event",
        "crusades",
        "battle",
        "June–July 1099 CE"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1099,
        "year_latest": 1099,
        "year_display": "June–July 1099 CE",
        "location": [
          35.23,
          31.78
        ],
        "region": "levant",
        "story_id": "crusades",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:cannae",
      "kind": "event",
      "label": "Battle of Cannae",
      "summary": "The 216 BCE battle, enriched from primary accounts and modern research while preserving source disagreement.",
      "tags": [
        "event",
        "research-enriched",
        "-216"
      ],
      "source_path": null,
      "attributes": {
        "canonical_event_key": "cannae-216-bce",
        "conflict_id": "conflict:second-punic-war",
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": "The enriched event is a research target; competing source claims remain separate.",
        "temporal_role": "primary",
        "year_earliest": -216,
        "year_latest": -216,
        "year_display": "216 BCE",
        "location": [
          16.13,
          41.31
        ],
        "region": "rome",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_projection",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-antiochus-iii-great-anabasis",
      "kind": "event",
      "label": "Antiochus III's Great Anabasis — The East Reclaimed",
      "summary": "While Rome and Carthage ground each other down in Italy, Antiochus III marched east across Persia, Bactria, and into India — the first Seleucid ruler since the founders to reassert control over the empire's eastern satrapies. The campaign lasted seven years and earned him the epithet 'the Great.' Polybius called it the most remarkable feat of generalship of his age.",
      "tags": [
        "event",
        "hannibal",
        "political",
        "212–205 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -212,
        "year_latest": -205,
        "year_display": "212–205 BCE",
        "location": [
          52.89,
          29.94
        ],
        "region": "near-east",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-battle-of-ilipa",
      "kind": "event",
      "label": "Battle of Ilipa — Scipio Drives Carthage from Spain",
      "summary": "Scipio maneuvered Hasdrubal son of Gisco's army into battle with a deployment that echoed Cannae in reverse — Roman legions on the wings, Spanish allies in the center — then attacked the Carthaginian wings before the center was engaged. The Carthaginian army was destroyed; Hasdrubal escaped to Africa. Spain, which the Barcids had built over twenty years, was gone.",
      "tags": [
        "event",
        "hannibal",
        "battle",
        "206 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -206,
        "year_latest": -206,
        "year_display": "206 BCE",
        "location": [
          -5.78,
          37.54
        ],
        "region": "rome",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-battle-of-raphia",
      "kind": "event",
      "label": "Battle of Raphia — Ptolemy IV Defeats Antiochus III",
      "summary": "In the same summer Hannibal annihilated Flaminius at Lake Trasimene, Ptolemy IV defeated Antiochus III's invasion of Egypt at Raphia with 70,000 infantry, 5,000 cavalry, and 73 war elephants — the largest battle of the Hellenistic era. Polybius records Ptolemy himself in the front line. The victory preserved the Ptolemaic kingdom for another century.",
      "tags": [
        "event",
        "hannibal",
        "battle",
        "217 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -217,
        "year_latest": -217,
        "year_display": "217 BCE",
        "location": [
          34.25,
          31.26
        ],
        "region": "egypt",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-ebro-treaty",
      "kind": "event",
      "label": "Ebro Treaty — Rome and Carthage Divide Iberian Influence",
      "summary": "Hasdrubal, Hamilcar's son-in-law and successor in Spain, agreed with Rome that Carthaginian forces would not cross the Ebro River in arms. The treaty left undefined what Rome could guarantee south of the Ebro — an ambiguity Hannibal would exploit at Saguntum thirteen years later.",
      "tags": [
        "event",
        "hannibal",
        "political",
        "226 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -226,
        "year_latest": -226,
        "year_display": "226 BCE",
        "location": [
          0.53,
          40.74
        ],
        "region": "carthage",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-fall-of-syracuse",
      "kind": "event",
      "label": "Fall of Syracuse — Archimedes Killed",
      "summary": "After a two-year siege in which Archimedes' war machines — including the claw and parabolic mirrors — repeatedly defeated Roman assault attempts, Marcus Marcellus finally took Syracuse through a gate bribed open by a traitor. Archimedes was killed by a Roman soldier while drawing a mathematical diagram. Livy records Marcellus wept when he saw the city burning.",
      "tags": [
        "event",
        "hannibal",
        "battle",
        "212 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -212,
        "year_latest": -212,
        "year_display": "212 BCE",
        "location": [
          15.29,
          37.07
        ],
        "region": "rome",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-hamilcar-barca-spain",
      "kind": "event",
      "label": "Hamilcar Barca Begins the Iberian Project",
      "summary": "After the humiliation of the First Punic War, Hamilcar Barca crossed to Iberia with his army and nine-year-old son Hannibal — beginning a nineteen-year Barcid project to build a second Carthaginian empire in Spain. The mines at Carthago Nova would fund the army that invaded Italy two decades later.",
      "tags": [
        "event",
        "hannibal",
        "political",
        "237 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -237,
        "year_latest": -237,
        "year_display": "237 BCE",
        "location": [
          -5.6,
          36.53
        ],
        "region": "carthage",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-han-dynasty-founded",
      "kind": "event",
      "label": "Liu Bang Proclaims the Han Dynasty",
      "summary": "In the same year Scipio defeated Hannibal at Zama, Liu Bang defeated his rival Xiang Yu at the Battle of Gaixia and proclaimed the Han dynasty — which would last 400 years and give China the name it still uses for its majority ethnic group. Two civilizations whose shapes would define large parts of the world were set in their trajectories in the same twelve months.",
      "tags": [
        "event",
        "hannibal",
        "political",
        "202 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -202,
        "year_latest": -202,
        "year_display": "202 BCE",
        "location": [
          116.39,
          39.91
        ],
        "region": "china",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-hasdrubal-barca-metaurus",
      "kind": "event",
      "label": "Battle of the Metaurus — Hasdrubal Barca Destroyed",
      "summary": "Hasdrubal Barca crossed the Alps with a relief army meant to join his brother in Italy. Roman consuls caught him at the Metaurus river and destroyed his force. Hannibal learned of the defeat when Roman soldiers threw his brother's severed head into his camp. After nine years in Italy, this was confirmation that no reinforcement was coming: the war would not be decided in Italy.",
      "tags": [
        "event",
        "hannibal",
        "battle",
        "207 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -207,
        "year_latest": -207,
        "year_display": "207 BCE",
        "location": [
          12.68,
          43.68
        ],
        "region": "rome",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-philip-v-hannibal-alliance",
      "kind": "event",
      "label": "Philip V Allies with Hannibal — The First Macedonian War Begins",
      "summary": "After Cannae, Philip V of Macedon saw an opportunity and signed a treaty with Hannibal: each would assist the other against Rome. Rome responded by allying with the Aetolian League and opening a second war in Greece — forcing Macedon to fight on two fronts and preventing Philip from ever crossing to Italy with a meaningful force.",
      "tags": [
        "event",
        "hannibal",
        "political",
        "215 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -215,
        "year_latest": -215,
        "year_display": "215 BCE",
        "location": [
          22.52,
          40.76
        ],
        "region": "macedon",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-qin-dynasty-falls",
      "kind": "event",
      "label": "The Qin Dynasty Collapses — Peasant Armies March on the Capital",
      "summary": "Fourteen years after Qin Shi Huangdi proclaimed the First Empire, his son Ziying surrendered to Liu Bang as peasant armies burned the capital and tore down the Great Wall sections Qin had erected. Sima Qian records that a fire burned the Epang Palace for three months. The empire that had standardized script, weights, and axle-widths across a continent lasted fifteen years.",
      "tags": [
        "event",
        "hannibal",
        "political",
        "207–206 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -207,
        "year_latest": -206,
        "year_display": "207–206 BCE",
        "location": [
          108.87,
          34.33
        ],
        "region": "china",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-scipio-takes-carthago-nova",
      "kind": "event",
      "label": "Scipio Takes Carthago Nova in a Single Day",
      "summary": "Publius Cornelius Scipio, at twenty-six the youngest proconsul in Roman history, crossed lagoons at low tide that Carthaginian defenders had left unguarded — local fishermen had warned him of the tidal pattern — and took the main Carthaginian base in Spain before the garrison could respond. He captured the city's treasury, its grain stores, and 300 noble hostages held there as security by Carthage's Spanish allies.",
      "tags": [
        "event",
        "hannibal",
        "battle",
        "209 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": -209,
        "year_latest": -209,
        "year_display": "209 BCE",
        "location": [
          -0.98,
          37.6
        ],
        "region": "rome",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:hannibal:event-siege-of-saguntum",
      "kind": "event",
      "label": "Siege of Saguntum — Hannibal's Casus Belli",
      "summary": "Hannibal besieged and took Saguntum — a Roman ally south of the Ebro — in an eight-month campaign. Rome protested and sent no army. When the city fell, Carthage refused Roman demands for Hannibal's surrender, and both sides declared what they had already started: a war.",
      "tags": [
        "event",
        "hannibal",
        "battle",
        "219 BCE"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "context",
        "year_earliest": -219,
        "year_latest": -219,
        "year_display": "219 BCE",
        "location": [
          -0.27,
          39.88
        ],
        "region": "carthage",
        "story_id": "hannibal",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:mongols:event-battle-ain-jalut-1260",
      "kind": "event",
      "label": "Battle of Ain Jalut — Mamluks Halt the Mongols",
      "summary": "civilization",
      "tags": [
        "event",
        "mongols",
        "battle",
        "3 September 1260 CE"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1260,
        "year_latest": 1260,
        "year_display": "3 September 1260 CE",
        "location": [
          35.57,
          32.63
        ],
        "region": "Middle East",
        "story_id": "mongols",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:mongols:event-battle-kalka-river-1223",
      "kind": "event",
      "label": "Battle of the Kalka River",
      "summary": "regional",
      "tags": [
        "event",
        "mongols",
        "battle",
        "May 1223 CE"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1223,
        "year_latest": 1223,
        "year_display": "May 1223 CE",
        "location": [
          37.52,
          47.55
        ],
        "region": "Eastern Europe",
        "story_id": "mongols",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:mongols:event-battle-legnica-1241",
      "kind": "event",
      "label": "Battle of Legnica",
      "summary": "civilization",
      "tags": [
        "event",
        "mongols",
        "battle",
        "9 April 1241 CE"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1241,
        "year_latest": 1241,
        "year_display": "9 April 1241 CE",
        "location": [
          16.16,
          51.21
        ],
        "region": "Europe",
        "story_id": "mongols",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:mongols:event-destruction-samarkand-1220",
      "kind": "event",
      "label": "Destruction of Samarkand",
      "summary": "civilization",
      "tags": [
        "event",
        "mongols",
        "battle",
        "Spring 1220 CE"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1220,
        "year_latest": 1220,
        "year_display": "Spring 1220 CE",
        "location": [
          66.96,
          39.65
        ],
        "region": "Central Asia",
        "story_id": "mongols",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:mongols:event-kurultai-1206",
      "kind": "event",
      "label": "Kurultai of 1206 — Chinggis Khan Proclaimed",
      "summary": "civilization",
      "tags": [
        "event",
        "mongols",
        "political",
        "Spring 1206 CE"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1206,
        "year_latest": 1206,
        "year_display": "Spring 1206 CE",
        "location": [
          101.9,
          47.0
        ],
        "region": "Central Asia",
        "story_id": "mongols",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:mongols:event-sack-baghdad-1258",
      "kind": "event",
      "label": "Sack of Baghdad — End of the Abbasid Caliphate",
      "summary": "civilization",
      "tags": [
        "event",
        "mongols",
        "battle",
        "13 February 1258 CE"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1258,
        "year_latest": 1258,
        "year_display": "13 February 1258 CE",
        "location": [
          44.39,
          33.34
        ],
        "region": "Middle East",
        "story_id": "mongols",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:mongols:event-sack-zhongdu-1215",
      "kind": "event",
      "label": "Fall of Zhongdu — Mongols Take the Jin Capital",
      "summary": "civilization",
      "tags": [
        "event",
        "mongols",
        "battle",
        "1215 CE"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1215,
        "year_latest": 1215,
        "year_display": "1215 CE",
        "location": [
          116.39,
          39.92
        ],
        "region": "East Asia",
        "story_id": "mongols",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:rome:event-battle-adrianople",
      "kind": "event",
      "label": "Battle of Adrianople",
      "summary": "Emperor Valens led the Eastern Roman field army against a Gothic force encamped behind a wagon-lager north of Adrianople. A premature cavalry charge on the right wing triggered a Gothic counter-encirclement that destroyed approximately two-thirds of the Roman army. Valens was killed — Ammianus Marcellinus gives two incompatible accounts of his death in the same passage. The battle ended Rome's ability to expel the Goths from Thrace and forced the accommodation that would define the next century.",
      "tags": [
        "event",
        "rome",
        "battle",
        "9 August 378 CE"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 378,
        "year_latest": 378,
        "year_display": "9 August 378 CE",
        "location": [
          26.57,
          41.68
        ],
        "region": "thrace",
        "story_id": "rome",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:rome:event-battle-catalaunian-plains",
      "kind": "event",
      "label": "Battle of the Catalaunian Plains",
      "summary": "Attila's Hunnic coalition invaded Gaul and met a Roman-Visigothic force under Aetius at the Catalaunian Plains — location uncertain within a 50 km radius near Châlons-en-Champagne. The Visigothic king Theodoric I was killed; Attila withdrew. According to Jordanes (Getica 36–41, writing a century later), Aetius deliberately allowed the withdrawal, fearing a Visigothic victory more than a Hunnic one. Attila invaded Italy the following year.",
      "tags": [
        "event",
        "rome",
        "battle",
        "June 451 CE"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 451,
        "year_latest": 451,
        "year_display": "June 451 CE",
        "location": [
          4.35,
          48.83
        ],
        "region": "gaul",
        "story_id": "rome",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:rome:event-death-stilicho",
      "kind": "event",
      "label": "Execution of Stilicho",
      "summary": "The half-Vandal general Stilicho, who had held the Western military together through two decades of crisis, was arrested at Ravenna on charges of treason orchestrated by the court official Olympius. Honorius signed the execution order. Within days, Stilicho's Gothic foederati — approximately 30,000 soldiers — defected to Alaric after Roman troops massacred their families. The causal chain from Stilicho's execution to the sack of Rome two years later is direct.",
      "tags": [
        "event",
        "rome",
        "death",
        "22 August 408 CE"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "death",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 408,
        "year_latest": 408,
        "year_display": "22 August 408 CE",
        "location": [
          9.19,
          45.46
        ],
        "region": "italy",
        "story_id": "rome",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:rome:event-deposition-romulus-augustulus",
      "kind": "event",
      "label": "Deposition of Romulus Augustulus by Odoacer",
      "summary": "Odoacer, commanding a coalition of foederati, deposed the boy-emperor Romulus Augustulus at Ravenna and sent the Western imperial regalia to Constantinople. No contemporary Latin source treated this as a civilizational break. Julius Nepos — the legitimate Western emperor deposed by Romulus's father the year before — was still alive in Dalmatia and recognized by the East until his assassination in 480. The 476 date as 'the fall of Rome' is Gibbon's framing, not a contemporary one.",
      "tags": [
        "event",
        "rome",
        "political",
        "4 September 476 CE"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 476,
        "year_latest": 476,
        "year_display": "4 September 476 CE",
        "location": [
          12.2,
          44.41
        ],
        "region": "italy",
        "story_id": "rome",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:rome:event-edict-thessalonica",
      "kind": "event",
      "label": "Edict of Thessalonica — Nicene Christianity Becomes State Religion",
      "summary": "Theodosius I, recovering from illness in Thessalonica, issued an edict (preserved in the Codex Theodosianus XVI.1.2) commanding all Roman subjects to follow the Nicene Trinitarian Christianity of the Bishops of Rome and Alexandria. The Goths settled within the empire were Arian Christians — a creed now declared heretical. The religious divide between Roman administrators and Gothic foederati would persist through the entire arc to 476.",
      "tags": [
        "event",
        "rome",
        "political",
        "27 February 380 CE"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "political",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 380,
        "year_latest": 380,
        "year_display": "27 February 380 CE",
        "location": [
          22.95,
          40.63
        ],
        "region": "thrace",
        "story_id": "rome",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:rome:event-sack-rome-410",
      "kind": "event",
      "label": "Sack of Rome by Alaric's Visigoths",
      "summary": "After a decade of failed negotiations for a Roman military command and land for his people, Alaric's Visigoths entered Rome through the Salarian Gate — opened from within — on 24 August 410 CE. The city was sacked for three days (Orosius 7.39). The psychological shock was enormous: Rome had not been taken by a foreign enemy in 800 years. Augustine began writing De Civitate Dei in direct response. Alaric died weeks later; his army settled in Gaul.",
      "tags": [
        "event",
        "rome",
        "battle",
        "24 August 410 CE"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 410,
        "year_latest": 410,
        "year_display": "24 August 410 CE",
        "location": [
          12.49,
          41.89
        ],
        "region": "italy",
        "story_id": "rome",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:rome:event-sack-rome-455",
      "kind": "event",
      "label": "Sack of Rome by Gaiseric's Vandals",
      "summary": "Gaiseric's Vandal fleet sailed from Carthage and arrived at Rome after the emperor Petronius Maximus was killed by a Roman mob. Pope Leo I negotiated terms: no burning, no killing. The Vandals plundered for fourteen days (confirmed independently by Prosper of Aquitaine and Hydatius) and departed with the empress Eudoxia, her daughters Eudocia and Placidia, and the contents of the imperial treasury. Eudocia subsequently married Gaiseric's son Huneric.",
      "tags": [
        "event",
        "rome",
        "battle",
        "June 455 CE"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 455,
        "year_latest": 455,
        "year_display": "June 455 CE",
        "location": [
          12.49,
          41.89
        ],
        "region": "italy",
        "story_id": "rome",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:timurids:event-battle-ankara-1402",
      "kind": "event",
      "label": "Battle of Ankara",
      "summary": "Timur defeated and captured Ottoman Sultan Bayezid I near Ankara. Anatolian beylik forces within the Ottoman army defected during the battle. The Ottoman Empire entered a decade of civil war among Bayezid's sons (the Interregnum, 1402–1413), giving Constantinople fifty more years. Whether Bayezid was kept in a cage or treated with honor in captivity is the central conflict in the sources: Ibn Arabshah says cage; Yazdi’s Zafarnama says honored tent. Neither was present.",
      "tags": [
        "event",
        "timurids",
        "battle",
        "20 July 1402 CE"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1402,
        "year_latest": 1402,
        "year_display": "20 July 1402 CE",
        "location": [
          32.85,
          39.93
        ],
        "region": "anatolia",
        "story_id": "timurids",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:timurids:event-battle-terek-1395",
      "kind": "event",
      "label": "Battle of the Terek River",
      "summary": "Timur decisively defeated Toktamish Khan of the Golden Horde at the Terek River in the North Caucasus. Toktamish, once Timur's own client whom Timur had helped to power, never recovered his throne. The destruction of the Golden Horde broke the tribute structure that had subordinated the Russian principalities for over a century, inadvertently clearing the path for Moscow's eventual rise.",
      "tags": [
        "event",
        "timurids",
        "battle",
        "1395 CE"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1395,
        "year_latest": 1395,
        "year_display": "1395 CE",
        "location": [
          44.52,
          43.47
        ],
        "region": "north_caucasus",
        "story_id": "timurids",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:timurids:event-clavijo-samarkand-1404",
      "kind": "event",
      "label": "Clavijo's Embassy to Samarkand",
      "summary": "Ruy González de Clavijo, ambassador of King Henry III of Castile, arrived at Timur's court in Samarkand in 1404 — the only Western eyewitness account of the court at its height. He described the tent-city outside Samarkand, audiences with the aged Timur (nearly seventy, unable to walk unassisted), the wine served despite Islamic prohibition, and the simultaneous presence of a Chinese embassy regarding the Ming campaign Timur was preparing.",
      "tags": [
        "event",
        "timurids",
        "cultural",
        "1403–1404 CE"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "cultural",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1403,
        "year_latest": 1404,
        "year_display": "1403–1404 CE",
        "location": [
          66.97,
          39.65
        ],
        "region": "central_asia",
        "story_id": "timurids",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:timurids:event-death-timur-1405",
      "kind": "event",
      "label": "Death of Timur at Otrar",
      "summary": "Timur died at Otrar on the Syr Darya in February 1405, ill during the early stages of the China campaign. He was approximately sixty-eight years old. The eastern campaign he had been preparing — against the Ming dynasty — was never launched. His successors fragmented the Timurid state through decades of succession conflict, while the wealth extracted from Delhi, Baghdad, and Damascus funded the Timurid Renaissance in art, architecture, and scholarship.",
      "tags": [
        "event",
        "timurids",
        "death",
        "February 1405 CE"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "death",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1405,
        "year_latest": 1405,
        "year_display": "February 1405 CE",
        "location": [
          68.77,
          41.12
        ],
        "region": "central_asia",
        "story_id": "timurids",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:timurids:event-sack-baghdad-1401",
      "kind": "event",
      "label": "Second Sack of Baghdad",
      "summary": "After a revolt against the Timurid garrison he had left after an earlier occupation, Timur returned and destroyed Baghdad. The Zafarnama records 90 towers of skulls, each of 1,500 heads, built outside the city. Ibn Arabshah confirms the towers independently. Baghdad had been destroyed by Hulagu Khan's Mongols in 1258; 143 years later a Mongol successor destroyed it again. The city's role as a major Islamic cultural center ended for a generation.",
      "tags": [
        "event",
        "timurids",
        "battle",
        "1401 CE"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1401,
        "year_latest": 1401,
        "year_display": "1401 CE",
        "location": [
          44.44,
          33.34
        ],
        "region": "mesopotamia",
        "story_id": "timurids",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:timurids:event-sack-delhi-1398",
      "kind": "event",
      "label": "Sack of Delhi",
      "summary": "Timur crossed the Indus, defeated the Delhi Sultanate's war elephants by driving burning camels into the elephant line, and sacked Delhi. The city did not recover for decades. Timur removed the master craftsmen of Delhi to Samarkand and withdrew within months, following his established pattern: extraction, not occupation. The Sultanate survived in formal terms but was hollowed out.",
      "tags": [
        "event",
        "timurids",
        "battle",
        "December 1398 CE"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "battle",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1398,
        "year_latest": 1398,
        "year_display": "December 1398 CE",
        "location": [
          77.21,
          28.63
        ],
        "region": "north_india",
        "story_id": "timurids",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "event:timurids:event-timur-samarkand-1370",
      "kind": "event",
      "label": "Timur Takes Samarkand",
      "summary": "Timur seized Samarkand and declared himself ruler of Transoxiana, marking the founding of what would become the Timurid Empire. Unable to claim the title Khan due to his non-Genghisid blood, he styled himself Amir and later Guregan — son-in-law of the house of Genghis, having married a Genghisid princess. The Zafarnama, commissioned by his grandson, frames the founding as the restoration of rightful Mongol order.",
      "tags": [
        "event",
        "timurids",
        "founding",
        "1370 CE"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "canonical_event_key": null,
        "domain": "parallax",
        "event_type": "founding",
        "layer": "event",
        "narrative_boundary": null,
        "temporal_role": "primary",
        "year_earliest": 1370,
        "year_latest": 1370,
        "year_display": "1370 CE",
        "location": [
          66.97,
          39.65
        ],
        "region": "central_asia",
        "story_id": "timurids",
        "source_kind": "parallax_event_export",
        "status": "neutral"
      }
    },
    {
      "id": "historical-claim:appian-four-stratagems",
      "kind": "historical_claim",
      "label": "Appian explains Hannibal's victory through four stratagems: wind, feigned desertion, pretended flight, and ambushes in ravines.",
      "summary": "Appian explains Hannibal's victory through four stratagems: wind, feigned desertion, pretended flight, and ambushes in ravines.",
      "tags": [
        "historical-claim",
        "later_tactical_interpretation",
        "medium",
        "carthaginian"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "later_tactical_interpretation",
        "confidence": "medium",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:appian-roman-losses",
      "kind": "historical_claim",
      "label": "Appian's later account reports fifty thousand Roman soldiers slain at Cannae, creating a third distinct ancient casualty estimate.",
      "summary": "Appian's later account reports fifty thousand Roman soldiers slain at Cannae, creating a third distinct ancient casualty estimate.",
      "tags": [
        "historical-claim",
        "casualty_estimate",
        "medium",
        "roman"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "casualty_estimate",
        "confidence": "medium",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:appian-varro-blame",
      "kind": "historical_claim",
      "label": "Appian's narrative assigns moral responsibility for the catastrophe to Varro rather than presenting command failure as a neutral fact.",
      "summary": "Appian's narrative assigns moral responsibility for the catastrophe to Varro rather than presenting command failure as a neutral fact.",
      "tags": [
        "historical-claim",
        "source_framing",
        "high",
        "roman"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "source_framing",
        "confidence": "high",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:cannae-double-envelopment-reception",
      "kind": "historical_claim",
      "label": "The Combat Studies Institute preface describes Schlieffen's Cannae studies as treating Hannibal's double envelopment as a master key to battlefield victory.",
      "summary": "The Combat Studies Institute preface describes Schlieffen's Cannae studies as treating Hannibal's double envelopment as a master key to battlefield victory.",
      "tags": [
        "historical-claim",
        "doctrinal_reception",
        "high"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "doctrinal_reception",
        "confidence": "high",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:cavalry-suited-ground",
      "kind": "historical_claim",
      "label": "Livy's account says Hannibal sought battle on ground naturally suited to cavalry movement.",
      "summary": "Livy's account says Hannibal sought battle on ground naturally suited to cavalry movement.",
      "tags": [
        "historical-claim",
        "terrain_advantage",
        "high",
        "carthaginian"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "terrain_advantage",
        "confidence": "high",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:hidden-defile-hypothesis",
      "kind": "historical_claim",
      "label": "A peer-reviewed reconnaissance proposes a hidden defile as a possible, still-unconfirmed factor in the Carthaginian advantage.",
      "summary": "A peer-reviewed reconnaissance proposes a hidden defile as a possible, still-unconfirmed factor in the Carthaginian advantage.",
      "tags": [
        "historical-claim",
        "terrain_hypothesis",
        "low",
        "carthaginian"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "terrain_hypothesis",
        "confidence": "low",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:livy-cannae-defections",
      "kind": "historical_claim",
      "label": "Livy's next book connects the defeat at Cannae to the loss of Italian communities, including Compsa and the Campanian alliance network.",
      "summary": "Livy's next book connects the defeat at Cannae to the loss of Italian communities, including Compsa and the Campanian alliance network.",
      "tags": [
        "historical-claim",
        "political_aftermath",
        "high",
        "roman",
        "carthaginian"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "political_aftermath",
        "confidence": "high",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:livy-cannae-preparation",
      "kind": "historical_claim",
      "label": "Livy places Cannae within a contested sequence of Roman decisions about where to camp, how to approach Hannibal, and when to accept battle.",
      "summary": "Livy places Cannae within a contested sequence of Roman decisions about where to camp, how to approach Hannibal, and when to accept battle.",
      "tags": [
        "historical-claim",
        "campaign_context",
        "high",
        "roman"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "campaign_context",
        "confidence": "high",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 2,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:livy-roman-losses",
      "kind": "historical_claim",
      "label": "Livy's tally is materially lower than Polybius's Roman casualty estimate.",
      "summary": "Livy's tally is materially lower than Polybius's Roman casualty estimate.",
      "tags": [
        "historical-claim",
        "casualty_estimate",
        "medium",
        "roman"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "casualty_estimate",
        "confidence": "medium",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:numidian-pursuit-role",
      "kind": "historical_claim",
      "label": "Polybius assigns the Numidian cavalry a pursuit role as the Roman formation collapsed.",
      "summary": "Polybius assigns the Numidian cavalry a pursuit role as the Roman formation collapsed.",
      "tags": [
        "historical-claim",
        "battlefield_role",
        "high",
        "numidian"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "battlefield_role",
        "confidence": "high",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:plutarch-bantius-cannae-memory",
      "kind": "historical_claim",
      "label": "Plutarch's story of Lucius Bantius turns Cannae into a memory of individual courage, enemy recognition, and later political loyalty.",
      "summary": "Plutarch's story of Lucius Bantius turns Cannae into a memory of individual courage, enemy recognition, and later political loyalty.",
      "tags": [
        "historical-claim",
        "individual_memory",
        "medium",
        "roman",
        "carthaginian"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "individual_memory",
        "confidence": "medium",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:plutarch-cannae-survivor-memory",
      "kind": "historical_claim",
      "label": "Plutarch preserves a memory of Cannae through the survivors at Canusium and the Roman effort to recover the initiative after the defeat.",
      "summary": "Plutarch preserves a memory of Cannae through the survivors at Canusium and the Roman effort to recover the initiative after the defeat.",
      "tags": [
        "historical-claim",
        "survivor_memory",
        "medium",
        "roman"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "survivor_memory",
        "confidence": "medium",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:polybius-post-cannae-shock",
      "kind": "historical_claim",
      "label": "Polybius frames Cannae as a strategic shock that widened Carthaginian influence in Italy while driving Rome into panic and defensive mobilization.",
      "summary": "Polybius frames Cannae as a strategic shock that widened Carthaginian influence in Italy while driving Rome into panic and defensive mobilization.",
      "tags": [
        "historical-claim",
        "strategic_aftermath",
        "high",
        "roman",
        "carthaginian"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "strategic_aftermath",
        "confidence": "high",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:polybius-roman-losses",
      "kind": "historical_claim",
      "label": "Polybius reports roughly seventy thousand Roman deaths at Cannae.",
      "summary": "Polybius reports roughly seventy thousand Roman deaths at Cannae.",
      "tags": [
        "historical-claim",
        "casualty_estimate",
        "medium",
        "roman"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "casualty_estimate",
        "confidence": "medium",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:ridge-river-confinement",
      "kind": "historical_claim",
      "label": "Modern geomorphic analysis describes the Roman line as constrained between a limestone ridge and the Aufidus River.",
      "summary": "Modern geomorphic analysis describes the Roman line as constrained between a limestone ridge and the Aufidus River.",
      "tags": [
        "historical-claim",
        "battlefield_geometry",
        "medium",
        "roman"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "battlefield_geometry",
        "confidence": "medium",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:roman-command-disagreement",
      "kind": "historical_claim",
      "label": "Livy frames the decision to fight through disagreement between the Roman consuls.",
      "summary": "Livy frames the decision to fight through disagreement between the Roman consuls.",
      "tags": [
        "historical-claim",
        "command_decision",
        "high",
        "roman"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "command_decision",
        "confidence": "high",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:strabo-cannae-geographic-memory",
      "kind": "historical_claim",
      "label": "Strabo places the Cannae region within a wider geography of the river Ofanto, Canusium, Argyrippa, and the Apulian plain rather than treating the site as an isolated tactical diagram.",
      "summary": "Strabo places the Cannae region within a wider geography of the river Ofanto, Canusium, Argyrippa, and the Apulian plain rather than treating the site as an isolated tactical diagram.",
      "tags": [
        "historical-claim",
        "geographic_context",
        "medium"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "geographic_context",
        "confidence": "medium",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "historical-claim:tactical-victory-strategic-limit",
      "kind": "historical_claim",
      "label": "The same institutional preface warns that Cannae was a tactical masterpiece without strategic success, making it a case study in the danger of misapplied historical analogy.",
      "summary": "The same institutional preface warns that Cannae was a tactical masterpiece without strategic success, making it a case study in the danger of misapplied historical analogy.",
      "tags": [
        "historical-claim",
        "interpretive_qualification",
        "high"
      ],
      "source_path": null,
      "attributes": {
        "claim_type": "interpretive_qualification",
        "confidence": "high",
        "domain": "parallax",
        "review_status": "human_promoted",
        "evidence_count": 1,
        "layer": "claim",
        "research_packet": "parallax-cannae-2026-07-19-r4",
        "source_kind": "research_claim"
      }
    },
    {
      "id": "outcome:abbasid-caliphate-ended",
      "kind": "outcome",
      "label": "Abbasid caliphate ended",
      "summary": "The story export explicitly frames the sack of Baghdad as the end of the Abbasid caliphate.",
      "tags": [
        "outcome",
        "parallax",
        "abbasid-caliphate-ended",
        "institutional"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "conflict_id": "conflict:mongol-middle-east-campaign",
        "domain": "parallax",
        "event_ids": [
          "event:mongols:event-sack-baghdad-1258"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "institutional",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:caesarian-control-of-rome",
      "kind": "outcome",
      "label": "Caesarian control of Rome",
      "summary": "The story export marks Caesar's entry into Rome and seizure of the treasury as a political turning point.",
      "tags": [
        "outcome",
        "parallax",
        "caesarian-control-of-rome",
        "political"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "conflict_id": "conflict:caesars-civil-war",
        "domain": "parallax",
        "event_ids": [
          "event:caesar:event-caesar-enters-rome"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "political",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:charlemagne-imperial-coronation",
      "kind": "outcome",
      "label": "Charlemagne crowned emperor",
      "summary": "The Christmas coronation is a political outcome of the Frankish power sequence, not a claim about a single war's total result.",
      "tags": [
        "outcome",
        "parallax",
        "charlemagne-imperial-coronation",
        "institutional"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "conflict_id": "conflict:frankish-imperial-consolidation",
        "domain": "parallax",
        "event_ids": [
          "event:charlemagne:event-christmas-coronation-800"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "institutional",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:first-crusade-jerusalem-captured",
      "kind": "outcome",
      "label": "Jerusalem captured",
      "summary": "The siege and fall of Jerusalem are represented as the First Crusade's terminal military outcome; the sack remains separately modeled.",
      "tags": [
        "outcome",
        "parallax",
        "first-crusade-jerusalem-captured",
        "territorial"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "conflict_id": "conflict:first-crusade",
        "domain": "parallax",
        "event_ids": [
          "event:crusades:event-siege-jerusalem-1099"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "territorial",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:first-punic-war-ends",
      "kind": "outcome",
      "label": "First Punic War ends",
      "summary": "The story export marks the Aegates Islands as the closing event of the First Punic War; the settlement terms remain a separate research question.",
      "tags": [
        "outcome",
        "parallax",
        "first-punic-war-ends",
        "war_termination"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "conflict_id": "conflict:first-punic-war",
        "domain": "parallax",
        "event_ids": [
          "event:alexander:event-first-punic-war-ends"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "war_termination",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:first-punic-war-rome-controls-sicily",
      "kind": "outcome",
      "label": "Rome controls Sicily",
      "summary": "The Aegates anchor frames the First Punic War's territorial outcome as Roman control of Sicily; the indemnity remains separately modeled.",
      "tags": [
        "outcome",
        "parallax",
        "first-punic-war-rome-controls-sicily",
        "territorial"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "conflict_id": "conflict:first-punic-war",
        "domain": "parallax",
        "event_ids": [
          "event:alexander:event-first-punic-war-ends"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "territorial",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:gallic-war-alesia-subdued",
      "kind": "outcome",
      "label": "Alesia subdued",
      "summary": "Alesia is the declared terminal anchor for the Gallic campaign projection.",
      "tags": [
        "outcome",
        "parallax",
        "gallic-war-alesia-subdued",
        "military"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "conflict_id": "conflict:gallic-war",
        "domain": "parallax",
        "event_ids": [
          "event:caesar:event-siege-of-alesia"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "military",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:mamluks-halt-mongols",
      "kind": "outcome",
      "label": "Mamluks halt Mongol expansion",
      "summary": "Ain Jalut is represented as a Mongol halt, with the scope of that claim kept at the story level.",
      "tags": [
        "outcome",
        "parallax",
        "mamluks-halt-mongols",
        "strategic"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "conflict_id": "conflict:mamluk-mongol-war",
        "domain": "parallax",
        "event_ids": [
          "event:mongols:event-battle-ain-jalut-1260"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "strategic",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:second-punic-war-carthage-expelled-from-iberia",
      "kind": "outcome",
      "label": "Carthage expelled from Iberia",
      "summary": "The story export frames Ilipa as the event that drives Carthage out of Spain.",
      "tags": [
        "outcome",
        "parallax",
        "second-punic-war-carthage-expelled-from-iberia",
        "territorial"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "conflict_id": "conflict:second-punic-war",
        "domain": "parallax",
        "event_ids": [
          "event:hannibal:event-battle-of-ilipa"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "territorial",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:second-punic-war-roman-victory",
      "kind": "outcome",
      "label": "Roman victory over Hannibal",
      "summary": "Zama is the wider chronology's explicit Roman victory anchor; this is a qualified story-level outcome, not a casualty or treaty claim.",
      "tags": [
        "outcome",
        "parallax",
        "second-punic-war-roman-victory",
        "military"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "conflict_id": "conflict:second-punic-war",
        "domain": "parallax",
        "event_ids": [
          "event:alexander:event-battle-of-zama"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "military",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:third-punic-war-carthage-destroyed",
      "kind": "outcome",
      "label": "Carthage destroyed",
      "summary": "The Roman destruction of Carthage is represented as the final institutional and urban outcome of the Third Punic War; later Roman redevelopment is a separate layer.",
      "tags": [
        "outcome",
        "parallax",
        "third-punic-war-carthage-destroyed",
        "urban_institutional"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "conflict_id": "conflict:third-punic-war",
        "domain": "parallax",
        "event_ids": [
          "event:alexander:event-roman-destruction-of-carthage"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "urban_institutional",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:timurid-ankara-victory",
      "kind": "outcome",
      "label": "Timur defeats the Ottoman army at Ankara",
      "summary": "The Ankara event is represented as a military outcome while leaving its wider regional consequences open.",
      "tags": [
        "outcome",
        "parallax",
        "timurid-ankara-victory",
        "military"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "conflict_id": "conflict:timurid-central-asian-expansion",
        "domain": "parallax",
        "event_ids": [
          "event:timurids:event-battle-ankara-1402"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "military",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:timurid-samarkand-base",
      "kind": "outcome",
      "label": "Samarkand becomes Timur's base",
      "summary": "Timur's taking of Samarkand is represented as the expansion's initial institutional and geographic anchor.",
      "tags": [
        "outcome",
        "parallax",
        "timurid-samarkand-base",
        "institutional"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "conflict_id": "conflict:timurid-central-asian-expansion",
        "domain": "parallax",
        "event_ids": [
          "event:timurids:event-timur-samarkand-1370"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "institutional",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:umayyad-emirate-of-cordoba-established",
      "kind": "outcome",
      "label": "Emirate of Córdoba established",
      "summary": "The story export treats Abd ar-Rahman I's establishment of the emirate as the opening sequence's political outcome.",
      "tags": [
        "outcome",
        "parallax",
        "umayyad-emirate-of-cordoba-established",
        "institutional"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "conflict_id": "conflict:umayyad-conquest-of-iberia",
        "domain": "parallax",
        "event_ids": [
          "event:andalus:event-abd-ar-rahman-emirate-756"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "institutional",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:vandal-sack-of-rome",
      "kind": "outcome",
      "label": "Rome sacked by Vandals",
      "summary": "The 455 sack is kept separate from the Visigothic episode as a distinct outcome.",
      "tags": [
        "outcome",
        "parallax",
        "vandal-sack-of-rome",
        "urban"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "conflict_id": "conflict:vandal-sack-of-rome",
        "domain": "parallax",
        "event_ids": [
          "event:rome:event-sack-rome-455"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "urban",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:visigothic-sack-of-rome",
      "kind": "outcome",
      "label": "Rome sacked by Visigoths",
      "summary": "The 410 sack is a named outcome of the Visigothic invasion sequence.",
      "tags": [
        "outcome",
        "parallax",
        "visigothic-sack-of-rome",
        "urban"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "conflict_id": "conflict:visigothic-invasion-of-italy",
        "domain": "parallax",
        "event_ids": [
          "event:rome:event-sack-rome-410"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "urban",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "outcome:western-roman-emperor-deposed",
      "kind": "outcome",
      "label": "Western Roman emperor deposed",
      "summary": "The deposition of Romulus Augustulus is represented as an institutional outcome of the late Roman sequence.",
      "tags": [
        "outcome",
        "parallax",
        "western-roman-emperor-deposed",
        "institutional"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "conflict_id": "conflict:late-roman-collapse",
        "domain": "parallax",
        "event_ids": [
          "event:rome:event-deposition-romulus-augustulus"
        ],
        "layer": "outcome",
        "narrative_boundary": "Conflict membership and outcomes are curated from the story export; they are not an exhaustive historiography or an automatic causal verdict.",
        "outcome_type": "institutional",
        "source_kind": "curated_parallax_outcome_map",
        "status": "qualified"
      }
    },
    {
      "id": "perspective:alexander:greek",
      "kind": "perspective",
      "label": "greek",
      "summary": "The greek civilization's frame on The World at 334 BCE.",
      "tags": [
        "perspective",
        "alexander",
        "greek"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "greek",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:alexander:persian",
      "kind": "perspective",
      "label": "persian",
      "summary": "The persian civilization's frame on The World at 334 BCE.",
      "tags": [
        "perspective",
        "alexander",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "persian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:andalus:asturian",
      "kind": "perspective",
      "label": "asturian",
      "summary": "The asturian civilization's frame on The Opening.",
      "tags": [
        "perspective",
        "andalus",
        "asturian"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "asturian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:andalus:umayyad",
      "kind": "perspective",
      "label": "umayyad",
      "summary": "The umayyad civilization's frame on The Opening.",
      "tags": [
        "perspective",
        "andalus",
        "umayyad"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:andalus:visigothic",
      "kind": "perspective",
      "label": "visigothic",
      "summary": "The visigothic civilization's frame on The Opening.",
      "tags": [
        "perspective",
        "andalus",
        "visigothic"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "visigothic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:caesar:gallic",
      "kind": "perspective",
      "label": "gallic",
      "summary": "The gallic civilization's frame on The Last Generation.",
      "tags": [
        "perspective",
        "caesar",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "gallic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:caesar:optimates",
      "kind": "perspective",
      "label": "optimates",
      "summary": "The optimates civilization's frame on The Last Generation.",
      "tags": [
        "perspective",
        "caesar",
        "optimates"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "optimates",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:caesar:populares",
      "kind": "perspective",
      "label": "populares",
      "summary": "The populares civilization's frame on The Last Generation.",
      "tags": [
        "perspective",
        "caesar",
        "populares"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "populares",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:charlemagne:frankish",
      "kind": "perspective",
      "label": "frankish",
      "summary": "The frankish civilization's frame on The Frankish Crown.",
      "tags": [
        "perspective",
        "charlemagne",
        "frankish"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "frankish",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:charlemagne:saxon",
      "kind": "perspective",
      "label": "saxon",
      "summary": "The saxon civilization's frame on The Frankish Crown.",
      "tags": [
        "perspective",
        "charlemagne",
        "saxon"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "saxon",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:charlemagne:umayyad",
      "kind": "perspective",
      "label": "umayyad",
      "summary": "The umayyad civilization's frame on The Frankish Crown.",
      "tags": [
        "perspective",
        "charlemagne",
        "umayyad"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "umayyad",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:crusades:byzantine",
      "kind": "perspective",
      "label": "byzantine",
      "summary": "The byzantine civilization's frame on The Road to Jerusalem.",
      "tags": [
        "perspective",
        "crusades",
        "byzantine"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "byzantine",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:crusades:crusader",
      "kind": "perspective",
      "label": "crusader",
      "summary": "The crusader civilization's frame on The Road to Jerusalem.",
      "tags": [
        "perspective",
        "crusades",
        "crusader"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "crusader",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:crusades:fatimid",
      "kind": "perspective",
      "label": "fatimid",
      "summary": "The fatimid civilization's frame on The Road to Jerusalem.",
      "tags": [
        "perspective",
        "crusades",
        "fatimid"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "fatimid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:hannibal:carthaginian",
      "kind": "perspective",
      "label": "carthaginian",
      "summary": "The carthaginian civilization's frame on The Long Way to Rome.",
      "tags": [
        "perspective",
        "hannibal",
        "carthaginian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "carthaginian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:hannibal:numidian",
      "kind": "perspective",
      "label": "numidian",
      "summary": "The numidian civilization's frame on The Long Way to Rome.",
      "tags": [
        "perspective",
        "hannibal",
        "numidian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "numidian",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:hannibal:roman",
      "kind": "perspective",
      "label": "roman",
      "summary": "The roman civilization's frame on The Long Way to Rome.",
      "tags": [
        "perspective",
        "hannibal",
        "roman"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:mongols:islamic",
      "kind": "perspective",
      "label": "islamic",
      "summary": "The islamic civilization's frame on The World at 1206.",
      "tags": [
        "perspective",
        "mongols",
        "islamic"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "islamic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:mongols:jin",
      "kind": "perspective",
      "label": "jin",
      "summary": "The jin civilization's frame on The World at 1206.",
      "tags": [
        "perspective",
        "mongols",
        "jin"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "jin",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:mongols:mongol",
      "kind": "perspective",
      "label": "mongol",
      "summary": "The mongol civilization's frame on The World at 1206.",
      "tags": [
        "perspective",
        "mongols",
        "mongol"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "mongol",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:rome:hunnic",
      "kind": "perspective",
      "label": "hunnic",
      "summary": "The hunnic civilization's frame on The Last Legions.",
      "tags": [
        "perspective",
        "rome",
        "hunnic"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "hunnic",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:rome:visigoth",
      "kind": "perspective",
      "label": "visigoth",
      "summary": "The visigoth civilization's frame on The Last Legions.",
      "tags": [
        "perspective",
        "rome",
        "visigoth"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "visigoth",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:rome:western_roman",
      "kind": "perspective",
      "label": "western_roman",
      "summary": "The western_roman civilization's frame on The Last Legions.",
      "tags": [
        "perspective",
        "rome",
        "western_roman"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "western_roman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:timurids:mamluk",
      "kind": "perspective",
      "label": "mamluk",
      "summary": "The mamluk civilization's frame on The Sword of Samarkand.",
      "tags": [
        "perspective",
        "timurids",
        "mamluk"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "mamluk",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:timurids:ottoman",
      "kind": "perspective",
      "label": "ottoman",
      "summary": "The ottoman civilization's frame on The Sword of Samarkand.",
      "tags": [
        "perspective",
        "timurids",
        "ottoman"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "ottoman",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "perspective:timurids:timurid",
      "kind": "perspective",
      "label": "timurid",
      "summary": "The timurid civilization's frame on The Sword of Samarkand.",
      "tags": [
        "perspective",
        "timurids",
        "timurid"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "perspective",
        "perspective": "timurid",
        "source_kind": "parallax_perspective_export",
        "status": "neutral"
      }
    },
    {
      "id": "place:aachen",
      "kind": "place",
      "label": "Aachen",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "aachen"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          6.08,
          50.77
        ],
        "annotation_label": "Aachen (future capital)",
        "place_label": "Aachen",
        "source_chapter_id": "chapter:charlemagne:inheritance",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "charlemagne",
        "status": "neutral"
      }
    },
    {
      "id": "place:adrianople",
      "kind": "place",
      "label": "Adrianople",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "adrianople"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          26.57,
          41.68
        ],
        "annotation_label": "Adrianople →",
        "place_label": "Adrianople",
        "source_chapter_id": "chapter:rome:gothic-shore",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "rome",
        "status": "neutral"
      }
    },
    {
      "id": "place:ain-jalut",
      "kind": "place",
      "label": "Ain Jalut",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "ain-jalut"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          35.38,
          32.59
        ],
        "annotation_label": "Ain Jalut",
        "place_label": "Ain Jalut",
        "source_chapter_id": "chapter:mongols:spring-of-goliath",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "mongols",
        "status": "neutral"
      }
    },
    {
      "id": "place:alesia",
      "kind": "place",
      "label": "Alesia",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "alesia"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          4.5525,
          47.5366
        ],
        "annotation_label": "Alesia",
        "place_label": "Alesia",
        "source_chapter_id": "chapter:caesar:alesia",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:alexandria",
      "kind": "place",
      "label": "Alexandria",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "alexandria"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          29.89,
          31.2
        ],
        "annotation_label": "Alexandria (founded 331 BCE)",
        "place_label": "Alexandria",
        "source_chapter_id": "chapter:alexander:egypt",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:ankara",
      "kind": "place",
      "label": "Ankara",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "ankara"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          32.85,
          39.93
        ],
        "annotation_label": "Ankara (battle site)",
        "place_label": "Ankara",
        "source_chapter_id": "chapter:timurids:ankara",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "timurids",
        "status": "neutral"
      }
    },
    {
      "id": "place:antioch",
      "kind": "place",
      "label": "Antioch",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "antioch"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          36.16,
          36.2
        ],
        "annotation_label": "Antioch",
        "place_label": "Antioch",
        "source_chapter_id": "chapter:crusades:antioch-siege",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "crusades",
        "status": "neutral"
      }
    },
    {
      "id": "place:ariminum",
      "kind": "place",
      "label": "Ariminum",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "ariminum"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          12.57,
          44.06
        ],
        "annotation_label": "Ariminum",
        "place_label": "Ariminum",
        "source_chapter_id": "chapter:caesar:rubicon",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:armorica",
      "kind": "place",
      "label": "Armorica",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "armorica"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -2.5,
          47.8
        ],
        "annotation_label": "Armorica",
        "place_label": "Armorica",
        "source_chapter_id": "chapter:caesar:width-of-gaul",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:arretium",
      "kind": "place",
      "label": "Arretium",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "arretium"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          11.88,
          43.47
        ],
        "annotation_label": "Arretium",
        "place_label": "Arretium",
        "source_chapter_id": "chapter:hannibal:the-fog",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:athens",
      "kind": "place",
      "label": "Athens",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "athens"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          23.72,
          37.98
        ],
        "annotation_label": "Athens",
        "place_label": "Athens",
        "source_chapter_id": "chapter:alexander:inheritance",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:aventine-hill",
      "kind": "place",
      "label": "Aventine Hill",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "aventine-hill"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          12.479,
          41.88
        ],
        "annotation_label": "Aventine Hill",
        "place_label": "Aventine Hill",
        "source_chapter_id": "chapter:rome:sack-of-rome-410",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "rome",
        "status": "neutral"
      }
    },
    {
      "id": "place:babylon",
      "kind": "place",
      "label": "Babylon",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "babylon"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          44.2,
          32.5
        ],
        "annotation_label": "Babylon →",
        "place_label": "Babylon",
        "source_chapter_id": "chapter:alexander:gaugamela",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:baghdad",
      "kind": "place",
      "label": "Baghdad",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "baghdad"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          44.42,
          33.34
        ],
        "annotation_label": "Baghdad",
        "place_label": "Baghdad",
        "source_chapter_id": "chapter:mongols:night-caliphate-ended",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "mongols",
        "status": "neutral"
      }
    },
    {
      "id": "place:battle-of-the-musara",
      "kind": "place",
      "label": "Battle of the Musara",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "battle-of-the-musara"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -5.5,
          37.5
        ],
        "annotation_label": "Battle of the Musara",
        "place_label": "Battle of the Musara",
        "source_chapter_id": "chapter:andalus:the-refugee",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:battle-site",
      "kind": "place",
      "label": "Battle site",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "battle-site"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          0.34,
          46.58
        ],
        "annotation_label": "Battle site (±20 km)",
        "place_label": "Battle site",
        "source_chapter_id": "chapter:andalus:tours",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:belgae",
      "kind": "place",
      "label": "Belgae",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "belgae"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          4.5,
          50.5
        ],
        "annotation_label": "Belgae",
        "place_label": "Belgae",
        "source_chapter_id": "chapter:caesar:width-of-gaul",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:brundisium",
      "kind": "place",
      "label": "Brundisium",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "brundisium"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          17.94,
          40.63
        ],
        "annotation_label": "Brundisium",
        "place_label": "Brundisium",
        "source_chapter_id": "chapter:caesar:flight",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:cannae",
      "kind": "place",
      "label": "Cannae",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "cannae"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          16.13,
          41.31
        ],
        "annotation_label": "Cannae",
        "place_label": "Cannae",
        "source_chapter_id": "chapter:hannibal:cannae",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:capitoline",
      "kind": "place",
      "label": "Capitoline",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "capitoline"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          12.483,
          41.894
        ],
        "annotation_label": "Capitoline",
        "place_label": "Capitoline",
        "source_chapter_id": "chapter:caesar:four-triumphs",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:capua",
      "kind": "place",
      "label": "Capua",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "capua"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          14.21,
          41.11
        ],
        "annotation_label": "Capua",
        "place_label": "Capua",
        "source_chapter_id": "chapter:hannibal:cannae",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:carthage",
      "kind": "place",
      "label": "Carthage",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "carthage"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          10.32,
          36.85
        ],
        "annotation_label": "Carthage",
        "place_label": "Carthage",
        "source_chapter_id": "chapter:hannibal:the-oath",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:carthago-nova",
      "kind": "place",
      "label": "Carthago Nova",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "carthago-nova"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -0.98,
          37.6
        ],
        "annotation_label": "Carthago Nova",
        "place_label": "Carthago Nova",
        "source_chapter_id": "chapter:hannibal:the-oath",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:catalaunian-plains",
      "kind": "place",
      "label": "Catalaunian Plains",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "catalaunian-plains"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          4.35,
          48.83
        ],
        "annotation_label": "Catalaunian Plains (location uncertain)",
        "place_label": "Catalaunian Plains",
        "source_chapter_id": "chapter:rome:attila-gaul",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "rome",
        "status": "neutral"
      }
    },
    {
      "id": "place:ceuta",
      "kind": "place",
      "label": "Ceuta",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "ceuta"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -5.31,
          35.89
        ],
        "annotation_label": "Ceuta →",
        "place_label": "Ceuta",
        "source_chapter_id": "chapter:andalus:crossing",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:church-of-the-holy-sepulchre",
      "kind": "place",
      "label": "Church of the Holy Sepulchre",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "church-of-the-holy-sepulchre"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          35.229,
          31.778
        ],
        "annotation_label": "Church of the Holy Sepulchre",
        "place_label": "Church of the Holy Sepulchre",
        "source_chapter_id": "chapter:crusades:sack",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "crusades",
        "status": "neutral"
      }
    },
    {
      "id": "place:civetot",
      "kind": "place",
      "label": "Civetot",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "civetot"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          29.5,
          40.7
        ],
        "annotation_label": "Civetot (annihilation, Oct 1096)",
        "place_label": "Civetot",
        "source_chapter_id": "chapter:crusades:peoples-crusade",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "crusades",
        "status": "neutral"
      }
    },
    {
      "id": "place:clermont-ferrand",
      "kind": "place",
      "label": "Clermont-Ferrand",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "clermont-ferrand"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          3.08,
          45.78
        ],
        "annotation_label": "Clermont-Ferrand",
        "place_label": "Clermont-Ferrand",
        "source_chapter_id": "chapter:crusades:clermont",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "crusades",
        "status": "neutral"
      }
    },
    {
      "id": "place:constantinople",
      "kind": "place",
      "label": "Constantinople",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "constantinople"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          28.97,
          41.01
        ],
        "annotation_label": "Constantinople",
        "place_label": "Constantinople",
        "source_chapter_id": "chapter:crusades:constantinople",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "crusades",
        "status": "neutral"
      }
    },
    {
      "id": "place:cordoba",
      "kind": "place",
      "label": "Córdoba",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "cordoba"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -4.78,
          37.88
        ],
        "annotation_label": "Córdoba",
        "place_label": "Córdoba",
        "source_chapter_id": "chapter:andalus:berber-revolt",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:covadonga",
      "kind": "place",
      "label": "Covadonga",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "covadonga"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -5.07,
          43.3
        ],
        "annotation_label": "Covadonga",
        "place_label": "Covadonga",
        "source_chapter_id": "chapter:andalus:covadonga",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:cremona",
      "kind": "place",
      "label": "Cremona",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "cremona"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          10.02,
          45.13
        ],
        "annotation_label": "Cremona",
        "place_label": "Cremona",
        "source_chapter_id": "chapter:hannibal:trebia",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:crusader-sortie-28-june-1098",
      "kind": "place",
      "label": "Crusader sortie, 28 June 1098",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "crusader-sortie-28-june-1098"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          36.1,
          36.15
        ],
        "annotation_label": "Crusader sortie, 28 June 1098",
        "place_label": "Crusader sortie, 28 June 1098",
        "source_chapter_id": "chapter:crusades:holy-lance",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "crusades",
        "status": "neutral"
      }
    },
    {
      "id": "place:curia-of-pompey",
      "kind": "place",
      "label": "Curia of Pompey",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "curia-of-pompey"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          12.472,
          41.9
        ],
        "annotation_label": "Curia of Pompey",
        "place_label": "Curia of Pompey",
        "source_chapter_id": "chapter:caesar:ides",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:delhi",
      "kind": "place",
      "label": "Delhi",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "delhi"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          77.21,
          28.63
        ],
        "annotation_label": "Delhi",
        "place_label": "Delhi",
        "source_chapter_id": "chapter:timurids:india",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "timurids",
        "status": "neutral"
      }
    },
    {
      "id": "place:dorylaeum",
      "kind": "place",
      "label": "Dorylaeum",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "dorylaeum"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          30.52,
          39.77
        ],
        "annotation_label": "Dorylaeum",
        "place_label": "Dorylaeum",
        "source_chapter_id": "chapter:crusades:dorylaeum",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "crusades",
        "status": "neutral"
      }
    },
    {
      "id": "place:forum-romanum",
      "kind": "place",
      "label": "Forum Romanum",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "forum-romanum"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          12.485,
          41.892
        ],
        "annotation_label": "Forum Romanum",
        "place_label": "Forum Romanum",
        "source_chapter_id": "chapter:caesar:open-city",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:frankfurt",
      "kind": "place",
      "label": "Frankfurt",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "frankfurt"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          8.68,
          50.11
        ],
        "annotation_label": "Frankfurt (Council 794)",
        "place_label": "Frankfurt",
        "source_chapter_id": "chapter:charlemagne:aachen",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "charlemagne",
        "status": "neutral"
      }
    },
    {
      "id": "place:gaugamela",
      "kind": "place",
      "label": "Gaugamela",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "gaugamela"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          43.25,
          36.36
        ],
        "annotation_label": "Gaugamela",
        "place_label": "Gaugamela",
        "source_chapter_id": "chapter:alexander:gaugamela",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:genava",
      "kind": "place",
      "label": "Genava",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "genava"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          6.14,
          46.2
        ],
        "annotation_label": "Genava",
        "place_label": "Genava",
        "source_chapter_id": "chapter:caesar:helvetii",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:granicus-river",
      "kind": "place",
      "label": "Granicus River",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "granicus-river"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          27.32,
          40.38
        ],
        "annotation_label": "Granicus River",
        "place_label": "Granicus River",
        "source_chapter_id": "chapter:alexander:granicus",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:guadalete-rio-barbate",
      "kind": "place",
      "label": "Guadalete / Río Barbate",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "guadalete-rio-barbate"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -5.82,
          36.19
        ],
        "annotation_label": "Guadalete / Río Barbate (±30 km)",
        "place_label": "Guadalete / Río Barbate",
        "source_chapter_id": "chapter:andalus:guadalete",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:hadrumetum",
      "kind": "place",
      "label": "Hadrumetum",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "hadrumetum"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          10.63,
          35.83
        ],
        "annotation_label": "Hadrumetum",
        "place_label": "Hadrumetum",
        "source_chapter_id": "chapter:hannibal:zama",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:hecatompylos",
      "kind": "place",
      "label": "Hecatompylos",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "hecatompylos"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          53.98,
          36.65
        ],
        "annotation_label": "Hecatompylos",
        "place_label": "Hecatompylos",
        "source_chapter_id": "chapter:alexander:gaugamela",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:helvetii",
      "kind": "place",
      "label": "Helvetii",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "helvetii"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          7.5,
          47.0
        ],
        "annotation_label": "Helvetii",
        "place_label": "Helvetii",
        "source_chapter_id": "chapter:caesar:helvetii",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:hydaspes-river",
      "kind": "place",
      "label": "Hydaspes River",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "hydaspes-river"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          73.6,
          32.8
        ],
        "annotation_label": "Hydaspes River",
        "place_label": "Hydaspes River",
        "source_chapter_id": "chapter:alexander:india",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:issus",
      "kind": "place",
      "label": "Issus",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "issus"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          36.16,
          36.84
        ],
        "annotation_label": "Issus",
        "place_label": "Issus",
        "source_chapter_id": "chapter:alexander:issus",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:jabal-tariq",
      "kind": "place",
      "label": "Jabal Tariq",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "jabal-tariq"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -5.35,
          36.14
        ],
        "annotation_label": "Jabal Tariq (Gibraltar)",
        "place_label": "Jabal Tariq",
        "source_chapter_id": "chapter:andalus:crossing",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:jerusalem",
      "kind": "place",
      "label": "Jerusalem",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "jerusalem"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          35.23,
          31.78
        ],
        "annotation_label": "Jerusalem",
        "place_label": "Jerusalem",
        "source_chapter_id": "chapter:crusades:jerusalem-walls",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "crusades",
        "status": "neutral"
      }
    },
    {
      "id": "place:kalka-river",
      "kind": "place",
      "label": "Kalka River",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "kalka-river"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          37.52,
          47.55
        ],
        "annotation_label": "Kalka River (±50 km)",
        "place_label": "Kalka River",
        "source_chapter_id": "chapter:mongols:river-of-bones",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "mongols",
        "status": "neutral"
      }
    },
    {
      "id": "place:larissa",
      "kind": "place",
      "label": "Larissa",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "larissa"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          22.42,
          39.64
        ],
        "annotation_label": "Larissa",
        "place_label": "Larissa",
        "source_chapter_id": "chapter:caesar:pharsalus",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:legnica",
      "kind": "place",
      "label": "Legnica",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "legnica"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          16.16,
          51.21
        ],
        "annotation_label": "Legnica (April 9)",
        "place_label": "Legnica",
        "source_chapter_id": "chapter:mongols:two-battles-two-days",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "mongols",
        "status": "neutral"
      }
    },
    {
      "id": "place:maarra-al-numan",
      "kind": "place",
      "label": "Maarra al-Numan",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "maarra-al-numan"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          36.67,
          35.64
        ],
        "annotation_label": "Maarra al-Numan",
        "place_label": "Maarra al-Numan",
        "source_chapter_id": "chapter:crusades:maarra",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "crusades",
        "status": "neutral"
      }
    },
    {
      "id": "place:massalia",
      "kind": "place",
      "label": "Massalia",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "massalia"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          5.37,
          43.3
        ],
        "annotation_label": "Massalia",
        "place_label": "Massalia",
        "source_chapter_id": "chapter:hannibal:the-river",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:mediolanum",
      "kind": "place",
      "label": "Mediolanum",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "mediolanum"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          9.19,
          45.46
        ],
        "annotation_label": "Mediolanum",
        "place_label": "Mediolanum",
        "source_chapter_id": "chapter:rome:stilicho",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "rome",
        "status": "neutral"
      }
    },
    {
      "id": "place:mohi-sajo-river",
      "kind": "place",
      "label": "Mohi / Sajó River",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "mohi-sajo-river"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          20.77,
          47.98
        ],
        "annotation_label": "Mohi / Sajó River (April 11)",
        "place_label": "Mohi / Sajó River",
        "source_chapter_id": "chapter:mongols:two-battles-two-days",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "mongols",
        "status": "neutral"
      }
    },
    {
      "id": "place:narbo",
      "kind": "place",
      "label": "Narbo",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "narbo"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          3.0,
          43.18
        ],
        "annotation_label": "Narbo",
        "place_label": "Narbo",
        "source_chapter_id": "chapter:hannibal:the-river",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:narbonne",
      "kind": "place",
      "label": "Narbonne",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "narbonne"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          3.0,
          43.18
        ],
        "annotation_label": "Narbonne (taken 719)",
        "place_label": "Narbonne",
        "source_chapter_id": "chapter:andalus:march-into-gaul",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:nicaea",
      "kind": "place",
      "label": "Nicaea",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "nicaea"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          29.72,
          40.42
        ],
        "annotation_label": "Nicaea (taken June 1097)",
        "place_label": "Nicaea",
        "source_chapter_id": "chapter:crusades:dorylaeum",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "crusades",
        "status": "neutral"
      }
    },
    {
      "id": "place:onon-river",
      "kind": "place",
      "label": "Onon River",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "onon-river"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          110.65,
          49.02
        ],
        "annotation_label": "Onon River",
        "place_label": "Onon River",
        "source_chapter_id": "chapter:mongols:white-banner",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "mongols",
        "status": "neutral"
      }
    },
    {
      "id": "place:ostia",
      "kind": "place",
      "label": "Ostia",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "ostia"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          12.29,
          41.76
        ],
        "annotation_label": "Ostia →",
        "place_label": "Ostia",
        "source_chapter_id": "chapter:rome:vandals",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "rome",
        "status": "neutral"
      }
    },
    {
      "id": "place:otrar",
      "kind": "place",
      "label": "Otrar",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "otrar"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          68.77,
          41.12
        ],
        "annotation_label": "Otrar (death, Feb 1405)",
        "place_label": "Otrar",
        "source_chapter_id": "chapter:timurids:what-he-left",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "timurids",
        "status": "neutral"
      }
    },
    {
      "id": "place:paderborn",
      "kind": "place",
      "label": "Paderborn",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "paderborn"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          8.75,
          51.72
        ],
        "annotation_label": "Paderborn (Frankish base)",
        "place_label": "Paderborn",
        "source_chapter_id": "chapter:charlemagne:saxon-wars",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "charlemagne",
        "status": "neutral"
      }
    },
    {
      "id": "place:pella",
      "kind": "place",
      "label": "Pella",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "pella"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          22.52,
          40.76
        ],
        "annotation_label": "Pella",
        "place_label": "Pella",
        "source_chapter_id": "chapter:alexander:inheritance",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:pelusium",
      "kind": "place",
      "label": "Pelusium",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "pelusium"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          32.55,
          31.02
        ],
        "annotation_label": "Pelusium",
        "place_label": "Pelusium",
        "source_chapter_id": "chapter:caesar:egyptian-shore",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:persepolis",
      "kind": "place",
      "label": "Persepolis",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "persepolis"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          52.89,
          29.94
        ],
        "annotation_label": "Persepolis",
        "place_label": "Persepolis",
        "source_chapter_id": "chapter:alexander:persepolis",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:pharsalos",
      "kind": "place",
      "label": "Pharsalos",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "pharsalos"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          22.43,
          39.29
        ],
        "annotation_label": "Pharsalos (±8 km)",
        "place_label": "Pharsalos",
        "source_chapter_id": "chapter:caesar:pharsalus",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:placentia",
      "kind": "place",
      "label": "Placentia",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "placentia"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          9.7,
          45.05
        ],
        "annotation_label": "Placentia",
        "place_label": "Placentia",
        "source_chapter_id": "chapter:hannibal:trebia",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:ravenna",
      "kind": "place",
      "label": "Ravenna",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "ravenna"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          12.2,
          44.41
        ],
        "annotation_label": "Ravenna (after 402) →",
        "place_label": "Ravenna",
        "source_chapter_id": "chapter:rome:stilicho",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "rome",
        "status": "neutral"
      }
    },
    {
      "id": "place:rhine",
      "kind": "place",
      "label": "Rhine",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "rhine"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          7.8,
          50.0
        ],
        "annotation_label": "Rhine",
        "place_label": "Rhine",
        "source_chapter_id": "chapter:caesar:width-of-gaul",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:rhineland-massacres",
      "kind": "place",
      "label": "Rhineland massacres",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "rhineland-massacres"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          7.5,
          50.9
        ],
        "annotation_label": "Rhineland massacres",
        "place_label": "Rhineland massacres",
        "source_chapter_id": "chapter:crusades:peoples-crusade",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "crusades",
        "status": "neutral"
      }
    },
    {
      "id": "place:rome",
      "kind": "place",
      "label": "Rome",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "rome"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          12.49,
          41.89
        ],
        "annotation_label": "Rome",
        "place_label": "Rome",
        "source_chapter_id": "chapter:caesar:flight",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:roncesvaux-pass",
      "kind": "place",
      "label": "Roncèsvaux Pass",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "roncesvaux-pass"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -1.32,
          43.01
        ],
        "annotation_label": "Roncèsvaux Pass",
        "place_label": "Roncèsvaux Pass",
        "source_chapter_id": "chapter:charlemagne:roncevaux",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "charlemagne",
        "status": "neutral"
      }
    },
    {
      "id": "place:rubicon",
      "kind": "place",
      "label": "Rubicon",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "rubicon"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          12.4,
          44.28
        ],
        "annotation_label": "Rubicon",
        "place_label": "Rubicon",
        "source_chapter_id": "chapter:caesar:rubicon",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:samarkand",
      "kind": "place",
      "label": "Samarkand",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "samarkand"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          66.97,
          39.65
        ],
        "annotation_label": "Samarkand",
        "place_label": "Samarkand",
        "source_chapter_id": "chapter:mongols:world-conqueror-turns-west",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "mongols",
        "status": "neutral"
      }
    },
    {
      "id": "place:saragossa",
      "kind": "place",
      "label": "Saragossa",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "saragossa"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -0.88,
          41.65
        ],
        "annotation_label": "Saragossa →",
        "place_label": "Saragossa",
        "source_chapter_id": "chapter:andalus:year-of-conquest",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:sardis",
      "kind": "place",
      "label": "Sardis",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "sardis"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          28.05,
          38.48
        ],
        "annotation_label": "Sardis",
        "place_label": "Sardis",
        "source_chapter_id": "chapter:alexander:granicus",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:senate",
      "kind": "place",
      "label": "Senate",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "senate"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          12.486,
          41.893
        ],
        "annotation_label": "Senate",
        "place_label": "Senate",
        "source_chapter_id": "chapter:caesar:without-end",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "caesar",
        "status": "neutral"
      }
    },
    {
      "id": "place:sevilla",
      "kind": "place",
      "label": "Sevilla",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "sevilla"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -5.99,
          37.39
        ],
        "annotation_label": "Sevilla →",
        "place_label": "Sevilla",
        "source_chapter_id": "chapter:andalus:year-of-conquest",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:susa",
      "kind": "place",
      "label": "Susa",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "susa"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          48.25,
          32.2
        ],
        "annotation_label": "Susa",
        "place_label": "Susa",
        "source_chapter_id": "chapter:alexander:persepolis",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:tarentum",
      "kind": "place",
      "label": "Tarentum",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "tarentum"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          17.33,
          40.47
        ],
        "annotation_label": "Tarentum",
        "place_label": "Tarentum",
        "source_chapter_id": "chapter:hannibal:the-long-stay",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:taurini",
      "kind": "place",
      "label": "Taurini",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "taurini"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          7.68,
          45.07
        ],
        "annotation_label": "Taurini",
        "place_label": "Taurini",
        "source_chapter_id": "chapter:hannibal:the-pass",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:taxila",
      "kind": "place",
      "label": "Taxila",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "taxila"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          72.79,
          33.75
        ],
        "annotation_label": "Taxila",
        "place_label": "Taxila",
        "source_chapter_id": "chapter:alexander:india",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:terek-river",
      "kind": "place",
      "label": "Terek River",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "terek-river"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          44.52,
          43.47
        ],
        "annotation_label": "Terek River (battle site)",
        "place_label": "Terek River",
        "source_chapter_id": "chapter:timurids:toktamish",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "timurids",
        "status": "neutral"
      }
    },
    {
      "id": "place:toledo",
      "kind": "place",
      "label": "Toledo",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "toledo"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          -3.99,
          39.86
        ],
        "annotation_label": "Toledo (Visigothic capital)",
        "place_label": "Toledo",
        "source_chapter_id": "chapter:andalus:year-of-conquest",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:toulouse",
      "kind": "place",
      "label": "Toulouse",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "toulouse"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          1.44,
          43.6
        ],
        "annotation_label": "Toulouse (besieged 721)",
        "place_label": "Toulouse",
        "source_chapter_id": "chapter:andalus:march-into-gaul",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:tours",
      "kind": "place",
      "label": "Tours",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "tours"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          0.69,
          47.39
        ],
        "annotation_label": "Tours",
        "place_label": "Tours",
        "source_chapter_id": "chapter:andalus:tours",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "andalus",
        "status": "neutral"
      }
    },
    {
      "id": "place:trasimene",
      "kind": "place",
      "label": "Trasimene",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "trasimene"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          12.08,
          43.19
        ],
        "annotation_label": "Trasimene",
        "place_label": "Trasimene",
        "source_chapter_id": "chapter:hannibal:the-fog",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:trebia",
      "kind": "place",
      "label": "Trebia",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "trebia"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          9.7,
          45.06
        ],
        "annotation_label": "Trebia",
        "place_label": "Trebia",
        "source_chapter_id": "chapter:hannibal:trebia",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:troy",
      "kind": "place",
      "label": "Troy",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "troy"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          26.24,
          39.96
        ],
        "annotation_label": "Troy",
        "place_label": "Troy",
        "source_chapter_id": "chapter:alexander:crossing",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "alexander",
        "status": "neutral"
      }
    },
    {
      "id": "place:utica",
      "kind": "place",
      "label": "Utica",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "utica"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          10.05,
          37.07
        ],
        "annotation_label": "Utica",
        "place_label": "Utica",
        "source_chapter_id": "chapter:hannibal:scipios-gambit",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:verden-an-der-aller",
      "kind": "place",
      "label": "Verden an der Aller",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "verden-an-der-aller"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          9.23,
          52.92
        ],
        "annotation_label": "Verden an der Aller",
        "place_label": "Verden an der Aller",
        "source_chapter_id": "chapter:charlemagne:verden",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "charlemagne",
        "status": "neutral"
      }
    },
    {
      "id": "place:zama",
      "kind": "place",
      "label": "Zama",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "zama"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "annotation_style": "battle",
        "domain": "parallax",
        "layer": "world",
        "location": [
          8.84,
          36.17
        ],
        "annotation_label": "Zama",
        "place_label": "Zama",
        "source_chapter_id": "chapter:hannibal:zama",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "hannibal",
        "status": "neutral"
      }
    },
    {
      "id": "place:zhongdu",
      "kind": "place",
      "label": "Zhongdu",
      "summary": "A shared place reference projected from a Parallax map annotation.",
      "tags": [
        "place",
        "parallax",
        "zhongdu"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "annotation_style": "place",
        "domain": "parallax",
        "layer": "world",
        "location": [
          116.39,
          39.92
        ],
        "annotation_label": "Zhongdu (Beijing)",
        "place_label": "Zhongdu",
        "source_chapter_id": "chapter:mongols:wall-does-not-hold",
        "source_kind": "parallax_map_annotation",
        "source_story_id": "mongols",
        "status": "neutral"
      }
    },
    {
      "id": "region:Central Asia",
      "kind": "region",
      "label": "Central Asia",
      "summary": "A shared geographic classification in the Parallax story export: Central Asia.",
      "tags": [
        "region",
        "parallax",
        "Central Asia"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "Central Asia",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:East Asia",
      "kind": "region",
      "label": "East Asia",
      "summary": "A shared geographic classification in the Parallax story export: East Asia.",
      "tags": [
        "region",
        "parallax",
        "East Asia"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "East Asia",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:Eastern Europe",
      "kind": "region",
      "label": "Eastern Europe",
      "summary": "A shared geographic classification in the Parallax story export: Eastern Europe.",
      "tags": [
        "region",
        "parallax",
        "Eastern Europe"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "Eastern Europe",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:Europe",
      "kind": "region",
      "label": "Europe",
      "summary": "A shared geographic classification in the Parallax story export: Europe.",
      "tags": [
        "region",
        "parallax",
        "Europe"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "Europe",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:Middle East",
      "kind": "region",
      "label": "Middle East",
      "summary": "A shared geographic classification in the Parallax story export: Middle East.",
      "tags": [
        "region",
        "parallax",
        "Middle East"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "Middle East",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:anatolia",
      "kind": "region",
      "label": "Anatolia",
      "summary": "A shared geographic classification in the Parallax story export: Anatolia.",
      "tags": [
        "region",
        "parallax",
        "anatolia"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "anatolia",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:andalusia",
      "kind": "region",
      "label": "Andalusia",
      "summary": "A shared geographic classification in the Parallax story export: Andalusia.",
      "tags": [
        "region",
        "parallax",
        "andalusia"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "andalusia",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:asturias",
      "kind": "region",
      "label": "Asturias",
      "summary": "A shared geographic classification in the Parallax story export: Asturias.",
      "tags": [
        "region",
        "parallax",
        "asturias"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "asturias",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:byzantium",
      "kind": "region",
      "label": "Byzantium",
      "summary": "A shared geographic classification in the Parallax story export: Byzantium.",
      "tags": [
        "region",
        "parallax",
        "byzantium"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "byzantium",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:carthage",
      "kind": "region",
      "label": "Carthaginian sphere",
      "summary": "A shared geographic classification in the Parallax story export: Carthaginian sphere.",
      "tags": [
        "region",
        "parallax",
        "carthage"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "carthage",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:central_asia",
      "kind": "region",
      "label": "Central_Asia",
      "summary": "A shared geographic classification in the Parallax story export: Central_Asia.",
      "tags": [
        "region",
        "parallax",
        "central_asia"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "central_asia",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:china",
      "kind": "region",
      "label": "China",
      "summary": "A shared geographic classification in the Parallax story export: China.",
      "tags": [
        "region",
        "parallax",
        "china"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "china",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:egypt",
      "kind": "region",
      "label": "Egypt",
      "summary": "A shared geographic classification in the Parallax story export: Egypt.",
      "tags": [
        "region",
        "parallax",
        "egypt"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "egypt",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:france",
      "kind": "region",
      "label": "France",
      "summary": "A shared geographic classification in the Parallax story export: France.",
      "tags": [
        "region",
        "parallax",
        "france"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "france",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:frankia",
      "kind": "region",
      "label": "Frankia",
      "summary": "A shared geographic classification in the Parallax story export: Frankia.",
      "tags": [
        "region",
        "parallax",
        "frankia"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "frankia",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:gaul",
      "kind": "region",
      "label": "Gaul",
      "summary": "A shared geographic classification in the Parallax story export: Gaul.",
      "tags": [
        "region",
        "parallax",
        "gaul"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "gaul",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:greece",
      "kind": "region",
      "label": "Greece",
      "summary": "A shared geographic classification in the Parallax story export: Greece.",
      "tags": [
        "region",
        "parallax",
        "greece"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "greece",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:hellenistic",
      "kind": "region",
      "label": "Hellenistic world",
      "summary": "A shared geographic classification in the Parallax story export: Hellenistic world.",
      "tags": [
        "region",
        "parallax",
        "hellenistic"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "hellenistic",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:iberia",
      "kind": "region",
      "label": "Iberia",
      "summary": "A shared geographic classification in the Parallax story export: Iberia.",
      "tags": [
        "region",
        "parallax",
        "iberia"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "iberia",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:india",
      "kind": "region",
      "label": "India",
      "summary": "A shared geographic classification in the Parallax story export: India.",
      "tags": [
        "region",
        "parallax",
        "india"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "india",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:italy",
      "kind": "region",
      "label": "Italy",
      "summary": "A shared geographic classification in the Parallax story export: Italy.",
      "tags": [
        "region",
        "parallax",
        "italy"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "italy",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:levant",
      "kind": "region",
      "label": "Levant",
      "summary": "A shared geographic classification in the Parallax story export: Levant.",
      "tags": [
        "region",
        "parallax",
        "levant"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "levant",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:macedon",
      "kind": "region",
      "label": "Macedon",
      "summary": "A shared geographic classification in the Parallax story export: Macedon.",
      "tags": [
        "region",
        "parallax",
        "macedon"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "macedon",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:mesopotamia",
      "kind": "region",
      "label": "Mesopotamia",
      "summary": "A shared geographic classification in the Parallax story export: Mesopotamia.",
      "tags": [
        "region",
        "parallax",
        "mesopotamia"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "mesopotamia",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:near-east",
      "kind": "region",
      "label": "Near East",
      "summary": "A shared geographic classification in the Parallax story export: Near East.",
      "tags": [
        "region",
        "parallax",
        "near-east"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "near-east",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:north_caucasus",
      "kind": "region",
      "label": "North_Caucasus",
      "summary": "A shared geographic classification in the Parallax story export: North_Caucasus.",
      "tags": [
        "region",
        "parallax",
        "north_caucasus"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "north_caucasus",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:north_india",
      "kind": "region",
      "label": "North_India",
      "summary": "A shared geographic classification in the Parallax story export: North_India.",
      "tags": [
        "region",
        "parallax",
        "north_india"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "north_india",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:persia",
      "kind": "region",
      "label": "Persia",
      "summary": "A shared geographic classification in the Parallax story export: Persia.",
      "tags": [
        "region",
        "parallax",
        "persia"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "persia",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:pyrenees",
      "kind": "region",
      "label": "Pyrenees",
      "summary": "A shared geographic classification in the Parallax story export: Pyrenees.",
      "tags": [
        "region",
        "parallax",
        "pyrenees"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "pyrenees",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:rome",
      "kind": "region",
      "label": "Roman sphere",
      "summary": "A shared geographic classification in the Parallax story export: Roman sphere.",
      "tags": [
        "region",
        "parallax",
        "rome"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "rome",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:saxony",
      "kind": "region",
      "label": "Saxony",
      "summary": "A shared geographic classification in the Parallax story export: Saxony.",
      "tags": [
        "region",
        "parallax",
        "saxony"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "saxony",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:sicily",
      "kind": "region",
      "label": "Sicily",
      "summary": "A shared geographic classification in the Parallax story export: Sicily.",
      "tags": [
        "region",
        "parallax",
        "sicily"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "sicily",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:strait_of_gibraltar",
      "kind": "region",
      "label": "Strait_Of_Gibraltar",
      "summary": "A shared geographic classification in the Parallax story export: Strait_Of_Gibraltar.",
      "tags": [
        "region",
        "parallax",
        "strait_of_gibraltar"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "strait_of_gibraltar",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:thrace",
      "kind": "region",
      "label": "Thrace",
      "summary": "A shared geographic classification in the Parallax story export: Thrace.",
      "tags": [
        "region",
        "parallax",
        "thrace"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "thrace",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "region:western-mediterranean",
      "kind": "region",
      "label": "Western Mediterranean",
      "summary": "A shared geographic classification in the Parallax story export: Western Mediterranean.",
      "tags": [
        "region",
        "parallax",
        "western-mediterranean"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "region_slug": "western-mediterranean",
        "source_kind": "parallax_event_region",
        "status": "neutral"
      }
    },
    {
      "id": "research-lens:biography",
      "kind": "research_lens",
      "label": "Biography",
      "summary": "A biography reading of the evidence.",
      "tags": [
        "research-lens",
        "biography"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "research",
        "source_kind": "research_lens",
        "status": "neutral"
      }
    },
    {
      "id": "research-lens:geoarchaeology",
      "kind": "research_lens",
      "label": "Geoarchaeology",
      "summary": "A geoarchaeology reading of the evidence.",
      "tags": [
        "research-lens",
        "geoarchaeology"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "research",
        "source_kind": "research_lens",
        "status": "neutral"
      }
    },
    {
      "id": "research-lens:geography",
      "kind": "research_lens",
      "label": "Geography",
      "summary": "A geography reading of the evidence.",
      "tags": [
        "research-lens",
        "geography"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "research",
        "source_kind": "research_lens",
        "status": "neutral"
      }
    },
    {
      "id": "research-lens:historiography",
      "kind": "research_lens",
      "label": "Historiography",
      "summary": "A historiography reading of the evidence.",
      "tags": [
        "research-lens",
        "historiography"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "research",
        "source_kind": "research_lens",
        "status": "neutral"
      }
    },
    {
      "id": "research-lens:military_theory",
      "kind": "research_lens",
      "label": "Military Theory",
      "summary": "A military theory reading of the evidence.",
      "tags": [
        "research-lens",
        "military_theory"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "research",
        "source_kind": "research_lens",
        "status": "neutral"
      }
    },
    {
      "id": "research-lens:operational",
      "kind": "research_lens",
      "label": "Operational",
      "summary": "A operational reading of the evidence.",
      "tags": [
        "research-lens",
        "operational"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "research",
        "source_kind": "research_lens",
        "status": "neutral"
      }
    },
    {
      "id": "research-lens:political",
      "kind": "research_lens",
      "label": "Political",
      "summary": "A political reading of the evidence.",
      "tags": [
        "research-lens",
        "political"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "research",
        "source_kind": "research_lens",
        "status": "neutral"
      }
    },
    {
      "id": "research-lens:quantitative",
      "kind": "research_lens",
      "label": "Quantitative",
      "summary": "A quantitative reading of the evidence.",
      "tags": [
        "research-lens",
        "quantitative"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "research",
        "source_kind": "research_lens",
        "status": "neutral"
      }
    },
    {
      "id": "research-lens:tactical",
      "kind": "research_lens",
      "label": "Tactical",
      "summary": "A tactical reading of the evidence.",
      "tags": [
        "research-lens",
        "tactical"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "research",
        "source_kind": "research_lens",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:appian-hannibalic-war-hann-4-19",
      "kind": "source_passage",
      "label": "Appian, Hann. 4.19",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greco-roman-historiography",
        "Hann. 4.19"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "appian-hannibalic-war",
        "locator": "Hann. 4.19",
        "content_hash": "1629f3753c0950f5ec1a9f607a652186c6d009a9264b8977779857927baad732",
        "word_count": 247,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0230%3Atext%3DHann.%3Achapter%3D4",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:appian-hannibalic-war-hann-4-20",
      "kind": "source_passage",
      "label": "Appian, Hann. 4.20",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greco-roman-historiography",
        "Hann. 4.20"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "appian-hannibalic-war",
        "locator": "Hann. 4.20",
        "content_hash": "ffa43d0903ea32c2f923f9926332515878110bd081c8ac4505fcf55b0a8e84fa",
        "word_count": 223,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0230%3Atext%3DHann.%3Achapter%3D4",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:appian-hannibalic-war-hann-4-21",
      "kind": "source_passage",
      "label": "Appian, Hann. 4.21",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greco-roman-historiography",
        "Hann. 4.21"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "appian-hannibalic-war",
        "locator": "Hann. 4.21",
        "content_hash": "83277299ab5ec0128aef7c7efb83257be29cb0571eb4ae713a7883843e454255",
        "word_count": 206,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0230%3Atext%3DHann.%3Achapter%3D4",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:appian-hannibalic-war-hann-4-22",
      "kind": "source_passage",
      "label": "Appian, Hann. 4.22",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greco-roman-historiography",
        "Hann. 4.22"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "appian-hannibalic-war",
        "locator": "Hann. 4.22",
        "content_hash": "6ff315f4a23487da655d07d1a9feee491d1190d046638adf2d3ad6a4e2277b32",
        "word_count": 241,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0230%3Atext%3DHann.%3Achapter%3D4",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:appian-hannibalic-war-hann-4-23",
      "kind": "source_passage",
      "label": "Appian, Hann. 4.23",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greco-roman-historiography",
        "Hann. 4.23"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "appian-hannibalic-war",
        "locator": "Hann. 4.23",
        "content_hash": "fe24a47f8b19241beb6dd36817450eab61860346bee914232b6699ac333f3b5d",
        "word_count": 250,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0230%3Atext%3DHann.%3Achapter%3D4",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:appian-hannibalic-war-hann-4-24",
      "kind": "source_passage",
      "label": "Appian, Hann. 4.24",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greco-roman-historiography",
        "Hann. 4.24"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "appian-hannibalic-war",
        "locator": "Hann. 4.24",
        "content_hash": "60da05b8a33f913ee46809a214b601b5cf87a411c14b72fc507105cbe236864e",
        "word_count": 183,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0230%3Atext%3DHann.%3Achapter%3D4",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:appian-hannibalic-war-hann-4-25",
      "kind": "source_passage",
      "label": "Appian, Hann. 4.25",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greco-roman-historiography",
        "Hann. 4.25"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "appian-hannibalic-war",
        "locator": "Hann. 4.25",
        "content_hash": "c23826db366538a53ecab85ad68646a83fa45e088526fe9f90b2fa13af075f3e",
        "word_count": 130,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0230%3Atext%3DHann.%3Achapter%3D4",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:appian-hannibalic-war-hann-4-26",
      "kind": "source_passage",
      "label": "Appian, Hann. 4.26",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greco-roman-historiography",
        "Hann. 4.26"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "appian-hannibalic-war",
        "locator": "Hann. 4.26",
        "content_hash": "cb264cfdc17bbb66867b08db330affbd9b9b9818a8c83fba0fa449bb7903a54a",
        "word_count": 212,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0230%3Atext%3DHann.%3Achapter%3D4",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-22-22-39",
      "kind": "source_passage",
      "label": "Livy, 22.39",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "22.39"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-22",
        "locator": "22.39",
        "content_hash": "e201398b37ad0885dae09de16e1f7731a784d45e4e33f50a3ea05b23cad13282",
        "word_count": 1060,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D22",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-22-22-40",
      "kind": "source_passage",
      "label": "Livy, 22.40",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "22.40"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-22",
        "locator": "22.40",
        "content_hash": "b6931fcfd8757b5ebe05bf70a08327162255f516fc07eddd52846bfb4c94e224",
        "word_count": 363,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D22",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-22-22-41",
      "kind": "source_passage",
      "label": "Livy, 22.41",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "22.41"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-22",
        "locator": "22.41",
        "content_hash": "c62e4b9da1062609dfb72900547d7da4f22c3a3abeb6fb5b175b9bb223f919b3",
        "word_count": 380,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D22",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-22-22-42",
      "kind": "source_passage",
      "label": "Livy, 22.42",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "22.42"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-22",
        "locator": "22.42",
        "content_hash": "6f268395e56b48127c5e048c95cd6f7543f736eebd97ae0d579af41df1b97897",
        "word_count": 562,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D22",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-22-22-43",
      "kind": "source_passage",
      "label": "Livy, 22.43",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "22.43"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-22",
        "locator": "22.43",
        "content_hash": "5b7630648fa9446eb7533250ee2382c68b291ba6f4c673180805fc77a905d769",
        "word_count": 453,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D22",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-22-22-44",
      "kind": "source_passage",
      "label": "Livy, 22.44",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "22.44"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-22",
        "locator": "22.44",
        "content_hash": "7fc1070b649c023ff7a768bdce16c0f87c3db35cf8ce7060f91b0097f34f1825",
        "word_count": 346,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D22",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-22-22-46",
      "kind": "source_passage",
      "label": "Livy, 22.46",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "22.46"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-22",
        "locator": "22.46",
        "content_hash": "6a1d78e5e08dae3a485f8585cd1c4fac92123c3fb6f117c45c69249ba0ed0b47",
        "word_count": 353,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D22",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-22-22-47",
      "kind": "source_passage",
      "label": "Livy, 22.47",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "22.47"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-22",
        "locator": "22.47",
        "content_hash": "939c6e284939182f5d8f45d387cdc5f3c823057a1df72f6442e91a02f5817498",
        "word_count": 410,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D22",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-22-22-49",
      "kind": "source_passage",
      "label": "Livy, 22.49",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "22.49"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-22",
        "locator": "22.49",
        "content_hash": "a29466cc45da21f0b3246f7cf89c3b53ee710dffed6406eb73c3b55fbd8f7131",
        "word_count": 653,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D22",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-22-22-50",
      "kind": "source_passage",
      "label": "Livy, 22.50",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "22.50"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-22",
        "locator": "22.50",
        "content_hash": "727416032f2a7176922f196fe1eae5f457eb313a86fdbcc06b0d60343b32acaf",
        "word_count": 545,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D22",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-23-23-1",
      "kind": "source_passage",
      "label": "Livy, 23.1",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "23.1"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-23",
        "locator": "23.1",
        "content_hash": "4c210310b12f1e318e6ee94171af460ac2053c0525f89cc1a5b1a0f65d18f74b",
        "word_count": 417,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D23",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:livy-history-23-23-10",
      "kind": "source_passage",
      "label": "Livy, 23.10",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "roman-historiography",
        "23.10"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "livy-history-23",
        "locator": "23.10",
        "content_hash": "2282d6ed2a2161ce6f9b60993828b5c27c2450ee0cca660f262c55320b34fb1c",
        "word_count": 635,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D23",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:mahaney-2024-geomorphic-page-1",
      "kind": "source_passage",
      "label": "William C. Mahaney, page 1",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "modern-geoarchaeology",
        "page 1"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "mahaney-2024-geomorphic",
        "locator": "page 1",
        "content_hash": "e595f882a8c4fb0c6ebedfc837c7b2ed4eafc29abed85234a2e30377b94f87d7",
        "word_count": 665,
        "url": "https://journals.pan.pl/Content/130738/PDF/04_Mahaney-1.pdf?handler=pdf",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:mahaney-2024-geomorphic-page-2",
      "kind": "source_passage",
      "label": "William C. Mahaney, page 2",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "modern-geoarchaeology",
        "page 2"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "mahaney-2024-geomorphic",
        "locator": "page 2",
        "content_hash": "bc055543da66d3c21cf7caf8eabf94f2413f0438ede87589fcaa319cceb93c0b",
        "word_count": 625,
        "url": "https://journals.pan.pl/Content/130738/PDF/04_Mahaney-1.pdf?handler=pdf",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:mahaney-2024-geomorphic-page-3",
      "kind": "source_passage",
      "label": "William C. Mahaney, page 3",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "modern-geoarchaeology",
        "page 3"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "mahaney-2024-geomorphic",
        "locator": "page 3",
        "content_hash": "ee95130f86bfc8bb3e9c9caf700efcf3097bd4d0e33e09b86ef6f29c0cac6218",
        "word_count": 654,
        "url": "https://journals.pan.pl/Content/130738/PDF/04_Mahaney-1.pdf?handler=pdf",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:mahaney-2024-geomorphic-page-4",
      "kind": "source_passage",
      "label": "William C. Mahaney, page 4",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "modern-geoarchaeology",
        "page 4"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "mahaney-2024-geomorphic",
        "locator": "page 4",
        "content_hash": "6deeb96626915b1487d2fe36429a638141e844cb8b91aa2b43bb4b2fe2754241",
        "word_count": 893,
        "url": "https://journals.pan.pl/Content/130738/PDF/04_Mahaney-1.pdf?handler=pdf",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:mahaney-2024-geomorphic-page-5",
      "kind": "source_passage",
      "label": "William C. Mahaney, page 5",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "modern-geoarchaeology",
        "page 5"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "mahaney-2024-geomorphic",
        "locator": "page 5",
        "content_hash": "71fe21d263c0166612a12938c7ac58429be079447b1fded2854c53cf625988c7",
        "word_count": 886,
        "url": "https://journals.pan.pl/Content/130738/PDF/04_Mahaney-1.pdf?handler=pdf",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:mahaney-2024-geomorphic-page-6",
      "kind": "source_passage",
      "label": "William C. Mahaney, page 6",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "modern-geoarchaeology",
        "page 6"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "mahaney-2024-geomorphic",
        "locator": "page 6",
        "content_hash": "89a7fe3f5c87b47b7617d5fea842ca8055f0566aadbc3a00b8f003977d64422a",
        "word_count": 739,
        "url": "https://journals.pan.pl/Content/130738/PDF/04_Mahaney-1.pdf?handler=pdf",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:plutarch-marcellus-marc-10",
      "kind": "source_passage",
      "label": "Plutarch, Marc. 10",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greek-roman-biography",
        "Marc. 10"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "plutarch-marcellus",
        "locator": "Marc. 10",
        "content_hash": "8b98c8561ff46afaf8dde7ab83ed0fd04a6a6fc54546860207e65e9b51dae8db",
        "word_count": 428,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A2008.01.0050",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:plutarch-marcellus-marc-9",
      "kind": "source_passage",
      "label": "Plutarch, Marc. 9",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greek-roman-biography",
        "Marc. 9"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "plutarch-marcellus",
        "locator": "Marc. 9",
        "content_hash": "494c6f51c181c46f6c826788372f6dda79032de4aa1a3660ed4d6451fb481060",
        "word_count": 305,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A2008.01.0050",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:polybius-histories-3-3-107",
      "kind": "source_passage",
      "label": "Polybius, 3.107",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greek-historiography",
        "3.107"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "polybius-histories-3",
        "locator": "3.107",
        "content_hash": "d70dedb29805b2f867006186189cce166cc22da02c3a87a54d97070ce7be0462",
        "word_count": 459,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0234%3Abook%3D3",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:polybius-histories-3-3-110",
      "kind": "source_passage",
      "label": "Polybius, 3.110",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greek-historiography",
        "3.110"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "polybius-histories-3",
        "locator": "3.110",
        "content_hash": "fe83fde346133423ce8ae407fe952295834a5286aed0fa2f34946a50c227a4f5",
        "word_count": 467,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0234%3Abook%3D3",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:polybius-histories-3-3-114",
      "kind": "source_passage",
      "label": "Polybius, 3.114",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greek-historiography",
        "3.114"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "polybius-histories-3",
        "locator": "3.114",
        "content_hash": "17562005bdae6d376b1d3dcd224788ffe4738db5179d612c36aac9e8c93619ce",
        "word_count": 205,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0234%3Abook%3D3",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:polybius-histories-3-3-115",
      "kind": "source_passage",
      "label": "Polybius, 3.115",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greek-historiography",
        "3.115"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "polybius-histories-3",
        "locator": "3.115",
        "content_hash": "b618fcc7e4d554014c0038452b6a2128315d454f02ad80a00033bbf10b9e90be",
        "word_count": 489,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0234%3Abook%3D3",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:polybius-histories-3-3-116",
      "kind": "source_passage",
      "label": "Polybius, 3.116",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greek-historiography",
        "3.116"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "polybius-histories-3",
        "locator": "3.116",
        "content_hash": "5a9c5f0a29ce3769f943aab50bc8dc27fd7c594b0424672d85d51dd2042621b1",
        "word_count": 524,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0234%3Abook%3D3",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:polybius-histories-3-3-117",
      "kind": "source_passage",
      "label": "Polybius, 3.117",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greek-historiography",
        "3.117"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "polybius-histories-3",
        "locator": "3.117",
        "content_hash": "b2f305bbfae1b0d2be732270f0da30cdc5605c0aae1794cc8be059e3ba85fbb2",
        "word_count": 425,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0234%3Abook%3D3",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:polybius-histories-3-3-118",
      "kind": "source_passage",
      "label": "Polybius, 3.118",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greek-historiography",
        "3.118"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "polybius-histories-3",
        "locator": "3.118",
        "content_hash": "c8f45a8f47da3cd720b2d3ae6725563ae40dfb4f62b1a0396094ed34384a47e2",
        "word_count": 433,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0234%3Abook%3D3",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:schlieffen-cannae-csi-page-3",
      "kind": "source_passage",
      "label": "Alfred von Schlieffen; Richard M. Swain (preface), page 3",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "modern-operational-reception",
        "page 3"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "schlieffen-cannae-csi",
        "locator": "page 3",
        "content_hash": "58d025f329f5f11590f2f033d1871117cfb17e6f3c816aab5c17faed9f014ed2",
        "word_count": 326,
        "url": "https://www.armyupress.army.mil/Books/CSI-Press-Publications/Command/",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:schlieffen-cannae-csi-page-6",
      "kind": "source_passage",
      "label": "Alfred von Schlieffen; Richard M. Swain (preface), page 6",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "modern-operational-reception",
        "page 6"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "schlieffen-cannae-csi",
        "locator": "page 6",
        "content_hash": "1db98a34c95cb5a4f89ae1b7cd774f0e68194f5f02ddbd8970749129436eae7e",
        "word_count": 318,
        "url": "https://www.armyupress.army.mil/Books/CSI-Press-Publications/Command/",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-passage:strabo-geography-6-6-3-9",
      "kind": "source_passage",
      "label": "Strabo, 6.3.9",
      "summary": "Addressable source passage retained by digest and locator.",
      "tags": [
        "source-passage",
        "greek-geography",
        "6.3.9"
      ],
      "source_path": null,
      "attributes": {
        "domain": "parallax",
        "layer": "evidence",
        "source_id": "strabo-geography-6",
        "locator": "6.3.9",
        "content_hash": "853357030819c3015b6cfa6b52393a9ebfc0219d5de6115f2d4d02044e63b6ac",
        "word_count": 942,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0239%3Abook%3D6",
        "source_kind": "research_passage",
        "status": "neutral"
      }
    },
    {
      "id": "research-source:appian-hannibalic-war",
      "kind": "research_source",
      "label": "The Hannibalic War, Chapter IV",
      "summary": "Appian; greco-roman-historiography; ancient_account.",
      "tags": [
        "research-source",
        "greco-roman-historiography",
        "ancient_account"
      ],
      "source_path": null,
      "attributes": {
        "author": "Appian",
        "domain": "parallax",
        "year": 150,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0230%3Atext%3DHann.%3Achapter%3D4",
        "license": "CC BY-SA 3.0 US",
        "edition": "Horace White, trans., Macmillan, 1899; Perseus digital text",
        "passage_count": 8,
        "content_hash": "5e7b50b2afeba0f63f898fd85c1ff327529e9049e56d71a3f2f622f35a01e03c",
        "layer": "evidence",
        "source_kind": "research_source",
        "status": "neutral"
      }
    },
    {
      "id": "research-source:livy-history-22",
      "kind": "research_source",
      "label": "History of Rome, Book 22",
      "summary": "Livy; roman-historiography; ancient_account.",
      "tags": [
        "research-source",
        "roman-historiography",
        "ancient_account"
      ],
      "source_path": null,
      "attributes": {
        "author": "Livy",
        "domain": "parallax",
        "year": -20,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D22",
        "license": "CC BY-SA 3.0 US",
        "edition": "Rev. Canon Roberts, trans., E. P. Dutton, 1912; Perseus digital text",
        "passage_count": 10,
        "content_hash": "a4ce32b68b068f7e96cdaf527f9f945b5bc4b470ee2b64326ce33cbe8abe6029",
        "layer": "evidence",
        "source_kind": "research_source",
        "status": "neutral"
      }
    },
    {
      "id": "research-source:livy-history-23",
      "kind": "research_source",
      "label": "History of Rome, Book 23",
      "summary": "Livy; roman-historiography; ancient_account.",
      "tags": [
        "research-source",
        "roman-historiography",
        "ancient_account"
      ],
      "source_path": null,
      "attributes": {
        "author": "Livy",
        "domain": "parallax",
        "year": -20,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.02.0144%3Abook%3D23",
        "license": "CC BY-SA 3.0 US",
        "edition": "Rev. Canon Roberts, trans., E. P. Dutton, 1912; Perseus digital text",
        "passage_count": 2,
        "content_hash": "41b2b8e6d3c5f8c6238257b5ae2ccc4ae677031692d68c1b4af733077ea38bec",
        "layer": "evidence",
        "source_kind": "research_source",
        "status": "neutral"
      }
    },
    {
      "id": "research-source:mahaney-2024-geomorphic",
      "kind": "research_source",
      "label": "Cannae Battlefield: A Geomorphic-Geoarchaeologic Perspective",
      "summary": "William C. Mahaney; modern-geoarchaeology; scholarly_article.",
      "tags": [
        "research-source",
        "modern-geoarchaeology",
        "scholarly_article"
      ],
      "source_path": null,
      "attributes": {
        "author": "William C. Mahaney",
        "domain": "parallax",
        "year": 2024,
        "url": "https://journals.pan.pl/Content/130738/PDF/04_Mahaney-1.pdf?handler=pdf",
        "license": "CC BY-NC-SA 4.0",
        "edition": "Studia Quaternaria 41(1), 37-42; DOI 10.24425/sq.2023.148037",
        "passage_count": 6,
        "content_hash": "2d465bce53a7557b9866caa7fc49f7efd6ab0e724ade7586e097817306170051",
        "layer": "evidence",
        "source_kind": "research_source",
        "status": "neutral"
      }
    },
    {
      "id": "research-source:plutarch-marcellus",
      "kind": "research_source",
      "label": "Life of Marcellus",
      "summary": "Plutarch; greek-roman-biography; ancient_biography.",
      "tags": [
        "research-source",
        "greek-roman-biography",
        "ancient_biography"
      ],
      "source_path": null,
      "attributes": {
        "author": "Plutarch",
        "domain": "parallax",
        "year": 100,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A2008.01.0050",
        "license": "CC BY-SA 3.0 US",
        "edition": "Bernadotte Perrin, trans., Harvard University Press, 1917; Perseus digital text",
        "passage_count": 2,
        "content_hash": "1e8878138d80bc7bc917f6ba2ba6f026032b234ad7e9e85f9649b3e4cdd4a489",
        "layer": "evidence",
        "source_kind": "research_source",
        "status": "neutral"
      }
    },
    {
      "id": "research-source:polybius-histories-3",
      "kind": "research_source",
      "label": "Histories, Book 3",
      "summary": "Polybius; greek-historiography; ancient_account.",
      "tags": [
        "research-source",
        "greek-historiography",
        "ancient_account"
      ],
      "source_path": null,
      "attributes": {
        "author": "Polybius",
        "domain": "parallax",
        "year": -150,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0234%3Abook%3D3",
        "license": "CC BY-SA 3.0 US",
        "edition": "Evelyn S. Shuckburgh, trans., Macmillan, 1889; Perseus digital text",
        "passage_count": 7,
        "content_hash": "91b78c4369cda7a4aa0484471c02270126204f80bae7f492fc590b551ba7ab70",
        "layer": "evidence",
        "source_kind": "research_source",
        "status": "neutral"
      }
    },
    {
      "id": "research-source:schlieffen-cannae-csi",
      "kind": "research_source",
      "label": "Cannae (Combat Studies Institute reprint)",
      "summary": "Alfred von Schlieffen; Richard M. Swain (preface); modern-operational-reception; military_theory.",
      "tags": [
        "research-source",
        "modern-operational-reception",
        "military_theory"
      ],
      "source_path": null,
      "attributes": {
        "author": "Alfred von Schlieffen; Richard M. Swain (preface)",
        "domain": "parallax",
        "year": 1931,
        "url": "https://www.armyupress.army.mil/Books/CSI-Press-Publications/Command/",
        "license": "Rights status unconfirmed; no public excerpts reproduced",
        "edition": "Command and General Staff School Press English translation, 1931; Combat Studies Institute reprint",
        "passage_count": 2,
        "content_hash": "776c0cce8948cf37dfefe4cbafe7ee5e5211d19fe61e4de7ea7870c128073c66",
        "layer": "evidence",
        "source_kind": "research_source",
        "status": "neutral"
      }
    },
    {
      "id": "research-source:strabo-geography-6",
      "kind": "research_source",
      "label": "Geography, Book 6",
      "summary": "Strabo; greek-geography; ancient_geography.",
      "tags": [
        "research-source",
        "greek-geography",
        "ancient_geography"
      ],
      "source_path": null,
      "attributes": {
        "author": "Strabo",
        "domain": "parallax",
        "year": 20,
        "url": "https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0239%3Abook%3D6",
        "license": "CC BY-SA 3.0 US",
        "edition": "H. C. Hamilton and W. Falconer, trans., George Bell & Sons, 1903; Perseus digital text",
        "passage_count": 1,
        "content_hash": "655885302e4a54a54ebca407941bf7d3a1f201eaa426966242aeacdb1de3b7d2",
        "layer": "evidence",
        "source_kind": "research_source",
        "status": "neutral"
      }
    },
    {
      "id": "source-validation:appian-hannibalic-war",
      "kind": "source_validation",
      "label": "Source validation: appian-hannibalic-war",
      "summary": "Appian wrote centuries after the battle. The packet uses him to expose later casualty reporting, tactical explanation, and moral framing rather than as independent confirmation of events.",
      "tags": [
        "source-validation",
        "later_historiographic_framing",
        "role_bounded"
      ],
      "source_path": null,
      "attributes": {
        "source_id": "appian-hannibalic-war",
        "evidence_role": "later_historiographic_framing",
        "authority": "ancient_account",
        "temporal_position": "second_century_ce_synthesis",
        "validation_state": "role_bounded",
        "limitation": "Appian wrote centuries after the battle. The packet uses him to expose later casualty reporting, tactical explanation, and moral framing rather than as independent confirmation of events.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "evidence",
        "source_kind": "source_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "source-validation:livy-history-22",
      "kind": "source_validation",
      "label": "Source validation: livy-history-22",
      "summary": "The packet can verify Livy's wording, but the edition introduction specifically questions his technical grasp of Cannae's topography; terrain claims remain source attributions.",
      "tags": [
        "source-validation",
        "event_narrative_and_roman_framing",
        "usable_with_topographic_limits"
      ],
      "source_path": null,
      "attributes": {
        "source_id": "livy-history-22",
        "evidence_role": "event_narrative_and_roman_framing",
        "authority": "ancient_account",
        "temporal_position": "later_roman_account",
        "validation_state": "usable_with_topographic_limits",
        "limitation": "The packet can verify Livy's wording, but the edition introduction specifically questions his technical grasp of Cannae's topography; terrain claims remain source attributions.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "evidence",
        "source_kind": "source_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "source-validation:livy-history-23",
      "kind": "source_validation",
      "label": "Source validation: livy-history-23",
      "summary": "This is Livy's Roman narrative of the consequences of Cannae; it records the story's political framing, not an independent census of Italian allegiance.",
      "tags": [
        "source-validation",
        "political_aftermath_and_defection",
        "usable_with_roman_framing"
      ],
      "source_path": null,
      "attributes": {
        "source_id": "livy-history-23",
        "evidence_role": "political_aftermath_and_defection",
        "authority": "ancient_account",
        "temporal_position": "continuation_of_livy_after_cannae",
        "validation_state": "usable_with_roman_framing",
        "limitation": "This is Livy's Roman narrative of the consequences of Cannae; it records the story's political framing, not an independent census of Italian allegiance.",
        "reviewed_on": "2026-07-19",
        "domain": "parallax",
        "layer": "evidence",
        "source_kind": "source_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "source-validation:mahaney-2024-geomorphic",
      "kind": "source_validation",
      "label": "Source validation: mahaney-2024-geomorphic",
      "summary": "The article is peer reviewed and DOI-bearing, but it describes a brief 2004 reconnaissance, reports no collected samples, calls the defile use hypothetical, and requests a future survey.",
      "tags": [
        "source-validation",
        "geoarchaeological_reconnaissance",
        "qualified_reconnaissance"
      ],
      "source_path": null,
      "attributes": {
        "source_id": "mahaney-2024-geomorphic",
        "evidence_role": "geoarchaeological_reconnaissance",
        "authority": "peer_reviewed_article",
        "temporal_position": "modern_field_reconnaissance",
        "validation_state": "qualified_reconnaissance",
        "limitation": "The article is peer reviewed and DOI-bearing, but it describes a brief 2004 reconnaissance, reports no collected samples, calls the defile use hypothetical, and requests a future survey.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "evidence",
        "source_kind": "source_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "source-validation:plutarch-marcellus",
      "kind": "source_validation",
      "label": "Source validation: plutarch-marcellus",
      "summary": "Plutarch wrote long after the battle and organizes Cannae around character, courage, and Roman recovery; the passages are memory and biography, not a contemporaneous battle report.",
      "tags": [
        "source-validation",
        "survivor_memory_and_biographical_framing",
        "role_bounded"
      ],
      "source_path": null,
      "attributes": {
        "source_id": "plutarch-marcellus",
        "evidence_role": "survivor_memory_and_biographical_framing",
        "authority": "ancient_biography",
        "temporal_position": "second_century_ce_biography",
        "validation_state": "role_bounded",
        "limitation": "Plutarch wrote long after the battle and organizes Cannae around character, courage, and Roman recovery; the passages are memory and biography, not a contemporaneous battle report.",
        "reviewed_on": "2026-07-19",
        "domain": "parallax",
        "layer": "evidence",
        "source_kind": "source_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "source-validation:polybius-histories-3",
      "kind": "source_validation",
      "label": "Source validation: polybius-histories-3",
      "summary": "The packet verifies what Polybius reports, not the historical accuracy of every number or tactical inference; no Carthaginian-authored account is present for comparison.",
      "tags": [
        "source-validation",
        "event_narrative",
        "usable_with_source_limits"
      ],
      "source_path": null,
      "attributes": {
        "source_id": "polybius-histories-3",
        "evidence_role": "event_narrative",
        "authority": "ancient_account",
        "temporal_position": "earliest_surviving_account_in_packet",
        "validation_state": "usable_with_source_limits",
        "limitation": "The packet verifies what Polybius reports, not the historical accuracy of every number or tactical inference; no Carthaginian-authored account is present for comparison.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "evidence",
        "source_kind": "source_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "source-validation:schlieffen-cannae-csi",
      "kind": "source_validation",
      "label": "Source validation: schlieffen-cannae-csi",
      "summary": "The selected pages support claims about Cannae's later use in military theory and the editor's warning about analogy; they are not evidence for what occurred in 216 BCE.",
      "tags": [
        "source-validation",
        "doctrinal_reception",
        "role_bounded"
      ],
      "source_path": null,
      "attributes": {
        "source_id": "schlieffen-cannae-csi",
        "evidence_role": "doctrinal_reception",
        "authority": "institutional_military_reprint",
        "temporal_position": "modern_reception_of_ancient_battle",
        "validation_state": "role_bounded",
        "limitation": "The selected pages support claims about Cannae's later use in military theory and the editor's warning about analogy; they are not evidence for what occurred in 216 BCE.",
        "reviewed_on": "2026-07-17",
        "domain": "parallax",
        "layer": "evidence",
        "source_kind": "source_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "source-validation:strabo-geography-6",
      "kind": "source_validation",
      "label": "Source validation: strabo-geography-6",
      "summary": "Strabo supports the regional setting and later geographic memory of Cannae; he does not independently reconstruct the battle's formations or casualty count.",
      "tags": [
        "source-validation",
        "geographic_memory",
        "role_bounded"
      ],
      "source_path": null,
      "attributes": {
        "source_id": "strabo-geography-6",
        "evidence_role": "geographic_memory",
        "authority": "ancient_geography",
        "temporal_position": "augustan_or_early_imperial_geography",
        "validation_state": "role_bounded",
        "limitation": "Strabo supports the regional setting and later geographic memory of Cannae; he does not independently reconstruct the battle's formations or casualty count.",
        "reviewed_on": "2026-07-19",
        "domain": "parallax",
        "layer": "evidence",
        "source_kind": "source_assessment",
        "status": "qualified"
      }
    },
    {
      "id": "story:alexander",
      "kind": "story",
      "label": "The World at 334 BCE",
      "summary": "Alexander and the edges of the known world",
      "tags": [
        "story",
        "alexander",
        "greek",
        "persian"
      ],
      "source_path": "web/content/alexander/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "period": {
          "from": -336,
          "to": -321
        },
        "perspectives": [
          "greek",
          "persian"
        ],
        "source_kind": "parallax_story_export",
        "status": "neutral"
      }
    },
    {
      "id": "story:andalus",
      "kind": "story",
      "label": "The Opening",
      "summary": "The conquest of al-Andalus and the first kingdoms of the north, 711–756 CE",
      "tags": [
        "story",
        "andalus",
        "umayyad",
        "visigothic",
        "asturian"
      ],
      "source_path": "web/content/andalus/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "period": {
          "from": 711,
          "to": 756
        },
        "perspectives": [
          "umayyad",
          "visigothic",
          "asturian"
        ],
        "source_kind": "parallax_story_export",
        "status": "neutral"
      }
    },
    {
      "id": "story:caesar",
      "kind": "story",
      "label": "The Last Generation",
      "summary": "Caesar and the fall of the Roman Republic, 58–44 BCE",
      "tags": [
        "story",
        "caesar",
        "populares",
        "optimates",
        "gallic"
      ],
      "source_path": "web/content/caesar/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "period": {
          "from": -58,
          "to": -44
        },
        "perspectives": [
          "populares",
          "optimates",
          "gallic"
        ],
        "source_kind": "parallax_story_export",
        "status": "neutral"
      }
    },
    {
      "id": "story:charlemagne",
      "kind": "story",
      "label": "The Frankish Crown",
      "summary": "Charlemagne and the making of medieval Europe, 768–814 CE",
      "tags": [
        "story",
        "charlemagne",
        "frankish",
        "saxon",
        "umayyad"
      ],
      "source_path": "web/content/charlemagne/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "period": {
          "from": 768,
          "to": 814
        },
        "perspectives": [
          "frankish",
          "saxon",
          "umayyad"
        ],
        "source_kind": "parallax_story_export",
        "status": "neutral"
      }
    },
    {
      "id": "story:crusades",
      "kind": "story",
      "label": "The Road to Jerusalem",
      "summary": "The First Crusade and the siege of the Holy City, 1095–1099 CE",
      "tags": [
        "story",
        "crusades",
        "crusader",
        "byzantine",
        "fatimid"
      ],
      "source_path": "web/content/crusades/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "period": {
          "from": 1095,
          "to": 1099
        },
        "perspectives": [
          "crusader",
          "byzantine",
          "fatimid"
        ],
        "source_kind": "parallax_story_export",
        "status": "neutral"
      }
    },
    {
      "id": "story:hannibal",
      "kind": "story",
      "label": "The Long Way to Rome",
      "summary": "Hannibal and the war that remade the Mediterranean",
      "tags": [
        "story",
        "hannibal",
        "carthaginian",
        "roman",
        "numidian"
      ],
      "source_path": "web/content/hannibal/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "period": {
          "from": -218,
          "to": -202
        },
        "perspectives": [
          "carthaginian",
          "roman",
          "numidian"
        ],
        "source_kind": "parallax_story_export",
        "status": "neutral"
      }
    },
    {
      "id": "story:mongols",
      "kind": "story",
      "label": "The World at 1206",
      "summary": "How the steppe unmade the medieval world",
      "tags": [
        "story",
        "mongols",
        "mongol",
        "islamic",
        "jin"
      ],
      "source_path": "web/content/mongols/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "period": {
          "from": 1206,
          "to": 1260
        },
        "perspectives": [
          "mongol",
          "islamic",
          "jin"
        ],
        "source_kind": "parallax_story_export",
        "status": "neutral"
      }
    },
    {
      "id": "story:rome",
      "kind": "story",
      "label": "The Last Legions",
      "summary": "The fall of the Western Roman Empire, 376–476 CE",
      "tags": [
        "story",
        "rome",
        "western_roman",
        "visigoth",
        "hunnic"
      ],
      "source_path": "web/content/rome/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "period": {
          "from": 376,
          "to": 476
        },
        "perspectives": [
          "western_roman",
          "visigoth",
          "hunnic"
        ],
        "source_kind": "parallax_story_export",
        "status": "neutral"
      }
    },
    {
      "id": "story:timurids",
      "kind": "story",
      "label": "The Sword of Samarkand",
      "summary": "Timur's conquests and the last Mongol world-empire, 1370–1405 CE",
      "tags": [
        "story",
        "timurids",
        "timurid",
        "ottoman",
        "mamluk"
      ],
      "source_path": "web/content/timurids/story.json",
      "attributes": {
        "domain": "parallax",
        "layer": "world",
        "period": {
          "from": 1370,
          "to": 1405
        },
        "perspectives": [
          "timurid",
          "ottoman",
          "mamluk"
        ],
        "source_kind": "parallax_story_export",
        "status": "neutral"
      }
    }
  ],
  "edges": [
    {
      "source": "story:alexander",
      "predicate": "told_from",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:alexander:greek",
      "predicate": "represents",
      "target": "collective:greek-world",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "told_from",
      "target": "perspective:alexander:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:alexander:persian",
      "predicate": "represents",
      "target": "collective:persia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-cunaxa",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-cunaxa",
      "predicate": "located_in",
      "target": "region:persia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-kings-peace-antalcidas",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-kings-peace-antalcidas",
      "predicate": "located_in",
      "target": "region:greece",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-leuctra",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-leuctra",
      "predicate": "located_in",
      "target": "region:greece",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-philip-ii-becomes-king",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-philip-ii-becomes-king",
      "predicate": "located_in",
      "target": "region:macedon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-shang-yang-reforms-qin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-shang-yang-reforms-qin",
      "predicate": "located_in",
      "target": "region:china",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-artaxerxes-reconquers-egypt",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-artaxerxes-reconquers-egypt",
      "predicate": "located_in",
      "target": "region:persia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-maling",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-maling",
      "predicate": "located_in",
      "target": "region:china",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-crimissus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-crimissus",
      "predicate": "located_in",
      "target": "region:sicily",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-chaeronea",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-chaeronea",
      "predicate": "located_in",
      "target": "region:greece",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-lamian-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-lamian-war",
      "predicate": "located_in",
      "target": "region:greece",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-chandragupta-founds-maurya",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-chandragupta-founds-maurya",
      "predicate": "located_in",
      "target": "region:india",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-caudine-forks",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-caudine-forks",
      "predicate": "located_in",
      "target": "region:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-seleucid-era-begins",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-seleucid-era-begins",
      "predicate": "located_in",
      "target": "region:near-east",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-ptolemy-declares-pharaoh",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-ptolemy-declares-pharaoh",
      "predicate": "located_in",
      "target": "region:egypt",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-chandragupta-seleucus-treaty",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-chandragupta-seleucus-treaty",
      "predicate": "located_in",
      "target": "region:india",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-ipsus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-ipsus",
      "predicate": "located_in",
      "target": "region:hellenistic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-heraclea",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-heraclea",
      "predicate": "located_in",
      "target": "region:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-galatian-invasion-delphi",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-galatian-invasion-delphi",
      "predicate": "located_in",
      "target": "region:greece",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-first-punic-war-begins",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-first-punic-war-begins",
      "predicate": "located_in",
      "target": "region:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-ashoka-kalinga-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-ashoka-kalinga-war",
      "predicate": "located_in",
      "target": "region:india",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-changping",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-changping",
      "predicate": "located_in",
      "target": "region:china",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-first-punic-war-ends",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-first-punic-war-ends",
      "predicate": "located_in",
      "target": "region:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-qin-unification",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-qin-unification",
      "predicate": "located_in",
      "target": "region:china",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-hannibal-crosses-alps",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-hannibal-crosses-alps",
      "predicate": "located_in",
      "target": "region:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-cannae",
      "predicate": "located_in",
      "target": "region:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-zama",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-zama",
      "predicate": "located_in",
      "target": "region:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-battle-of-magnesia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-magnesia",
      "predicate": "located_in",
      "target": "region:hellenistic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-maccabean-revolt-begins",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-maccabean-revolt-begins",
      "predicate": "located_in",
      "target": "region:near-east",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-roman-destruction-of-carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-roman-destruction-of-carthage",
      "predicate": "located_in",
      "target": "region:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-sack-of-corinth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-sack-of-corinth",
      "predicate": "located_in",
      "target": "region:greece",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "spans",
      "target": "event:alexander:event-gracchi-tiberius",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-gracchi-tiberius",
      "predicate": "located_in",
      "target": "region:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains",
      "target": "chapter:alexander:inheritance",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:inheritance",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:inheritance",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:inheritance:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:inheritance:greek",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:inheritance",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:inheritance:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:inheritance:persian",
      "predicate": "framed_by",
      "target": "perspective:alexander:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:inheritance",
      "predicate": "references_place",
      "target": "place:pella",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:inheritance",
      "predicate": "references_place",
      "target": "place:athens",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains",
      "target": "chapter:alexander:crossing",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:crossing",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:crossing",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:crossing:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:crossing:greek",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:crossing",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:crossing:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:crossing:persian",
      "predicate": "framed_by",
      "target": "perspective:alexander:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:crossing",
      "predicate": "references_place",
      "target": "place:troy",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains",
      "target": "chapter:alexander:granicus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:granicus",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:granicus",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:granicus:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:granicus:greek",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:granicus",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:granicus:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:granicus:persian",
      "predicate": "framed_by",
      "target": "perspective:alexander:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:granicus",
      "predicate": "references_place",
      "target": "place:granicus-river",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:granicus",
      "predicate": "references_place",
      "target": "place:sardis",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains",
      "target": "chapter:alexander:issus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:issus",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:issus",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:issus:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:issus:greek",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:issus",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:issus:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:issus:persian",
      "predicate": "framed_by",
      "target": "perspective:alexander:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:issus",
      "predicate": "references_place",
      "target": "place:issus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains",
      "target": "chapter:alexander:egypt",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:egypt",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:egypt",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:egypt:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:egypt:greek",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:egypt",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:egypt:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:egypt:persian",
      "predicate": "framed_by",
      "target": "perspective:alexander:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:egypt",
      "predicate": "references_place",
      "target": "place:alexandria",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains",
      "target": "chapter:alexander:gaugamela",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:gaugamela",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:gaugamela",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:gaugamela:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:gaugamela:greek",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:gaugamela",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:gaugamela:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:gaugamela:persian",
      "predicate": "framed_by",
      "target": "perspective:alexander:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:gaugamela",
      "predicate": "references_place",
      "target": "place:gaugamela",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:gaugamela",
      "predicate": "references_place",
      "target": "place:babylon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:gaugamela",
      "predicate": "references_place",
      "target": "place:hecatompylos",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains",
      "target": "chapter:alexander:persepolis",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:persepolis",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:persepolis",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:persepolis:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:persepolis:greek",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:persepolis",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:persepolis:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:persepolis:persian",
      "predicate": "framed_by",
      "target": "perspective:alexander:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:persepolis",
      "predicate": "references_place",
      "target": "place:persepolis",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:persepolis",
      "predicate": "references_place",
      "target": "place:susa",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains",
      "target": "chapter:alexander:india",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:india",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:india",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:india:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:india:greek",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:india",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:india:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:india:persian",
      "predicate": "framed_by",
      "target": "perspective:alexander:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:india",
      "predicate": "references_place",
      "target": "place:hydaspes-river",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:india",
      "predicate": "references_place",
      "target": "place:taxila",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains",
      "target": "chapter:alexander:death",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:death",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:death",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:death:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:death:greek",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:death",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:death:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:death:persian",
      "predicate": "framed_by",
      "target": "perspective:alexander:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:death",
      "predicate": "references_place",
      "target": "place:babylon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains",
      "target": "chapter:alexander:wider-world",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:wider-world",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:wider-world",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:wider-world:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:wider-world:greek",
      "predicate": "framed_by",
      "target": "perspective:alexander:greek",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:alexander:wider-world",
      "predicate": "has_variant",
      "target": "chapter-variant:alexander:wider-world:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:alexander:wider-world:persian",
      "predicate": "framed_by",
      "target": "perspective:alexander:persian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-kings-peace-antalcidas",
      "predicate": "located_at",
      "target": "place:sardis",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-philip-ii-becomes-king",
      "predicate": "located_at",
      "target": "place:pella",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-seleucid-era-begins",
      "predicate": "located_at",
      "target": "place:babylon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-ptolemy-declares-pharaoh",
      "predicate": "located_at",
      "target": "place:alexandria",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-chandragupta-seleucus-treaty",
      "predicate": "located_at",
      "target": "place:taxila",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "told_from",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:andalus:umayyad",
      "predicate": "represents",
      "target": "collective:umayyads",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "told_from",
      "target": "perspective:andalus:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:andalus:visigothic",
      "predicate": "represents",
      "target": "collective:visigoths",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "told_from",
      "target": "perspective:andalus:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:andalus:asturian",
      "predicate": "represents",
      "target": "collective:asturias",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "spans",
      "target": "event:andalus:event-tariq-crossing-711",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-tariq-crossing-711",
      "predicate": "located_in",
      "target": "region:strait_of_gibraltar",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "spans",
      "target": "event:andalus:event-battle-guadalete-711",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-battle-guadalete-711",
      "predicate": "located_in",
      "target": "region:andalusia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "spans",
      "target": "event:andalus:event-fall-toledo-712",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-fall-toledo-712",
      "predicate": "located_in",
      "target": "region:iberia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "spans",
      "target": "event:andalus:event-covadonga-718",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-covadonga-718",
      "predicate": "located_in",
      "target": "region:asturias",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "spans",
      "target": "event:andalus:event-battle-tours-732",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-battle-tours-732",
      "predicate": "located_in",
      "target": "region:gaul",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "spans",
      "target": "event:andalus:event-berber-revolt-740",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-berber-revolt-740",
      "predicate": "located_in",
      "target": "region:iberia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "spans",
      "target": "event:andalus:event-abd-ar-rahman-emirate-756",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-abd-ar-rahman-emirate-756",
      "predicate": "located_in",
      "target": "region:iberia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains",
      "target": "chapter:andalus:crossing",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:crossing",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:crossing",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:crossing:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:crossing:umayyad",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:crossing",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:crossing:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:crossing:visigothic",
      "predicate": "framed_by",
      "target": "perspective:andalus:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:crossing",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:crossing:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:crossing:asturian",
      "predicate": "framed_by",
      "target": "perspective:andalus:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:crossing",
      "predicate": "depicts",
      "target": "event:andalus:event-tariq-crossing-711",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:crossing",
      "predicate": "references_place",
      "target": "place:jabal-tariq",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:crossing",
      "predicate": "references_place",
      "target": "place:ceuta",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains",
      "target": "chapter:andalus:guadalete",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:guadalete",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:guadalete",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:guadalete:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:guadalete:umayyad",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:guadalete",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:guadalete:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:guadalete:visigothic",
      "predicate": "framed_by",
      "target": "perspective:andalus:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:guadalete",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:guadalete:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:guadalete:asturian",
      "predicate": "framed_by",
      "target": "perspective:andalus:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:guadalete",
      "predicate": "depicts",
      "target": "event:andalus:event-battle-guadalete-711",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:guadalete",
      "predicate": "references_place",
      "target": "place:guadalete-rio-barbate",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains",
      "target": "chapter:andalus:year-of-conquest",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:year-of-conquest",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:year-of-conquest",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:year-of-conquest:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:year-of-conquest:umayyad",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:year-of-conquest",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:year-of-conquest:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:year-of-conquest:visigothic",
      "predicate": "framed_by",
      "target": "perspective:andalus:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:year-of-conquest",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:year-of-conquest:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:year-of-conquest:asturian",
      "predicate": "framed_by",
      "target": "perspective:andalus:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:year-of-conquest",
      "predicate": "depicts",
      "target": "event:andalus:event-fall-toledo-712",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:year-of-conquest",
      "predicate": "references_place",
      "target": "place:toledo",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:year-of-conquest",
      "predicate": "references_place",
      "target": "place:sevilla",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:year-of-conquest",
      "predicate": "references_place",
      "target": "place:saragossa",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains",
      "target": "chapter:andalus:covadonga",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:covadonga",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:covadonga",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:covadonga:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:covadonga:umayyad",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:covadonga",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:covadonga:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:covadonga:visigothic",
      "predicate": "framed_by",
      "target": "perspective:andalus:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:covadonga",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:covadonga:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:covadonga:asturian",
      "predicate": "framed_by",
      "target": "perspective:andalus:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:covadonga",
      "predicate": "depicts",
      "target": "event:andalus:event-covadonga-718",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:covadonga",
      "predicate": "references_place",
      "target": "place:covadonga",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains",
      "target": "chapter:andalus:march-into-gaul",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:march-into-gaul",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:march-into-gaul",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:march-into-gaul:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:march-into-gaul:umayyad",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:march-into-gaul",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:march-into-gaul:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:march-into-gaul:visigothic",
      "predicate": "framed_by",
      "target": "perspective:andalus:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:march-into-gaul",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:march-into-gaul:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:march-into-gaul:asturian",
      "predicate": "framed_by",
      "target": "perspective:andalus:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:march-into-gaul",
      "predicate": "references_place",
      "target": "place:narbonne",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:march-into-gaul",
      "predicate": "references_place",
      "target": "place:toulouse",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains",
      "target": "chapter:andalus:tours",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:tours",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:tours",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:tours:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:tours:umayyad",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:tours",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:tours:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:tours:visigothic",
      "predicate": "framed_by",
      "target": "perspective:andalus:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:tours",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:tours:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:tours:asturian",
      "predicate": "framed_by",
      "target": "perspective:andalus:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:tours",
      "predicate": "depicts",
      "target": "event:andalus:event-battle-tours-732",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:tours",
      "predicate": "references_place",
      "target": "place:battle-site",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:tours",
      "predicate": "references_place",
      "target": "place:tours",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains",
      "target": "chapter:andalus:berber-revolt",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:berber-revolt",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:berber-revolt",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:berber-revolt:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:berber-revolt:umayyad",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:berber-revolt",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:berber-revolt:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:berber-revolt:visigothic",
      "predicate": "framed_by",
      "target": "perspective:andalus:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:berber-revolt",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:berber-revolt:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:berber-revolt:asturian",
      "predicate": "framed_by",
      "target": "perspective:andalus:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:berber-revolt",
      "predicate": "depicts",
      "target": "event:andalus:event-berber-revolt-740",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:berber-revolt",
      "predicate": "references_place",
      "target": "place:cordoba",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains",
      "target": "chapter:andalus:the-refugee",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:the-refugee",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:the-refugee",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:the-refugee:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:the-refugee:umayyad",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:the-refugee",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:the-refugee:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:the-refugee:visigothic",
      "predicate": "framed_by",
      "target": "perspective:andalus:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:the-refugee",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:the-refugee:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:the-refugee:asturian",
      "predicate": "framed_by",
      "target": "perspective:andalus:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:the-refugee",
      "predicate": "depicts",
      "target": "event:andalus:event-abd-ar-rahman-emirate-756",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:the-refugee",
      "predicate": "references_place",
      "target": "place:cordoba",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:the-refugee",
      "predicate": "references_place",
      "target": "place:battle-of-the-musara",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains",
      "target": "chapter:andalus:two-spains",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:two-spains",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:two-spains",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:two-spains:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:two-spains:umayyad",
      "predicate": "framed_by",
      "target": "perspective:andalus:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:two-spains",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:two-spains:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:two-spains:visigothic",
      "predicate": "framed_by",
      "target": "perspective:andalus:visigothic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:andalus:two-spains",
      "predicate": "has_variant",
      "target": "chapter-variant:andalus:two-spains:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:andalus:two-spains:asturian",
      "predicate": "framed_by",
      "target": "perspective:andalus:asturian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-tariq-crossing-711",
      "predicate": "located_at",
      "target": "place:jabal-tariq",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-battle-guadalete-711",
      "predicate": "located_at",
      "target": "place:guadalete-rio-barbate",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-fall-toledo-712",
      "predicate": "located_at",
      "target": "place:toledo",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-covadonga-718",
      "predicate": "located_at",
      "target": "place:covadonga",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-battle-tours-732",
      "predicate": "located_at",
      "target": "place:battle-site",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-battle-tours-732",
      "predicate": "located_at",
      "target": "place:tours",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-abd-ar-rahman-emirate-756",
      "predicate": "located_at",
      "target": "place:cordoba",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "told_from",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:caesar:populares",
      "predicate": "represents",
      "target": "collective:roman-populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "told_from",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:caesar:optimates",
      "predicate": "represents",
      "target": "collective:roman-optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "told_from",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:caesar:gallic",
      "predicate": "represents",
      "target": "collective:gauls",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-siege-of-alesia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-siege-of-alesia",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-rubicon-crossing",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-rubicon-crossing",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-pompey-evacuates-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-pompey-evacuates-rome",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-caesar-enters-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesar-enters-rome",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-battle-pharsalus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-battle-pharsalus",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-pompey-murdered-egypt",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-pompey-murdered-egypt",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-caesar-meets-cleopatra",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesar-meets-cleopatra",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-battle-thapsus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-battle-thapsus",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-caesars-four-triumphs",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesars-four-triumphs",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-dictator-perpetuo",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-dictator-perpetuo",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-lupercalia-crown",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-lupercalia-crown",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-ides-of-march",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-ides-of-march",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "spans",
      "target": "event:caesar:event-battle-philippi",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-battle-philippi",
      "predicate": "located_in",
      "target": "region:western-mediterranean",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:helvetii",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:helvetii",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:helvetii:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:helvetii:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:helvetii",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:helvetii:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:helvetii:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:helvetii",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:helvetii:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:helvetii:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:helvetii",
      "predicate": "references_place",
      "target": "place:helvetii",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:helvetii",
      "predicate": "references_place",
      "target": "place:genava",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:width-of-gaul",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:width-of-gaul",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:width-of-gaul:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:width-of-gaul:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:width-of-gaul",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:width-of-gaul:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:width-of-gaul:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:width-of-gaul",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:width-of-gaul:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:width-of-gaul:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:width-of-gaul",
      "predicate": "references_place",
      "target": "place:belgae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:width-of-gaul",
      "predicate": "references_place",
      "target": "place:armorica",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:width-of-gaul",
      "predicate": "references_place",
      "target": "place:rhine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:alesia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:alesia",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:alesia:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:alesia:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:alesia",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:alesia:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:alesia:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:alesia",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:alesia:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:alesia:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:alesia",
      "predicate": "depicts",
      "target": "event:caesar:event-siege-of-alesia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:alesia",
      "predicate": "references_place",
      "target": "place:alesia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:rubicon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:rubicon",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:rubicon:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:rubicon:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:rubicon",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:rubicon:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:rubicon:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:rubicon",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:rubicon:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:rubicon:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:rubicon",
      "predicate": "depicts",
      "target": "event:caesar:event-rubicon-crossing",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:rubicon",
      "predicate": "references_place",
      "target": "place:rubicon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:rubicon",
      "predicate": "references_place",
      "target": "place:ariminum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:flight",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:flight",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:flight:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:flight:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:flight",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:flight:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:flight:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:flight",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:flight:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:flight:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:flight",
      "predicate": "depicts",
      "target": "event:caesar:event-pompey-evacuates-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:flight",
      "predicate": "references_place",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:flight",
      "predicate": "references_place",
      "target": "place:brundisium",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:open-city",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:open-city",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:open-city:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:open-city:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:open-city",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:open-city:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:open-city:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:open-city",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:open-city:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:open-city:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:open-city",
      "predicate": "depicts",
      "target": "event:caesar:event-caesar-enters-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:open-city",
      "predicate": "references_place",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:pharsalus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:pharsalus",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:pharsalus:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:pharsalus:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:pharsalus",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:pharsalus:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:pharsalus:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:pharsalus",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:pharsalus:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:pharsalus:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:pharsalus",
      "predicate": "depicts",
      "target": "event:caesar:event-battle-pharsalus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:pharsalus",
      "predicate": "references_place",
      "target": "place:pharsalos",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:pharsalus",
      "predicate": "references_place",
      "target": "place:larissa",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:egyptian-shore",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:egyptian-shore",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:egyptian-shore:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:egyptian-shore:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:egyptian-shore",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:egyptian-shore:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:egyptian-shore:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:egyptian-shore",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:egyptian-shore:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:egyptian-shore:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:egyptian-shore",
      "predicate": "depicts",
      "target": "event:caesar:event-pompey-murdered-egypt",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:egyptian-shore",
      "predicate": "references_place",
      "target": "place:pelusium",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:alexandria",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:alexandria",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:alexandria:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:alexandria:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:alexandria",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:alexandria:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:alexandria:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:alexandria",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:alexandria:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:alexandria:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:alexandria",
      "predicate": "depicts",
      "target": "event:caesar:event-caesar-meets-cleopatra",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:alexandria",
      "predicate": "references_place",
      "target": "place:alexandria",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:four-triumphs",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:four-triumphs",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:four-triumphs:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:four-triumphs:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:four-triumphs",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:four-triumphs:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:four-triumphs:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:four-triumphs",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:four-triumphs:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:four-triumphs:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:four-triumphs",
      "predicate": "depicts",
      "target": "event:caesar:event-caesars-four-triumphs",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:four-triumphs",
      "predicate": "references_place",
      "target": "place:capitoline",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:without-end",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:without-end",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:without-end:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:without-end:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:without-end",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:without-end:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:without-end:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:without-end",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:without-end:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:without-end:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:without-end",
      "predicate": "depicts",
      "target": "event:caesar:event-dictator-perpetuo",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:without-end",
      "predicate": "references_place",
      "target": "place:senate",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:lupercalia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:lupercalia",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:lupercalia:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:lupercalia:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:lupercalia",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:lupercalia:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:lupercalia:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:lupercalia",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:lupercalia:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:lupercalia:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:lupercalia",
      "predicate": "depicts",
      "target": "event:caesar:event-lupercalia-crown",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:lupercalia",
      "predicate": "references_place",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains",
      "target": "chapter:caesar:ides",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:ides",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:ides:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:ides:populares",
      "predicate": "framed_by",
      "target": "perspective:caesar:populares",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:ides",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:ides:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:ides:optimates",
      "predicate": "framed_by",
      "target": "perspective:caesar:optimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:ides",
      "predicate": "has_variant",
      "target": "chapter-variant:caesar:ides:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:caesar:ides:gallic",
      "predicate": "framed_by",
      "target": "perspective:caesar:gallic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:ides",
      "predicate": "depicts",
      "target": "event:caesar:event-ides-of-march",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:caesar:ides",
      "predicate": "references_place",
      "target": "place:curia-of-pompey",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-siege-of-alesia",
      "predicate": "located_at",
      "target": "place:alesia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-rubicon-crossing",
      "predicate": "located_at",
      "target": "place:rubicon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-pompey-evacuates-rome",
      "predicate": "located_at",
      "target": "place:capitoline",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-pompey-evacuates-rome",
      "predicate": "located_at",
      "target": "place:curia-of-pompey",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-pompey-evacuates-rome",
      "predicate": "located_at",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-pompey-evacuates-rome",
      "predicate": "located_at",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-pompey-evacuates-rome",
      "predicate": "located_at",
      "target": "place:senate",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesar-enters-rome",
      "predicate": "located_at",
      "target": "place:capitoline",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesar-enters-rome",
      "predicate": "located_at",
      "target": "place:curia-of-pompey",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesar-enters-rome",
      "predicate": "located_at",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesar-enters-rome",
      "predicate": "located_at",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesar-enters-rome",
      "predicate": "located_at",
      "target": "place:senate",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-battle-pharsalus",
      "predicate": "located_at",
      "target": "place:pharsalos",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesar-meets-cleopatra",
      "predicate": "located_at",
      "target": "place:alexandria",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesars-four-triumphs",
      "predicate": "located_at",
      "target": "place:capitoline",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesars-four-triumphs",
      "predicate": "located_at",
      "target": "place:curia-of-pompey",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesars-four-triumphs",
      "predicate": "located_at",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesars-four-triumphs",
      "predicate": "located_at",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesars-four-triumphs",
      "predicate": "located_at",
      "target": "place:senate",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-dictator-perpetuo",
      "predicate": "located_at",
      "target": "place:capitoline",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-dictator-perpetuo",
      "predicate": "located_at",
      "target": "place:curia-of-pompey",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-dictator-perpetuo",
      "predicate": "located_at",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-dictator-perpetuo",
      "predicate": "located_at",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-dictator-perpetuo",
      "predicate": "located_at",
      "target": "place:senate",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-lupercalia-crown",
      "predicate": "located_at",
      "target": "place:capitoline",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-lupercalia-crown",
      "predicate": "located_at",
      "target": "place:curia-of-pompey",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-lupercalia-crown",
      "predicate": "located_at",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-lupercalia-crown",
      "predicate": "located_at",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-lupercalia-crown",
      "predicate": "located_at",
      "target": "place:senate",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-ides-of-march",
      "predicate": "located_at",
      "target": "place:capitoline",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-ides-of-march",
      "predicate": "located_at",
      "target": "place:curia-of-pompey",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-ides-of-march",
      "predicate": "located_at",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-ides-of-march",
      "predicate": "located_at",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-ides-of-march",
      "predicate": "located_at",
      "target": "place:senate",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "told_from",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:charlemagne:frankish",
      "predicate": "represents",
      "target": "collective:franks",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "told_from",
      "target": "perspective:charlemagne:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:charlemagne:saxon",
      "predicate": "represents",
      "target": "collective:saxons",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "told_from",
      "target": "perspective:charlemagne:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:charlemagne:umayyad",
      "predicate": "represents",
      "target": "collective:umayyads",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "spans",
      "target": "event:charlemagne:event-charlemagne-accession-768",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-charlemagne-accession-768",
      "predicate": "located_in",
      "target": "region:frankia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "spans",
      "target": "event:charlemagne:event-roncevaux-778",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-roncevaux-778",
      "predicate": "located_in",
      "target": "region:pyrenees",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "spans",
      "target": "event:charlemagne:event-verden-massacre-782",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-verden-massacre-782",
      "predicate": "located_in",
      "target": "region:saxony",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "spans",
      "target": "event:charlemagne:event-aachen-capital-794",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-aachen-capital-794",
      "predicate": "located_in",
      "target": "region:frankia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "spans",
      "target": "event:charlemagne:event-christmas-coronation-800",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-christmas-coronation-800",
      "predicate": "located_in",
      "target": "region:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "spans",
      "target": "event:charlemagne:event-death-charlemagne-814",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-death-charlemagne-814",
      "predicate": "located_in",
      "target": "region:frankia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "spans",
      "target": "event:charlemagne:event-council-frankfurt-794",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-council-frankfurt-794",
      "predicate": "located_in",
      "target": "region:frankia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "contains",
      "target": "chapter:charlemagne:inheritance",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:inheritance",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:inheritance",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:inheritance:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:inheritance:frankish",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:inheritance",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:inheritance:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:inheritance:saxon",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:inheritance",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:inheritance:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:inheritance:umayyad",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:inheritance",
      "predicate": "depicts",
      "target": "event:charlemagne:event-charlemagne-accession-768",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:inheritance",
      "predicate": "references_place",
      "target": "place:aachen",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "contains",
      "target": "chapter:charlemagne:roncevaux",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:roncevaux",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:roncevaux",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:roncevaux:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:roncevaux:frankish",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:roncevaux",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:roncevaux:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:roncevaux:saxon",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:roncevaux",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:roncevaux:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:roncevaux:umayyad",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:roncevaux",
      "predicate": "depicts",
      "target": "event:charlemagne:event-roncevaux-778",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:roncevaux",
      "predicate": "references_place",
      "target": "place:roncesvaux-pass",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "contains",
      "target": "chapter:charlemagne:saxon-wars",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:saxon-wars",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:saxon-wars",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:saxon-wars:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:saxon-wars:frankish",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:saxon-wars",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:saxon-wars:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:saxon-wars:saxon",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:saxon-wars",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:saxon-wars:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:saxon-wars:umayyad",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:saxon-wars",
      "predicate": "references_place",
      "target": "place:paderborn",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "contains",
      "target": "chapter:charlemagne:verden",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:verden",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:verden",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:verden:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:verden:frankish",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:verden",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:verden:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:verden:saxon",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:verden",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:verden:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:verden:umayyad",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:verden",
      "predicate": "depicts",
      "target": "event:charlemagne:event-verden-massacre-782",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:verden",
      "predicate": "references_place",
      "target": "place:verden-an-der-aller",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "contains",
      "target": "chapter:charlemagne:aachen",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:aachen",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:aachen",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:aachen:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:aachen:frankish",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:aachen",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:aachen:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:aachen:saxon",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:aachen",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:aachen:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:aachen:umayyad",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:aachen",
      "predicate": "depicts",
      "target": "event:charlemagne:event-aachen-capital-794",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:aachen",
      "predicate": "references_place",
      "target": "place:aachen",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:aachen",
      "predicate": "references_place",
      "target": "place:frankfurt",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "contains",
      "target": "chapter:charlemagne:coronation",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:coronation",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:coronation",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:coronation:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:coronation:frankish",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:coronation",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:coronation:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:coronation:saxon",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:coronation",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:coronation:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:coronation:umayyad",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:coronation",
      "predicate": "depicts",
      "target": "event:charlemagne:event-christmas-coronation-800",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:coronation",
      "predicate": "references_place",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "contains",
      "target": "chapter:charlemagne:march-system",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:march-system",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:march-system",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:march-system:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:march-system:frankish",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:march-system",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:march-system:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:march-system:saxon",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:march-system",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:march-system:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:march-system:umayyad",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "contains",
      "target": "chapter:charlemagne:elephant",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:elephant",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:elephant",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:elephant:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:elephant:frankish",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:elephant",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:elephant:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:elephant:saxon",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:elephant",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:elephant:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:elephant:umayyad",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:elephant",
      "predicate": "references_place",
      "target": "place:aachen",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "contains",
      "target": "chapter:charlemagne:death-legacy",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:death-legacy",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:death-legacy",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:death-legacy:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:death-legacy:frankish",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:frankish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:death-legacy",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:death-legacy:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:death-legacy:saxon",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:saxon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:death-legacy",
      "predicate": "has_variant",
      "target": "chapter-variant:charlemagne:death-legacy:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:charlemagne:death-legacy:umayyad",
      "predicate": "framed_by",
      "target": "perspective:charlemagne:umayyad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:death-legacy",
      "predicate": "depicts",
      "target": "event:charlemagne:event-death-charlemagne-814",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:charlemagne:death-legacy",
      "predicate": "references_place",
      "target": "place:aachen",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-roncevaux-778",
      "predicate": "located_at",
      "target": "place:roncesvaux-pass",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-verden-massacre-782",
      "predicate": "located_at",
      "target": "place:verden-an-der-aller",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-aachen-capital-794",
      "predicate": "located_at",
      "target": "place:aachen",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-christmas-coronation-800",
      "predicate": "located_at",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-death-charlemagne-814",
      "predicate": "located_at",
      "target": "place:aachen",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-council-frankfurt-794",
      "predicate": "located_at",
      "target": "place:frankfurt",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "told_from",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:crusades:crusader",
      "predicate": "represents",
      "target": "collective:crusaders",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "told_from",
      "target": "perspective:crusades:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:crusades:byzantine",
      "predicate": "represents",
      "target": "collective:byzantium",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "told_from",
      "target": "perspective:crusades:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:crusades:fatimid",
      "predicate": "represents",
      "target": "collective:fatimids",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "spans",
      "target": "event:crusades:event-council-clermont-1095",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-council-clermont-1095",
      "predicate": "located_in",
      "target": "region:france",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "spans",
      "target": "event:crusades:event-crusaders-constantinople-1097",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-crusaders-constantinople-1097",
      "predicate": "located_in",
      "target": "region:byzantium",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "spans",
      "target": "event:crusades:event-battle-dorylaeum-1097",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-battle-dorylaeum-1097",
      "predicate": "located_in",
      "target": "region:anatolia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "spans",
      "target": "event:crusades:event-siege-antioch-1097",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-siege-antioch-1097",
      "predicate": "located_in",
      "target": "region:levant",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "spans",
      "target": "event:crusades:event-battle-antioch-1098",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-battle-antioch-1098",
      "predicate": "located_in",
      "target": "region:levant",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "spans",
      "target": "event:crusades:event-siege-jerusalem-1099",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-siege-jerusalem-1099",
      "predicate": "located_in",
      "target": "region:levant",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "spans",
      "target": "event:crusades:event-sack-jerusalem-1099",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-sack-jerusalem-1099",
      "predicate": "located_in",
      "target": "region:levant",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "contains",
      "target": "chapter:crusades:clermont",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:clermont",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:clermont",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:clermont:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:clermont:crusader",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:clermont",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:clermont:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:clermont:byzantine",
      "predicate": "framed_by",
      "target": "perspective:crusades:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:clermont",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:clermont:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:clermont:fatimid",
      "predicate": "framed_by",
      "target": "perspective:crusades:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:clermont",
      "predicate": "depicts",
      "target": "event:crusades:event-council-clermont-1095",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:clermont",
      "predicate": "references_place",
      "target": "place:clermont-ferrand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "contains",
      "target": "chapter:crusades:peoples-crusade",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:peoples-crusade",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:peoples-crusade",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:peoples-crusade:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:peoples-crusade:crusader",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:peoples-crusade",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:peoples-crusade:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:peoples-crusade:byzantine",
      "predicate": "framed_by",
      "target": "perspective:crusades:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:peoples-crusade",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:peoples-crusade:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:peoples-crusade:fatimid",
      "predicate": "framed_by",
      "target": "perspective:crusades:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:peoples-crusade",
      "predicate": "references_place",
      "target": "place:rhineland-massacres",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:peoples-crusade",
      "predicate": "references_place",
      "target": "place:civetot",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "contains",
      "target": "chapter:crusades:constantinople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:constantinople",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:constantinople",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:constantinople:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:constantinople:crusader",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:constantinople",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:constantinople:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:constantinople:byzantine",
      "predicate": "framed_by",
      "target": "perspective:crusades:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:constantinople",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:constantinople:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:constantinople:fatimid",
      "predicate": "framed_by",
      "target": "perspective:crusades:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:constantinople",
      "predicate": "depicts",
      "target": "event:crusades:event-crusaders-constantinople-1097",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:constantinople",
      "predicate": "references_place",
      "target": "place:constantinople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "contains",
      "target": "chapter:crusades:dorylaeum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:dorylaeum",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:dorylaeum",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:dorylaeum:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:dorylaeum:crusader",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:dorylaeum",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:dorylaeum:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:dorylaeum:byzantine",
      "predicate": "framed_by",
      "target": "perspective:crusades:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:dorylaeum",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:dorylaeum:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:dorylaeum:fatimid",
      "predicate": "framed_by",
      "target": "perspective:crusades:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:dorylaeum",
      "predicate": "depicts",
      "target": "event:crusades:event-battle-dorylaeum-1097",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:dorylaeum",
      "predicate": "references_place",
      "target": "place:dorylaeum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:dorylaeum",
      "predicate": "references_place",
      "target": "place:nicaea",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "contains",
      "target": "chapter:crusades:antioch-siege",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:antioch-siege",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:antioch-siege",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:antioch-siege:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:antioch-siege:crusader",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:antioch-siege",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:antioch-siege:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:antioch-siege:byzantine",
      "predicate": "framed_by",
      "target": "perspective:crusades:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:antioch-siege",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:antioch-siege:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:antioch-siege:fatimid",
      "predicate": "framed_by",
      "target": "perspective:crusades:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:antioch-siege",
      "predicate": "depicts",
      "target": "event:crusades:event-siege-antioch-1097",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:antioch-siege",
      "predicate": "references_place",
      "target": "place:antioch",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "contains",
      "target": "chapter:crusades:holy-lance",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:holy-lance",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:holy-lance",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:holy-lance:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:holy-lance:crusader",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:holy-lance",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:holy-lance:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:holy-lance:byzantine",
      "predicate": "framed_by",
      "target": "perspective:crusades:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:holy-lance",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:holy-lance:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:holy-lance:fatimid",
      "predicate": "framed_by",
      "target": "perspective:crusades:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:holy-lance",
      "predicate": "depicts",
      "target": "event:crusades:event-battle-antioch-1098",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:holy-lance",
      "predicate": "references_place",
      "target": "place:crusader-sortie-28-june-1098",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "contains",
      "target": "chapter:crusades:maarra",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:maarra",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:maarra",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:maarra:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:maarra:crusader",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:maarra",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:maarra:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:maarra:byzantine",
      "predicate": "framed_by",
      "target": "perspective:crusades:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:maarra",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:maarra:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:maarra:fatimid",
      "predicate": "framed_by",
      "target": "perspective:crusades:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:maarra",
      "predicate": "references_place",
      "target": "place:maarra-al-numan",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "contains",
      "target": "chapter:crusades:jerusalem-walls",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:jerusalem-walls",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:jerusalem-walls",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:jerusalem-walls:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:jerusalem-walls:crusader",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:jerusalem-walls",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:jerusalem-walls:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:jerusalem-walls:byzantine",
      "predicate": "framed_by",
      "target": "perspective:crusades:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:jerusalem-walls",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:jerusalem-walls:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:jerusalem-walls:fatimid",
      "predicate": "framed_by",
      "target": "perspective:crusades:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:jerusalem-walls",
      "predicate": "depicts",
      "target": "event:crusades:event-siege-jerusalem-1099",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:jerusalem-walls",
      "predicate": "references_place",
      "target": "place:jerusalem",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "contains",
      "target": "chapter:crusades:sack",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:sack",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:sack",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:sack:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:sack:crusader",
      "predicate": "framed_by",
      "target": "perspective:crusades:crusader",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:sack",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:sack:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:sack:byzantine",
      "predicate": "framed_by",
      "target": "perspective:crusades:byzantine",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:sack",
      "predicate": "has_variant",
      "target": "chapter-variant:crusades:sack:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:crusades:sack:fatimid",
      "predicate": "framed_by",
      "target": "perspective:crusades:fatimid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:sack",
      "predicate": "depicts",
      "target": "event:crusades:event-sack-jerusalem-1099",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:crusades:sack",
      "predicate": "references_place",
      "target": "place:church-of-the-holy-sepulchre",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-council-clermont-1095",
      "predicate": "located_at",
      "target": "place:clermont-ferrand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-crusaders-constantinople-1097",
      "predicate": "located_at",
      "target": "place:constantinople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-battle-dorylaeum-1097",
      "predicate": "located_at",
      "target": "place:dorylaeum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-siege-antioch-1097",
      "predicate": "located_at",
      "target": "place:antioch",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-battle-antioch-1098",
      "predicate": "located_at",
      "target": "place:antioch",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-siege-jerusalem-1099",
      "predicate": "located_at",
      "target": "place:church-of-the-holy-sepulchre",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-siege-jerusalem-1099",
      "predicate": "located_at",
      "target": "place:jerusalem",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-sack-jerusalem-1099",
      "predicate": "located_at",
      "target": "place:church-of-the-holy-sepulchre",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-sack-jerusalem-1099",
      "predicate": "located_at",
      "target": "place:jerusalem",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "told_from",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:hannibal:carthaginian",
      "predicate": "represents",
      "target": "collective:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "told_from",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:hannibal:roman",
      "predicate": "represents",
      "target": "collective:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "told_from",
      "target": "perspective:hannibal:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:hannibal:numidian",
      "predicate": "represents",
      "target": "collective:numidia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-hamilcar-barca-spain",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-hamilcar-barca-spain",
      "predicate": "located_in",
      "target": "region:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-ebro-treaty",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-ebro-treaty",
      "predicate": "located_in",
      "target": "region:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-siege-of-saguntum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-siege-of-saguntum",
      "predicate": "located_in",
      "target": "region:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-battle-of-raphia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-battle-of-raphia",
      "predicate": "located_in",
      "target": "region:egypt",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-philip-v-hannibal-alliance",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-philip-v-hannibal-alliance",
      "predicate": "located_in",
      "target": "region:macedon",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-fall-of-syracuse",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-fall-of-syracuse",
      "predicate": "located_in",
      "target": "region:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-scipio-takes-carthago-nova",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-scipio-takes-carthago-nova",
      "predicate": "located_in",
      "target": "region:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-hasdrubal-barca-metaurus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-hasdrubal-barca-metaurus",
      "predicate": "located_in",
      "target": "region:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-battle-of-ilipa",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-battle-of-ilipa",
      "predicate": "located_in",
      "target": "region:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-antiochus-iii-great-anabasis",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-antiochus-iii-great-anabasis",
      "predicate": "located_in",
      "target": "region:near-east",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-qin-dynasty-falls",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-qin-dynasty-falls",
      "predicate": "located_in",
      "target": "region:china",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:event-han-dynasty-founded",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-han-dynasty-founded",
      "predicate": "located_in",
      "target": "region:china",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "contains",
      "target": "chapter:hannibal:the-oath",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-oath",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-oath",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-oath:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-oath:carthaginian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-oath",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-oath:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-oath:roman",
      "predicate": "framed_by",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-oath",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-oath:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-oath:numidian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-oath",
      "predicate": "references_place",
      "target": "place:carthago-nova",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-oath",
      "predicate": "references_place",
      "target": "place:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-oath",
      "predicate": "references_place",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "contains",
      "target": "chapter:hannibal:the-river",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-river",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-river",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-river:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-river:carthaginian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-river",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-river:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-river:roman",
      "predicate": "framed_by",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-river",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-river:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-river:numidian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-river",
      "predicate": "references_place",
      "target": "place:massalia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-river",
      "predicate": "references_place",
      "target": "place:narbo",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "contains",
      "target": "chapter:hannibal:the-pass",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-pass",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-pass",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-pass:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-pass:carthaginian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-pass",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-pass:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-pass:roman",
      "predicate": "framed_by",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-pass",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-pass:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-pass:numidian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-pass",
      "predicate": "references_place",
      "target": "place:taurini",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "contains",
      "target": "chapter:hannibal:trebia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:trebia",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:trebia",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:trebia:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:trebia:carthaginian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:trebia",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:trebia:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:trebia:roman",
      "predicate": "framed_by",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:trebia",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:trebia:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:trebia:numidian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:trebia",
      "predicate": "references_place",
      "target": "place:trebia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:trebia",
      "predicate": "references_place",
      "target": "place:placentia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:trebia",
      "predicate": "references_place",
      "target": "place:cremona",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "contains",
      "target": "chapter:hannibal:the-fog",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-fog",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-fog",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-fog:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-fog:carthaginian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-fog",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-fog:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-fog:roman",
      "predicate": "framed_by",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-fog",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-fog:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-fog:numidian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-fog",
      "predicate": "references_place",
      "target": "place:trasimene",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-fog",
      "predicate": "references_place",
      "target": "place:arretium",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-fog",
      "predicate": "references_place",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "contains",
      "target": "chapter:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:cannae",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:cannae",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:cannae:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:cannae:carthaginian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:cannae",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:cannae:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:cannae:roman",
      "predicate": "framed_by",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:cannae",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:cannae:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:cannae:numidian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:cannae",
      "predicate": "references_place",
      "target": "place:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:cannae",
      "predicate": "references_place",
      "target": "place:capua",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "contains",
      "target": "chapter:hannibal:the-long-stay",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-long-stay",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-long-stay",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-long-stay:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-long-stay:carthaginian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-long-stay",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-long-stay:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-long-stay:roman",
      "predicate": "framed_by",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-long-stay",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:the-long-stay:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:the-long-stay:numidian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-long-stay",
      "predicate": "references_place",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-long-stay",
      "predicate": "references_place",
      "target": "place:capua",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-long-stay",
      "predicate": "references_place",
      "target": "place:tarentum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:the-long-stay",
      "predicate": "references_place",
      "target": "place:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "contains",
      "target": "chapter:hannibal:scipios-gambit",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:scipios-gambit",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:scipios-gambit",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:scipios-gambit:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:scipios-gambit:carthaginian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:scipios-gambit",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:scipios-gambit:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:scipios-gambit:roman",
      "predicate": "framed_by",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:scipios-gambit",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:scipios-gambit:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:scipios-gambit:numidian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:scipios-gambit",
      "predicate": "references_place",
      "target": "place:utica",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:scipios-gambit",
      "predicate": "references_place",
      "target": "place:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:scipios-gambit",
      "predicate": "references_place",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "contains",
      "target": "chapter:hannibal:zama",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:zama",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:zama",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:zama:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:zama:carthaginian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:zama",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:zama:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:zama:roman",
      "predicate": "framed_by",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:zama",
      "predicate": "has_variant",
      "target": "chapter-variant:hannibal:zama:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:hannibal:zama:numidian",
      "predicate": "framed_by",
      "target": "perspective:hannibal:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:zama",
      "predicate": "references_place",
      "target": "place:zama",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:zama",
      "predicate": "references_place",
      "target": "place:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:zama",
      "predicate": "references_place",
      "target": "place:hadrumetum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-ebro-treaty",
      "predicate": "located_at",
      "target": "place:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-ebro-treaty",
      "predicate": "located_at",
      "target": "place:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-scipio-takes-carthago-nova",
      "predicate": "located_at",
      "target": "place:carthago-nova",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-battle-of-ilipa",
      "predicate": "located_at",
      "target": "place:carthage",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "told_from",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:mongols:mongol",
      "predicate": "represents",
      "target": "collective:mongols",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "told_from",
      "target": "perspective:mongols:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:mongols:islamic",
      "predicate": "represents",
      "target": "collective:islamic-world",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "told_from",
      "target": "perspective:mongols:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:mongols:jin",
      "predicate": "represents",
      "target": "collective:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "spans",
      "target": "event:mongols:event-kurultai-1206",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-kurultai-1206",
      "predicate": "located_in",
      "target": "region:Central Asia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "spans",
      "target": "event:mongols:event-sack-zhongdu-1215",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-sack-zhongdu-1215",
      "predicate": "located_in",
      "target": "region:East Asia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "spans",
      "target": "event:mongols:event-destruction-samarkand-1220",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-destruction-samarkand-1220",
      "predicate": "located_in",
      "target": "region:Central Asia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "spans",
      "target": "event:mongols:event-battle-kalka-river-1223",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-battle-kalka-river-1223",
      "predicate": "located_in",
      "target": "region:Eastern Europe",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "spans",
      "target": "event:mongols:event-battle-legnica-1241",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-battle-legnica-1241",
      "predicate": "located_in",
      "target": "region:Europe",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "spans",
      "target": "event:mongols:event-sack-baghdad-1258",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-sack-baghdad-1258",
      "predicate": "located_in",
      "target": "region:Middle East",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "spans",
      "target": "event:mongols:event-battle-ain-jalut-1260",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-battle-ain-jalut-1260",
      "predicate": "located_in",
      "target": "region:Middle East",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains",
      "target": "chapter:mongols:white-banner",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:white-banner",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:white-banner",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:white-banner:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:white-banner:mongol",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:white-banner",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:white-banner:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:white-banner:islamic",
      "predicate": "framed_by",
      "target": "perspective:mongols:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:white-banner",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:white-banner:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:white-banner:jin",
      "predicate": "framed_by",
      "target": "perspective:mongols:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:white-banner",
      "predicate": "depicts",
      "target": "event:mongols:event-kurultai-1206",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:white-banner",
      "predicate": "references_place",
      "target": "place:onon-river",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains",
      "target": "chapter:mongols:wall-does-not-hold",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:wall-does-not-hold",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:wall-does-not-hold",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:wall-does-not-hold:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:wall-does-not-hold:mongol",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:wall-does-not-hold",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:wall-does-not-hold:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:wall-does-not-hold:islamic",
      "predicate": "framed_by",
      "target": "perspective:mongols:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:wall-does-not-hold",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:wall-does-not-hold:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:wall-does-not-hold:jin",
      "predicate": "framed_by",
      "target": "perspective:mongols:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:wall-does-not-hold",
      "predicate": "depicts",
      "target": "event:mongols:event-sack-zhongdu-1215",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:wall-does-not-hold",
      "predicate": "references_place",
      "target": "place:zhongdu",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains",
      "target": "chapter:mongols:world-conqueror-turns-west",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:world-conqueror-turns-west",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:world-conqueror-turns-west",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:world-conqueror-turns-west:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:world-conqueror-turns-west:mongol",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:world-conqueror-turns-west",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:world-conqueror-turns-west:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:world-conqueror-turns-west:islamic",
      "predicate": "framed_by",
      "target": "perspective:mongols:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:world-conqueror-turns-west",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:world-conqueror-turns-west:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:world-conqueror-turns-west:jin",
      "predicate": "framed_by",
      "target": "perspective:mongols:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:world-conqueror-turns-west",
      "predicate": "depicts",
      "target": "event:mongols:event-destruction-samarkand-1220",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:world-conqueror-turns-west",
      "predicate": "references_place",
      "target": "place:samarkand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains",
      "target": "chapter:mongols:river-of-bones",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:river-of-bones",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:river-of-bones",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:river-of-bones:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:river-of-bones:mongol",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:river-of-bones",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:river-of-bones:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:river-of-bones:islamic",
      "predicate": "framed_by",
      "target": "perspective:mongols:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:river-of-bones",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:river-of-bones:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:river-of-bones:jin",
      "predicate": "framed_by",
      "target": "perspective:mongols:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:river-of-bones",
      "predicate": "depicts",
      "target": "event:mongols:event-battle-kalka-river-1223",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:river-of-bones",
      "predicate": "references_place",
      "target": "place:kalka-river",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains",
      "target": "chapter:mongols:two-battles-two-days",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:two-battles-two-days",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:two-battles-two-days",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:two-battles-two-days:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:two-battles-two-days:mongol",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:two-battles-two-days",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:two-battles-two-days:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:two-battles-two-days:islamic",
      "predicate": "framed_by",
      "target": "perspective:mongols:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:two-battles-two-days",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:two-battles-two-days:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:two-battles-two-days:jin",
      "predicate": "framed_by",
      "target": "perspective:mongols:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:two-battles-two-days",
      "predicate": "depicts",
      "target": "event:mongols:event-battle-legnica-1241",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:two-battles-two-days",
      "predicate": "references_place",
      "target": "place:legnica",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:two-battles-two-days",
      "predicate": "references_place",
      "target": "place:mohi-sajo-river",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains",
      "target": "chapter:mongols:road-to-baghdad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:road-to-baghdad",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:road-to-baghdad",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:road-to-baghdad:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:road-to-baghdad:mongol",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:road-to-baghdad",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:road-to-baghdad:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:road-to-baghdad:islamic",
      "predicate": "framed_by",
      "target": "perspective:mongols:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:road-to-baghdad",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:road-to-baghdad:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:road-to-baghdad:jin",
      "predicate": "framed_by",
      "target": "perspective:mongols:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains",
      "target": "chapter:mongols:night-caliphate-ended",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:night-caliphate-ended",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:night-caliphate-ended",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:night-caliphate-ended:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:night-caliphate-ended:mongol",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:night-caliphate-ended",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:night-caliphate-ended:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:night-caliphate-ended:islamic",
      "predicate": "framed_by",
      "target": "perspective:mongols:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:night-caliphate-ended",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:night-caliphate-ended:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:night-caliphate-ended:jin",
      "predicate": "framed_by",
      "target": "perspective:mongols:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:night-caliphate-ended",
      "predicate": "depicts",
      "target": "event:mongols:event-sack-baghdad-1258",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:night-caliphate-ended",
      "predicate": "references_place",
      "target": "place:baghdad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains",
      "target": "chapter:mongols:spring-of-goliath",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:spring-of-goliath",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:spring-of-goliath",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:spring-of-goliath:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:spring-of-goliath:mongol",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:spring-of-goliath",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:spring-of-goliath:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:spring-of-goliath:islamic",
      "predicate": "framed_by",
      "target": "perspective:mongols:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:spring-of-goliath",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:spring-of-goliath:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:spring-of-goliath:jin",
      "predicate": "framed_by",
      "target": "perspective:mongols:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:spring-of-goliath",
      "predicate": "depicts",
      "target": "event:mongols:event-battle-ain-jalut-1260",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:spring-of-goliath",
      "predicate": "references_place",
      "target": "place:ain-jalut",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains",
      "target": "chapter:mongols:four-kingdoms",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:four-kingdoms",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:four-kingdoms",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:four-kingdoms:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:four-kingdoms:mongol",
      "predicate": "framed_by",
      "target": "perspective:mongols:mongol",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:four-kingdoms",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:four-kingdoms:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:four-kingdoms:islamic",
      "predicate": "framed_by",
      "target": "perspective:mongols:islamic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:mongols:four-kingdoms",
      "predicate": "has_variant",
      "target": "chapter-variant:mongols:four-kingdoms:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:mongols:four-kingdoms:jin",
      "predicate": "framed_by",
      "target": "perspective:mongols:jin",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-sack-zhongdu-1215",
      "predicate": "located_at",
      "target": "place:zhongdu",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-destruction-samarkand-1220",
      "predicate": "located_at",
      "target": "place:samarkand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-battle-kalka-river-1223",
      "predicate": "located_at",
      "target": "place:kalka-river",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-battle-legnica-1241",
      "predicate": "located_at",
      "target": "place:legnica",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-sack-baghdad-1258",
      "predicate": "located_at",
      "target": "place:baghdad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-battle-ain-jalut-1260",
      "predicate": "located_at",
      "target": "place:ain-jalut",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "told_from",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:rome:western_roman",
      "predicate": "represents",
      "target": "collective:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "told_from",
      "target": "perspective:rome:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:rome:visigoth",
      "predicate": "represents",
      "target": "collective:visigoths",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "told_from",
      "target": "perspective:rome:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:rome:hunnic",
      "predicate": "represents",
      "target": "collective:huns",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "spans",
      "target": "event:rome:event-battle-adrianople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-battle-adrianople",
      "predicate": "located_in",
      "target": "region:thrace",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "spans",
      "target": "event:rome:event-edict-thessalonica",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-edict-thessalonica",
      "predicate": "located_in",
      "target": "region:thrace",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "spans",
      "target": "event:rome:event-death-stilicho",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-death-stilicho",
      "predicate": "located_in",
      "target": "region:italy",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "spans",
      "target": "event:rome:event-sack-rome-410",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-sack-rome-410",
      "predicate": "located_in",
      "target": "region:italy",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "spans",
      "target": "event:rome:event-battle-catalaunian-plains",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-battle-catalaunian-plains",
      "predicate": "located_in",
      "target": "region:gaul",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "spans",
      "target": "event:rome:event-sack-rome-455",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-sack-rome-455",
      "predicate": "located_in",
      "target": "region:italy",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "spans",
      "target": "event:rome:event-deposition-romulus-augustulus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-deposition-romulus-augustulus",
      "predicate": "located_in",
      "target": "region:italy",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains",
      "target": "chapter:rome:gothic-shore",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:gothic-shore",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:gothic-shore",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:gothic-shore:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:gothic-shore:western_roman",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:gothic-shore",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:gothic-shore:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:gothic-shore:visigoth",
      "predicate": "framed_by",
      "target": "perspective:rome:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:gothic-shore",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:gothic-shore:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:gothic-shore:hunnic",
      "predicate": "framed_by",
      "target": "perspective:rome:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:gothic-shore",
      "predicate": "references_place",
      "target": "place:adrianople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:gothic-shore",
      "predicate": "references_place",
      "target": "place:constantinople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains",
      "target": "chapter:rome:adrianople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:adrianople",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:adrianople",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:adrianople:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:adrianople:western_roman",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:adrianople",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:adrianople:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:adrianople:visigoth",
      "predicate": "framed_by",
      "target": "perspective:rome:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:adrianople",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:adrianople:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:adrianople:hunnic",
      "predicate": "framed_by",
      "target": "perspective:rome:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:adrianople",
      "predicate": "depicts",
      "target": "event:rome:event-battle-adrianople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:adrianople",
      "predicate": "references_place",
      "target": "place:adrianople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains",
      "target": "chapter:rome:stilicho",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:stilicho",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:stilicho",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:stilicho:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:stilicho:western_roman",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:stilicho",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:stilicho:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:stilicho:visigoth",
      "predicate": "framed_by",
      "target": "perspective:rome:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:stilicho",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:stilicho:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:stilicho:hunnic",
      "predicate": "framed_by",
      "target": "perspective:rome:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:stilicho",
      "predicate": "references_place",
      "target": "place:mediolanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:stilicho",
      "predicate": "references_place",
      "target": "place:ravenna",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains",
      "target": "chapter:rome:sack-of-rome-410",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:sack-of-rome-410",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:sack-of-rome-410",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:sack-of-rome-410:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:sack-of-rome-410:western_roman",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:sack-of-rome-410",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:sack-of-rome-410:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:sack-of-rome-410:visigoth",
      "predicate": "framed_by",
      "target": "perspective:rome:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:sack-of-rome-410",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:sack-of-rome-410:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:sack-of-rome-410:hunnic",
      "predicate": "framed_by",
      "target": "perspective:rome:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:sack-of-rome-410",
      "predicate": "depicts",
      "target": "event:rome:event-sack-rome-410",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:sack-of-rome-410",
      "predicate": "references_place",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:sack-of-rome-410",
      "predicate": "references_place",
      "target": "place:aventine-hill",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains",
      "target": "chapter:rome:attila-gaul",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:attila-gaul",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:attila-gaul",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:attila-gaul:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:attila-gaul:western_roman",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:attila-gaul",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:attila-gaul:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:attila-gaul:visigoth",
      "predicate": "framed_by",
      "target": "perspective:rome:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:attila-gaul",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:attila-gaul:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:attila-gaul:hunnic",
      "predicate": "framed_by",
      "target": "perspective:rome:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:attila-gaul",
      "predicate": "depicts",
      "target": "event:rome:event-battle-catalaunian-plains",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:attila-gaul",
      "predicate": "references_place",
      "target": "place:catalaunian-plains",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains",
      "target": "chapter:rome:vandals",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:vandals",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:vandals",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:vandals:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:vandals:western_roman",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:vandals",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:vandals:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:vandals:visigoth",
      "predicate": "framed_by",
      "target": "perspective:rome:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:vandals",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:vandals:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:vandals:hunnic",
      "predicate": "framed_by",
      "target": "perspective:rome:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:vandals",
      "predicate": "depicts",
      "target": "event:rome:event-sack-rome-455",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:vandals",
      "predicate": "references_place",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:vandals",
      "predicate": "references_place",
      "target": "place:ostia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains",
      "target": "chapter:rome:the-long-unwinding",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:the-long-unwinding",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:the-long-unwinding",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:the-long-unwinding:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:the-long-unwinding:western_roman",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:the-long-unwinding",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:the-long-unwinding:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:the-long-unwinding:visigoth",
      "predicate": "framed_by",
      "target": "perspective:rome:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:the-long-unwinding",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:the-long-unwinding:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:the-long-unwinding:hunnic",
      "predicate": "framed_by",
      "target": "perspective:rome:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:the-long-unwinding",
      "predicate": "references_place",
      "target": "place:ravenna",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:the-long-unwinding",
      "predicate": "references_place",
      "target": "place:constantinople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains",
      "target": "chapter:rome:romulus-augustulus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:romulus-augustulus",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:romulus-augustulus",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:romulus-augustulus:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:romulus-augustulus:western_roman",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:romulus-augustulus",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:romulus-augustulus:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:romulus-augustulus:visigoth",
      "predicate": "framed_by",
      "target": "perspective:rome:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:romulus-augustulus",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:romulus-augustulus:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:romulus-augustulus:hunnic",
      "predicate": "framed_by",
      "target": "perspective:rome:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:romulus-augustulus",
      "predicate": "depicts",
      "target": "event:rome:event-deposition-romulus-augustulus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:romulus-augustulus",
      "predicate": "references_place",
      "target": "place:ravenna",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:romulus-augustulus",
      "predicate": "references_place",
      "target": "place:constantinople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains",
      "target": "chapter:rome:what-fell",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:what-fell",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:what-fell",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:what-fell:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:what-fell:western_roman",
      "predicate": "framed_by",
      "target": "perspective:rome:western_roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:what-fell",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:what-fell:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:what-fell:visigoth",
      "predicate": "framed_by",
      "target": "perspective:rome:visigoth",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:rome:what-fell",
      "predicate": "has_variant",
      "target": "chapter-variant:rome:what-fell:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:rome:what-fell:hunnic",
      "predicate": "framed_by",
      "target": "perspective:rome:hunnic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-battle-adrianople",
      "predicate": "located_at",
      "target": "place:adrianople",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-death-stilicho",
      "predicate": "located_at",
      "target": "place:mediolanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-sack-rome-410",
      "predicate": "located_at",
      "target": "place:aventine-hill",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-sack-rome-410",
      "predicate": "located_at",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-battle-catalaunian-plains",
      "predicate": "located_at",
      "target": "place:catalaunian-plains",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-sack-rome-455",
      "predicate": "located_at",
      "target": "place:aventine-hill",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-sack-rome-455",
      "predicate": "located_at",
      "target": "place:forum-romanum",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-deposition-romulus-augustulus",
      "predicate": "located_at",
      "target": "place:ravenna",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "told_from",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:timurids:timurid",
      "predicate": "represents",
      "target": "collective:timurids",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "told_from",
      "target": "perspective:timurids:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:timurids:ottoman",
      "predicate": "represents",
      "target": "collective:ottomans",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "told_from",
      "target": "perspective:timurids:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "perspective:timurids:mamluk",
      "predicate": "represents",
      "target": "collective:mamluks",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "spans",
      "target": "event:timurids:event-timur-samarkand-1370",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-timur-samarkand-1370",
      "predicate": "located_in",
      "target": "region:central_asia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "spans",
      "target": "event:timurids:event-battle-terek-1395",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-battle-terek-1395",
      "predicate": "located_in",
      "target": "region:north_caucasus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "spans",
      "target": "event:timurids:event-sack-delhi-1398",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-sack-delhi-1398",
      "predicate": "located_in",
      "target": "region:north_india",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "spans",
      "target": "event:timurids:event-sack-baghdad-1401",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-sack-baghdad-1401",
      "predicate": "located_in",
      "target": "region:mesopotamia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "spans",
      "target": "event:timurids:event-battle-ankara-1402",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-battle-ankara-1402",
      "predicate": "located_in",
      "target": "region:anatolia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "spans",
      "target": "event:timurids:event-clavijo-samarkand-1404",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-clavijo-samarkand-1404",
      "predicate": "located_in",
      "target": "region:central_asia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "spans",
      "target": "event:timurids:event-death-timur-1405",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-death-timur-1405",
      "predicate": "located_in",
      "target": "region:central_asia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "contains",
      "target": "chapter:timurids:samarkand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:samarkand",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:samarkand",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:samarkand:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:samarkand:timurid",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:samarkand",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:samarkand:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:samarkand:ottoman",
      "predicate": "framed_by",
      "target": "perspective:timurids:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:samarkand",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:samarkand:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:samarkand:mamluk",
      "predicate": "framed_by",
      "target": "perspective:timurids:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:samarkand",
      "predicate": "depicts",
      "target": "event:timurids:event-timur-samarkand-1370",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:samarkand",
      "predicate": "references_place",
      "target": "place:samarkand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "contains",
      "target": "chapter:timurids:the-method",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:the-method",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:the-method",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:the-method:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:the-method:timurid",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:the-method",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:the-method:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:the-method:ottoman",
      "predicate": "framed_by",
      "target": "perspective:timurids:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:the-method",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:the-method:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:the-method:mamluk",
      "predicate": "framed_by",
      "target": "perspective:timurids:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:the-method",
      "predicate": "references_place",
      "target": "place:samarkand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "contains",
      "target": "chapter:timurids:toktamish",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:toktamish",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:toktamish",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:toktamish:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:toktamish:timurid",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:toktamish",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:toktamish:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:toktamish:ottoman",
      "predicate": "framed_by",
      "target": "perspective:timurids:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:toktamish",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:toktamish:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:toktamish:mamluk",
      "predicate": "framed_by",
      "target": "perspective:timurids:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:toktamish",
      "predicate": "depicts",
      "target": "event:timurids:event-battle-terek-1395",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:toktamish",
      "predicate": "references_place",
      "target": "place:terek-river",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "contains",
      "target": "chapter:timurids:india",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:india",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:india",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:india:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:india:timurid",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:india",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:india:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:india:ottoman",
      "predicate": "framed_by",
      "target": "perspective:timurids:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:india",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:india:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:india:mamluk",
      "predicate": "framed_by",
      "target": "perspective:timurids:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:india",
      "predicate": "depicts",
      "target": "event:timurids:event-sack-delhi-1398",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:india",
      "predicate": "references_place",
      "target": "place:delhi",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "contains",
      "target": "chapter:timurids:ankara",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:ankara",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:ankara",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:ankara:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:ankara:timurid",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:ankara",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:ankara:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:ankara:ottoman",
      "predicate": "framed_by",
      "target": "perspective:timurids:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:ankara",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:ankara:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:ankara:mamluk",
      "predicate": "framed_by",
      "target": "perspective:timurids:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:ankara",
      "predicate": "depicts",
      "target": "event:timurids:event-battle-ankara-1402",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:ankara",
      "predicate": "references_place",
      "target": "place:ankara",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "contains",
      "target": "chapter:timurids:clavijo",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:clavijo",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:clavijo",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:clavijo:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:clavijo:timurid",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:clavijo",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:clavijo:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:clavijo:ottoman",
      "predicate": "framed_by",
      "target": "perspective:timurids:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:clavijo",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:clavijo:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:clavijo:mamluk",
      "predicate": "framed_by",
      "target": "perspective:timurids:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:clavijo",
      "predicate": "depicts",
      "target": "event:timurids:event-clavijo-samarkand-1404",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:clavijo",
      "predicate": "references_place",
      "target": "place:samarkand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "contains",
      "target": "chapter:timurids:baghdad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:baghdad",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:baghdad",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:baghdad:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:baghdad:timurid",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:baghdad",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:baghdad:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:baghdad:ottoman",
      "predicate": "framed_by",
      "target": "perspective:timurids:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:baghdad",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:baghdad:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:baghdad:mamluk",
      "predicate": "framed_by",
      "target": "perspective:timurids:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:baghdad",
      "predicate": "depicts",
      "target": "event:timurids:event-sack-baghdad-1401",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:baghdad",
      "predicate": "references_place",
      "target": "place:baghdad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "contains",
      "target": "chapter:timurids:the-turn-east",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:the-turn-east",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:the-turn-east",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:the-turn-east:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:the-turn-east:timurid",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:the-turn-east",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:the-turn-east:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:the-turn-east:ottoman",
      "predicate": "framed_by",
      "target": "perspective:timurids:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:the-turn-east",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:the-turn-east:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:the-turn-east:mamluk",
      "predicate": "framed_by",
      "target": "perspective:timurids:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:the-turn-east",
      "predicate": "references_place",
      "target": "place:samarkand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "contains",
      "target": "chapter:timurids:what-he-left",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:what-he-left",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:what-he-left",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:what-he-left:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:what-he-left:timurid",
      "predicate": "framed_by",
      "target": "perspective:timurids:timurid",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:what-he-left",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:what-he-left:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:what-he-left:ottoman",
      "predicate": "framed_by",
      "target": "perspective:timurids:ottoman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:what-he-left",
      "predicate": "has_variant",
      "target": "chapter-variant:timurids:what-he-left:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter-variant:timurids:what-he-left:mamluk",
      "predicate": "framed_by",
      "target": "perspective:timurids:mamluk",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:what-he-left",
      "predicate": "depicts",
      "target": "event:timurids:event-death-timur-1405",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:what-he-left",
      "predicate": "references_place",
      "target": "place:otrar",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:timurids:what-he-left",
      "predicate": "references_place",
      "target": "place:samarkand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-timur-samarkand-1370",
      "predicate": "located_at",
      "target": "place:samarkand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-battle-terek-1395",
      "predicate": "located_at",
      "target": "place:terek-river",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-sack-delhi-1398",
      "predicate": "located_at",
      "target": "place:delhi",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-sack-baghdad-1401",
      "predicate": "located_at",
      "target": "place:baghdad",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-battle-ankara-1402",
      "predicate": "located_at",
      "target": "place:ankara",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-clavijo-samarkand-1404",
      "predicate": "located_at",
      "target": "place:samarkand",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-death-timur-1405",
      "predicate": "located_at",
      "target": "place:otrar",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains_conflict",
      "target": "conflict:first-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-first-punic-war-begins",
      "predicate": "part_of",
      "target": "conflict:first-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-first-punic-war-ends",
      "predicate": "part_of",
      "target": "conflict:first-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains_conflict",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "contains_conflict",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-hamilcar-barca-spain",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-ebro-treaty",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-siege-of-saguntum",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-hannibal-crosses-alps",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-cannae",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-philip-v-hannibal-alliance",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-fall-of-syracuse",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-hasdrubal-barca-metaurus",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-scipio-takes-carthago-nova",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-battle-of-ilipa",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-zama",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains_conflict",
      "target": "conflict:lamian-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-lamian-war",
      "predicate": "part_of",
      "target": "conflict:lamian-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains_conflict",
      "target": "conflict:gallic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-siege-of-alesia",
      "predicate": "part_of",
      "target": "conflict:gallic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:caesar",
      "predicate": "contains_conflict",
      "target": "conflict:caesars-civil-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-rubicon-crossing",
      "predicate": "part_of",
      "target": "conflict:caesars-civil-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-pompey-evacuates-rome",
      "predicate": "part_of",
      "target": "conflict:caesars-civil-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-battle-pharsalus",
      "predicate": "part_of",
      "target": "conflict:caesars-civil-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-battle-philippi",
      "predicate": "part_of",
      "target": "conflict:caesars-civil-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains_conflict",
      "target": "conflict:umayyad-conquest-of-iberia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-tariq-crossing-711",
      "predicate": "part_of",
      "target": "conflict:umayyad-conquest-of-iberia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-battle-guadalete-711",
      "predicate": "part_of",
      "target": "conflict:umayyad-conquest-of-iberia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-fall-toledo-712",
      "predicate": "part_of",
      "target": "conflict:umayyad-conquest-of-iberia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains_conflict",
      "target": "conflict:asturian-resistance",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-covadonga-718",
      "predicate": "part_of",
      "target": "conflict:asturian-resistance",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:andalus",
      "predicate": "contains_conflict",
      "target": "conflict:tours-campaign",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-battle-tours-732",
      "predicate": "part_of",
      "target": "conflict:tours-campaign",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "contains_conflict",
      "target": "conflict:saxon-wars",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-verden-massacre-782",
      "predicate": "part_of",
      "target": "conflict:saxon-wars",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:crusades",
      "predicate": "contains_conflict",
      "target": "conflict:first-crusade",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-council-clermont-1095",
      "predicate": "part_of",
      "target": "conflict:first-crusade",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-crusaders-constantinople-1097",
      "predicate": "part_of",
      "target": "conflict:first-crusade",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-battle-dorylaeum-1097",
      "predicate": "part_of",
      "target": "conflict:first-crusade",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-siege-antioch-1097",
      "predicate": "part_of",
      "target": "conflict:first-crusade",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-battle-antioch-1098",
      "predicate": "part_of",
      "target": "conflict:first-crusade",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-siege-jerusalem-1099",
      "predicate": "part_of",
      "target": "conflict:first-crusade",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-sack-jerusalem-1099",
      "predicate": "part_of",
      "target": "conflict:first-crusade",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains_conflict",
      "target": "conflict:mongol-jin-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-sack-zhongdu-1215",
      "predicate": "part_of",
      "target": "conflict:mongol-jin-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains_conflict",
      "target": "conflict:mongol-western-campaign",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-destruction-samarkand-1220",
      "predicate": "part_of",
      "target": "conflict:mongol-western-campaign",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-battle-kalka-river-1223",
      "predicate": "part_of",
      "target": "conflict:mongol-western-campaign",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains_conflict",
      "target": "conflict:mongol-middle-east-campaign",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-sack-baghdad-1258",
      "predicate": "part_of",
      "target": "conflict:mongol-middle-east-campaign",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:mongols",
      "predicate": "contains_conflict",
      "target": "conflict:mamluk-mongol-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-battle-ain-jalut-1260",
      "predicate": "part_of",
      "target": "conflict:mamluk-mongol-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains_conflict",
      "target": "conflict:visigothic-invasion-of-italy",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-battle-adrianople",
      "predicate": "part_of",
      "target": "conflict:visigothic-invasion-of-italy",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-sack-rome-410",
      "predicate": "part_of",
      "target": "conflict:visigothic-invasion-of-italy",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains_conflict",
      "target": "conflict:vandal-sack-of-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-sack-rome-455",
      "predicate": "part_of",
      "target": "conflict:vandal-sack-of-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:rome",
      "predicate": "contains_conflict",
      "target": "conflict:late-roman-collapse",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-deposition-romulus-augustulus",
      "predicate": "part_of",
      "target": "conflict:late-roman-collapse",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:charlemagne",
      "predicate": "contains_conflict",
      "target": "conflict:frankish-imperial-consolidation",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-christmas-coronation-800",
      "predicate": "part_of",
      "target": "conflict:frankish-imperial-consolidation",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:alexander",
      "predicate": "contains_conflict",
      "target": "conflict:third-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-roman-destruction-of-carthage",
      "predicate": "part_of",
      "target": "conflict:third-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:timurids",
      "predicate": "contains_conflict",
      "target": "conflict:timurid-central-asian-expansion",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-timur-samarkand-1370",
      "predicate": "part_of",
      "target": "conflict:timurid-central-asian-expansion",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-battle-terek-1395",
      "predicate": "part_of",
      "target": "conflict:timurid-central-asian-expansion",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-sack-delhi-1398",
      "predicate": "part_of",
      "target": "conflict:timurid-central-asian-expansion",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-sack-baghdad-1401",
      "predicate": "part_of",
      "target": "conflict:timurid-central-asian-expansion",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-battle-ankara-1402",
      "predicate": "part_of",
      "target": "conflict:timurid-central-asian-expansion",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:first-punic-war",
      "predicate": "precedes",
      "target": "conflict:second-punic-war",
      "summary": "The Second Punic War follows the First Punic War's Roman acquisition of Sicily; chronological succession is not a single-cause claim.",
      "source_path": null
    },
    {
      "source": "conflict:second-punic-war",
      "predicate": "precedes",
      "target": "conflict:third-punic-war",
      "summary": "The Third Punic War follows Carthage's defeat and constrained postwar position; the graph keeps that sequence distinct from automatic causality.",
      "source_path": null
    },
    {
      "source": "conflict:first-punic-war",
      "predicate": "has_outcome",
      "target": "outcome:first-punic-war-ends",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:first-punic-war",
      "predicate": "ends_with",
      "target": "outcome:first-punic-war-ends",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-first-punic-war-ends",
      "predicate": "realizes",
      "target": "outcome:first-punic-war-ends",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:first-punic-war",
      "predicate": "has_outcome",
      "target": "outcome:first-punic-war-rome-controls-sicily",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:first-punic-war",
      "predicate": "ends_with",
      "target": "outcome:first-punic-war-rome-controls-sicily",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-first-punic-war-ends",
      "predicate": "realizes",
      "target": "outcome:first-punic-war-rome-controls-sicily",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:second-punic-war",
      "predicate": "has_outcome",
      "target": "outcome:second-punic-war-carthage-expelled-from-iberia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:second-punic-war",
      "predicate": "ends_with",
      "target": "outcome:second-punic-war-carthage-expelled-from-iberia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:event-battle-of-ilipa",
      "predicate": "realizes",
      "target": "outcome:second-punic-war-carthage-expelled-from-iberia",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:second-punic-war",
      "predicate": "has_outcome",
      "target": "outcome:second-punic-war-roman-victory",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:second-punic-war",
      "predicate": "ends_with",
      "target": "outcome:second-punic-war-roman-victory",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-zama",
      "predicate": "realizes",
      "target": "outcome:second-punic-war-roman-victory",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:gallic-war",
      "predicate": "has_outcome",
      "target": "outcome:gallic-war-alesia-subdued",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:gallic-war",
      "predicate": "ends_with",
      "target": "outcome:gallic-war-alesia-subdued",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-siege-of-alesia",
      "predicate": "realizes",
      "target": "outcome:gallic-war-alesia-subdued",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:caesars-civil-war",
      "predicate": "has_outcome",
      "target": "outcome:caesarian-control-of-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:caesars-civil-war",
      "predicate": "ends_with",
      "target": "outcome:caesarian-control-of-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:caesar:event-caesar-enters-rome",
      "predicate": "realizes",
      "target": "outcome:caesarian-control-of-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:umayyad-conquest-of-iberia",
      "predicate": "has_outcome",
      "target": "outcome:umayyad-emirate-of-cordoba-established",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:umayyad-conquest-of-iberia",
      "predicate": "ends_with",
      "target": "outcome:umayyad-emirate-of-cordoba-established",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:andalus:event-abd-ar-rahman-emirate-756",
      "predicate": "realizes",
      "target": "outcome:umayyad-emirate-of-cordoba-established",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:first-crusade",
      "predicate": "has_outcome",
      "target": "outcome:first-crusade-jerusalem-captured",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:first-crusade",
      "predicate": "ends_with",
      "target": "outcome:first-crusade-jerusalem-captured",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:crusades:event-siege-jerusalem-1099",
      "predicate": "realizes",
      "target": "outcome:first-crusade-jerusalem-captured",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:mongol-middle-east-campaign",
      "predicate": "has_outcome",
      "target": "outcome:abbasid-caliphate-ended",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:mongol-middle-east-campaign",
      "predicate": "ends_with",
      "target": "outcome:abbasid-caliphate-ended",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-sack-baghdad-1258",
      "predicate": "realizes",
      "target": "outcome:abbasid-caliphate-ended",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:mamluk-mongol-war",
      "predicate": "has_outcome",
      "target": "outcome:mamluks-halt-mongols",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:mamluk-mongol-war",
      "predicate": "ends_with",
      "target": "outcome:mamluks-halt-mongols",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:mongols:event-battle-ain-jalut-1260",
      "predicate": "realizes",
      "target": "outcome:mamluks-halt-mongols",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:visigothic-invasion-of-italy",
      "predicate": "has_outcome",
      "target": "outcome:visigothic-sack-of-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:visigothic-invasion-of-italy",
      "predicate": "ends_with",
      "target": "outcome:visigothic-sack-of-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-sack-rome-410",
      "predicate": "realizes",
      "target": "outcome:visigothic-sack-of-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:vandal-sack-of-rome",
      "predicate": "has_outcome",
      "target": "outcome:vandal-sack-of-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:vandal-sack-of-rome",
      "predicate": "ends_with",
      "target": "outcome:vandal-sack-of-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-sack-rome-455",
      "predicate": "realizes",
      "target": "outcome:vandal-sack-of-rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:third-punic-war",
      "predicate": "has_outcome",
      "target": "outcome:third-punic-war-carthage-destroyed",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:third-punic-war",
      "predicate": "ends_with",
      "target": "outcome:third-punic-war-carthage-destroyed",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:alexander:event-roman-destruction-of-carthage",
      "predicate": "realizes",
      "target": "outcome:third-punic-war-carthage-destroyed",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:late-roman-collapse",
      "predicate": "has_outcome",
      "target": "outcome:western-roman-emperor-deposed",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:late-roman-collapse",
      "predicate": "ends_with",
      "target": "outcome:western-roman-emperor-deposed",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:rome:event-deposition-romulus-augustulus",
      "predicate": "realizes",
      "target": "outcome:western-roman-emperor-deposed",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:frankish-imperial-consolidation",
      "predicate": "has_outcome",
      "target": "outcome:charlemagne-imperial-coronation",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:frankish-imperial-consolidation",
      "predicate": "ends_with",
      "target": "outcome:charlemagne-imperial-coronation",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:charlemagne:event-christmas-coronation-800",
      "predicate": "realizes",
      "target": "outcome:charlemagne-imperial-coronation",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:timurid-central-asian-expansion",
      "predicate": "has_outcome",
      "target": "outcome:timurid-samarkand-base",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:timurid-central-asian-expansion",
      "predicate": "ends_with",
      "target": "outcome:timurid-samarkand-base",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-timur-samarkand-1370",
      "predicate": "realizes",
      "target": "outcome:timurid-samarkand-base",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:timurid-central-asian-expansion",
      "predicate": "has_outcome",
      "target": "outcome:timurid-ankara-victory",
      "summary": "",
      "source_path": null
    },
    {
      "source": "conflict:timurid-central-asian-expansion",
      "predicate": "ends_with",
      "target": "outcome:timurid-ankara-victory",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:timurids:event-battle-ankara-1402",
      "predicate": "realizes",
      "target": "outcome:timurid-ankara-victory",
      "summary": "",
      "source_path": null
    },
    {
      "source": "story:hannibal",
      "predicate": "spans",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:cannae",
      "predicate": "located_in",
      "target": "region:rome",
      "summary": "",
      "source_path": null
    },
    {
      "source": "chapter:hannibal:cannae",
      "predicate": "depicts",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:cannae",
      "predicate": "part_of",
      "target": "conflict:second-punic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "event:hannibal:cannae",
      "predicate": "located_at",
      "target": "place:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:polybius-histories-3",
      "predicate": "interprets",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-22",
      "predicate": "interprets",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-23",
      "predicate": "interprets",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:appian-hannibalic-war",
      "predicate": "interprets",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:plutarch-marcellus",
      "predicate": "interprets",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:strabo-geography-6",
      "predicate": "interprets",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:mahaney-2024-geomorphic",
      "predicate": "interprets",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:schlieffen-cannae-csi",
      "predicate": "interprets",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:polybius-histories-3",
      "predicate": "contains_passage",
      "target": "research-passage:polybius-histories-3-3-107",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:polybius-histories-3",
      "predicate": "contains_passage",
      "target": "research-passage:polybius-histories-3-3-110",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:polybius-histories-3",
      "predicate": "contains_passage",
      "target": "research-passage:polybius-histories-3-3-114",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:polybius-histories-3",
      "predicate": "contains_passage",
      "target": "research-passage:polybius-histories-3-3-115",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:polybius-histories-3",
      "predicate": "contains_passage",
      "target": "research-passage:polybius-histories-3-3-116",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:polybius-histories-3",
      "predicate": "contains_passage",
      "target": "research-passage:polybius-histories-3-3-117",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:polybius-histories-3",
      "predicate": "contains_passage",
      "target": "research-passage:polybius-histories-3-3-118",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-22",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-22-22-39",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-22",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-22-22-40",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-22",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-22-22-41",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-22",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-22-22-42",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-22",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-22-22-43",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-22",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-22-22-44",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-22",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-22-22-46",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-22",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-22-22-47",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-22",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-22-22-49",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-22",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-22-22-50",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-23",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-23-23-1",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:livy-history-23",
      "predicate": "contains_passage",
      "target": "research-passage:livy-history-23-23-10",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:appian-hannibalic-war",
      "predicate": "contains_passage",
      "target": "research-passage:appian-hannibalic-war-hann-4-19",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:appian-hannibalic-war",
      "predicate": "contains_passage",
      "target": "research-passage:appian-hannibalic-war-hann-4-20",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:appian-hannibalic-war",
      "predicate": "contains_passage",
      "target": "research-passage:appian-hannibalic-war-hann-4-21",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:appian-hannibalic-war",
      "predicate": "contains_passage",
      "target": "research-passage:appian-hannibalic-war-hann-4-22",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:appian-hannibalic-war",
      "predicate": "contains_passage",
      "target": "research-passage:appian-hannibalic-war-hann-4-23",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:appian-hannibalic-war",
      "predicate": "contains_passage",
      "target": "research-passage:appian-hannibalic-war-hann-4-24",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:appian-hannibalic-war",
      "predicate": "contains_passage",
      "target": "research-passage:appian-hannibalic-war-hann-4-25",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:appian-hannibalic-war",
      "predicate": "contains_passage",
      "target": "research-passage:appian-hannibalic-war-hann-4-26",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:plutarch-marcellus",
      "predicate": "contains_passage",
      "target": "research-passage:plutarch-marcellus-marc-9",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:plutarch-marcellus",
      "predicate": "contains_passage",
      "target": "research-passage:plutarch-marcellus-marc-10",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:strabo-geography-6",
      "predicate": "contains_passage",
      "target": "research-passage:strabo-geography-6-6-3-9",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:mahaney-2024-geomorphic",
      "predicate": "contains_passage",
      "target": "research-passage:mahaney-2024-geomorphic-page-1",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:mahaney-2024-geomorphic",
      "predicate": "contains_passage",
      "target": "research-passage:mahaney-2024-geomorphic-page-2",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:mahaney-2024-geomorphic",
      "predicate": "contains_passage",
      "target": "research-passage:mahaney-2024-geomorphic-page-3",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:mahaney-2024-geomorphic",
      "predicate": "contains_passage",
      "target": "research-passage:mahaney-2024-geomorphic-page-4",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:mahaney-2024-geomorphic",
      "predicate": "contains_passage",
      "target": "research-passage:mahaney-2024-geomorphic-page-5",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:mahaney-2024-geomorphic",
      "predicate": "contains_passage",
      "target": "research-passage:mahaney-2024-geomorphic-page-6",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:schlieffen-cannae-csi",
      "predicate": "contains_passage",
      "target": "research-passage:schlieffen-cannae-csi-page-3",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-source:schlieffen-cannae-csi",
      "predicate": "contains_passage",
      "target": "research-passage:schlieffen-cannae-csi-page-6",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:cavalry-suited-ground",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:livy-history-22-22-44",
      "predicate": "supports",
      "target": "historical-claim:cavalry-suited-ground",
      "summary": "matched: ground, cavalry",
      "source_path": null
    },
    {
      "source": "historical-claim:cavalry-suited-ground",
      "predicate": "concerns",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:cavalry-suited-ground",
      "predicate": "viewed_through",
      "target": "research-lens:tactical",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:roman-command-disagreement",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:livy-history-22-22-44",
      "predicate": "supports",
      "target": "historical-claim:roman-command-disagreement",
      "summary": "matched: consuls, variance",
      "source_path": null
    },
    {
      "source": "historical-claim:roman-command-disagreement",
      "predicate": "concerns",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:roman-command-disagreement",
      "predicate": "viewed_through",
      "target": "research-lens:political",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:numidian-pursuit-role",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:polybius-histories-3-3-116",
      "predicate": "supports",
      "target": "historical-claim:numidian-pursuit-role",
      "summary": "matched: Numidian horse, pursuing",
      "source_path": null
    },
    {
      "source": "historical-claim:numidian-pursuit-role",
      "predicate": "concerns",
      "target": "perspective:hannibal:numidian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:numidian-pursuit-role",
      "predicate": "viewed_through",
      "target": "research-lens:tactical",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:polybius-roman-losses",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:polybius-histories-3-3-117",
      "predicate": "supports",
      "target": "historical-claim:polybius-roman-losses",
      "summary": "matched: seventy thousand, killed",
      "source_path": null
    },
    {
      "source": "historical-claim:polybius-roman-losses",
      "predicate": "concerns",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:polybius-roman-losses",
      "predicate": "viewed_through",
      "target": "research-lens:quantitative",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-roman-losses",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:livy-history-22-22-49",
      "predicate": "supports",
      "target": "historical-claim:livy-roman-losses",
      "summary": "matched: 45,500 infantry, killed",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-roman-losses",
      "predicate": "concerns",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-roman-losses",
      "predicate": "viewed_through",
      "target": "research-lens:quantitative",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:ridge-river-confinement",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:mahaney-2024-geomorphic-page-1",
      "predicate": "supports",
      "target": "historical-claim:ridge-river-confinement",
      "summary": "matched: limestone ridge, Aufidus River",
      "source_path": null
    },
    {
      "source": "historical-claim:ridge-river-confinement",
      "predicate": "concerns",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:ridge-river-confinement",
      "predicate": "viewed_through",
      "target": "research-lens:geoarchaeology",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:hidden-defile-hypothesis",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:mahaney-2024-geomorphic-page-1",
      "predicate": "qualifies",
      "target": "historical-claim:hidden-defile-hypothesis",
      "summary": "matched: hidden defile, may have helped",
      "source_path": null
    },
    {
      "source": "historical-claim:hidden-defile-hypothesis",
      "predicate": "concerns",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:hidden-defile-hypothesis",
      "predicate": "viewed_through",
      "target": "research-lens:geoarchaeology",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:appian-roman-losses",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:appian-hannibalic-war-hann-4-25",
      "predicate": "supports",
      "target": "historical-claim:appian-roman-losses",
      "summary": "matched: 50,000, slain",
      "source_path": null
    },
    {
      "source": "historical-claim:appian-roman-losses",
      "predicate": "concerns",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:appian-roman-losses",
      "predicate": "viewed_through",
      "target": "research-lens:quantitative",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:appian-four-stratagems",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:appian-hannibalic-war-hann-4-26",
      "predicate": "supports",
      "target": "historical-claim:appian-four-stratagems",
      "summary": "matched: four stratagems, force of the wind, feigned desertion, pretended flight, ambuscades in the ravines",
      "source_path": null
    },
    {
      "source": "historical-claim:appian-four-stratagems",
      "predicate": "concerns",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:appian-four-stratagems",
      "predicate": "viewed_through",
      "target": "research-lens:historiography",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:appian-varro-blame",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:appian-hannibalic-war-hann-4-25",
      "predicate": "supports",
      "target": "historical-claim:appian-varro-blame",
      "summary": "matched: most worthless one, cause of the calamity",
      "source_path": null
    },
    {
      "source": "historical-claim:appian-varro-blame",
      "predicate": "concerns",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:appian-varro-blame",
      "predicate": "viewed_through",
      "target": "research-lens:historiography",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:cannae-double-envelopment-reception",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:schlieffen-cannae-csi-page-3",
      "predicate": "supports",
      "target": "historical-claim:cannae-double-envelopment-reception",
      "summary": "matched: double envelopment, master key to victory",
      "source_path": null
    },
    {
      "source": "historical-claim:cannae-double-envelopment-reception",
      "predicate": "viewed_through",
      "target": "research-lens:military_theory",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:tactical-victory-strategic-limit",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:schlieffen-cannae-csi-page-3",
      "predicate": "qualifies",
      "target": "historical-claim:tactical-victory-strategic-limit",
      "summary": "matched: strategic success, tactical masterpiece, history misapplied",
      "source_path": null
    },
    {
      "source": "historical-claim:tactical-victory-strategic-limit",
      "predicate": "viewed_through",
      "target": "research-lens:military_theory",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:polybius-post-cannae-shock",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:polybius-histories-3-3-118",
      "predicate": "supports",
      "target": "historical-claim:polybius-post-cannae-shock",
      "summary": "matched: masters of nearly the whole, Tarentines, Campanian, Senate left no means untried",
      "source_path": null
    },
    {
      "source": "historical-claim:polybius-post-cannae-shock",
      "predicate": "concerns",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:polybius-post-cannae-shock",
      "predicate": "concerns",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:polybius-post-cannae-shock",
      "predicate": "viewed_through",
      "target": "research-lens:political",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-cannae-preparation",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:livy-history-22-22-39",
      "predicate": "supports",
      "target": "historical-claim:livy-cannae-preparation",
      "summary": "matched: camp, Hannibal",
      "source_path": null
    },
    {
      "source": "research-passage:livy-history-22-22-43",
      "predicate": "supports",
      "target": "historical-claim:livy-cannae-preparation",
      "summary": "matched: battle, consuls",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-cannae-preparation",
      "predicate": "concerns",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-cannae-preparation",
      "predicate": "viewed_through",
      "target": "research-lens:operational",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-cannae-defections",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:livy-history-23-23-1",
      "predicate": "supports",
      "target": "historical-claim:livy-cannae-defections",
      "summary": "matched: battle of Cannae, handed over to the Carthaginian",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-cannae-defections",
      "predicate": "concerns",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-cannae-defections",
      "predicate": "concerns",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-cannae-defections",
      "predicate": "viewed_through",
      "target": "research-lens:political",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:plutarch-cannae-survivor-memory",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:plutarch-marcellus-marc-9",
      "predicate": "supports",
      "target": "historical-claim:plutarch-cannae-survivor-memory",
      "summary": "matched: disaster at Cannae, saved themselves by flying to Canusium, went to Canusium",
      "source_path": null
    },
    {
      "source": "historical-claim:plutarch-cannae-survivor-memory",
      "predicate": "concerns",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:plutarch-cannae-survivor-memory",
      "predicate": "viewed_through",
      "target": "research-lens:biography",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:plutarch-bantius-cannae-memory",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:plutarch-marcellus-marc-10",
      "predicate": "supports",
      "target": "historical-claim:plutarch-bantius-cannae-memory",
      "summary": "matched: fought with conspicuous bravery at Cannae, Hannibal was struck with admiration, friend and guest",
      "source_path": null
    },
    {
      "source": "historical-claim:plutarch-bantius-cannae-memory",
      "predicate": "concerns",
      "target": "perspective:hannibal:roman",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:plutarch-bantius-cannae-memory",
      "predicate": "concerns",
      "target": "perspective:hannibal:carthaginian",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:plutarch-bantius-cannae-memory",
      "predicate": "viewed_through",
      "target": "research-lens:biography",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:strabo-cannae-geographic-memory",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "research-passage:strabo-geography-6-6-3-9",
      "predicate": "supports",
      "target": "historical-claim:strabo-cannae-geographic-memory",
      "summary": "matched: river Ofanto, Canusium, Argyrippa, plain",
      "source_path": null
    },
    {
      "source": "historical-claim:strabo-cannae-geographic-memory",
      "predicate": "viewed_through",
      "target": "research-lens:geography",
      "summary": "",
      "source_path": null
    },
    {
      "source": "source-validation:polybius-histories-3",
      "predicate": "assesses",
      "target": "research-source:polybius-histories-3",
      "summary": "",
      "source_path": null
    },
    {
      "source": "source-validation:livy-history-22",
      "predicate": "assesses",
      "target": "research-source:livy-history-22",
      "summary": "",
      "source_path": null
    },
    {
      "source": "source-validation:livy-history-23",
      "predicate": "assesses",
      "target": "research-source:livy-history-23",
      "summary": "",
      "source_path": null
    },
    {
      "source": "source-validation:plutarch-marcellus",
      "predicate": "assesses",
      "target": "research-source:plutarch-marcellus",
      "summary": "",
      "source_path": null
    },
    {
      "source": "source-validation:strabo-geography-6",
      "predicate": "assesses",
      "target": "research-source:strabo-geography-6",
      "summary": "",
      "source_path": null
    },
    {
      "source": "source-validation:appian-hannibalic-war",
      "predicate": "assesses",
      "target": "research-source:appian-hannibalic-war",
      "summary": "",
      "source_path": null
    },
    {
      "source": "source-validation:mahaney-2024-geomorphic",
      "predicate": "assesses",
      "target": "research-source:mahaney-2024-geomorphic",
      "summary": "",
      "source_path": null
    },
    {
      "source": "source-validation:schlieffen-cannae-csi",
      "predicate": "assesses",
      "target": "research-source:schlieffen-cannae-csi",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:cavalry-suited-ground",
      "predicate": "assesses",
      "target": "historical-claim:cavalry-suited-ground",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:roman-command-disagreement",
      "predicate": "assesses",
      "target": "historical-claim:roman-command-disagreement",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:numidian-pursuit-role",
      "predicate": "assesses",
      "target": "historical-claim:numidian-pursuit-role",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:polybius-roman-losses",
      "predicate": "assesses",
      "target": "historical-claim:polybius-roman-losses",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:livy-roman-losses",
      "predicate": "assesses",
      "target": "historical-claim:livy-roman-losses",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:ridge-river-confinement",
      "predicate": "assesses",
      "target": "historical-claim:ridge-river-confinement",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:hidden-defile-hypothesis",
      "predicate": "assesses",
      "target": "historical-claim:hidden-defile-hypothesis",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:appian-roman-losses",
      "predicate": "assesses",
      "target": "historical-claim:appian-roman-losses",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:appian-four-stratagems",
      "predicate": "assesses",
      "target": "historical-claim:appian-four-stratagems",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:appian-varro-blame",
      "predicate": "assesses",
      "target": "historical-claim:appian-varro-blame",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:cannae-double-envelopment-reception",
      "predicate": "assesses",
      "target": "historical-claim:cannae-double-envelopment-reception",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:tactical-victory-strategic-limit",
      "predicate": "assesses",
      "target": "historical-claim:tactical-victory-strategic-limit",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:polybius-post-cannae-shock",
      "predicate": "assesses",
      "target": "historical-claim:polybius-post-cannae-shock",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:livy-cannae-preparation",
      "predicate": "assesses",
      "target": "historical-claim:livy-cannae-preparation",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:livy-cannae-defections",
      "predicate": "assesses",
      "target": "historical-claim:livy-cannae-defections",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:plutarch-cannae-survivor-memory",
      "predicate": "assesses",
      "target": "historical-claim:plutarch-cannae-survivor-memory",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:plutarch-bantius-cannae-memory",
      "predicate": "assesses",
      "target": "historical-claim:plutarch-bantius-cannae-memory",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-validation:strabo-cannae-geographic-memory",
      "predicate": "assesses",
      "target": "historical-claim:strabo-cannae-geographic-memory",
      "summary": "",
      "source_path": null
    },
    {
      "source": "claim-conflict:roman-casualty-estimates",
      "predicate": "about",
      "target": "event:hannibal:cannae",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:polybius-roman-losses",
      "predicate": "in_conflict",
      "target": "claim-conflict:roman-casualty-estimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-roman-losses",
      "predicate": "in_conflict",
      "target": "claim-conflict:roman-casualty-estimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:appian-roman-losses",
      "predicate": "in_conflict",
      "target": "claim-conflict:roman-casualty-estimates",
      "summary": "",
      "source_path": null
    },
    {
      "source": "historical-claim:polybius-roman-losses",
      "predicate": "in_conflict_with",
      "target": "historical-claim:livy-roman-losses",
      "summary": "Both claims are preserved under Roman casualty estimates at Cannae.",
      "source_path": null
    },
    {
      "source": "historical-claim:polybius-roman-losses",
      "predicate": "in_conflict_with",
      "target": "historical-claim:appian-roman-losses",
      "summary": "Both claims are preserved under Roman casualty estimates at Cannae.",
      "source_path": null
    },
    {
      "source": "historical-claim:livy-roman-losses",
      "predicate": "in_conflict_with",
      "target": "historical-claim:appian-roman-losses",
      "summary": "Both claims are preserved under Roman casualty estimates at Cannae.",
      "source_path": null
    },
    {
      "source": "event:alexander:event-battle-of-cannae",
      "predicate": "same_as",
      "target": "event:hannibal:cannae",
      "summary": "Curated identity link across story projections.",
      "source_path": null
    }
  ]
}
