Currently we're too generous with the places we allow "sweep 1/4"; in particular we don't check the "sweep center" and ensure that everyone involved in the sweep agrees where it is. Thus, we allow "single wheel and sweep 1/4", when we shouldn't really. This test demonstrates the issue: sdr> /program = Program.A2 A2 sdr> heads lead right ; step to a wave | 4B> 1B> | | 3G< 2G< | | 4G> 1G> | | 3B< 2B< sdr> single wheel | 3G> 4B< 2G> 1B< | | 3B> 4G< 2B> 1G< sdr> /// this should complain sdr> sweep 1/4 * Mismatched sweep centers sdr> /// the as-couples version is even worse sdr> /setFormation(Formation.SQUARED_SET) | 3Gv 3Bv | | 4B> 2G< | | 4G> 2B< | | 1B^ 1G^ sdr> heads lead right ; veer left | 4B> 1B> | | 4G> 1G> | | 3G< 2G< | | 3B< 2B< sdr> fan the top | 3B^ 4G^ 3Gv 4Bv 2B^ 1G^ 2Gv 1Bv sdr> wheel and deal | 4Gv 3Bv 1Gv 2Bv | | 4B^ 3G^ 1B^ 2G^ sdr> /// this shouldn't work sdr> as couples sweep 1/4 * Mismatched sweep center sdr> /exit