@startuml class SnapSystem { - {static} instance : SnapSystem + {static} getInstance() : SnapSystem - socketDetectionRadius : float = 0.5f - <> nearbySockets : List - <> visitedRoots : HashSet - closestSocket : SocketPoint - Awake() : void + UpdateSockets(detectionPoint:Vector3, ghostRoot:Transform) : void + ClearHighlights() : void + Clear() : void + GetNearbySockets() : List + GetClosestSocket() : SocketPoint - {static} FindClosest(position:Vector3, sockets:List) : SocketPoint } MonoBehaviour <|-- SnapSystem @enduml