pub struct Aggregate {
pub id: NodeId,
pub parent: NodeId,
pub group_by: GroupBy,
pub value: String,
pub relationships: Vec<String>,
pub count: u64,
pub query: QueryParams,
}Expand description
A group of neighbors collapsed into one summary. Descending it is a host
decision, not an engine one — see DescendOutcome::Subsearch.
Deliberately carries no pre-rendered display string: value and count are
data, and display() composes them so a host can phrase or localize it
differently (via the label_text style rule) without parsing anything back
out.
Fields§
§id: NodeIdStable handle. The radial view renders these as __agg:<id>.
parent: NodeIdThe node this group hangs off. Derived on receipt and never trusted from
the wire — whoever ran the query knows which node it asked about, so a
derived value cannot be wrong and no provider can forget to set it.
Same rule as NeighborResult::pending.
group_by: GroupBy§value: StringThe shared value along that dimension: “OF_TYPE”, “Sorcery”, “rare”.
relationships: Vec<String>Optional sub-data: distinct relationship types the members are reached through. Empty means UNSTATED, never “no relationships” — a node always reaches its neighbors through something, so an empty list can only mean the provider declined the extra aggregation. Advisory only: never branch on emptiness to conclude anything about the graph.
count: u64§query: QueryParamsOpaque paging token that makes the group fetchable. Without it a host knows N things exist but cannot reach them, and cannot reconstruct the cursor because its encoding is provider-defined.