nmp-threading — reply-convention-agnostic timeline grouping.
Owns the kind-agnostic [Grouper] that collapses reply chains into
Twitter-style stacked-module blocks, plus the trait surface
([ParentResolver]) and value types ([ThreadPointer], [ModulePolicy],
[TimelineBlock], [GroupDelta]) consumed by per-NIP wrapper view
modules. It also owns the generic e-tag threading projection family
(nmp.threading.graph.*) for consumers that need a reactive read model over
a caller-supplied event scope. Depends only on substrate crates — no kind
numbers, no app nouns.
nmp-nip01::Nip10ModularTimelineViewwraps this for NIP-10 kind:1.
See docs/decisions/0072-runtime-capability-and-shell-boundary.md and
docs/architecture/crate-boundaries.md for the sibling-crate packaging
rule.