It’s always interesting to see how quickly you can produce something better after years of development.
At the moment I can generate a BrickBlock with any number of layer and any number of colours. They can rotate as expected, pivot around the planes natural center and snap back to shape after the player completes their move.
The snapping was the task that I thought wouldn’t take long however seemed to be the main struggle to get perfect. I’ve been working these Quaternion rotations through Euler angles however they wouldn’t Lerp in the the shortest path.
As a hint to anybody wanting this outcome, Unity has a method that can take care of this for you:
public static Quaternion.RotateTowards (Quaternion from, Quaternion to, float maxDegreesDelta); Reference
Once this was implemented I was all set, it “does what I want“, which in this case was rotate the harness to a final rotation via the shortest path.