Why is this an issue?

Functions with a long parameter list are difficult to use, as maintainers must figure out the role of each parameter and keep track of their position.

def setCoordinates(x1:Int, y1:Int, z1:Int, x2:Int, y2:Int, z2:Int): Unit = { // Noncompliant
    // ...
}

The solution can be to:

// Each function does a part of what the original setCoordinates function was doing, so confusion risks are lower
def setOrigin(x:Int, y:Int, z:Int): Unit = {
   // ...
}

def setSize(width:Int, height:Int, depth:Int): Unit = {
   // ...
}
class Point(var x: Int, var y: Int, var z: Int) { // In geometry, Point is a logical structure to group data
}


def setCoordinates(p1:Point, p2:Point) : Unit = {
   // ...
}

This rule raises an issue when a function has more parameters than the provided threshold.