A named group of nodes, optionally nested.
@type t() :: %Boxart.Graph.Subgraph{ children: [t()], direction: Boxart.Graph.direction() | nil, id: String.t(), label: String.t(), node_ids: [String.t()], parent: t() | nil }