pub fn canonicalize_ranges( ranges: &[RangeDto], ) -> Result<Vec<RangeDto>, PolicyValidationError>
Merges overlapping and adjacent ranges and validates start < end.
start < end