From 26276a59f4499c44a6698c4dcc729451ec3ff031 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Fri, 13 Mar 2026 23:21:26 +0100 Subject: [PATCH] feat(docs): assign GJ catalog IDs to all 300 star systems All systems use Gliese-Jahreiss (GJ) designations as primary catalog. 35 real nearby stars assigned by proximity to Gateway; 265 fabricated across GJ sub-catalogs (main, southern, supplement, post-settlement). Notable assignments: - Gateway (S-001): GJ 71 / Tau Ceti - Alpha Centauri A/B (S-090): GJ 559A, binary junction at hop 3 - Delta Pavonis (S-265): GJ 780, core dead_end at hop 2 Co-Authored-By: Claude Opus 4.6 --- docs/design/star-map.json | 1202 ++++++++++++++++++++++++++--------- tooling/assign-astro-ids.py | 323 ++++++++++ 2 files changed, 1224 insertions(+), 301 deletions(-) create mode 100644 tooling/assign-astro-ids.py diff --git a/docs/design/star-map.json b/docs/design/star-map.json index 28f8ac468..d6b1cd801 100644 --- a/docs/design/star-map.json +++ b/docs/design/star-map.json @@ -26,7 +26,9 @@ "gate_connections": 4, "earth_proximity": "immediate", "hop_distance_from_gateway": 0, - "is_gateway": true + "is_gateway": true, + "astronomical_id": "GJ 71", + "proper_name": "Tau Ceti" }, { "system_id": "S-002", @@ -40,7 +42,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 6104", + "proper_name": null }, { "system_id": "S-003", @@ -54,7 +58,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 1072", + "proper_name": null }, { "system_id": "S-004", @@ -68,7 +74,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3411", + "proper_name": null }, { "system_id": "S-005", @@ -82,7 +90,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 4167", + "proper_name": null }, { "system_id": "S-006", @@ -96,7 +106,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 3287", + "proper_name": null }, { "system_id": "S-007", @@ -110,7 +122,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 1250", + "proper_name": null }, { "system_id": "S-008", @@ -124,7 +138,9 @@ "aperture_count": 4, "gate_connections": 4, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 178", + "proper_name": "Pi3 Orionis" }, { "system_id": "S-009", @@ -138,7 +154,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 68", + "proper_name": "107 Piscium" }, { "system_id": "S-010", @@ -152,7 +170,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "immediate", - "hop_distance_from_gateway": 1 + "hop_distance_from_gateway": 1, + "astronomical_id": "GJ 551", + "proper_name": "Proxima Centauri" }, { "system_id": "S-011", @@ -166,7 +186,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 954", + "proper_name": null }, { "system_id": "S-012", @@ -180,7 +202,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 4332", + "proper_name": null }, { "system_id": "S-013", @@ -194,7 +218,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 3187", + "proper_name": null }, { "system_id": "S-014", @@ -208,7 +234,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "immediate", - "hop_distance_from_gateway": 1 + "hop_distance_from_gateway": 1, + "astronomical_id": "GJ 411", + "proper_name": "Lalande 21185" }, { "system_id": "S-015", @@ -222,7 +250,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 475", + "proper_name": "Chara" }, { "system_id": "S-016", @@ -236,7 +266,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 3817", + "proper_name": null }, { "system_id": "S-017", @@ -250,7 +282,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 949", + "proper_name": null }, { "system_id": "S-018", @@ -264,7 +298,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 5471", + "proper_name": null }, { "system_id": "S-019", @@ -278,7 +314,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 2002", + "proper_name": null }, { "system_id": "S-020", @@ -292,7 +330,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 3574", + "proper_name": null }, { "system_id": "S-021", @@ -306,7 +346,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3794", + "proper_name": null }, { "system_id": "S-022", @@ -320,7 +362,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 5826", + "proper_name": null }, { "system_id": "S-023", @@ -334,7 +378,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 10 + "hop_distance_from_gateway": 10, + "astronomical_id": "GJ 1004", + "proper_name": null }, { "system_id": "S-024", @@ -348,7 +394,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 3223", + "proper_name": null }, { "system_id": "S-025", @@ -362,7 +410,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3974", + "proper_name": null }, { "system_id": "S-026", @@ -376,7 +426,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 3655", + "proper_name": null }, { "system_id": "S-027", @@ -390,7 +442,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 887", + "proper_name": "Lacaille 9352" }, { "system_id": "S-028", @@ -404,7 +458,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 2123", + "proper_name": null }, { "system_id": "S-029", @@ -418,7 +474,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 6284", + "proper_name": null }, { "system_id": "S-030", @@ -432,7 +490,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 3483", + "proper_name": null }, { "system_id": "S-031", @@ -446,7 +506,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 1160", + "proper_name": null }, { "system_id": "S-032", @@ -460,7 +522,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 1110", + "proper_name": null }, { "system_id": "S-033", @@ -474,7 +538,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 3127", + "proper_name": null }, { "system_id": "S-034", @@ -488,7 +554,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 5738", + "proper_name": null }, { "system_id": "S-035", @@ -502,7 +570,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 1003", + "proper_name": null }, { "system_id": "S-036", @@ -516,7 +586,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 5410", + "proper_name": null }, { "system_id": "S-037", @@ -530,7 +602,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 139", + "proper_name": "82 Eridani" }, { "system_id": "S-038", @@ -544,7 +618,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "distant", - "hop_distance_from_gateway": 11 + "hop_distance_from_gateway": 11, + "astronomical_id": "GJ 1073", + "proper_name": null }, { "system_id": "S-039", @@ -558,7 +634,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 3001", + "proper_name": null }, { "system_id": "S-040", @@ -572,7 +650,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 3305", + "proper_name": null }, { "system_id": "S-041", @@ -586,7 +666,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 1247", + "proper_name": null }, { "system_id": "S-042", @@ -600,7 +682,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 2102", + "proper_name": null }, { "system_id": "S-043", @@ -614,7 +698,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 5084", + "proper_name": null }, { "system_id": "S-044", @@ -628,7 +714,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 1132", + "proper_name": null }, { "system_id": "S-045", @@ -642,7 +730,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 3895", + "proper_name": null }, { "system_id": "S-046", @@ -656,7 +746,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 2052", + "proper_name": null }, { "system_id": "S-047", @@ -670,7 +762,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 845", + "proper_name": "Epsilon Indi" }, { "system_id": "S-048", @@ -684,7 +778,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 4055", + "proper_name": null }, { "system_id": "S-049", @@ -698,7 +794,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 11 + "hop_distance_from_gateway": 11, + "astronomical_id": "GJ 4222", + "proper_name": null }, { "system_id": "S-050", @@ -712,7 +810,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 3398", + "proper_name": null }, { "system_id": "S-051", @@ -726,7 +826,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 4238", + "proper_name": null }, { "system_id": "S-052", @@ -740,7 +842,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 868", + "proper_name": null }, { "system_id": "S-053", @@ -754,7 +858,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 2019", + "proper_name": null }, { "system_id": "S-054", @@ -768,7 +874,9 @@ "aperture_count": 4, "gate_connections": 4, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 506", + "proper_name": "61 Virginis" }, { "system_id": "S-055", @@ -782,7 +890,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3920", + "proper_name": null }, { "system_id": "S-056", @@ -796,7 +906,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3021", + "proper_name": null }, { "system_id": "S-057", @@ -810,7 +922,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 6052", + "proper_name": null }, { "system_id": "S-058", @@ -824,7 +938,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 1285", + "proper_name": null }, { "system_id": "S-059", @@ -838,7 +954,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 922", + "proper_name": null }, { "system_id": "S-060", @@ -852,7 +970,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 5692", + "proper_name": null }, { "system_id": "S-061", @@ -866,7 +986,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 244", + "proper_name": "Sirius" }, { "system_id": "S-062", @@ -880,7 +1002,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 4295", + "proper_name": null }, { "system_id": "S-063", @@ -894,7 +1018,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "distant", - "hop_distance_from_gateway": 13 + "hop_distance_from_gateway": 13, + "astronomical_id": "GJ 3650", + "proper_name": null }, { "system_id": "S-064", @@ -908,7 +1034,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 962", + "proper_name": null }, { "system_id": "S-065", @@ -922,7 +1050,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 4328", + "proper_name": null }, { "system_id": "S-066", @@ -936,7 +1066,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 1024", + "proper_name": null }, { "system_id": "S-067", @@ -950,7 +1082,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "immediate", - "hop_distance_from_gateway": 1 + "hop_distance_from_gateway": 1, + "astronomical_id": "GJ 699", + "proper_name": "Barnard's Star" }, { "system_id": "S-068", @@ -964,7 +1098,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3438", + "proper_name": null }, { "system_id": "S-069", @@ -978,7 +1114,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 11 + "hop_distance_from_gateway": 11, + "astronomical_id": "GJ 6330", + "proper_name": null }, { "system_id": "S-070", @@ -992,7 +1130,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 2011", + "proper_name": null }, { "system_id": "S-071", @@ -1006,7 +1146,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 524", + "proper_name": null }, { "system_id": "S-072", @@ -1020,7 +1162,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 2104", + "proper_name": null }, { "system_id": "S-073", @@ -1034,7 +1178,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3842", + "proper_name": null }, { "system_id": "S-074", @@ -1048,7 +1194,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 3571", + "proper_name": null }, { "system_id": "S-075", @@ -1062,7 +1210,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 3010", + "proper_name": null }, { "system_id": "S-076", @@ -1076,7 +1226,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 5217", + "proper_name": null }, { "system_id": "S-077", @@ -1090,7 +1242,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 2013", + "proper_name": null }, { "system_id": "S-078", @@ -1104,7 +1258,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 10 + "hop_distance_from_gateway": 10, + "astronomical_id": "GJ 3713", + "proper_name": null }, { "system_id": "S-079", @@ -1118,7 +1274,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 507", + "proper_name": null }, { "system_id": "S-080", @@ -1132,7 +1290,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 6231", + "proper_name": null }, { "system_id": "S-081", @@ -1146,7 +1306,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 6429", + "proper_name": null }, { "system_id": "S-082", @@ -1160,7 +1322,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 3916", + "proper_name": null }, { "system_id": "S-083", @@ -1174,7 +1338,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 12 + "hop_distance_from_gateway": 12, + "astronomical_id": "GJ 4164", + "proper_name": null }, { "system_id": "S-084", @@ -1188,7 +1354,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 15 + "hop_distance_from_gateway": 15, + "astronomical_id": "GJ 5094", + "proper_name": null }, { "system_id": "S-085", @@ -1202,7 +1370,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 2047", + "proper_name": null }, { "system_id": "S-086", @@ -1216,7 +1386,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 3737", + "proper_name": null }, { "system_id": "S-087", @@ -1230,7 +1402,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 3956", + "proper_name": null }, { "system_id": "S-088", @@ -1244,7 +1418,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 10 + "hop_distance_from_gateway": 10, + "astronomical_id": "GJ 3007", + "proper_name": null }, { "system_id": "S-089", @@ -1258,7 +1434,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 10 + "hop_distance_from_gateway": 10, + "astronomical_id": "GJ 6463", + "proper_name": null }, { "system_id": "S-090", @@ -1272,7 +1450,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 559A", + "proper_name": "Alpha Centauri A" }, { "system_id": "S-091", @@ -1286,7 +1466,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "immediate", - "hop_distance_from_gateway": 1 + "hop_distance_from_gateway": 1, + "astronomical_id": "GJ 144", + "proper_name": "Epsilon Eridani" }, { "system_id": "S-092", @@ -1300,7 +1482,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 4180", + "proper_name": null }, { "system_id": "S-093", @@ -1314,7 +1498,9 @@ "aperture_count": 4, "gate_connections": 4, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 380", + "proper_name": "Groombridge 1618" }, { "system_id": "S-094", @@ -1328,7 +1514,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 3020", + "proper_name": null }, { "system_id": "S-095", @@ -1342,7 +1530,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 4062", + "proper_name": null }, { "system_id": "S-096", @@ -1356,7 +1546,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 5528", + "proper_name": null }, { "system_id": "S-097", @@ -1370,7 +1562,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 5436", + "proper_name": null }, { "system_id": "S-098", @@ -1384,7 +1578,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 6402", + "proper_name": null }, { "system_id": "S-099", @@ -1398,7 +1594,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 6379", + "proper_name": null }, { "system_id": "S-100", @@ -1412,7 +1610,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 813", + "proper_name": null }, { "system_id": "S-101", @@ -1426,7 +1626,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 547", + "proper_name": null }, { "system_id": "S-102", @@ -1440,7 +1642,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3851", + "proper_name": null }, { "system_id": "S-103", @@ -1454,7 +1658,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 4097", + "proper_name": null }, { "system_id": "S-104", @@ -1468,7 +1674,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 3543", + "proper_name": null }, { "system_id": "S-105", @@ -1482,7 +1690,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 5326", + "proper_name": null }, { "system_id": "S-106", @@ -1496,7 +1706,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 250", + "proper_name": "Gliese 250" }, { "system_id": "S-107", @@ -1510,7 +1722,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 1253", + "proper_name": null }, { "system_id": "S-108", @@ -1524,7 +1738,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 709", + "proper_name": null }, { "system_id": "S-109", @@ -1538,7 +1754,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 3210", + "proper_name": null }, { "system_id": "S-110", @@ -1552,7 +1770,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 19", + "proper_name": "Beta Hydri" }, { "system_id": "S-111", @@ -1566,7 +1786,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 34", + "proper_name": "Eta Cassiopeiae" }, { "system_id": "S-112", @@ -1580,7 +1802,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 3768", + "proper_name": null }, { "system_id": "S-113", @@ -1594,7 +1818,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 4051", + "proper_name": null }, { "system_id": "S-114", @@ -1608,7 +1834,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 702", + "proper_name": "70 Ophiuchi" }, { "system_id": "S-115", @@ -1622,7 +1850,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 17 + "hop_distance_from_gateway": 17, + "astronomical_id": "GJ 3618", + "proper_name": null }, { "system_id": "S-116", @@ -1636,7 +1866,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 11 + "hop_distance_from_gateway": 11, + "astronomical_id": "GJ 3569", + "proper_name": null }, { "system_id": "S-117", @@ -1650,7 +1882,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 14 + "hop_distance_from_gateway": 14, + "astronomical_id": "GJ 3516", + "proper_name": null }, { "system_id": "S-118", @@ -1664,7 +1898,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 4047", + "proper_name": null }, { "system_id": "S-119", @@ -1678,7 +1914,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 764", + "proper_name": "Sigma Draconis" }, { "system_id": "S-120", @@ -1692,7 +1930,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 447", + "proper_name": "Ross 128" }, { "system_id": "S-121", @@ -1706,7 +1946,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 519", + "proper_name": null }, { "system_id": "S-122", @@ -1720,7 +1962,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 13 + "hop_distance_from_gateway": 13, + "astronomical_id": "GJ 3609", + "proper_name": null }, { "system_id": "S-123", @@ -1734,7 +1978,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 1123", + "proper_name": null }, { "system_id": "S-124", @@ -1748,7 +1994,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 11 + "hop_distance_from_gateway": 11, + "astronomical_id": "GJ 3996", + "proper_name": null }, { "system_id": "S-125", @@ -1762,7 +2010,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 5571", + "proper_name": null }, { "system_id": "S-126", @@ -1776,7 +2026,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 5174", + "proper_name": null }, { "system_id": "S-127", @@ -1790,7 +2042,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 3586", + "proper_name": null }, { "system_id": "S-128", @@ -1804,7 +2058,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 5239", + "proper_name": null }, { "system_id": "S-129", @@ -1818,7 +2074,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 3992", + "proper_name": null }, { "system_id": "S-130", @@ -1832,7 +2090,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 17 + "hop_distance_from_gateway": 17, + "astronomical_id": "GJ 4091", + "proper_name": null }, { "system_id": "S-131", @@ -1846,7 +2106,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 4363", + "proper_name": null }, { "system_id": "S-132", @@ -1860,7 +2122,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 1034", + "proper_name": null }, { "system_id": "S-133", @@ -1874,7 +2138,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 5588", + "proper_name": null }, { "system_id": "S-134", @@ -1888,7 +2154,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 2044", + "proper_name": null }, { "system_id": "S-135", @@ -1902,7 +2170,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 768", + "proper_name": "Altair" }, { "system_id": "S-136", @@ -1916,7 +2186,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3144", + "proper_name": null }, { "system_id": "S-137", @@ -1930,7 +2202,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 5632", + "proper_name": null }, { "system_id": "S-138", @@ -1944,7 +2218,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 4263", + "proper_name": null }, { "system_id": "S-139", @@ -1958,7 +2234,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 280", + "proper_name": "Procyon" }, { "system_id": "S-140", @@ -1972,7 +2250,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 4336", + "proper_name": null }, { "system_id": "S-141", @@ -1986,7 +2266,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 12 + "hop_distance_from_gateway": 12, + "astronomical_id": "GJ 6247", + "proper_name": null }, { "system_id": "S-142", @@ -2000,7 +2282,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 746", + "proper_name": null }, { "system_id": "S-143", @@ -2014,7 +2298,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 4213", + "proper_name": null }, { "system_id": "S-144", @@ -2028,7 +2314,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 799", + "proper_name": null }, { "system_id": "S-145", @@ -2042,7 +2330,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 4356", + "proper_name": null }, { "system_id": "S-146", @@ -2056,7 +2346,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 5149", + "proper_name": null }, { "system_id": "S-147", @@ -2070,7 +2362,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 11 + "hop_distance_from_gateway": 11, + "astronomical_id": "GJ 3798", + "proper_name": null }, { "system_id": "S-148", @@ -2084,7 +2378,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 2018", + "proper_name": null }, { "system_id": "S-149", @@ -2098,7 +2394,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 2015", + "proper_name": null }, { "system_id": "S-150", @@ -2112,7 +2410,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 18 + "hop_distance_from_gateway": 18, + "astronomical_id": "GJ 3332", + "proper_name": null }, { "system_id": "S-151", @@ -2126,7 +2426,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 4041", + "proper_name": null }, { "system_id": "S-152", @@ -2140,7 +2442,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 5742", + "proper_name": null }, { "system_id": "S-153", @@ -2154,7 +2458,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 5629", + "proper_name": null }, { "system_id": "S-154", @@ -2168,7 +2474,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 877", + "proper_name": null }, { "system_id": "S-155", @@ -2182,7 +2490,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 10 + "hop_distance_from_gateway": 10, + "astronomical_id": "GJ 3250", + "proper_name": null }, { "system_id": "S-156", @@ -2196,7 +2506,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 2037", + "proper_name": null }, { "system_id": "S-157", @@ -2210,7 +2522,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 4030", + "proper_name": null }, { "system_id": "S-158", @@ -2224,7 +2538,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 15 + "hop_distance_from_gateway": 15, + "astronomical_id": "GJ 3304", + "proper_name": null }, { "system_id": "S-159", @@ -2238,7 +2554,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 22 + "hop_distance_from_gateway": 22, + "astronomical_id": "GJ 2001", + "proper_name": null }, { "system_id": "S-160", @@ -2252,7 +2570,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 5559", + "proper_name": null }, { "system_id": "S-161", @@ -2266,7 +2586,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 183", + "proper_name": "HR 1614" }, { "system_id": "S-162", @@ -2280,7 +2602,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 4360", + "proper_name": null }, { "system_id": "S-163", @@ -2294,7 +2618,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 10 + "hop_distance_from_gateway": 10, + "astronomical_id": "GJ 3750", + "proper_name": null }, { "system_id": "S-164", @@ -2308,7 +2634,9 @@ "aperture_count": 7, "gate_connections": 7, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 820", + "proper_name": "61 Cygni" }, { "system_id": "S-165", @@ -2322,7 +2650,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3791", + "proper_name": null }, { "system_id": "S-166", @@ -2336,7 +2666,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 5006", + "proper_name": null }, { "system_id": "S-167", @@ -2350,7 +2682,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 14 + "hop_distance_from_gateway": 14, + "astronomical_id": "GJ 3222", + "proper_name": null }, { "system_id": "S-168", @@ -2364,7 +2698,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 166", + "proper_name": "Omicron2 Eridani" }, { "system_id": "S-169", @@ -2378,7 +2714,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 5587", + "proper_name": null }, { "system_id": "S-170", @@ -2392,7 +2730,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3432", + "proper_name": null }, { "system_id": "S-171", @@ -2406,7 +2746,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 5545", + "proper_name": null }, { "system_id": "S-172", @@ -2420,7 +2762,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 933", + "proper_name": null }, { "system_id": "S-173", @@ -2434,7 +2778,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 3453", + "proper_name": null }, { "system_id": "S-174", @@ -2448,7 +2794,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 5536", + "proper_name": null }, { "system_id": "S-175", @@ -2462,7 +2810,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3188", + "proper_name": null }, { "system_id": "S-176", @@ -2476,7 +2826,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "distant", - "hop_distance_from_gateway": 12 + "hop_distance_from_gateway": 12, + "astronomical_id": "GJ 3980", + "proper_name": null }, { "system_id": "S-177", @@ -2490,7 +2842,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 2087", + "proper_name": null }, { "system_id": "S-178", @@ -2504,7 +2858,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 2041", + "proper_name": null }, { "system_id": "S-179", @@ -2518,7 +2874,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 6149", + "proper_name": null }, { "system_id": "S-180", @@ -2532,7 +2890,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 3430", + "proper_name": null }, { "system_id": "S-181", @@ -2546,7 +2906,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 5195", + "proper_name": null }, { "system_id": "S-182", @@ -2560,7 +2922,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 6064", + "proper_name": null }, { "system_id": "S-183", @@ -2574,7 +2938,9 @@ "aperture_count": 4, "gate_connections": 4, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 6045", + "proper_name": null }, { "system_id": "S-184", @@ -2588,7 +2954,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 686", + "proper_name": null }, { "system_id": "S-185", @@ -2602,7 +2970,9 @@ "aperture_count": 4, "gate_connections": 4, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 2027", + "proper_name": null }, { "system_id": "S-186", @@ -2616,7 +2986,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 137", + "proper_name": "Kappa1 Ceti" }, { "system_id": "S-187", @@ -2630,7 +3002,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 2035", + "proper_name": null }, { "system_id": "S-188", @@ -2644,7 +3018,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 5518", + "proper_name": null }, { "system_id": "S-189", @@ -2658,7 +3034,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 4160", + "proper_name": null }, { "system_id": "S-190", @@ -2672,7 +3050,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 16 + "hop_distance_from_gateway": 16, + "astronomical_id": "GJ 4195", + "proper_name": null }, { "system_id": "S-191", @@ -2686,7 +3066,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 5108", + "proper_name": null }, { "system_id": "S-192", @@ -2700,7 +3082,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 785", + "proper_name": null }, { "system_id": "S-193", @@ -2714,7 +3098,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 3254", + "proper_name": null }, { "system_id": "S-194", @@ -2728,7 +3114,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 11 + "hop_distance_from_gateway": 11, + "astronomical_id": "GJ 624", + "proper_name": null }, { "system_id": "S-195", @@ -2742,7 +3130,9 @@ "aperture_count": 4, "gate_connections": 4, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 601", + "proper_name": null }, { "system_id": "S-196", @@ -2756,7 +3146,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 1044", + "proper_name": null }, { "system_id": "S-197", @@ -2770,7 +3162,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 11 + "hop_distance_from_gateway": 11, + "astronomical_id": "GJ 3938", + "proper_name": null }, { "system_id": "S-198", @@ -2784,7 +3178,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 1083", + "proper_name": null }, { "system_id": "S-199", @@ -2798,7 +3194,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 4266", + "proper_name": null }, { "system_id": "S-200", @@ -2812,7 +3210,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 3149", + "proper_name": null }, { "system_id": "S-201", @@ -2826,7 +3226,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 3482", + "proper_name": null }, { "system_id": "S-202", @@ -2840,7 +3242,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 4337", + "proper_name": null }, { "system_id": "S-203", @@ -2854,7 +3258,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 6421", + "proper_name": null }, { "system_id": "S-204", @@ -2868,7 +3274,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 4071", + "proper_name": null }, { "system_id": "S-205", @@ -2882,7 +3290,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "distant", - "hop_distance_from_gateway": 23 + "hop_distance_from_gateway": 23, + "astronomical_id": "GJ 4067", + "proper_name": null }, { "system_id": "S-206", @@ -2896,7 +3306,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "distant", - "hop_distance_from_gateway": 12 + "hop_distance_from_gateway": 12, + "astronomical_id": "GJ 5911", + "proper_name": null }, { "system_id": "S-207", @@ -2910,7 +3322,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 1252", + "proper_name": null }, { "system_id": "S-208", @@ -2924,7 +3338,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 10 + "hop_distance_from_gateway": 10, + "astronomical_id": "GJ 3533", + "proper_name": null }, { "system_id": "S-209", @@ -2938,7 +3354,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 590", + "proper_name": null }, { "system_id": "S-210", @@ -2952,7 +3370,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 5630", + "proper_name": null }, { "system_id": "S-211", @@ -2966,7 +3386,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 5850", + "proper_name": null }, { "system_id": "S-212", @@ -2980,7 +3402,9 @@ "aperture_count": 6, "gate_connections": 6, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 881", + "proper_name": "Fomalhaut" }, { "system_id": "S-213", @@ -2994,7 +3418,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 570", + "proper_name": "Gliese 570" }, { "system_id": "S-214", @@ -3008,7 +3434,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 10 + "hop_distance_from_gateway": 10, + "astronomical_id": "GJ 3968", + "proper_name": null }, { "system_id": "S-215", @@ -3022,7 +3450,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 19 + "hop_distance_from_gateway": 19, + "astronomical_id": "GJ 3368", + "proper_name": null }, { "system_id": "S-216", @@ -3036,7 +3466,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 6327", + "proper_name": null }, { "system_id": "S-217", @@ -3050,7 +3482,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 6127", + "proper_name": null }, { "system_id": "S-218", @@ -3064,7 +3498,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 16 + "hop_distance_from_gateway": 16, + "astronomical_id": "GJ 3984", + "proper_name": null }, { "system_id": "S-219", @@ -3078,7 +3514,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 4259", + "proper_name": null }, { "system_id": "S-220", @@ -3092,7 +3530,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 4254", + "proper_name": null }, { "system_id": "S-221", @@ -3106,7 +3546,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 13 + "hop_distance_from_gateway": 13, + "astronomical_id": "GJ 5387", + "proper_name": null }, { "system_id": "S-222", @@ -3120,7 +3562,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 535", + "proper_name": null }, { "system_id": "S-223", @@ -3134,7 +3578,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 2119", + "proper_name": null }, { "system_id": "S-224", @@ -3148,7 +3594,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 6499", + "proper_name": null }, { "system_id": "S-225", @@ -3162,7 +3610,9 @@ "aperture_count": 6, "gate_connections": 6, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 2038", + "proper_name": null }, { "system_id": "S-226", @@ -3176,7 +3626,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 10 + "hop_distance_from_gateway": 10, + "astronomical_id": "GJ 1280", + "proper_name": null }, { "system_id": "S-227", @@ -3190,7 +3642,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 1033", + "proper_name": null }, { "system_id": "S-228", @@ -3204,7 +3658,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 5579", + "proper_name": null }, { "system_id": "S-229", @@ -3218,7 +3674,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 5346", + "proper_name": null }, { "system_id": "S-230", @@ -3232,7 +3690,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 6317", + "proper_name": null }, { "system_id": "S-231", @@ -3246,7 +3706,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 5836", + "proper_name": null }, { "system_id": "S-232", @@ -3260,7 +3722,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 3017", + "proper_name": null }, { "system_id": "S-233", @@ -3274,7 +3738,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 3455", + "proper_name": null }, { "system_id": "S-234", @@ -3288,7 +3754,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 3244", + "proper_name": null }, { "system_id": "S-235", @@ -3302,7 +3770,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 53", + "proper_name": "Mu Cassiopeiae" }, { "system_id": "S-236", @@ -3316,7 +3786,9 @@ "aperture_count": 5, "gate_connections": 5, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 721", + "proper_name": "Vega" }, { "system_id": "S-237", @@ -3330,7 +3802,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 5083", + "proper_name": null }, { "system_id": "S-238", @@ -3344,7 +3818,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 3413", + "proper_name": null }, { "system_id": "S-239", @@ -3358,7 +3834,9 @@ "aperture_count": 4, "gate_connections": 4, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 451", + "proper_name": "Groombridge 1830" }, { "system_id": "S-240", @@ -3372,7 +3850,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 6387", + "proper_name": null }, { "system_id": "S-241", @@ -3386,7 +3866,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 3473", + "proper_name": null }, { "system_id": "S-242", @@ -3400,7 +3882,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 14 + "hop_distance_from_gateway": 14, + "astronomical_id": "GJ 3778", + "proper_name": null }, { "system_id": "S-243", @@ -3414,7 +3898,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 2003", + "proper_name": null }, { "system_id": "S-244", @@ -3428,7 +3914,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 1019", + "proper_name": null }, { "system_id": "S-245", @@ -3442,7 +3930,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 802", + "proper_name": null }, { "system_id": "S-246", @@ -3456,7 +3946,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 18 + "hop_distance_from_gateway": 18, + "astronomical_id": "GJ 757", + "proper_name": null }, { "system_id": "S-247", @@ -3470,7 +3962,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 2100", + "proper_name": null }, { "system_id": "S-248", @@ -3484,7 +3978,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 5250", + "proper_name": null }, { "system_id": "S-249", @@ -3498,7 +3994,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 5117", + "proper_name": null }, { "system_id": "S-250", @@ -3512,7 +4010,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 787", + "proper_name": null }, { "system_id": "S-251", @@ -3526,7 +4026,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 4345", + "proper_name": null }, { "system_id": "S-252", @@ -3540,7 +4042,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "distant", - "hop_distance_from_gateway": 19 + "hop_distance_from_gateway": 19, + "astronomical_id": "GJ 1182", + "proper_name": null }, { "system_id": "S-253", @@ -3554,7 +4058,9 @@ "aperture_count": 4, "gate_connections": 4, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 2046", + "proper_name": "HD 40307" }, { "system_id": "S-254", @@ -3568,7 +4074,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 582", + "proper_name": null }, { "system_id": "S-255", @@ -3582,7 +4090,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 4125", + "proper_name": null }, { "system_id": "S-256", @@ -3596,7 +4106,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 5639", + "proper_name": null }, { "system_id": "S-257", @@ -3610,7 +4122,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 4007", + "proper_name": null }, { "system_id": "S-258", @@ -3624,7 +4138,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 9 + "hop_distance_from_gateway": 9, + "astronomical_id": "GJ 4329", + "proper_name": null }, { "system_id": "S-259", @@ -3638,7 +4154,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 4064", + "proper_name": null }, { "system_id": "S-260", @@ -3652,7 +4170,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "distant", - "hop_distance_from_gateway": 17 + "hop_distance_from_gateway": 17, + "astronomical_id": "GJ 2058", + "proper_name": null }, { "system_id": "S-261", @@ -3666,7 +4186,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 5173", + "proper_name": null }, { "system_id": "S-262", @@ -3680,7 +4202,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 21 + "hop_distance_from_gateway": 21, + "astronomical_id": "GJ 6348", + "proper_name": null }, { "system_id": "S-263", @@ -3694,7 +4218,9 @@ "aperture_count": 4, "gate_connections": 4, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 6342", + "proper_name": null }, { "system_id": "S-264", @@ -3708,7 +4234,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 3300", + "proper_name": null }, { "system_id": "S-265", @@ -3722,7 +4250,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 780", + "proper_name": "Delta Pavonis" }, { "system_id": "S-266", @@ -3736,7 +4266,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 4063", + "proper_name": null }, { "system_id": "S-267", @@ -3750,7 +4282,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 503", + "proper_name": null }, { "system_id": "S-268", @@ -3764,7 +4298,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 5887", + "proper_name": null }, { "system_id": "S-269", @@ -3778,7 +4314,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 925", + "proper_name": null }, { "system_id": "S-270", @@ -3792,7 +4330,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 4065", + "proper_name": null }, { "system_id": "S-271", @@ -3806,7 +4346,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 6075", + "proper_name": null }, { "system_id": "S-272", @@ -3820,7 +4362,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 3224", + "proper_name": null }, { "system_id": "S-273", @@ -3834,7 +4378,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 1174", + "proper_name": null }, { "system_id": "S-274", @@ -3848,7 +4394,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 3356", + "proper_name": null }, { "system_id": "S-275", @@ -3862,7 +4410,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 717", + "proper_name": null }, { "system_id": "S-276", @@ -3876,7 +4426,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 5507", + "proper_name": null }, { "system_id": "S-277", @@ -3890,7 +4442,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 3522", + "proper_name": null }, { "system_id": "S-278", @@ -3904,7 +4458,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 3290", + "proper_name": null }, { "system_id": "S-279", @@ -3918,7 +4474,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 3 + "hop_distance_from_gateway": 3, + "astronomical_id": "GJ 4035", + "proper_name": null }, { "system_id": "S-280", @@ -3932,7 +4490,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 10 + "hop_distance_from_gateway": 10, + "astronomical_id": "GJ 2138", + "proper_name": null }, { "system_id": "S-281", @@ -3946,7 +4506,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 4196", + "proper_name": null }, { "system_id": "S-282", @@ -3960,7 +4522,9 @@ "aperture_count": 4, "gate_connections": 4, "earth_proximity": "proximate", - "hop_distance_from_gateway": 4 + "hop_distance_from_gateway": 4, + "astronomical_id": "GJ 4078", + "proper_name": null }, { "system_id": "S-283", @@ -3974,7 +4538,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 5037", + "proper_name": null }, { "system_id": "S-284", @@ -3988,7 +4554,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 14 + "hop_distance_from_gateway": 14, + "astronomical_id": "GJ 1214", + "proper_name": null }, { "system_id": "S-285", @@ -4002,7 +4570,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 2083", + "proper_name": null }, { "system_id": "S-286", @@ -4016,7 +4586,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 13 + "hop_distance_from_gateway": 13, + "astronomical_id": "GJ 3889", + "proper_name": null }, { "system_id": "S-287", @@ -4030,7 +4602,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 5553", + "proper_name": null }, { "system_id": "S-288", @@ -4044,7 +4618,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 6 + "hop_distance_from_gateway": 6, + "astronomical_id": "GJ 5678", + "proper_name": null }, { "system_id": "S-289", @@ -4058,7 +4634,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 7 + "hop_distance_from_gateway": 7, + "astronomical_id": "GJ 5519", + "proper_name": null }, { "system_id": "S-290", @@ -4072,7 +4650,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 8 + "hop_distance_from_gateway": 8, + "astronomical_id": "GJ 6095", + "proper_name": null }, { "system_id": "S-291", @@ -4086,7 +4666,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 11 + "hop_distance_from_gateway": 11, + "astronomical_id": "GJ 549", + "proper_name": null }, { "system_id": "S-292", @@ -4100,7 +4682,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 12 + "hop_distance_from_gateway": 12, + "astronomical_id": "GJ 916", + "proper_name": null }, { "system_id": "S-293", @@ -4114,7 +4698,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 16 + "hop_distance_from_gateway": 16, + "astronomical_id": "GJ 5179", + "proper_name": null }, { "system_id": "S-294", @@ -4128,7 +4714,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 614", + "proper_name": null }, { "system_id": "S-295", @@ -4142,7 +4730,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 15 + "hop_distance_from_gateway": 15, + "astronomical_id": "GJ 2005", + "proper_name": null }, { "system_id": "S-296", @@ -4156,7 +4746,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 12 + "hop_distance_from_gateway": 12, + "astronomical_id": "GJ 583", + "proper_name": null }, { "system_id": "S-297", @@ -4170,7 +4762,9 @@ "aperture_count": 1, "gate_connections": 1, "earth_proximity": "immediate", - "hop_distance_from_gateway": 2 + "hop_distance_from_gateway": 2, + "astronomical_id": "GJ 667C", + "proper_name": "Gliese 667 C" }, { "system_id": "S-298", @@ -4184,7 +4778,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 1069", + "proper_name": null }, { "system_id": "S-299", @@ -4198,7 +4794,9 @@ "aperture_count": 2, "gate_connections": 2, "earth_proximity": "distant", - "hop_distance_from_gateway": 20 + "hop_distance_from_gateway": 20, + "astronomical_id": "GJ 3049", + "proper_name": null }, { "system_id": "S-300", @@ -4212,7 +4810,9 @@ "aperture_count": 3, "gate_connections": 3, "earth_proximity": "proximate", - "hop_distance_from_gateway": 5 + "hop_distance_from_gateway": 5, + "astronomical_id": "GJ 5009", + "proper_name": null } ], "edges": [ @@ -5553,4 +6153,4 @@ "S-075" ] ] -} \ No newline at end of file +} diff --git a/tooling/assign-astro-ids.py b/tooling/assign-astro-ids.py new file mode 100644 index 000000000..e72b3aa43 --- /dev/null +++ b/tooling/assign-astro-ids.py @@ -0,0 +1,323 @@ +#!/usr/bin/env python3 +""" +assign-astro-ids.py +Assigns astronomical_id and proper_name fields to all 300 systems in star-map.json. + +All systems use Gliese-Jahreiss (GJ) catalog designations as primary identifier. +The GJ catalog is the catalog of nearby stars — a natural fit for the Settled Reach. + +Logic: +- 36 real stars assigned by proximity/topology matching (closest to Gateway first) +- ~264 remaining systems get fabricated GJ numbers +- All assignments are deterministic (seeded RNG from system_id hash) +- Gateway (S-001) gets GJ 71 (Tau Ceti) +""" + +import json +import hashlib +import random +from pathlib import Path + +STAR_MAP_PATH = Path(__file__).parent.parent / "docs/design/star-map.json" + +# ─── Real star pool ──────────────────────────────────────────────────────────── +# All nearby stars have GJ designations. Fields: (gj_id, proper_name, star_class, distance_ly, notes) +REAL_STARS = [ + ("GJ 551", "Proxima Centauri", "M", 4.2, None), + ("GJ 559A", "Alpha Centauri A", "G", 4.4, None), + ("GJ 559B", "Alpha Centauri B", "K", 4.4, "binary_companion"), + ("GJ 699", "Barnard's Star", "M", 5.9, None), + ("GJ 244", "Sirius", "A", 8.6, "too_hot"), + ("GJ 411", "Lalande 21185", "M", 8.3, None), + ("GJ 144", "Epsilon Eridani", "K", 10.5, None), + ("GJ 447", "Ross 128", "M", 10.9, None), + ("GJ 887", "Lacaille 9352", "M", 10.7, None), + ("GJ 280", "Procyon", "F", 11.4, None), + ("GJ 820", "61 Cygni", "K", 11.4, None), + ("GJ 845", "Epsilon Indi", "K", 11.8, None), + ("GJ 71", "Tau Ceti", "G", 11.9, "gateway"), + ("GJ 380", "Groombridge 1618", "K", 15.9, None), + ("GJ 702", "70 Ophiuchi", "K", 16.6, None), + ("GJ 166", "Omicron2 Eridani", "K", 16.4, None), + ("GJ 768", "Altair", "A", 16.8, "too_hot"), + ("GJ 764", "Sigma Draconis", "G", 18.8, None), + ("GJ 570", "Gliese 570", "K", 19.2, None), + ("GJ 139", "82 Eridani", "G", 19.8, None), + ("GJ 780", "Delta Pavonis", "G", 19.9, None), + ("GJ 667C", "Gliese 667 C", "M", 22.7, None), + ("GJ 68", "107 Piscium", "K", 24.4, None), + ("GJ 19", "Beta Hydri", "G", 24.4, None), + ("GJ 34", "Eta Cassiopeiae", "G", 24.6, None), + ("GJ 53", "Mu Cassiopeiae", "G", 24.6, None), + ("GJ 881", "Fomalhaut", "A", 25.1, "too_hot"), + ("GJ 721", "Vega", "A", 25.3, "too_hot"), + ("GJ 178", "Pi3 Orionis", "F", 26.2, None), + ("GJ 475", "Chara", "G", 27.4, None), + ("GJ 506", "61 Virginis", "G", 27.8, None), + ("GJ 250", "Gliese 250", "K", 28.4, None), + ("GJ 183", "HR 1614", "K", 28.4, None), + ("GJ 137", "Kappa1 Ceti", "G", 29.8, None), + ("GJ 451", "Groombridge 1830", "G", 29.9, None), + ("GJ 2046", "HD 40307", "K", 42.0, None), +] + +# Collect all reserved GJ numbers (as strings for consistent comparison) +RESERVED_GJ = set() +for cat_id, _, _, _, _ in REAL_STARS: + RESERVED_GJ.add(cat_id) + + +def system_rng(system_id: str, salt: str = "") -> random.Random: + """Return a seeded RNG deterministic for this system_id + salt.""" + h = hashlib.sha256(f"{system_id}:{salt}".encode()).digest() + seed = int.from_bytes(h[:8], "big") + return random.Random(seed) + + +def fabricate_gj(system_id: str, used: set[str]) -> str: + """ + Fabricate a plausible GJ catalog designation. + + Uses the full range of GJ numbering styles for authenticity: + - GJ 1-999: main catalog (sparse — most taken by real stars) + - GJ 1001-1299: southern extension + - GJ 2001-2159: supplement (Gliese & Jahreiss 1979) + - GJ 3001-3999: supplement (CNS3, faint nearby stars) + - GJ 4001-4383: supplement (CNS4) + - GJ 5001+: our fabrication range for "post-settlement survey" + + We weight toward the supplementary catalogs (3xxx, 4xxx, 5xxx) since + the main catalog numbers are more likely to collide with real stars. + """ + rng = system_rng(system_id, "GJ_fab") + + # Weighted range selection: + # 10% main (500-999), 10% southern (1001-1299), 10% supplement2 (2001-2159), + # 30% supplement3 (3001-3999), 15% supplement4 (4001-4383), 25% post-settlement (5001-6500) + ranges = [ + (500, 999, 0.10), + (1001, 1299, 0.10), + (2001, 2159, 0.10), + (3001, 3999, 0.30), + (4001, 4383, 0.15), + (5001, 6500, 0.25), + ] + + for _ in range(2000): + # Pick a range by weight + roll = rng.random() + cumulative = 0.0 + lo, hi = 3001, 3999 # default + for r_lo, r_hi, weight in ranges: + cumulative += weight + if roll < cumulative: + lo, hi = r_lo, r_hi + break + + n = rng.randint(lo, hi) + candidate = f"GJ {n}" + if candidate not in RESERVED_GJ and candidate not in used: + used.add(candidate) + return candidate + + # Fallback: scan upward in post-settlement range + n = 5001 + while f"GJ {n}" in RESERVED_GJ or f"GJ {n}" in used: + n += 1 + candidate = f"GJ {n}" + used.add(candidate) + return candidate + + +def topology_rank(node: dict) -> int: + """Higher = more notable for real-star assignment priority.""" + scores = {"hub": 5, "junction": 4, "loop_member": 3, "through_route": 2, "spur_end": 1, "dead_end": 0} + return scores.get(node.get("gate_topology", ""), 0) + + +def main(): + with open(STAR_MAP_PATH, "r") as f: + data = json.load(f) + + nodes = data["nodes"] + + # ─── Step 1: Sort systems for real-star matching ────────────────────────── + sortable = sorted(nodes, key=lambda n: ( + n.get("hop_distance_from_gateway", 999), + -topology_rank(n), + n["system_id"] + )) + + # ─── Step 2: Pin Gateway to Tau Ceti (GJ 71) ───────────────────────────── + gateway_star = next(s for s in REAL_STARS if s[4] == "gateway") + assigned_catalog_ids: set[str] = {gateway_star[0]} + assignments: dict[str, tuple[str, str | None]] = {} + assignments["S-001"] = (gateway_star[0], gateway_star[1]) + + # ─── Step 3: Separate hot A-type stars for special handling ─────────────── + hot_stars = [s for s in REAL_STARS if s[4] == "too_hot"] + normal_stars = [s for s in REAL_STARS if s[4] not in ("gateway", "too_hot", "binary_companion")] + + # Sort normal stars by distance from Sol + normal_stars_sorted = sorted(normal_stars, key=lambda s: s[3]) + + # ─── Step 4: Handle Alpha Centauri binary ───────────────────────────────── + alpha_a = next(s for s in REAL_STARS if s[0] == "GJ 559A") + alpha_b = next(s for s in REAL_STARS if s[0] == "GJ 559B") + + # Find a binary-type system within hop 5 for Alpha Centauri + binary_systems = [n for n in sortable if n.get("star_type") == "binary"] + binary_assigned = False + for bs in binary_systems: + if bs["system_id"] == "S-001": + continue + if bs.get("hop_distance_from_gateway", 999) <= 5: + assignments[bs["system_id"]] = (alpha_a[0], alpha_a[1]) + assigned_catalog_ids.add(alpha_a[0]) + assigned_catalog_ids.add(alpha_b[0]) # mark companion as used + binary_assigned = True + print(f" Binary: {bs['system_id']} -> {alpha_a[0]} (Alpha Centauri A/B)") + break + + if not binary_assigned: + # No binary found; Alpha A stays in normal pool, skip B + assigned_catalog_ids.add(alpha_b[0]) + print(" No binary system within hop 5; Alpha Centauri B skipped.") + + # Remove already-assigned stars from normal pool + normal_pool = [s for s in normal_stars_sorted if s[0] not in assigned_catalog_ids] + + # ─── Step 5: Assign normal real stars by proximity ──────────────────────── + pool_idx = 0 + for node in sortable: + if pool_idx >= len(normal_pool): + break + sid = node["system_id"] + if sid in assignments: + continue + + star = normal_pool[pool_idx] + assignments[sid] = (star[0], star[1]) + assigned_catalog_ids.add(star[0]) + pool_idx += 1 + + # ─── Step 6: Assign hot A-type stars to notable hubs/junctions ──────────── + hub_junction_candidates = sorted( + [n for n in nodes if n["system_id"] not in assignments + and n.get("gate_topology") in ("hub", "junction")], + key=lambda n: (-topology_rank(n), n.get("hop_distance_from_gateway", 999)) + ) + + for i, hot_star in enumerate(hot_stars): + if i < len(hub_junction_candidates): + sid = hub_junction_candidates[i]["system_id"] + else: + # Fallback: any unassigned system + sid = next(n["system_id"] for n in sortable if n["system_id"] not in assignments) + assignments[sid] = (hot_star[0], hot_star[1]) + assigned_catalog_ids.add(hot_star[0]) + + real_count = len(assignments) + print(f"\nReal star assignments: {real_count}") + + # ─── Step 7: Fabricate GJ IDs for remaining systems ─────────────────────── + used_gj: set[str] = set(RESERVED_GJ) # protect all real GJ numbers + + fabricated_count = 0 + for node in nodes: + sid = node["system_id"] + if sid not in assignments: + fab_id = fabricate_gj(sid, used_gj) + assignments[sid] = (fab_id, None) + fabricated_count += 1 + + # ─── Step 8: Apply to nodes ─────────────────────────────────────────────── + for node in nodes: + sid = node["system_id"] + cat_id, proper = assignments[sid] + node["astronomical_id"] = cat_id + node["proper_name"] = proper + + # ─── Step 9: Write back ─────────────────────────────────────────────────── + with open(STAR_MAP_PATH, "w") as f: + json.dump(data, f, indent=2) + f.write("\n") + + # ─── Step 10: Summary report ────────────────────────────────────────────── + print(f"\n{'='*60}") + print("ASTRONOMICAL ID ASSIGNMENT COMPLETE") + print(f"{'='*60}") + print(f"Total systems: {len(nodes)}") + print(f"Real star assigned: {real_count}") + print(f"Fabricated: {fabricated_count}") + + # GJ range breakdown + range_counts = {"main (1-999)": 0, "southern (1001-1299)": 0, "supp2 (2001-2159)": 0, + "supp3 (3001-3999)": 0, "supp4 (4001-4383)": 0, "post-settlement (5001+)": 0, "special": 0} + for node in nodes: + aid = node["astronomical_id"] + if not aid.startswith("GJ "): + range_counts["special"] += 1 + continue + # Parse the number + num_str = aid[3:].rstrip("ABC") + try: + num = int(num_str) + except ValueError: + range_counts["special"] += 1 + continue + if num <= 999: + range_counts["main (1-999)"] += 1 + elif num <= 1299: + range_counts["southern (1001-1299)"] += 1 + elif num <= 2159: + range_counts["supp2 (2001-2159)"] += 1 + elif num <= 3999: + range_counts["supp3 (3001-3999)"] += 1 + elif num <= 4383: + range_counts["supp4 (4001-4383)"] += 1 + else: + range_counts["post-settlement (5001+)"] += 1 + + print("\nGJ range distribution:") + for label, count in range_counts.items(): + if count > 0: + pct = count / len(nodes) * 100 + print(f" {label:28s} {count:3d} ({pct:.1f}%)") + + # Real star assignment table + print(f"\nReal star assignments by hop distance:") + print(f" {'System':8s} {'Hop':4s} {'Topology':14s} {'Type':6s} {'GJ ID':10s} {'Proper Name'}") + print(f" {'─'*8} {'─'*4} {'─'*14} {'─'*6} {'─'*10} {'─'*25}") + + real_sids = {sid for sid, (_, name) in assignments.items() if name is not None} + node_by_id = {n["system_id"]: n for n in nodes} + + for node in sorted( + [node_by_id[sid] for sid in real_sids], + key=lambda n: (n.get("hop_distance_from_gateway", 999), n["system_id"]) + ): + sid = node["system_id"] + hop = node.get("hop_distance_from_gateway", "?") + topo = node.get("gate_topology", "?") + stype = node.get("star_type", "?") + cat = node["astronomical_id"] + name = node["proper_name"] + print(f" {sid:8s} {str(hop):4s} {topo:14s} {stype:6s} {cat:10s} {name}") + + # Verify no duplicates + all_astro_ids = [n["astronomical_id"] for n in nodes] + unique_ids = set(all_astro_ids) + if len(unique_ids) != len(all_astro_ids): + dupes = [aid for aid in all_astro_ids if all_astro_ids.count(aid) > 1] + print(f"\nWARNING: {len(all_astro_ids) - len(unique_ids)} duplicate astronomical_id(s)!") + for d in sorted(set(dupes)): + print(f" DUPE: {d}") + else: + print(f"\nCollision check: PASSED — all {len(unique_ids)} astronomical_ids unique.") + + print(f"\nWritten to: {STAR_MAP_PATH}") + + +if __name__ == "__main__": + main()