data(atlas): Schuilhoek — four Dutch farming worlds behind Cairn

GJ 68/Schuilhoek: Zomer (800K, warm, grains), Lente (600K, cool,
leafy staples), Herfst (400K, soft fruit), Winter (200K, low-g
pasture). 300-year-old farming commune, no external contact, 2M
total across four cultivated worlds. No orbital infrastructure.

Fixed sync-wiki topology clobbering bug. Restored topology sections
for Cairn (GJ 845) and Aurelius (GJ 783A).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-25 13:43:53 +01:00
co-authored by Claude Opus 4.6
parent e5956e8bdd
commit c90a916230
5 changed files with 71 additions and 19 deletions
+32
View File
@@ -0,0 +1,32 @@
{
"system_id": "GJ 68",
"proper_name": "Schuilhoek",
"star_type": "K",
"spectral_class": "K1V",
"wiki_data": {
"habitable_count": 4,
"inhabited_count": 4,
"has_gas_giant": true,
"has_asteroid_belt": true,
"has_horizon_station": true,
"raw_bodies_line": null
},
"bodies": [
{"body_id": "GJ68b", "proper_name": null, "body_type": "planet", "orbit_index": 1, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": "terrestrial", "surface_gravity": 0.28, "orbital_period_days": 22, "rotation_period_hours": 528, "atmosphere": "none", "biome_summary": "barren", "hydrosphere": "none", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "inner rocky"},
{"body_id": "GJ68c", "proper_name": "Zomer", "body_type": "planet", "orbit_index": 2, "parent_body_id": null, "inhabited": true, "population": 800000, "mass_class": "terrestrial", "surface_gravity": 0.88, "orbital_period_days": 180, "rotation_period_hours": 22.0, "atmosphere": "breathable", "biome_summary": "arid", "hydrosphere": "rivers", "economic_role": "agricultural", "settlement_pattern": "dispersed_rural", "industrial_corridor": null, "notes": "warm and dry, root vegetables, legumes, crossbred grains, Raad meets here"},
{"body_id": "GJ68d", "proper_name": "Lente", "body_type": "planet", "orbit_index": 3, "parent_body_id": null, "inhabited": true, "population": 600000, "mass_class": "terrestrial", "surface_gravity": 0.84, "orbital_period_days": 320, "rotation_period_hours": 25.5, "atmosphere": "breathable", "biome_summary": "temperate", "hydrosphere": "ocean", "economic_role": "agricultural", "settlement_pattern": "dispersed_rural", "industrial_corridor": null, "notes": "cool, high moisture, leafy staples"},
{"body_id": "GJ68e", "proper_name": "Herfst", "body_type": "planet", "orbit_index": 4, "parent_body_id": null, "inhabited": true, "population": 400000, "mass_class": "terrestrial", "surface_gravity": 0.80, "orbital_period_days": 480, "rotation_period_hours": 23.0, "atmosphere": "breathable", "biome_summary": "temperate", "hydrosphere": "rivers", "economic_role": "agricultural", "settlement_pattern": "dispersed_rural", "industrial_corridor": null, "notes": "soft fruit land"},
{"body_id": "GJ68e-1", "proper_name": null, "body_type": "moon", "orbit_index": 1, "parent_body_id": "GJ68e", "inhabited": false, "population": 0, "mass_class": "dwarf", "surface_gravity": 0.06, "orbital_period_days": 14.0, "rotation_period_hours": 336, "atmosphere": "none", "biome_summary": "barren", "hydrosphere": "none", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": ""},
{"body_id": "GJ68f", "proper_name": "Winter", "body_type": "planet", "orbit_index": 5, "parent_body_id": null, "inhabited": true, "population": 200000, "mass_class": "terrestrial", "surface_gravity": 0.72, "orbital_period_days": 700, "rotation_period_hours": 28.0, "atmosphere": "breathable", "biome_summary": "temperate", "hydrosphere": "rivers", "economic_role": "agricultural", "settlement_pattern": "dispersed_rural", "industrial_corridor": null, "notes": "low gravity pasture, livestock herds"},
{"body_id": "GJ68g", "proper_name": null, "body_type": "planet", "orbit_index": 6, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": "terrestrial", "surface_gravity": 0.45, "orbital_period_days": 1100, "rotation_period_hours": 17.0, "atmosphere": "thin", "biome_summary": "frozen", "hydrosphere": "ice", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": ""},
{"body_id": "GJ68h", "proper_name": null, "body_type": "planet", "orbit_index": 7, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": "terrestrial", "surface_gravity": 0.38, "orbital_period_days": 1600, "rotation_period_hours": 15.5, "atmosphere": "none", "biome_summary": "frozen", "hydrosphere": "none", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": "outer frozen"},
{"body_id": "GJ68-belt", "proper_name": null, "body_type": "asteroid_belt", "orbit_index": 8, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": null, "surface_gravity": null, "orbital_period_days": null, "rotation_period_hours": null, "atmosphere": null, "biome_summary": null, "hydrosphere": null, "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": ""},
{"body_id": "GJ68i", "proper_name": null, "body_type": "gas_giant", "orbit_index": 9, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": "gas_giant", "surface_gravity": null, "orbital_period_days": 3000, "rotation_period_hours": 11.5, "atmosphere": "dense", "biome_summary": null, "hydrosphere": null, "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": ""},
{"body_id": "GJ68i-1", "proper_name": null, "body_type": "moon", "orbit_index": 1, "parent_body_id": "GJ68i", "inhabited": false, "population": 0, "mass_class": "dwarf", "surface_gravity": 0.08, "orbital_period_days": 4.5, "rotation_period_hours": 108, "atmosphere": "none", "biome_summary": "barren", "hydrosphere": "none", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": ""},
{"body_id": "GJ68i-2", "proper_name": null, "body_type": "moon", "orbit_index": 2, "parent_body_id": "GJ68i", "inhabited": false, "population": 0, "mass_class": "dwarf", "surface_gravity": 0.05, "orbital_period_days": 11.0, "rotation_period_hours": 264, "atmosphere": "none", "biome_summary": "frozen", "hydrosphere": "ice", "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": ""},
{"body_id": "GJ68-oort", "proper_name": null, "body_type": "oort_cloud", "orbit_index": 10, "parent_body_id": null, "inhabited": false, "population": 0, "mass_class": null, "surface_gravity": null, "orbital_period_days": null, "rotation_period_hours": null, "atmosphere": null, "biome_summary": null, "hydrosphere": null, "economic_role": null, "settlement_pattern": null, "industrial_corridor": null, "notes": ""}
],
"stations": [
{"station_id": "GJ68-oort-S1", "proper_name": "Horizon Station", "orbits_body_id": "GJ68-oort", "station_type": "horizon", "population": 0, "economic_role": "transit", "docking_class": "standard", "has_gate_infrastructure": true, "notes": "2 apertures"}
]
}
+6 -19
View File
@@ -1666,26 +1666,13 @@ fn cmd_sync_wiki(conn: &Connection, system_id: Option<&str>, wiki_dir: &str) {
.unwrap_or(content.len());
format!("{}{}\n{}", &content[..start_pos], section.trim_end(), &content[end_offset..])
} else {
// Insert after the System Profile section (after the first "---" pair)
// Find the second "---" which ends the System Profile
let mut dashes = 0;
let mut insert_pos = None;
for (i, line) in content.lines().enumerate() {
if line.trim() == "---" {
dashes += 1;
if dashes == 3 {
// Third --- is end of System Profile
let byte_pos: usize = content.lines().take(i + 1).map(|l| l.len() + 1).sum();
insert_pos = Some(byte_pos);
break;
}
}
}
if let Some(pos) = insert_pos {
format!("{}\n{}\n---\n\n{}", &content[..pos], section.trim_end(), &content[pos..])
// Insert before ## Topology if it exists, otherwise before end of file
if let Some(topo_pos) = content.find("\n## Topology") {
let insert_pos = topo_pos + 1; // after the newline
format!("{}{}\n\n{}", &content[..insert_pos], section.trim_end(), &content[insert_pos..])
} else {
// Fallback: append at end
format!("{}\n{}", content, section)
// No topology section — append at end
format!("{}\n{}", content.trim_end(), section)
}
};
+25
View File
@@ -78,6 +78,31 @@ Three hundred years of multi-world agricultural knowledge, held by a community t
---
## Celestial Bodies
<!-- READ-ONLY — generated from systems.db bodies/stations tables -->
| Orbit | ID | Name | Type | Inhabited | Pop | Mass | Gravity | Year (d) | Day (h) | Atmo | Biome | Hydro | Economy | Settlement | Industrial |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | `GJ68b` | — | planet | no | — | terrestrial | 0.28g | 22 | 528.0 | none | barren | none | — | — | — |
| 2 | `GJ68c` | Zomer | planet | yes | 800K | terrestrial | 0.88g | 180 | 22.0 | breathable | arid | rivers | agricultural | dispersed_rural | — |
| 3 | `GJ68d` | Lente | planet | yes | 600K | terrestrial | 0.84g | 320 | 25.5 | breathable | temperate | ocean | agricultural | dispersed_rural | — |
| 4 | `GJ68e` | Herfst | planet | yes | 400K | terrestrial | 0.80g | 480 | 23.0 | breathable | temperate | rivers | agricultural | dispersed_rural | — |
| ↳ 4.1 | `GJ68e-1` | — | moon | no | — | dwarf | 0.06g | 14 | 336.0 | none | barren | none | — | — | — |
| 5 | `GJ68f` | Winter | planet | yes | 200K | terrestrial | 0.72g | 700 | 28.0 | breathable | temperate | rivers | agricultural | dispersed_rural | — |
| 6 | `GJ68g` | — | planet | no | — | terrestrial | 0.45g | 1100 | 17.0 | thin | frozen | ice | — | — | — |
| 7 | `GJ68h` | — | planet | no | — | terrestrial | 0.38g | 1600 | 15.5 | none | frozen | none | — | — | — |
| 8 | `GJ68-belt` | — | asteroid_belt | no | — | — | — | — | — | — | — | — | — | — | — |
| 9 | `GJ68i` | — | gas_giant | no | — | gas_giant | — | 3000 | 11.5 | dense | — | — | — | — | — |
| ↳ 9.1 | `GJ68i-1` | — | moon | no | — | dwarf | 0.08g | 4 | 108.0 | none | barren | none | — | — | — |
| ↳ 9.2 | `GJ68i-2` | — | moon | no | — | dwarf | 0.05g | 11 | 264.0 | none | frozen | ice | — | — | — |
| 10 | `GJ68-oort` | — | oort_cloud | no | — | — | — | — | — | — | — | — | — | — | — |
### Stations & Facilities
| ID | Name | Type | Orbits | Population | Economy | Governance | Docking | Gate | Districts |
|---|---|---|---|---|---|---|---|---|---|
| `GJ68-oort-S1` | Horizon Station | horizon | `GJ68-oort` | — | transit | — | standard | yes | 1 |
## Topology
<!-- READ-ONLY — regenerated from star-map.json edges -->
- **Hop Distance from Gateway:** 4
+4
View File
@@ -81,3 +81,7 @@ Five centuries of the Reach's best gate physics research, all built on a theoret
| `GJ783A-oort-S1` | Horizon Station | horizon | `GJ783A-oort` | — | transit | — | major | yes | 1 |
| `GJ783Ad-S1` | Via Exedra | research | `GJ783Ad` | 5M | research | — | major | no | 1 |
## Topology
<!-- READ-ONLY — regenerated from star-map.json edges -->
- **Hop Distance from Gateway:** 3
- **Adjacent Systems:** GJ 1, GJ 1286, GJ 251, GJ 570A
+4
View File
@@ -81,3 +81,7 @@ The system name "Cairn" does not appear in any official Commission or Assembly r
|---|---|---|---|---|---|---|---|---|---|
| `GJ845-oort-S1` | Horizon Station | horizon | `GJ845-oort` | — | transit | — | standard | yes | 1 |
## Topology
<!-- READ-ONLY — regenerated from star-map.json edges -->
- **Hop Distance from Gateway:** 2
- **Adjacent Systems:** GJ 34A, GJ 406, GJ 559B, GJ 661A, GJ 663A, GJ 780, GJ 892