I just found a small bug, when creating a clone of an ArcRotateCamera and updating the targetScreenOffset, to reproduce:
Create ArcRotateCamera
Clone the camera
Log targetScreenOffset of source camera
Update targetScreenOffset on cloned camera
Log targetScreenOffset of source camera
The value of the second log changed, although it was updated on the cloned camera. Probably the original and clone hold a reference to the same Vector2
I believe, the targetScreenOffset property is incorrectly identified by the serializable decorator and it marks the property as a value based so it doesn’t clone the object just sets the reference on the clone to the existing Vector2: