public bool IsM(List <int> directions) { return(directions.Count == 4 && onPlane.AreDirectionsOpposite(directions[0], directions[3]) && onPlane.AreDirectionsPerpendicular(directions[1], directions[2]) && onPlane.AreDirectionsNFarApart(directions[0], directions[2], 1) && onPlane.AreDirectionsNFarApart(directions[0], directions[1], 3) && onPlane.AreDirectionsNFarApart(directions[1], directions[3], 1)); }