Optionalconfig: ChainConfig<S>signal, reachable from the chain's entry point.
The bare signal export stays, and both are the same function. This exists
because signal is a common local name — Node's own (code, signal) exit
handler shadows it — so a caller that collides has somewhere to go without
renaming the import.
The type of verify: callable to start a chain, and carrying the chain's only standalone helper as a property.
Declared rather than inferred because a generic call signature and a property cannot both come from a
functiondeclaration. The generic parameters here have to stay identical tostartChain's, since restating them is what would silently degrade inference through the chain.