{
  "Description": "Settings for how meandering streams are warped into meanders on the streammap.",
  "EnabledChance": 0,
  "EnabledChanceDescription": "Percent chance for a stream to be a meandering stream.",
  "MeanderIterations": 10,
  "MeanderIterationsDescription": "Number of iterative passes for the progressive meandering.<br>Each iteration applies small displacements that accumulate over the iterations into larger meanders.<br>Not enough iterations and the streams will be basic, more closely resembling their base bezier curves.<br>After a certain point the iterations becomes meaningless. You can meander the streams forever.",
  "SinuosityAtSource": 1.225,
  "SinuosityAtSourceDescription": "Sinuosity at the stream source.<br>Sinuosity scales the amplitude of the meandering sine-based curves per iteration.<br>The sinuosity lerps from the source to the anchor based on the distance along the stream.<br>Super volatile value, completely changes how meandering works with even a tiny change.",
  "SinuosityAtAnchor": 1.225,
  "SinuosityAtAnchorDescription": "Sinuosity at the anchor point.<br>Streams longer than anchor length continue extrapolating linearly.<br>1.0 means a straight line. 1.5+ gives massive meandering.<br>The sinuosity lerps from the source to the anchor based on the distance along the stream.<br>Super volatile value, completely changes how meandering works with even a tiny change.",
  "SinuosityScalingPower": 1.0,
  "SinuosityScalingPowerDescription": "Power curve applied to to the sinuosity as it goes from source to anchor.",
  "WavelengthMultiplierAtSource": 6.6,
  "WavelengthMultiplierAtSourceDescription": "Wavelength multiplier at the stream source (thin end).<br>The meander wavelength (meander length down the stream) at each point is the streambed width at that point multiplied by this value.<br>Higher wavelength multiplier means longer, more gradual meanders.<br>Lower wavelength multiplier means tighter, more frequent bends.<br>You can use UseConstantBeltWidthRatio (on by default) instead of this for simpler but less fine tuned meander wavelengths.",
  "WavelengthMultiplierAtAnchor": 1.39,
  "WavelengthMultiplierAtAnchorDescription": "Wavelength multiplier at the anchor point.<br>Streams longer than anchor length continue growing the meander wavelength linearly.<br>The meander wavelength (meander length down the stream) at each point is the streambed width at that point multiplied by this value.<br>Higher wavelength multiplier means longer, more gradual meanders.<br>Lower wavelength multiplier means tighter, more frequent bends.<br>You can use UseConstantBeltWidthRatio (on by default) instead of this for simpler but less fine tuned meander wavelengths.",
  "WavelengthScalingPower": 1.0,
  "WavelengthScalingPowerDescription": "Power curve applied to the wavelength scaling from source to anchor.",
  "UseConstantBeltWidthRatio": true,
  "UseConstantBeltWidthRatioDescription": "When true, automatically calculates wavelength multipliers to maintain a constant meander belt width to stream width ratio along all positions in the river.<br>The ratio is set by BeltWidthToStreamWidthRatio.<br>When false, the meandering uses the manually set WavelengthMultiplierAtSource and WavelengthMultiplierAtAnchor values instead.",
  "BeltWidthToStreamWidthRatio": 3.0,
  "BeltWidthToStreamWidthRatioDescription": "Target ratio of meander belt width to stream bed width. Only used when UseConstantBeltWidthRatio is true.<br>The wavelength multipliers are automatically calculated from this ratio and the sinuosity values.",
  "CurvatureDisplacementMultipiler": 1.0,
  "CurvatureDisplacementMultipilerDescription": "Higher means stronger growth of the existing bends.",
  "MeanderFading": {
    "SourceDistanceAtAnchor": 250.0,
    "SourceDistanceAtAnchorDescription": "Distance from the stream source (in blocks) when the stream is at the anchor's stream length, over which to fade meandering back to the original path.<br>This distance scales with stream length: short streams have proportionally shorter fade distances, long streams have proportionally longer fade distances.<br>Basically, its how big the fadeout of meandering is near the stream source.",
    "SourceExponent": 0.8,
    "SourceExponentDescription": "Power curve exponent for source fade transition.<br>This controls how quickly the meandering fades into the straight path near the stream source.",
    "MouthDistanceAtAnchor": 250.0,
    "MouthDistanceAtAnchorDescription": "Distance from the stream drain/connection (in blocks) when the stream is at the anchor's stream length, over which to fade meandering back to a straight connection.<br>This distance scales with stream length: short streams have proportionally shorter fade distances, long streams have proportionally longer fade distances.<br>Basically, its how big the fadeout of meandering is near the stream mouth.",
    "MouthExponent": 0.8,
    "MouthExponentDescription": "Power curve exponent for mouth fade transition.<br>This controls how quickly the meandering fades into the straight connection to the drain/main stream."
  },
  "MeanderFadingDescription": "Configuration for fading out meandering into a smooth path at the stream source and mouth, as braiding at the ends of the stream gives low quality results.",
  "CurvePointSmoothing": {
    "WindowRadius": 8,
    "WindowRadiusDescription": "Number of neighboring points on each side to include in smoothing window.<br>Controls spatial extent of smoothing effect. Applied per iteration.<br>1 gives a 3-point window (current + 2 neighbors), 2 gives a 5-point window, 3 gives a 7-point window.",
    "Strength": 0.8,
    "StrengthDescription": "Controls the intensity of the smoothing within the smoothing window.<br>0.0 to 1.0 is no smoothing to full smoothing, and 1.0+ is even more smoothing.<br>Adjust together with WindowRadius."
  },
  "CurvePointSmoothingDescription": "Configuration for smoothing out the stream path (the curve points) inbetween the iterations of meandering.",
  "SteepTerrainStraightening": {
    "BlendStrength": 0.5,
    "BlendStrengthDescription": "Maximum strength of blending the meandered path back to original bezier curve path in and around steep terrain.<br>0 means no blending (full meandering everywhere). 1 means a hard switch to the bezier curve when the path gets to an area with the max steepness.<br>This prevents streams from meandering the path into nearby cliffs and hills, and keeps the stream path clean on mountains.<br>Use with HeightThreshold to define the relationship between terrain height and blend strength",
    "HeightThreshold": 30.0,
    "HeightThresholdDescription": "Height difference (in blocks) at which steep terrain blending reaches full strength.<br>The blending lerps from 0 blending at 0 height difference to the full blending strength (BlendStrength) at this configured threshold.<br>This prevents streams from meandering the path into nearby cliffs and hills, and keeps the stream path clean on mountains.<br>Use with BlendStrength to define the relationship between terrain height and blend strength",
    "BlendPower": 2.0,
    "BlendPowerDescription": "Power curve exponent for steep terrain blending. Controls how quickly blending ramps up as the nearby terrain approaches the HeightThreshold.",
    "SearchRadius": 1,
    "SearchRadiusDescription": "Manhattan distance radius (in chunks) for searching neighboring terrain when calculating max height difference.<br>0 means only use the current chunk. 1 means include immediate neighbors. 2+ means a larger search area.<br>A larger radius catches steep/rough terrain that is further from the stream path."
  },
  "SteepTerrainStraighteningDescription": "Configuration for straightening streams around steep terrain to prevent meandering into cliffs and hills, and to keep mountain streams clean.",
  "OxbowCutoff": {
    "ProximityThreshold": 1.75,
    "ProximityThresholdDescription": "Minimum distance between meander curves as fraction of the local meander's amplitude.<br>The cutoff distance scales with the stream width, so theres small meanders at the source, large at the mouth.",
    "MinWavelengthArcLengthFraction": 0.6,
    "MinWavelengthArcLengthFractionDescription": "Minimum arc length gap between segments of the stream path, as a fraction of the local wavelength.<br>Only segment pairs separated by at least this fraction of the wavelength are checked for oxbow cutoffs.<br>This prevents cutting normal stream curving, so only true oxbows (where the stream loops back on itself) are cut.<br>0.5 is half a wavelength, 0.75 is three-quarters. Higher values can cut the curve too early, straightening it out.",
    "MaxCutAttempts": 100,
    "MaxCutAttemptsDescription": "Maximum attempts to cut oxbows per iteration."
  },
  "OxbowCutoffDescription": "Configuration for cutting off a stream as it intersects with itself via meandering, creating an oxbow lake on braided rivers."
}