Accept HTML/SVG element as an element that comes to be draggable. Support both mouse and touch interfaces. Restrict the draggable area. Snap the draggable element to other elements, points, lines, ...