Creates a new instance with optional updates.
Vector2 copyWith({double? x, double? y}) => Vector2(x ?? this.x, y ?? this.y);