f64 wrapper for total ordering and bit-pattern equality — bare f64 lacks Eq/Ord,
which would break the derived impls on Type. Construction must canonicalize -0.0 → 0.0;
NaN can’t appear from source literals so bit-pattern equality is safe.
optional: true means reads widen to ty | undefined and construction may omit the field.
Distinct from a value-nullable field (ty: T | null, optional: false): must be present
but can be null.
Owning package of a by-name Type reference (InterfaceRef, AliasRef, Alias,
NumberEnum, StringEnum). Carried so structural resolution of an already-typed
value can find the symbol by FQN in a global registry, independent of what the current
module imported.
A union’s members in the order they are printed. Members are stored in
canonical order, which puts null and undefined first; they print last,
as TypeScript prints them: string | null | undefined.