Is there an easy way to have a node snap to the topleft but rotate about its center when we change the angle property? Changing the locationSpot on the fly seems to have a lot of unintended consequences like causing the node to shift.
The default Part.locationSpot is go.Spot.TopLeft, so you don’t need to write it.
The RotatingTool keeps the Part.location the same as it rotates the Part.rotationObject. That means the top-left corner of the node stays at the same point in document coordinates. The object that is rotated, the Part.rotationObject rotates about its own axis – it does not revolve around the location point, which remains towards the top-left of the object being rotated.