{
  "meta": {
    "title": "Sun Chronicles beacon-network topology",
    "provenance": "GENERATED from the ```topology blocks in compendium/*.md by scripts/build-topology.py. Do not hand-edit. The compendium is the source of truth.",
    "counts": {
      "systems": 60,
      "edges": 67,
      "convergences": 2
    }
  },
  "polities": [
    {
      "id": "chaonia",
      "name": "Republic of Chaonia",
      "color": "#6cd6ff"
    },
    {
      "id": "hatti",
      "name": "Hatti region (Chaonia-held)",
      "color": "#d9854f"
    },
    {
      "id": "phene",
      "name": "Phene Empire",
      "color": "#ff7080"
    },
    {
      "id": "yele_league",
      "name": "Yele League",
      "color": "#ffc35a"
    },
    {
      "id": "trinity",
      "name": "Trinity Coalition",
      "color": "#c089ff"
    },
    {
      "id": "mishirru",
      "name": "Mishirru Province (Phene-administered)",
      "color": "#82dca0"
    },
    {
      "id": "contested",
      "name": "Contested / frontier",
      "color": "#f4f0e2"
    },
    {
      "id": "unknown",
      "name": "Unknown / unaligned",
      "color": "#BDC3C7"
    },
    {
      "id": "apsaras_gap",
      "name": "Apsaras Gap (lost network centre)",
      "color": "#5a4870"
    }
  ],
  "systems": [
    {
      "id": "agate",
      "name": "Agate",
      "class": "unknown",
      "polity": "phene",
      "note": "Sena prong",
      "detail": "between Jorsha and Old Spiral",
      "control": "Phene"
    },
    {
      "id": "aila",
      "name": "Aila",
      "class": "unknown",
      "polity": "mishirru",
      "role": "1 of 2 Mishirru→Phene crossings; mouth of the Aila→Anchor prong",
      "note": "2nd Mishirru/Phene crossing",
      "facilities": [
        "Port Shivakiar"
      ],
      "connects_toward": [
        "hunger",
        "anchor"
      ],
      "control": "Mishirru Province (Phene) → Chaonian staging system (FH)"
    },
    {
      "id": "alabaster",
      "name": "Alabaster",
      "class": "unknown",
      "polity": "mishirru",
      "note": "core line (not the Alabaster Argosy)",
      "detail": "between Scepter and Destiny; NOT the Alabaster Argosy"
    },
    {
      "id": "alternity",
      "name": "Alternity",
      "class": "unknown",
      "polity": "phene",
      "note": "border, faces Aila; first Phene hop on the Aila prong",
      "detail": "Phene border system; Aila↔Alternity (FH ch.83 + ch.78 read together — see prose above); Arakamani took refuge here",
      "control": "Phene"
    },
    {
      "id": "anchor",
      "name": "Anchor",
      "class": "eleven-beacon",
      "polity": "phene",
      "role": "one of only 2 surviving 11-beacon systems (other = Yele); seat of the Rider Council",
      "note": "imperial capital (Triple A)",
      "beacons_total": 11,
      "beacons_functional": 8,
      "beacons_dead": 3,
      "named_beacons": [],
      "control": "Phene Empire (imperial capital; one of the Triple A — Anchor/Auger/Axiom)",
      "stubs": [
        {
          "region": "apsaras_gap",
          "severed": true,
          "note": "dead beacon — Apsaras-collapse casualty, pair-end unnamed; inferred Gap-bound (Anchor's inner-radial hub casualty)"
        },
        {
          "region": "apsaras_gap",
          "severed": true,
          "note": "dead beacon — Apsaras-collapse casualty, pair-end unnamed; inferred Gap-bound (Anchor's inner-radial hub casualty)"
        },
        {
          "region": "apsaras_gap",
          "severed": true,
          "note": "dead beacon — Apsaras-collapse casualty, pair-end unnamed; inferred Gap-bound (Anchor's inner-radial hub casualty)"
        }
      ]
    },
    {
      "id": "arafel",
      "name": "Arafel",
      "class": "unknown",
      "polity": "mishirru",
      "note": "core line",
      "detail": "between Landfall and Cataract"
    },
    {
      "id": "aspera",
      "name": "Aspera",
      "class": "unknown",
      "polity": "chaonia",
      "note": "contested forward base",
      "connects": [
        "troia",
        "karnos"
      ],
      "control": "Republic of Chaonia (contested forward base; foothold seized ~5 yrs pre-US)"
    },
    {
      "id": "auger",
      "name": "Auger",
      "class": "hydra",
      "polity": "phene",
      "note": "Triple A capital",
      "beacons_total": 7,
      "control": "Phene Empire (Triple A capital; one of the three Unity Hall / Rider Council seats)"
    },
    {
      "id": "axiom",
      "name": "Axiom",
      "class": "hydra",
      "polity": "phene",
      "note": "Triple A capital",
      "beacons_total": 7,
      "control": "Phene Empire (Triple A capital; one of the three Unity Hall / Rider Council seats)",
      "triple_a_note": "Auger↔Axiom direct edge NOT stated; a full Triple-A triad is inference only"
    },
    {
      "id": "belt_of_jewels",
      "name": "Belt of Jewels",
      "class": "terminus",
      "polity": "mishirru",
      "note": "super-distant terminus; remote frontier of the local belt; perhaps not originally linked to Destiny (FH ch.76)"
    },
    {
      "id": "cataract",
      "name": "Cataract",
      "class": "janus",
      "polity": "mishirru",
      "note": "core line; red dwarf; brown-dwarf \"cataract\" route to Oasis",
      "beacons_total": 2,
      "star": "red dwarf",
      "named_beacons": [
        {
          "to": "oasis",
          "name": "Cataract–Oasis Beacon"
        },
        {
          "anchor_planet": "marginally habitable planet"
        }
      ],
      "control": "Mishirru religious establishment"
    },
    {
      "id": "chaonia",
      "name": "Chaonia",
      "class": "scylla",
      "polity": "chaonia",
      "note": "republic capital (Argos)",
      "beacons_total": 5
    },
    {
      "id": "cut_stone",
      "name": "Cut Stone",
      "class": "unknown",
      "polity": "phene",
      "note": "one drop from Anchor"
    },
    {
      "id": "destiny",
      "name": "Destiny",
      "class": "hydra",
      "polity": "mishirru",
      "role": "capital end of the Mishirru core line; \"crucial intersection\"",
      "note": "provincial capital; core-line end",
      "beacons_total": 7,
      "control": "Phene Empire (provincial seat) — liberated by Chaonia in FH",
      "phene_core_note": "NOT linked by a direct beacon to the Triple A — Mishirru reaches the Phene core via Sena/Aila (below)"
    },
    {
      "id": "eel_gulf",
      "name": "Eel Gulf",
      "class": "unknown",
      "polity": "contested",
      "role": "the short-knnu hop on the old Phene/Hesjan→Yele route; site of the Battle of Eel Gulf (~50+ yrs pre-FH)",
      "note": "knnu waypoint between the Kanesh/Hatti frontier and Yele; the Phene/Hesjan route to Yele was cut off here when Chaonia took the Kanesh chokepoint — access denied, link not destroyed",
      "phene_access": "cut by Chaonia's capture of Kanesh; Phene now routes via the Trinity back door"
    },
    {
      "id": "gardens",
      "name": "Gardens",
      "class": "unknown",
      "polity": "phene",
      "note": "Aila prong",
      "detail": "last hop before Anchor",
      "control": "Phene"
    },
    {
      "id": "gyre",
      "name": "The Gyre",
      "class": "off-grid",
      "polity": "mishirru",
      "note": "Archives; knnu-only, position unmapped"
    },
    {
      "id": "harahuvati",
      "name": "Harahuvati",
      "class": "unknown",
      "polity": "mishirru",
      "note": "annexed; Trinity<->Mishirru knnu hinge",
      "status": "annexed (outside the core eight); part of Mishirru Province",
      "knnu_from": "kumbala",
      "control": "Phene Empire → Chaonia (FH)"
    },
    {
      "id": "hatti",
      "name": "Hatti",
      "class": "unknown",
      "polity": "hatti",
      "note": "eponymous system of the resource-rich Hatti territories (a former independent confederation, then Phene province, now Chaonian-held but Phene-claimed); trade crossroads; Battle of Hatti Reach (FH ch.13); hinge linking the Karnos front (Na Iri/Tarsa) inward to Kanesh and out to the Hesjan/Skuda caravan (FH ch.58)",
      "capital_planet": "Hatti Prime"
    },
    {
      "id": "haymarket",
      "name": "Haymarket",
      "class": "cerberus",
      "polity": "phene",
      "role": "valuable crossroads on the Karnos↔Anchor corridor",
      "note": "corridor crossroads",
      "beacons_total": 3,
      "beacons_functional": 3,
      "control": "Phene Empire",
      "named_beacons": [
        {
          "to": "refuge"
        },
        {
          "to": "sandbank"
        },
        {
          "to": "cut_stone"
        }
      ]
    },
    {
      "id": "hellion",
      "name": "Hellion",
      "class": "terminus",
      "polity": "contested",
      "role": "smuggler haven; Karnos-side mouth of the Phene↔Yele back door",
      "note": "was janus; smuggler back-door mouth",
      "beacons_total": 2,
      "beacons_functional": 1,
      "beacons_dead": 1,
      "class_former": "janus",
      "connects": [
        "karnos"
      ],
      "stubs": [
        {
          "region": "apsaras_gap",
          "severed": true,
          "note": "the dead 2nd beacon — Apsaras-collapse cascade casualty with 'spiny starburst' aura (FH ch.41); pair-end unnamed but inferred Gap-bound (Hellion sits on the Gap edge)"
        }
      ]
    },
    {
      "id": "hunger",
      "name": "Hunger",
      "class": "unknown",
      "polity": "phene",
      "note": "Aila prong",
      "detail": "first hop past Aila",
      "control": "Phene"
    },
    {
      "id": "jorsha",
      "name": "Jorsha",
      "class": "unknown",
      "polity": "phene",
      "note": "border, faces Sena",
      "detail": "Phene border system; Sena↔Jorsha; first Sena-prong hop → Agate",
      "control": "Phene"
    },
    {
      "id": "kanesh",
      "name": "Kanesh",
      "class": "scylla",
      "polity": "hatti",
      "note": "formerly Phene, taken ~20 yrs pre-FH; scylla degraded to 3 live beacons by the collapse (2 dead, endpoints unknown); indigenous parliament reopened by Eirene",
      "beacons_total": 5,
      "beacons_functional": 3,
      "beacons_dead": 2,
      "capital_planet": "Kanesh Prime",
      "connects_toward": [
        "Hatti territories",
        "karnos"
      ],
      "control": "Republic of Chaonia (formerly Phene)"
    },
    {
      "id": "karnos",
      "name": "Karnos",
      "class": "hydra",
      "polity": "contested",
      "note": "buffer frontier; 7th beacon dead, pair unknown — anchored at Karnos Oct (Phene name: Gdansk; FH ch.47), the system's outermost planet, with two small moons and Phene-expanded orbital shipyards exploiting its mines",
      "beacons_total": 7,
      "beacons_functional": 6,
      "beacons_dead": 1,
      "beacons_into_phene_core": [
        "sleepless",
        "windworn"
      ],
      "connects_toward": [
        "Hatti region",
        "Phene Empire core"
      ],
      "control": "contested buffer frontier (formerly independent dynastic territory)"
    },
    {
      "id": "kaska",
      "name": "Kaska",
      "class": "unknown",
      "polity": "hatti",
      "note": "Karnos-region caravan route; formerly Phene, taken by Chaonia (FH ch.31) — under Chaonian Tariff & Security Control by FH (ch.53); Chaonia stations forward fleets here (ch.4). Parallel to Na Iri."
    },
    {
      "id": "kumbala",
      "name": "Kumbala",
      "class": "unknown",
      "polity": "trinity",
      "note": "Magava seat; faces Mishirru",
      "capital_planet": "Kumbala Prime",
      "seat_of": "Magava (the Magava's Grove)",
      "control": "Trinity Coalition → Republic of Chaonia (post-FH)"
    },
    {
      "id": "landfall",
      "name": "Landfall",
      "class": "terminus",
      "polity": "mishirru",
      "note": "core-line terminus end; first Argosy haven",
      "beacons_total": 1,
      "on_route": "Mishirru capital → (janus line) → Landfall",
      "control": "ancient Mishirru region",
      "detail": "predates the beacon network; settled by the first Argosy haven"
    },
    {
      "id": "larissa",
      "name": "Larissa",
      "class": "unknown",
      "polity": "yele_league",
      "note": "Yele-origin; retains Larissan Senate (FH ch.31), Larissan Yele dialect (FH ch.84), Larissan Centaur Division as 'allied Yele League ships' (FH ch.4); Larissa Institute of Technology and Dialectic (FH ch.10)",
      "control": "chaonia",
      "on_route": "Yele ↔ Chaonia",
      "chain_slot": "Yele-adjacent (modelling choice; one unnamed intermediate remains)"
    },
    {
      "id": "maras_shantiya",
      "name": "Maras Shantiya",
      "class": "unknown",
      "polity": "hatti",
      "note": "Hatti-front garrison taken from the Phene; appears only in conquest roll-calls — no beacon, count, anchor or neighbour is ever stated, so its wiring is an open question (the earlier inferred Hatti edge was unsupported, dropped).",
      "layout_near": [
        "kanesh",
        "hatti"
      ]
    },
    {
      "id": "meli",
      "name": "Meli",
      "class": "unknown",
      "polity": "trinity",
      "note": "Matrone seat; faces Yele",
      "capital_planet": "Meli Prime",
      "seat_of": "Matrone (the Matrone's Hive; Trinity treasury)",
      "control": "Trinity Coalition → Republic of Chaonia (post-FH)"
    },
    {
      "id": "molossia",
      "name": "Molossia",
      "class": "scylla",
      "polity": "chaonia",
      "note": "main staging ground",
      "beacons_total": 5,
      "planets": 6,
      "beacon_anchor_to_troia": "Yǎnshī (2nd planet)",
      "control": "Republic of Chaonia"
    },
    {
      "id": "na_iri",
      "name": "Na Iri",
      "class": "unknown",
      "polity": "hatti",
      "note": "binary system; site of the battle of Na Iri (Sun's first major victory); taken from the Phene. 3rd planet Na Iri Terce hosts Orbital Habitat Matoas and anchors the Kaska Beacon.",
      "star": "twin stars (binary)"
    },
    {
      "id": "nalanda",
      "name": "Nalanda",
      "class": "unknown",
      "polity": "yele_league",
      "control": "Yele League (member system)"
    },
    {
      "id": "oasis",
      "name": "Oasis",
      "class": "unknown",
      "polity": "mishirru",
      "note": "core line; K-class, no settled planet",
      "star": "K-class",
      "detail": "appears to lack a settled planet"
    },
    {
      "id": "odrysa",
      "name": "Odrysa",
      "class": "terminus",
      "polity": "chaonia",
      "note": "outer-rim Chaonian frontier; the Sunbird picket-circuit (FH ch.12); was janus, now terminus after the Apsaras-collapse killed its 2nd beacon; the dead beacon's toxic aura infected its anchor planet Odrysa Sept; an Argosy knnu anchor from ~94 yrs pre-FH (Queen-Marshal Metis's reign) still sits at the heliopause",
      "beacons_total": 2,
      "beacons_functional": 1,
      "beacons_dead": 1,
      "class_former": "janus",
      "planets": [
        "Odrysa Prime",
        "Odrysa Sept"
      ]
    },
    {
      "id": "old_spiral",
      "name": "Old Spiral",
      "class": "unknown",
      "polity": "phene",
      "note": "Sena prong",
      "detail": "between Agate and Refuge",
      "control": "Phene"
    },
    {
      "id": "oracle",
      "name": "Oracle",
      "class": "waypoint",
      "polity": "mishirru",
      "note": "brown-dwarf waypoint (Cataract route); last dwarf before the Gyre"
    },
    {
      "id": "pool",
      "name": "Pool",
      "class": "waypoint",
      "polity": "mishirru",
      "note": "brown-dwarf waypoint (Cataract route)"
    },
    {
      "id": "pselkis",
      "name": "Pselkis",
      "class": "janus",
      "polity": "chaonia",
      "note": "Chaonian outer-rim; partner of the Odrysa working beacon; site of the Pselkis Campaign ~45 yrs pre-FH where Queen-Marshal Jīnzhā died (FH ch.47); recent battle 'last year' before FH (FH ch.12)"
    },
    {
      "id": "rake",
      "name": "Rake",
      "class": "unknown",
      "polity": "phene",
      "note": "Aila prong",
      "detail": "between Hunger and Gardens (floated as a Phene battle site, FH ch.83)",
      "control": "Phene"
    },
    {
      "id": "refuge",
      "name": "Refuge",
      "class": "unknown",
      "polity": "phene",
      "detail": "between Old Spiral and Haymarket (Haymarket's \"Refuge Beacon\")",
      "control": "Phene"
    },
    {
      "id": "sandbank",
      "name": "Sandbank",
      "class": "unknown",
      "polity": "phene"
    },
    {
      "id": "sankore",
      "name": "Sankore",
      "class": "unknown",
      "polity": "yele_league",
      "control": "Yele League (member system)"
    },
    {
      "id": "scepter",
      "name": "Scepter",
      "class": "unknown",
      "polity": "mishirru",
      "note": "core line",
      "detail": "between Oasis and Alabaster"
    },
    {
      "id": "sena",
      "name": "Sena",
      "class": "unknown",
      "polity": "mishirru",
      "role": "\"official\" Mishirru/Phene boundary; 1 of 2 Mishirru→Phene crossings",
      "note": "official Mishirru/Phene boundary",
      "named_beacons": [
        {
          "to": "jorsha",
          "name": "Jorsha Beacon"
        }
      ],
      "facilities": [
        "Port Khayzuran"
      ],
      "control": "Mishirru Province (Phene) → Chaonian invasion staging system (FH)"
    },
    {
      "id": "she_who_bore_them_all",
      "name": "She Who Bore Them All",
      "class": "eleven-beacon",
      "polity": "apsaras_gap",
      "role": "original Apsaras-Convergence hub; the 'central place in the network' of the Lady Chaos restoration prophecy",
      "note": "Apsaras homeworld; central hub of the original 11 radial beacon routes; lost in the collapse ~800 yrs ago; unreachable, location unknown (FH ch.15, 61, 76); the Oracle's restoration prophecy concerns her central place in the network",
      "beacons_total": 11,
      "beacons_dead": 11
    },
    {
      "id": "sleepless",
      "name": "Sleepless",
      "class": "janus",
      "polity": "phene",
      "role": "leading edge of the old Phene imperial frontier",
      "note": "old imperial frontier; the Phene mined the Karnos-facing beacon (the minefield stopped the Chaonians and destroyed the Vermilion, FH ch.84); Sun broke through the Sleepless minefield in the FH climax (ch.86), opening the Karnos→imperial-space run",
      "beacons_total": 2,
      "control": "Phene Empire",
      "toward_anchor_via": [
        "sandbank",
        "haymarket",
        "cut_stone"
      ]
    },
    {
      "id": "sogdia_limit",
      "name": "Sogdia Limit",
      "class": "unknown",
      "polity": "phene",
      "note": "far rim, beyond Tranquility; class unknown — name suggests terminus but never stated; the US ch.42 famous-Phene-landmarks list (horned lighthouse beside Anchor/Auger/Axiom landmarks) is a thematic/cultural grouping, not spatial proximity",
      "landmark": "the horned lighthouse",
      "location": "rim, beyond Tranquility (FH ch.77)",
      "control": "Phene"
    },
    {
      "id": "spring",
      "name": "Spring",
      "class": "waypoint",
      "polity": "mishirru",
      "note": "brown-dwarf waypoint (Cataract route)"
    },
    {
      "id": "t_harbor",
      "name": "Tranquility Harbor",
      "class": "station",
      "polity": "phene",
      "role": "rim crossroads / \"gateway in three directions\" (→Anchor / →Tranquility+Sogdia / →Hatti+Chaonia)",
      "note": "station in Harbor System; rim crossroads",
      "in_system": "Harbor System",
      "control": "Phene Empire",
      "stubs": [
        {
          "toward": "Triple A / imperial core",
          "region": "phene",
          "status": "inferred",
          "note": "INWARD direction of T-Harbor's 'three crucial directions' (FH ch.77 — the three are not enumerated in canon); Apama's 'voyage from T-Harbor to Anchor' (FH ch.83) confirms the connection but mode, hop count, and any intermediate hub (Axiom and Auger are both hydras with 6 unaccounted beacons each — either is a plausible inward gateway) are unnamed in canon. Modelled as an inferred stub to an unnamed Phene-side ghost — same convention as Windworn's Triple-A-bound stub (FH ch.69) rather than asserting a specific endpoint."
        }
      ]
    },
    {
      "id": "tarsa",
      "name": "Tarsa",
      "class": "unknown",
      "polity": "hatti",
      "note": "Karnos beacon; route into the Hatti territories"
    },
    {
      "id": "temple",
      "name": "Temple",
      "class": "waypoint",
      "polity": "mishirru",
      "note": "brown-dwarf waypoint (Cataract route)"
    },
    {
      "id": "thesprotis",
      "name": "Thesprotis",
      "class": "scylla",
      "polity": "chaonia",
      "beacons_total": 5,
      "control": "Republic of Chaonia (founding core system)"
    },
    {
      "id": "tomb",
      "name": "Tomb",
      "class": "waypoint",
      "polity": "mishirru",
      "note": "brown-dwarf waypoint (Cataract route)"
    },
    {
      "id": "tranquility",
      "name": "Tranquility",
      "class": "unknown",
      "polity": "phene",
      "note": "4th-most-populous; two Destiny-class planets",
      "harbor_system_detail": {
        "star": "big red star",
        "hosts": "t_harbor",
        "beacon_to": "tranquility",
        "reachable_by": [
          "beacon",
          "knnu"
        ],
        "control": "Phene"
      },
      "population_rank": "4th in empire",
      "destiny_class_planets": 2,
      "reached_via": "t_harbor",
      "control": "Phene (inferred)"
    },
    {
      "id": "troia",
      "name": "Troia",
      "class": "cerberus",
      "polity": "chaonia",
      "role": "bottleneck gateway to the Chaonian core",
      "note": "gateway bottleneck",
      "beacons_total": 3,
      "control": "Republic of Chaonia"
    },
    {
      "id": "tsurru",
      "name": "Tsurru",
      "class": "scylla?",
      "polity": "trinity",
      "note": "charts say cerberus; canon scylla (FH ch.66 prime-rule); Karsh capital",
      "beacons_total": 5,
      "beacons_functional": 2,
      "beacons_dead": 2,
      "class_charted": "cerberus",
      "class_actual": ">= scylla",
      "beacons_charted": "3 (2 working + 1 dead)",
      "beacons_actual": "≥5 (Libertalia 4th discovered FH ch.66, also dead; prime-rule inference forces a 5th)",
      "named_beacons": [
        {
          "to": "meli"
        },
        {
          "to": "kumbala"
        },
        {
          "anchor_planet": "Tsurru Prime",
          "status": "dead"
        },
        {
          "anchor_planet": "Tsurru ice giant (Libertalia)",
          "status": "dead",
          "undocumented": true
        }
      ],
      "hidden_note": "maps can omit beacons; prime rule forces a 5th, destinations unknown",
      "stubs": [
        {
          "region": "apsaras_gap",
          "severed": true,
          "note": "the Tsurru-Prime-anchored dead beacon (one of the 3 charted) — pair-end unnamed; Persephone's speculation (FH ch.61): 'For all we know, it linked directly to She Who Bore Them All' — inferred Gap-bound"
        },
        {
          "region": "apsaras_gap",
          "severed": true,
          "note": "Libertalia — the 4th, undocumented beacon at a Tsurru ice-giant moon (FH ch.66); dead and inert (no aura); pair-end unnamed; inferred Gap-bound. In-system conurbation also called Libertalia sits on the beacon's surface."
        }
      ]
    },
    {
      "id": "windworn",
      "name": "Windworn",
      "class": "unknown",
      "polity": "phene",
      "note": "one of Karnos's two beacons into the Phene heartland (twin of Sleepless; both anchored at Karnos Deci/Sept, close to each other, FH ch.34). Leads toward the Triple A but the route is unmapped (Persephone's guess, FH ch.69). Heavily mined; its mined beacon opened by Capt. Angharad Black in the FH climax (ch.96).",
      "stubs": [
        {
          "toward": "Triple A / imperial core",
          "region": "phene",
          "status": "inferred",
          "note": "leads toward the Triple A but the route is unmapped — Persephone's guess (FH ch.69); specific destination system unnamed"
        }
      ],
      "layout_near": [
        "sleepless"
      ]
    },
    {
      "id": "yele",
      "name": "Yele",
      "class": "eleven-beacon",
      "polity": "yele_league",
      "role": "one of only 2 surviving 11-beacon systems (other = Anchor, Phene); League traffic must transit Yele",
      "note": "League capital",
      "beacons_total": 11,
      "beacons_functional": 8,
      "beacons_dead": 3,
      "control": "Yele League (capital)",
      "hub_note": "hub monopoly is the basis of League power",
      "stubs": [
        {
          "region": "apsaras_gap",
          "severed": true,
          "note": "dead beacon — Apsaras-collapse casualty, pair-end unnamed; inferred Gap-bound (inner-radial hub casualty, see history.md)"
        },
        {
          "region": "apsaras_gap",
          "severed": true,
          "note": "dead beacon — Apsaras-collapse casualty, pair-end unnamed; inferred Gap-bound"
        },
        {
          "region": "apsaras_gap",
          "severed": true,
          "note": "dead beacon — Apsaras-collapse casualty, pair-end unnamed; inferred Gap-bound"
        }
      ]
    }
  ],
  "edges": [
    {
      "from": "karnos",
      "to": "tarsa",
      "type": "beacon",
      "anchor_planet": "Karnos Quince"
    },
    {
      "from": "karnos",
      "to": "na_iri",
      "type": "beacon",
      "anchor_planet": "Karnos Terce"
    },
    {
      "from": "karnos",
      "to": "aspera",
      "type": "beacon",
      "anchor_planet": "Karnos Sext"
    },
    {
      "from": "karnos",
      "to": "windworn",
      "type": "beacon"
    },
    {
      "from": "karnos",
      "to": "sleepless",
      "type": "beacon"
    },
    {
      "from": "karnos",
      "to": "hellion",
      "type": "beacon"
    },
    {
      "from": "tarsa",
      "to": "hatti",
      "type": "route",
      "status": "inferred",
      "render_pad": 1,
      "note": "Tarsa route 'links into the Hatti territories' (FH ch.58) — a corridor, hop count unstated (not a confirmed single beacon); render_pad:1 marks it as inferred-length, not a direct hop"
    },
    {
      "from": "sleepless",
      "to": "sandbank",
      "type": "beacon"
    },
    {
      "from": "molossia",
      "to": "chaonia",
      "type": "beacon"
    },
    {
      "from": "molossia",
      "to": "thesprotis",
      "type": "beacon"
    },
    {
      "from": "molossia",
      "to": "troia",
      "type": "beacon"
    },
    {
      "from": "thesprotis",
      "to": "chaonia",
      "type": "beacon"
    },
    {
      "from": "troia",
      "to": "aspera",
      "type": "beacon"
    },
    {
      "from": "troia",
      "to": "kanesh",
      "type": "beacon"
    },
    {
      "from": "hatti",
      "to": "kanesh",
      "type": "route",
      "status": "inferred",
      "render_pad": 2,
      "note": "Hatti territories 'link inward to Kanesh' (FH ch.58) — a corridor, hop count unstated (not a confirmed single beacon); render_pad:2 reflects Kanesh being the deepest Hatti system (formerly Phene)"
    },
    {
      "from": "odrysa",
      "to": "pselkis",
      "type": "beacon",
      "name": "Pselkis Beacon",
      "anchor_planet": "Odrysa Prime"
    },
    {
      "from": "pselkis",
      "to": "chaonia",
      "type": "route",
      "status": "inferred",
      "render_pad": 2,
      "note": "'route led back into the heart of the republic' (FH ch.12); no intermediate systems named — render_pad:2 marks it as inferred-length, not a direct hop"
    },
    {
      "from": "yele",
      "to": "nalanda",
      "type": "route",
      "hops": 3,
      "status": "working"
    },
    {
      "from": "yele",
      "to": "sankore",
      "type": "route",
      "hops": 3,
      "status": "working"
    },
    {
      "from": "yele",
      "to": "larissa",
      "type": "beacon"
    },
    {
      "from": "nalanda",
      "to": "meli",
      "type": "knnu",
      "operator": "Ousoos Argosy",
      "gap": "50–70 days"
    },
    {
      "from": "sankore",
      "to": "meli",
      "type": "knnu",
      "operator": "Ousoos Argosy",
      "gap": "50–70 days"
    },
    {
      "from": "anchor",
      "to": "axiom",
      "type": "beacon"
    },
    {
      "from": "anchor",
      "to": "auger",
      "type": "beacon"
    },
    {
      "from": "haymarket",
      "to": "sandbank",
      "type": "beacon"
    },
    {
      "from": "meli",
      "to": "tsurru",
      "type": "beacon"
    },
    {
      "from": "meli",
      "to": "kumbala",
      "type": "beacon",
      "status": "inferred",
      "note": "TEC 'island' implies it; not independently witnessed"
    },
    {
      "from": "kumbala",
      "to": "tsurru",
      "type": "beacon"
    },
    {
      "from": "kumbala",
      "to": "harahuvati",
      "type": "knnu",
      "note": "Jewel Road; Ousoos Argosy"
    },
    {
      "from": "hellion",
      "to": "tsurru",
      "type": "knnu",
      "note": "6 light-years"
    },
    {
      "from": "landfall",
      "to": "arafel",
      "type": "beacon",
      "route": "Mishirru core line"
    },
    {
      "from": "arafel",
      "to": "cataract",
      "type": "beacon",
      "route": "Mishirru core line"
    },
    {
      "from": "cataract",
      "to": "oasis",
      "type": "beacon",
      "route": "Mishirru core line"
    },
    {
      "from": "oasis",
      "to": "scepter",
      "type": "beacon",
      "route": "Mishirru core line"
    },
    {
      "from": "scepter",
      "to": "alabaster",
      "type": "beacon",
      "route": "Mishirru core line"
    },
    {
      "from": "alabaster",
      "to": "destiny",
      "type": "beacon",
      "route": "Mishirru core line"
    },
    {
      "from": "destiny",
      "to": "aila",
      "type": "route",
      "status": "inferred",
      "render_pad": 3,
      "note": "Aila route reached 'via Destiny' (FH ch.89); hops unknown (render_pad is a presentation-only length cue, not a hop count) — bumped 2→3 to give the Mishirru-side chain more spring slack and reduce the eastward pull on the Phene cluster"
    },
    {
      "from": "destiny",
      "to": "sena",
      "type": "route",
      "status": "inferred",
      "render_pad": 3,
      "note": "Sun's Eighth Fleet 'attacked from Sena' and both prongs were staged from Destiny (FH ch.83); Mishirru-side intermediates unnamed. render_pad is a presentation-only length cue, not a hop count — bumped 2→3 along with the Aila prong"
    },
    {
      "from": "cataract",
      "to": "tomb",
      "type": "knnu",
      "route": "Cataract brown-dwarf chain",
      "status": "superseded",
      "note": "pre-beacon brown-dwarf stepping-stones; Crow-class ships only; superseded by the Cataract–Oasis Beacon"
    },
    {
      "from": "tomb",
      "to": "spring",
      "type": "knnu",
      "route": "Cataract brown-dwarf chain",
      "status": "superseded",
      "note": "pre-beacon brown-dwarf stepping-stones; Crow-class ships only; superseded by the Cataract–Oasis Beacon"
    },
    {
      "from": "spring",
      "to": "pool",
      "type": "knnu",
      "route": "Cataract brown-dwarf chain",
      "status": "superseded",
      "note": "pre-beacon brown-dwarf stepping-stones; Crow-class ships only; superseded by the Cataract–Oasis Beacon"
    },
    {
      "from": "pool",
      "to": "temple",
      "type": "knnu",
      "route": "Cataract brown-dwarf chain",
      "status": "superseded",
      "note": "pre-beacon brown-dwarf stepping-stones; Crow-class ships only; superseded by the Cataract–Oasis Beacon"
    },
    {
      "from": "temple",
      "to": "oracle",
      "type": "knnu",
      "route": "Cataract brown-dwarf chain",
      "status": "superseded",
      "note": "pre-beacon brown-dwarf stepping-stones; Crow-class ships only; superseded by the Cataract–Oasis Beacon"
    },
    {
      "from": "oracle",
      "to": "oasis",
      "type": "knnu",
      "route": "Cataract brown-dwarf chain",
      "status": "superseded",
      "note": "pre-beacon brown-dwarf stepping-stones; Crow-class ships only; superseded by the Cataract–Oasis Beacon"
    },
    {
      "from": "oracle",
      "to": "gyre",
      "type": "knnu",
      "status": "inferred",
      "note": "the Gyre lies beyond Oracle; position unmapped"
    },
    {
      "from": "harahuvati",
      "to": "destiny",
      "type": "route",
      "hops": 3,
      "note": "intermediates unnamed (Scepter/Alabaster only an unconfirmed guess)"
    },
    {
      "from": "harahuvati",
      "to": "belt_of_jewels",
      "type": "route",
      "render_pad": 4,
      "note": "the 'Belt of Jewels Road' (FH ch.70) out to the super-distant terminus; Sun's approach into Mishirru; hops unknown — render_pad is a length cue, not a count"
    },
    {
      "from": "sena",
      "to": "jorsha",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Sena prong)"
    },
    {
      "from": "jorsha",
      "to": "agate",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Sena prong)"
    },
    {
      "from": "agate",
      "to": "old_spiral",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Sena prong)"
    },
    {
      "from": "old_spiral",
      "to": "refuge",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Sena prong)"
    },
    {
      "from": "refuge",
      "to": "haymarket",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Sena prong)"
    },
    {
      "from": "haymarket",
      "to": "cut_stone",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Sena prong)"
    },
    {
      "from": "cut_stone",
      "to": "anchor",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Sena prong)"
    },
    {
      "from": "aila",
      "to": "alternity",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Aila prong)"
    },
    {
      "from": "alternity",
      "to": "hunger",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Aila prong)"
    },
    {
      "from": "hunger",
      "to": "rake",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Aila prong)"
    },
    {
      "from": "rake",
      "to": "gardens",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Aila prong)"
    },
    {
      "from": "gardens",
      "to": "anchor",
      "type": "beacon",
      "route": "Mishirru → Phene heartland (Aila prong)"
    },
    {
      "from": "t_harbor",
      "to": "tranquility",
      "type": "beacon",
      "note": "beacon at Harbor System's gas-giant L-4 — the one beacon canon explicitly names (FH ch.77)"
    },
    {
      "from": "tranquility",
      "to": "sogdia_limit",
      "type": "route",
      "note": "'more distant', via T-Harbor"
    },
    {
      "from": "na_iri",
      "to": "kaska",
      "type": "beacon",
      "name": "Kaska Beacon"
    },
    {
      "from": "na_iri",
      "to": "hatti",
      "type": "route",
      "status": "inferred",
      "render_pad": 1,
      "note": "Na Iri route 'links into the Hatti territories' (FH ch.58) — a corridor, hop count unstated (not a confirmed single beacon); render_pad:1 marks it as inferred-length, not a direct hop"
    },
    {
      "from": "kaska",
      "to": "t_harbor",
      "type": "knnu",
      "note": "ABSTRACTS the whole multi-gap caravan corridor (Kaska→Hatti→Samuha→Rosetta→…→T-Harbor), not a single knnu hop — the one graph edge that links the Tranquility exclave to the network. Kaska's actual outbound is a beacon drop into the caravan (FH ch.53)."
    },
    {
      "from": "larissa",
      "to": "chaonia",
      "type": "route",
      "hops": 2,
      "note": "one unnamed intermediate beacon"
    },
    {
      "from": "eel_gulf",
      "to": "yele",
      "type": "knnu",
      "note": "the 'short knnu hop' to Yele (FH ch.18)"
    },
    {
      "from": "eel_gulf",
      "to": "kanesh",
      "type": "knnu",
      "status": "inferred",
      "note": "Phene/Hesjan-side access ran through Kanesh's sphere — taking Kanesh cut the route (FH ch.18); the Eel Gulf↔Kanesh pairing and hop count are not stated"
    }
  ],
  "convergences": [
    {
      "convergence": "Tinker-Evers-Chance (Chaonian core)",
      "status": "active",
      "shape": "mutually-connected triad",
      "members": [
        "chaonia",
        "molossia",
        "thesprotis"
      ],
      "member_class": "scylla",
      "internal_edges": [
        [
          "chaonia",
          "molossia"
        ],
        [
          "molossia",
          "thesprotis"
        ],
        [
          "chaonia",
          "thesprotis"
        ]
      ],
      "polity": "chaonia"
    },
    {
      "convergence": "Tinker-Evers-Chance (Trinity Coalition)",
      "status": "active",
      "shape": "mutually-connected triad",
      "members": [
        "tsurru",
        "meli",
        "kumbala"
      ],
      "internal_edges": [
        [
          "tsurru",
          "meli"
        ],
        [
          "tsurru",
          "kumbala"
        ],
        [
          "meli",
          "kumbala"
        ]
      ],
      "polity": "trinity",
      "note": "second confirmed TEC convergence; survived the collapse as an isolated \"island\"",
      "external_knnu_routes": [
        {
          "system": "meli",
          "knnu_to": [
            "nalanda",
            "sankore"
          ],
          "thence": "3 beacons → Yele Prime"
        },
        {
          "system": "kumbala",
          "knnu_to": "harahuvati",
          "thence": "3 beacon drops → Destiny"
        },
        {
          "system": "tsurru",
          "knnu_to": "hellion",
          "gap": "6 light-years"
        }
      ]
    }
  ],
  "routes": [
    {
      "route": "Mishirru core line",
      "link_type": "beacon",
      "ordered": [
        "landfall",
        "arafel",
        "cataract",
        "oasis",
        "scepter",
        "alabaster",
        "destiny"
      ],
      "endpoints": {
        "terminus": "landfall",
        "capital": "destiny"
      },
      "named_members": 7,
      "core_members_stated": 8,
      "province_members": 14
    },
    {
      "route": "Cataract brown-dwarf chain",
      "ordered": [
        "cataract",
        "tomb",
        "spring",
        "pool",
        "temple",
        "oracle",
        "oasis"
      ],
      "link_type": "knnu",
      "status": "superseded",
      "note": "pre-beacon brown-dwarf stepping-stones; Crow-class ships only; superseded by the Cataract–Oasis Beacon"
    },
    {
      "route": "Mishirru → Phene heartland (Sena prong)",
      "link_type": "beacon",
      "crossings": {
        "mishirru_side": [
          "sena",
          "aila"
        ],
        "phene_side": [
          "jorsha",
          "alternity"
        ]
      },
      "ordered": [
        "sena",
        "jorsha",
        "agate",
        "old_spiral",
        "refuge",
        "haymarket",
        "cut_stone",
        "anchor"
      ]
    },
    {
      "route": "Mishirru → Phene heartland (Aila prong)",
      "link_type": "beacon",
      "ordered": [
        "aila",
        "alternity",
        "hunger",
        "rake",
        "gardens",
        "anchor"
      ]
    },
    {
      "route": "Outer-rim caravan route (Karnos ↔ Tranquility)",
      "link_type": "knnu",
      "ordered": [],
      "mode": "heterogeneous (beacon legs + knnu Argosy gaps over dead-beacon breaks)",
      "ordered_anchors": [
        "karnos",
        "na_iri",
        "kaska",
        "hatti",
        "samuha",
        "Rosetta (cartel boundary)",
        "Nusrat Quince",
        "(first of ~4 knnu hops)",
        "Orfeo",
        "(beacon → unpronounceable system)",
        "Segovia",
        "T-Harbor (Harbor System)",
        "tranquility",
        "sogdia_limit"
      ],
      "cartel_boundary": "Rosetta",
      "knnu_gaps": "3–5; first knnu hop begins past Nusrat (FH ch.57); named leg = the Proxima haul (4th, sometimes-uncounted)",
      "round_trip": "~2 years",
      "operators": "per-stage (Oreella Syndicate concession Na Iri→T-Harbor; a different Argosy per gap)",
      "hazards": [
        "Skuda raiders",
        "Gatoi brigands",
        "Hesjan corsairs"
      ],
      "function": "back door between the Phene core and Chaonian/Hatti space — NOT to the Yele League"
    }
  ]
}
