refactor(schema): rename biome_summary to planet_class (D-188)

"Biome" describes per-zone vegetation classification (Whittaker table).
"Planet class" describes overall planetary character. The conflation
caused the planet generator to misclassify ~270 bodies as barren.

Scope: systems.db column, schema SQL, Rust atlas code, wiki table
headers (Biome → Class), atlas proposal JSONs, all docs/decisions,
tooling scripts. Also normalizes atmosphere vocabulary (breathable →
standard) and expands planet class mapping to all 26 wiki values.
Unknown classes default to temperate for modder safety.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-06 17:10:35 +02:00
co-authored by Claude Opus 4.6
parent 6ce708a15a
commit db241b88bd
654 changed files with 3807 additions and 7203 deletions
+6 -6
View File
@@ -1,6 +1,6 @@
---
title: "Planetary Screenshot Spec — v0.1"
description: "Procedural planet sphere renders for the GTTR body-info-panel and wiki pages. One image per biome_summary type."
description: "Procedural planet sphere renders for the GTTR body-info-panel and wiki pages. One image per planet_class type."
type: design
status: active
ticket: "#779"
@@ -42,7 +42,7 @@ asset appears with the same proportions — one image per destination planet.
**Format:** PNG, 512×512px, RGBA
**Display:** Scaled to 240×240 within a 360×360 container
| File | `biome_summary` value | Character |
| File | `planet_class` value | Character |
|------|-----------------------|-----------|
| `planet_temperate.png` | `temperate` | Blue ocean, amber-green continents, cloud cover, polar caps |
| `planet_temperate_terminator.png` | `temperate_terminator` | Half gold-scorched day face, half frozen dark face, sharp terminator |
@@ -97,7 +97,7 @@ from spherical mapping (lon, lat). Each planet type uses different:
## Binding to Atlas Data
Each planet in `systems.db` has a `biome_summary` field. The client selects the
Each planet in `systems.db` has a `planet_class` field. The client selects the
matching planet image:
```gdscript
@@ -108,14 +108,14 @@ func planet_image_for_biome(biome: String) -> Texture2D:
return load("res://assets/planets/planet_barren.png") # fallback
```
For `biome_summary = "temperate_terminator"`, the image maps directly to
For `planet_class = "temperate_terminator"`, the image maps directly to
`planet_temperate_terminator.png`.
---
## Coverage
| `biome_summary` value | Image | Inhabited planets using this type |
| `planet_class` value | Image | Inhabited planets using this type |
|-----------------------|-------|------------------------------------|
| `temperate` | ✓ | Majority of wave_1/wave_2 inhabited worlds |
| `temperate_terminator` | ✓ | Close-orbit M-dwarf worlds (Feldmark, Caparica) |
@@ -146,7 +146,7 @@ processes during transit — a data-layer visualization, not a photograph.
## Future Additions
When new `biome_summary` types are added to the atlas schema, add a new renderer
When new `planet_class` types are added to the atlas schema, add a new renderer
function to `generate_planets.py` following the existing pattern. The functions
are self-contained — no cross-dependencies.