Validate a program's constructor-parameter declarations against the bound
args. A params list of bare name strings is documentation only (the
legacy hand-written form — no checks). When at least one entry is a typed
descriptor (the compiler-emitted form), the list is authoritative: every
declared param must be bound in args, every "$name" reference in the
program must be declared, and typed entries validate their bound value
(bytes-like types require a Uint8Array — 32 bytes for pubkey, 64 for
sig; int requires a bigint/number).
Validate a program's constructor-parameter declarations against the bound args. A
paramslist of bare name strings is documentation only (the legacy hand-written form — no checks). When at least one entry is a typed descriptor (the compiler-emitted form), the list is authoritative: every declared param must be bound inargs, every"$name"reference in the program must be declared, and typed entries validate their bound value (bytes-like types require a Uint8Array — 32 bytes forpubkey, 64 forsig;intrequires a bigint/number).