Refactor: Extract CameraControl and RuleBattle from ReplayControl