copy method
Implementation
NodeSocketModel copy() {
return NodeSocketModel(
id: id,
nodeId: nodeId,
type: type,
position: position.copy(), // assuming Vector2 has copy()
data: data, // shallow copy; consider deep copy if needed
connectionLimit: connectionLimit,
);
}