chore(earth): 🔧 Update climate and hydrology simulation parameters for refined environmental rules

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Claude Code 2026-03-29 05:47:58 -07:00
parent 834e4b5e6a
commit 9f5ba3e926
3 changed files with 1055 additions and 0 deletions

View file

@ -0,0 +1,241 @@
{
"atmosphere": {
"pressure_bands": {
"polar_high_cut": 0.15,
"subpolar_low_cut": 0.30,
"subtropical_high_cut": 0.60,
"hadley_low_cut": 1.00,
"polar_high_hpa": 1030.0,
"subpolar_low_hpa": 995.0,
"subtropical_high_hpa": 1025.0,
"equatorial_low_hpa": 1005.0
},
"pressure_terrain_modifiers": {
"mountain_per_0_1_elevation": 5.0,
"ocean_offset": -2.0,
"hot_land_threshold": 0.6,
"hot_land_offset": -3.0
},
"anomaly": {
"thermal_low_spawn_hpa": -15.0,
"cold_high_spawn_hpa": 15.0,
"tropical_low_spawn_hpa": -20.0,
"spawn_hot_temp_threshold": 0.65,
"spawn_cold_temp_threshold": 0.2,
"spawn_adjacent_cool_threshold": 0.45,
"spawn_ocean_hot_threshold": 0.6,
"decay_per_turn_hpa": 2.0,
"reinforce_per_turn_hpa": 3.0,
"max_anomaly_hpa": 50.0,
"drift_wind_fraction": 0.5,
"merge_radius_hexes": 2
},
"pressure_wind": {
"gradient_scale": 0.05,
"speed_scale": 0.04,
"coriolis_scale": 0.3
},
"humidity": {
"ocean_evap_rate": 0.03,
"soil_contribution": 0.01,
"forest_evapotranspiration": 0.015,
"wind_transport_fraction": 0.1,
"precipitation_rh_threshold": 0.95,
"precipitation_humidity_loss": 0.1,
"precipitation_moisture_gain": 0.05,
"mountain_barrier_block": 0.8,
"decay_per_turn": 0.02
},
"relative_humidity": {
"saturation_base": 0.2,
"saturation_temp_scale": 0.8
},
"dew_point": {
"rh_factor": 0.2
},
"cape": {
"lapse_rate_per_elevation": 0.006,
"temp_diff_scale": 2.0,
"humidity_scale": 1.5,
"stability_offset": 0.3,
"moisture_feedback_scale": 0.5
},
"event_thresholds": {
"hurricane": {
"accumulate_per_turn": 0.15,
"decay_per_turn": 0.1,
"spawn_threshold": 1.0,
"ocean_temp_min": 0.65,
"pressure_anomaly_max": -10.0,
"humidity_min": 0.6,
"wind_shear_max_diff": 1,
"latitude_min_pct": 0.1,
"latitude_max_pct": 0.5,
"planet_rotation_min": 0.2,
"mature_pressure_anomaly": -40.0
},
"tornado": {
"accumulate_per_turn": 0.25,
"decay_per_turn": 0.2,
"spawn_threshold": 0.8,
"cape_min": 0.5,
"temp_differential_min": 0.2,
"dew_point_min": 0.55
},
"drought": {
"accumulate_per_turn": 0.1,
"decay_per_turn": 0.2,
"spawn_threshold": 1.0,
"pressure_anomaly_min": 10.0,
"humidity_max": 0.2,
"moisture_max": 0.25,
"relative_humidity_max": 0.3,
"sustain_turns": 3
},
"flood": {
"accumulate_per_turn": 0.2,
"spawn_threshold": 0.8,
"river_flow_threshold": 80.0,
"humidity_min": 0.7,
"coastal_pressure_anomaly_max": -20.0,
"coastal_temp_threshold": 0.55
},
"monsoon": {
"accumulate_per_turn": 0.1,
"spawn_threshold": 1.0,
"ocean_temp_min": 0.6,
"land_pressure_anomaly_max": -5.0,
"season_period": 20
},
"blizzard": {
"accumulate_per_turn": 0.15,
"spawn_threshold": 0.8,
"temp_max": 0.15,
"wind_speed_min": 0.5,
"humidity_min": 0.3,
"pressure_anomaly_max": -5.0
},
"heat_wave": {
"accumulate_per_turn": 0.1,
"spawn_threshold": 0.8,
"pressure_anomaly_min": 15.0,
"temp_min": 0.7,
"humidity_max": 0.3,
"wind_speed_max": 0.3,
"sustain_turns": 3
}
},
"event_effects": {
"hurricane": {
"unit_damage_cat1": 5,
"unit_damage_cat5": 25,
"city_damage_cat1": 10,
"city_damage_cat5": 50,
"improvement_destroy_chance_cat1": 0.3,
"improvement_destroy_chance_cat5": 0.9,
"food_yield_penalty": 2,
"duration_min": 5,
"duration_max": 15
},
"tornado": {
"unit_damage": 15,
"city_damage": 20,
"improvement_destroy_chance": 0.8,
"all_yield_penalty": 1,
"quality_penalty": 1,
"path_hexes_min": 1,
"path_hexes_max": 3,
"duration_min": 1,
"duration_max": 3
},
"drought": {
"food_yield_penalty": 1,
"duration_min": -1
},
"flood": {
"unit_damage": 10,
"city_damage": 15,
"improvement_destroy_chance": 0.6,
"food_yield_after": 1,
"duration_min": 2,
"duration_max": 8
},
"monsoon": {
"improvement_flood_destroy_chance": 0.2,
"food_yield_bonus": 1,
"duration_min": 8,
"duration_max": 12
},
"blizzard": {
"unit_damage_per_turn": 3,
"duration_min": 3,
"duration_max": 6
},
"heat_wave": {
"unit_damage_per_turn": 2,
"food_yield_penalty": 1,
"happiness_penalty": 1,
"duration_min": 3,
"duration_max": 10
}
}
},
"moisture_relaxation": 0.04,
"ocean_evaporation_hops": 4,
"ocean_evaporation_hop_decay": 0.5,
"atmospheric_loss_rate": 0.0001,
"water_boil_threshold": 0.82,
"surface_runoff_rate": 0.3,
"deep_earth_water": {
"volcano_self": 0.008,
"volcano_neighbor": 0.004,
"hot_spring_self": 0.005,
"hot_spring_neighbor": 0.002,
"hot_spring_max_temperature": 0.60,
"high_elevation_self": 0.002,
"high_elevation_threshold": 0.8
},
"wind_conductivity": 0.1,
"energy_scale": 0.005,
"equilibrium_relaxation": 0.08,
"evaporation_rate": 0.05,
"moisture_transport": 0.15,
"precipitation_threshold": 0.7,
"moisture_decay": 0.995,
"quality_up_threshold": 10,
"quality_down_threshold": 5,
"lake_thermal_conductivity": 0.05,
"river_moisture_transport": 0.075,
"mountain_rain_shadow_block": 0.9,
"wind_band_polar_cut": 0.15,
"wind_band_polar_front_cut": 0.30,
"wind_band_ferrel_cut": 0.50,
"wind_band_subtropical_cut": 0.60,
"wind_band_hadley_cut": 0.85,
"wind_speed_polar": 0.6,
"wind_speed_polar_front": 0.3,
"wind_speed_ferrel": 0.8,
"wind_speed_subtropical": 0.3,
"wind_speed_hadley": 0.7,
"wind_speed_itcz": 0.3,
"wind_friction_land": 0.7,
"wind_friction_mountain_downwind": 0.1,
"solar_min": 0.05,
"solar_max": 0.70,
"orbital_cycle_1_period": 400,
"orbital_cycle_1_amplitude": 0.015,
"orbital_cycle_1_phase": 0.0,
"orbital_cycle_2_period": 260,
"orbital_cycle_2_amplitude": 0.010,
"orbital_cycle_2_phase": 1.05,
"orbital_cycle_3_period": 1000,
"orbital_cycle_3_amplitude": 0.020,
"orbital_cycle_3_phase": 2.40,
"orbital_moisture_coupling": 0.5,
"sea_level_temp_sensitivity": 0.0008,
"sea_level_equilibrium_temp": 0.45,
"water_freeze_threshold": 0.12,
"aerosol_background": 0.002,
"aerosol_desert_dust": 0.005,
"aerosol_volcanic_outgas": 0.015
}

View file

@ -0,0 +1,758 @@
{
"terrain_classification": {
"comment": "Ordered rule list \u2014 first match wins. Mirrors biome_classifier.gd _classify_land(). Water/volcanic/cave handled outside these rules.",
"rules": [
{
"comment": "Wetland override: saturated moisture on lowland",
"and": [
{
"field": "moisture",
"op": ">",
"value": 0.7
},
{
"field": "elevation",
"op": "<",
"value": 0.4
},
{
"field": "temperature",
"op": ">",
"value": 0.4
}
],
"terrain": "swamp"
},
{
"and": [
{
"field": "moisture",
"op": ">",
"value": 0.7
},
{
"field": "elevation",
"op": "<",
"value": 0.4
},
{
"field": "temperature",
"op": "<=",
"value": 0.4
}
],
"terrain": "bog"
},
{
"comment": "Very high elevation: ice or alpine tundra",
"and": [
{
"field": "elevation",
"op": ">",
"value": 0.85
},
{
"field": "temperature",
"op": "<",
"value": 0.1
}
],
"terrain": "ice"
},
{
"and": [
{
"field": "elevation",
"op": ">",
"value": 0.85
}
],
"terrain": "alpine_tundra"
},
{
"comment": "High elevation (0.70-0.85): alpine meadow or alpine tundra",
"and": [
{
"field": "elevation",
"op": ">",
"value": 0.7
},
{
"field": "moisture",
"op": ">",
"value": 0.3
}
],
"terrain": "alpine_meadow"
},
{
"and": [
{
"field": "elevation",
"op": ">",
"value": 0.7
}
],
"terrain": "alpine_tundra"
},
{
"comment": "Mid elevation (0.55-0.70): montane forest, cloud forest, or alpine meadow",
"and": [
{
"field": "elevation",
"op": ">",
"value": 0.55
},
{
"field": "canopy",
"op": ">",
"value": 0.4
}
],
"terrain": "montane_forest"
},
{
"and": [
{
"field": "elevation",
"op": ">",
"value": 0.55
},
{
"field": "moisture",
"op": ">",
"value": 0.7
},
{
"field": "temperature",
"op": ">",
"value": 0.3
}
],
"terrain": "cloud_forest"
},
{
"and": [
{
"field": "elevation",
"op": ">",
"value": 0.55
}
],
"terrain": "alpine_meadow"
},
{
"comment": "Hot lowland (temp > 0.55): tropical biomes or desert",
"and": [
{
"field": "temperature",
"op": ">",
"value": 0.55
},
{
"field": "moisture",
"op": ">",
"value": 0.7
},
{
"field": "canopy",
"op": ">",
"value": 0.6
}
],
"terrain": "tropical_rainforest"
},
{
"and": [
{
"field": "temperature",
"op": ">",
"value": 0.55
},
{
"field": "moisture",
"op": ">",
"value": 0.4
}
],
"terrain": "tropical_dry_forest"
},
{
"and": [
{
"field": "temperature",
"op": ">",
"value": 0.55
},
{
"field": "moisture",
"op": ">",
"value": 0.2
}
],
"terrain": "savanna"
},
{
"and": [
{
"field": "temperature",
"op": ">",
"value": 0.55
}
],
"terrain": "desert"
},
{
"comment": "Temperate (temp 0.25-0.55): forest, grassland, or chaparral",
"and": [
{
"field": "temperature",
"op": ">",
"value": 0.25
},
{
"field": "canopy",
"op": ">",
"value": 0.5
}
],
"terrain": "forest"
},
{
"and": [
{
"field": "temperature",
"op": ">",
"value": 0.25
},
{
"field": "moisture",
"op": ">",
"value": 0.7
}
],
"terrain": "temperate_rainforest"
},
{
"and": [
{
"field": "temperature",
"op": ">",
"value": 0.25
},
{
"field": "moisture",
"op": ">",
"value": 0.3
}
],
"terrain": "grassland"
},
{
"and": [
{
"field": "temperature",
"op": ">",
"value": 0.25
}
],
"terrain": "chaparral"
},
{
"comment": "Cold (temp 0.10-0.25): boreal forest or tundra",
"and": [
{
"field": "temperature",
"op": ">",
"value": 0.1
},
{
"field": "canopy",
"op": ">",
"value": 0.3
}
],
"terrain": "boreal_forest"
},
{
"and": [
{
"field": "temperature",
"op": ">",
"value": 0.1
}
],
"terrain": "tundra"
},
{
"comment": "Extreme cold fallback",
"terrain": "polar_desert"
}
]
},
"terrain_transitions": {
"comment": "Hysteresis rules for _ideal_terrain(). Each terrain defines conditions to leave it. First match wins; if none match, terrain persists. 'classify' means re-run full classification.",
"tropical_rainforest": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "moisture <= 0.70 OR canopy <= 0.60",
"becomes": "tropical_dry_forest"
},
{
"condition": "temperature <= 0.55 AND canopy > 0",
"becomes": "forest"
}
],
"tropical_dry_forest": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "moisture <= 0.40 AND canopy > 0",
"becomes": "savanna"
},
{
"condition": "moisture > 0.70 AND canopy > 0.60",
"becomes": "tropical_rainforest"
},
{
"condition": "temperature <= 0.55 AND canopy > 0",
"becomes": "forest"
}
],
"savanna": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "moisture <= 0.20",
"becomes": "desert"
},
{
"condition": "moisture > 0.40 AND canopy > 0",
"becomes": "tropical_dry_forest"
},
{
"condition": "temperature <= 0.55",
"becomes": "chaparral"
}
],
"desert": [
{
"condition": "moisture > 0.20 AND temperature > 0.55 AND canopy > 0",
"becomes": "savanna"
},
{
"condition": "moisture > 0.20 AND temperature <= 0.55",
"becomes": "chaparral"
}
],
"forest": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "canopy <= 0.30 AND canopy > 0",
"becomes": "grassland"
},
{
"condition": "temperature > 0.55 AND canopy > 0",
"becomes": "tropical_dry_forest"
},
{
"condition": "temperature <= 0.25 AND canopy > 0",
"becomes": "boreal_forest"
}
],
"temperate_rainforest": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "moisture <= 0.50 AND canopy > 0",
"becomes": "forest"
},
{
"condition": "temperature > 0.55 AND canopy > 0",
"becomes": "tropical_rainforest"
},
{
"condition": "temperature <= 0.25 AND canopy > 0",
"becomes": "boreal_forest"
}
],
"grassland": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "canopy > 0.50",
"becomes": "forest"
},
{
"condition": "moisture <= 0.30",
"becomes": "chaparral"
},
{
"condition": "temperature > 0.55 AND canopy > 0",
"becomes": "savanna"
},
{
"condition": "temperature <= 0.25 AND canopy > 0",
"becomes": "tundra"
}
],
"chaparral": [
{
"condition": "moisture > 0.30 AND canopy > 0",
"becomes": "grassland"
},
{
"condition": "temperature > 0.55 AND moisture <= 0.20",
"becomes": "desert"
},
{
"condition": "temperature <= 0.25 AND canopy > 0",
"becomes": "tundra"
}
],
"boreal_forest": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "canopy <= 0.20",
"becomes": "tundra"
},
{
"condition": "temperature >= 0.25 AND canopy > 0",
"becomes": "forest"
},
{
"condition": "temperature <= 0.10",
"becomes": "classify"
}
],
"tundra": [
{
"condition": "canopy <= 0",
"becomes": "polar_desert"
},
{
"condition": "canopy > 0.30 AND temperature > 0.10",
"becomes": "boreal_forest"
},
{
"condition": "temperature >= 0.25 AND canopy > 0",
"becomes": "grassland"
},
{
"condition": "temperature <= 0.10",
"becomes": "polar_desert"
}
],
"polar_desert": [
{
"condition": "temperature > 0.10 AND canopy > 0",
"becomes": "tundra"
}
],
"swamp": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "moisture <= 0.60",
"becomes": "classify"
},
{
"condition": "temperature <= 0.40",
"becomes": "bog"
}
],
"bog": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "moisture <= 0.60",
"becomes": "classify"
},
{
"condition": "temperature > 0.40",
"becomes": "swamp"
}
],
"montane_forest": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "canopy <= 0.30",
"becomes": "alpine_meadow"
},
{
"condition": "elevation <= 0.50",
"becomes": "classify"
}
],
"cloud_forest": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "moisture <= 0.60 OR temperature <= 0.25",
"becomes": "alpine_meadow"
},
{
"condition": "elevation <= 0.50",
"becomes": "classify"
}
],
"alpine_meadow": [
{
"condition": "canopy <= 0",
"becomes": "classify"
},
{
"condition": "elevation <= 0.50",
"becomes": "classify"
},
{
"condition": "moisture <= 0.20 AND elevation > 0.70",
"becomes": "alpine_tundra"
}
],
"alpine_tundra": [
{
"condition": "moisture > 0.30 AND elevation <= 0.85 AND canopy > 0",
"becomes": "alpine_meadow"
},
{
"condition": "elevation <= 0.50",
"becomes": "classify"
}
]
},
"precipitation_latitude": {
"comment": "Latitude-dependent moisture adjustment in precipitation step. Models Hadley cell circulation.",
"polar_drying": {
"band_pct": 0.15,
"rate_per_turn": 0.005
},
"subtropical_drying": {
"center_pct": 0.3,
"half_width": 0.15,
"rate_per_turn": 0.008
}
},
"aerosol": {
"comment": "Stratospheric sulfate/ash aerosol physics. Injected by volcanic/impact events. Applied each turn to magic_heat_delta (cooling) and magic_moisture_delta (drying). Spreads downwind, decays per turn. 1 turn \u2248 10 years. Extinction (~20 turns), asteroid (~9 turns), supervolcano (~1-2 turns).",
"cooling_rate": 0.06,
"drying_rate": 0.03,
"wind_transport_rate": 0.12,
"decay_rate": 0.05
},
"reef_bleaching": {
"comment": "Coral reef health model. Coast tiles gain/lose reef_health per turn based on temperature.",
"bleach_temp_threshold": 0.75,
"damage_rate_per_turn": 0.01,
"recovery_rate_per_turn": 0.005,
"dead_threshold": 0.3
},
"anchor_decay": {
"comment": "Event-created ley anchors lose strength over time as the planet absorbs them.",
"rate_per_turn": 0.003
},
"ley_channeling": {
"comment": "Corruption spread multipliers based on receiving tile's ley state.",
"off_ley": 1.0,
"on_ley_generic": 2.0,
"death_ley": 3.0,
"nature_life_ley": 0.5
},
"ley_network": {
"comment": "Ley line connection rules between anchors. See also ley_line_params.json for anchor strengths and field density.",
"max_connection_distance": 28,
"max_connections_per_node": 3,
"school_affinity": {
"comment": "MTG color wheel: 1.0 = same school, 0.5 = allied neighbor, 0.0 = enemy",
"life": {
"life": 1.0,
"nature": 0.5,
"aether": 0.5,
"chaos": 0.0,
"death": 0.0
},
"nature": {
"life": 0.5,
"nature": 1.0,
"chaos": 0.5,
"aether": 0.0,
"death": 0.0
},
"aether": {
"life": 0.5,
"aether": 1.0,
"death": 0.5,
"chaos": 0.0,
"nature": 0.0
},
"chaos": {
"nature": 0.5,
"chaos": 1.0,
"death": 0.5,
"life": 0.0,
"aether": 0.0
},
"death": {
"aether": 0.5,
"death": 1.0,
"life": 0.0,
"nature": 0.0,
"chaos": 0.5
}
}
},
"atmospheric_chemistry": {
"starting_atmospheres": {
"modern": {
"o2_fraction": 0.21,
"co2_ppm": 420,
"ch4_ppb": 1900
},
"depleted": {
"o2_fraction": 0.1,
"co2_ppm": 2000,
"ch4_ppb": 5000
},
"lush": {
"o2_fraction": 0.3,
"co2_ppm": 200,
"ch4_ppb": 800
},
"primordial": {
"o2_fraction": 0.0001,
"co2_ppm": 300000,
"ch4_ppb": 100000
}
},
"photosynthesis": {
"land_canopy_rate": 4e-05,
"ocean_phyto_rate": 3e-05,
"algal_bloom_burst": 0.0008,
"aerosol_suppression": 0.6
},
"respiration": {
"fauna_rate": 1.5e-05,
"decomp_co2_rate": 8e-06,
"decomp_ch4_rate": 2e-06,
"wildfire_o2_cost": 0.0005,
"wildfire_co2_gain": 800
},
"greenhouse": {
"co2_temp_bias": [
{
"co2_ppm_min": 0,
"co2_ppm_max": 1000,
"temp_bias": 0.0
},
{
"co2_ppm_min": 1000,
"co2_ppm_max": 5000,
"temp_bias": 0.05
},
{
"co2_ppm_min": 5000,
"co2_ppm_max": 50000,
"temp_bias": 0.15
},
{
"co2_ppm_min": 50000,
"co2_ppm_max": 999999,
"temp_bias": 0.3
}
],
"ch4_temp_multiplier": 5e-08,
"ch4_decay_rate": 0.02,
"permafrost_ch4_pulse": 5000,
"wetland_ch4_rate": 3e-06
},
"o2_thresholds": {
"safe": 0.18,
"thin": 0.15,
"dangerous": 0.1,
"critical": 0.05,
"lethal": 0.03
},
"ecological_collapse": {
"o2_trigger": 0.05,
"o2_sustained_turns": 10,
"dead_biome_fraction": 0.8,
"extinction_events_window": 20,
"extinction_events_threshold": 3,
"photosynthesis_tipping_multiplier": 0.1,
"recovery_rate_per_turn": 0.0001
},
"volcanic": {
"co2_per_aerosol_unit": 120,
"t6_co2_bonus": 8000,
"t7_co2_bonus": 40000,
"t8_co2_bonus": 200000
},
"fish_collapse": {
"critical_threshold": 0.15,
"collapse_threshold": 0.05,
"global_fish_check_interval": 5,
"trophic_cascade_delay_turns": 3,
"bloom_phase_duration": 8,
"anoxic_phase_duration": 15,
"toxification_phase_duration": 30,
"o2_production_loss_rate": 0.08,
"o2_loss_while_toxic": 0.0008,
"coastal_damage_radius": 3,
"recovery_fish_threshold": 0.25,
"recovery_turns_required": 20,
"ocean_toxicity_decay": 0.005,
"h2s_coastal_damage_per_turn": 2
},
"ocean_states": {
"healthy": {
"fish_floor": 0.3,
"o2_contribution": 1.0
},
"stressed": {
"fish_floor": 0.15,
"o2_contribution": 0.7
},
"anoxic": {
"fish_floor": 0.05,
"o2_contribution": 0.2
},
"toxic": {
"fish_floor": 0.01,
"o2_contribution": 0.0,
"coastal_damage": true
},
"dead": {
"fish_floor": 0.0,
"o2_contribution": 0.0,
"coastal_damage": true,
"permanent": true
}
}
}
}

View file

@ -0,0 +1,56 @@
{
"rainfall": {
"multiplier_tropical": 1.4,
"multiplier_temperate": 1.0,
"multiplier_cold": 0.5,
"multiplier_frozen": 0.2,
"multiplier_desert_terrain": 0.15
},
"source_bonuses": {
"snowmelt": {
"bonus": 0.8,
"terrain": ["mountains", "hills"],
"min_elevation": 0.65,
"max_temperature": 0.5
},
"spring": {
"bonus": 0.3,
"terrain": ["enchanted_forest"],
"min_moisture": 0.6
},
"hot_spring": {
"bonus": 0.5,
"terrain": ["tundra", "snow"],
"adjacent_terrain": ["volcano", "mountains"],
"max_temperature": 0.25
},
"glacial": {
"bonus": 0.4,
"terrain": ["snow", "ice"],
"min_elevation": 0.5
}
},
"depression_fill": {
"epsilon": 0.0001
},
"lakes": {
"depth_threshold": 0.02,
"inland_sea_min_tiles": 12
},
"rivers": {
"threshold_tropical": 20.0,
"threshold_temperate": 25.0,
"threshold_cold": 35.0,
"threshold_frozen": 50.0,
"threshold_desert": 30.0,
"width_thresholds": [2.0, 8.0, 20.0],
"width_labels": ["stream", "river", "major_river", "great_river"]
},
"deltas": {
"accumulation_threshold": 15.0,
"max_branches": 3
},
"frozen_river_temperature": 0.10,
"lake_moisture_injection": 0.6,
"river_moisture_per_turn": 0.02
}