ExperimentalNarrow to the edit variant, validating its payload.
Narrow to the jump variant, validating its payload.
Narrow to the rename variant, validating its payload.
Narrow to the searchAndReplace variant, validating its payload.
Narrow to a custom or future variant: the kind tag matches no known variant, with a valid payload.
TypeScript keeps the known variants in the narrowed union (they are
structural subtypes of the catch-all), so read vendor payload keys
via a widening cast: (value as Record<string, unknown>).someKey.
Validated type guards for
NesSuggestion's known variants.Each guard validates the variant's payload, not just its discriminant tag: a malformed known variant (right tag, wrong payload) matches no guard — mirroring wire validation, which rejects such values instead of classifying them as custom.
Guards check the value as given: fields that wire deserialization salvages to a default (e.g. a malformed
_meta) are only normalized by parsing, and for ambiguous raw shapes (a known tag combined with another variant's payload) guards are conservative where wire parsing may still accept the value — narrow wire-parsed values when exact parity matters.