namespace Sand.Core; public sealed class ParticleBalanceProfile { public string Id { get; init; } = ""; public ParticleBehaviorKind BehaviorKind { get; init; } public float LifetimeMultiplier { get; init; } = 1f; public float BurnDecayPerStep { get; init; } = 1f; public float AmbientCoolingMultiplier { get; init; } = 1f; public float NeighborHeatTransferMultiplier { get; init; } = 1f; public float UpwardBias { get; init; } public float SideDriftBias { get; init; } public float FireSpreadChance { get; init; } public float SmokeSpawnChance { get; init; } public float EmberSpawnChance { get; init; } public float ProduceChance { get; init; } public float HeatEmissionMultiplier { get; init; } = 1f; public float EnergyTransferMultiplier { get; init; } = 1f; public float PressureSensitivity { get; init; } = 1f; public float PressureDecayMultiplier { get; init; } = 1f; public float ForceResponseMultiplier { get; init; } = 1f; public float LateralFlowMultiplier { get; init; } = 1f; public float DiagonalFlowMultiplier { get; init; } = 1f; public float PhaseTransitionHysteresis { get; init; } public float MinLifetimeTicks { get; init; } public float MaxLifetimeTicks { get; init; } }