# description
Directed relation between two nodes, produced by one or more extractors during a scan.

# properties.target.description
`node.path` of the destination. MAY point to a missing node; rules detect broken refs.

# properties.kind.description
Nature of the relation. `invokes` = execution-level call (e.g. slash command). `references` = explicit link (e.g. wikilink, @-directive). `mentions` = informal textual mention. `supersedes` = replaces another node (from `metadata.supersedes`).

# properties.confidence.description
Extractor's self-assessed confidence. Rules MAY filter by confidence.

# properties.sources.description
Extractor ids that produced this link. At least one. Multiple extractors may converge on the same link; kernel merges them.

# properties.trigger.description
Trigger-style link metadata (e.g. slash-command keyword, @-directive keyword). Null for links without a textual trigger.

# properties.trigger.properties.originalTrigger.description
Exact string as it appears in the source body.

# properties.trigger.properties.normalizedTrigger.description
NFD → strip diacritics → lowercase → hyphen/underscore → space → collapse whitespace → trim. Used for collision detection and lookup.

# properties.location.description
Where in the source body the link was found. Null if the extractor didn't track location.

# properties.raw.description
Verbatim matched substring from the source body. Optional, for debugging and UI display.