pub struct Node {Show 17 fields
pub kind: NodeKindKey,
pub kind_version: u32,
pub pos: CanvasPoint,
pub origin: Option<NodeOrigin>,
pub selectable: Option<bool>,
pub focusable: Option<bool>,
pub draggable: Option<bool>,
pub connectable: Option<bool>,
pub deletable: Option<bool>,
pub parent: Option<GroupId>,
pub extent: Option<NodeExtent>,
pub expand_parent: Option<bool>,
pub size: Option<CanvasSize>,
pub hidden: bool,
pub collapsed: bool,
pub ports: Vec<PortId>,
pub data: Value,
}Expand description
Node instance.
Fields§
§kind: NodeKindKeyNode kind identifier.
kind_version: u32Node kind version (for per-kind migrations).
pos: CanvasPointTop-left position in canvas space.
origin: Option<NodeOrigin>Optional node origin override (XyFlow node.origin).
When omitted, runtime uses the global NodeGraphInteractionState.node_origin.
selectable: Option<bool>Whether the node can be selected (XyFlow node.selectable).
When omitted, the global NodeGraphInteractionState.elements_selectable decides.
focusable: Option<bool>Whether the node can receive keyboard focus (XyFlow node.focusable).
When omitted, the global NodeGraphInteractionState.nodes_focusable decides.
draggable: Option<bool>Whether the node can be dragged with pointer interactions (XyFlow node.draggable).
When omitted, the global NodeGraphInteractionState.nodes_draggable decides.
connectable: Option<bool>Whether the node can be used for creating connections via editor interactions (XyFlow
node.connectable).
When omitted, the global NodeGraphInteractionState.nodes_connectable decides.
deletable: Option<bool>Whether the node can be deleted via editor interactions (XyFlow node.deletable).
When omitted, the global NodeGraphInteractionState.nodes_deletable decides.
parent: Option<GroupId>Optional group container id (subflow / parent frame).
This is an editor-structure concept (XyFlow parentId mental model) and is intentionally
orthogonal to semantic subgraphs (see ADR 0126).
extent: Option<NodeExtent>Optional per-node movement/resize extent override.
This mirrors XyFlow’s node.extent concept. It is an editor-structure constraint (UI-facing),
not a semantic graph rule.
expand_parent: Option<bool>Whether moving/resizing this node can expand its parent container (if any).
This mirrors XyFlow’s node.expandParent behavior.
size: Option<CanvasSize>Optional explicit node size in logical px at zoom=1 (semantic sizing).
The editor converts this into canvas space by dividing by the current zoom so node content remains readable under semantic zoom.
When None, the editor derives the size from measured geometry or style defaults.
Whether the node is hidden (XyFlow node.hidden).
Hidden nodes are excluded from derived geometry (hit-testing, rendering, fit-view).
collapsed: boolWhether the node is collapsed.
ports: Vec<PortId>Stable port ordering for this node (UI-facing).
data: ValueOpaque node payload (domain-owned).
This must be preserved for unknown node kinds.