data(atlas): complete hop-2 body catalogs + corporations table

Hop-2 systems authored: Tessera/Corvel (legal archive, 1.3B),
Proxima/Ancora (first colony, Zheng He lore, 400M),
Meridian/Provenance (boomtown, 150M), Barnard's Star/Verada
(commuter town, 2B, wiki prose adjusted for surface-majority pop),
Prometheus/Galen+Chiron+Site Anterior (longevity monopoly, 55K),
Cygni B/Ferrath+Kihl Works (shipyards, 1.8B, 7 combines named),
Cairn (the anomaly — 7 apertures, 2 garden planets, zero population).

New: corporations table in systems.db schema. 20 records populated
from wiki/corporations/ + DSMC + 7 Cygni B combines (Vethara,
Kossler-Drun, Amberan Works, Talavec & Sons, Orren-Skel, Marhoud
Fabrication, Drevast Extraction).

Atlas CLI: fixed planet count defaults (6-8 minimum per star type,
was 2-4). Miri added Zheng He lore to Proxima wiki.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-24 23:23:12 +01:00
co-authored by Claude Opus 4.6
parent 7394a7669c
commit e05444f708
19 changed files with 1686 additions and 20 deletions
+16 -15
View File
@@ -769,27 +769,28 @@ fn generate_body_matrix(
.and_then(|s| s.chars().next())
.unwrap_or('M');
// Base planet count by spectral type (realistic defaults)
// Base planet count by spectral type.
// Sol has 8. TRAPPIST-1 (M-dwarf) has 7. Minimum 6 for any star.
let total_planets = if wiki_hab > 0 || wiki_inh > 0 {
// Wiki has data — use it as the inhabited/habitable core, add some barren ones
// Wiki has data — use it as the inhabited/habitable core, pad to realistic count
let known = wiki_hab.max(wiki_inh);
match spectral_char {
'O' | 'B' | 'A' => known + 1, // hot stars, fewer planets
'F' => known + 2,
'G' => known + 2, // sol-like
'K' => known + 1,
'M' => known + 1, // red dwarfs, compact systems
_ => known + 1,
'O' | 'B' | 'A' => (known + 4).max(6), // hot stars — fewer but still 6+
'F' => (known + 5).max(8), // bright — wide system, 8+
'G' => (known + 5).max(8), // sol-like — 8 is baseline
'K' => (known + 4).max(7), // cooler — 7+ typical
'M' => (known + 4).max(6), // compact but TRAPPIST-1 has 7
_ => (known + 4).max(6),
}
} else {
// No wiki data — generate reasonable count
// No wiki data — generate realistic count
match spectral_char {
'O' | 'B' | 'A' => 2,
'F' => 4,
'G' => 4,
'K' => 3,
'M' => 3,
_ => 3,
'O' | 'B' | 'A' => 6,
'F' => 8,
'G' => 8,
'K' => 7,
'M' => 6,
_ => 6,
}
};