Dial it in:
Scope: behaviour + colours reference only, not a visual spec — the real component keeps its icon, badges, type slots & gutter (this mock omits them on purpose).
Selection — one click on a row selects it: clicked column = direct (blue), its attached column(s) + edge(s) = indirect (grey rows, blue edges). Clicking an edge → both ends grey, edge blue. Empty space / Esc clears.
Edit — only the name opens name-edit and only the expression opens expr-edit, via double-click or a single click while the row is already selected. Clicking the datatype, icon, or row body only selects — never edits.
Delete (Del/Backspace) — selected edge → edge removed, columns unselect; selected input column → red InfoPopup “can't remove input columns here”; selected output column → column + its edges removed.
⮕ in-1
⮕ out-1