///|
/// Clamp an operational quality threshold to a safe interval.
pub fn clamp_quality_threshold(value : Double) -> Double {
  value.max(0.0).min(1.0)
}

///|
/// Return whether a quality score is healthy under a threshold.
pub fn quality_meets_threshold(score : Double, threshold : Double) -> Bool {
  score >= clamp_quality_threshold(threshold)
}

///|
/// Return a stable quality band for dashboards.
pub fn quality_band(score : Double) -> String {
  let value = clamp_quality_threshold(score)
  if value >= 0.85 {
    "healthy"
  } else if value >= 0.65 {
    "degraded"
  } else {
    "unhealthy"
  }
}

///|
/// Return a machine-readable numeric quality band.
pub fn quality_band_code(score : Double) -> Int {
  let value = clamp_quality_threshold(score)
  if value >= 0.85 {
    2
  } else if value >= 0.65 {
    1
  } else {
    0
  }
}

///|
/// Return whether a quality score requires operator action.
pub fn quality_requires_action(score : Double) -> Bool {
  quality_band_code(score) == 0
}