""" Gas giant body definition helpers for Jupiter, Saturn, Uranus, Neptune. Gas giants have no solid surface — the existing planet_renderer._render_gas_giant() handles band patterns procedurally. This module only provides configuration validation and body_def enhancement. No terrain dict is produced. The actual overrides are in sol_overrides.json and applied by the body definition parser. This module exists for future enhancement (ring tuning, storm placement, etc). """ def validate_gas_giant_def(body_def: dict) -> bool: """Check that a gas giant body_def has required fields for rendering.""" pc = body_def.get("planet_class", "") if "gas_giant" not in pc and pc not in ("gas_giant",): return False gg = body_def.get("gas_giant", {}) if not gg.get("band_palette"): print(f" WARNING: {body_def['id']} missing gas_giant.band_palette") return False return True