ValueMap: { readonly [K in keyof Ts]: Ts[K] extends Node<infer V> ? V : never }

Maps a tuple of Node handles to the tuple of value types they carry — the inverse of Node<T> over a tuple. Powers the observer signature for Graph.subscribeMany: an observer registered for [Node<number>, Node<string>, Node<boolean>] receives [number, string, boolean] at fire-time.

Type Parameters

  • Ts extends readonly Node<unknown>[]

    Tuple of Node<T> handles.

Implemented as a recursive mapped type rather than infer-based because the latter is brittle under readonly tuples. The shape preserves the input tuple's positions, so call sites get the same tuple back as a value-type tuple — no name-based lookup, no dictionary intermediate.