SPECTRUM_<PLATFORM>_<KEY> when omitted which is the equivalent of
hand-wrapping each field with fromEnv. Called once by
definePlatform, so adapters declare plain Zod and get env fallback for free.
- object: each string-leaf field is wrapped with
fromEnv; non-string fields (records, arrays, nested objects, booleans, numbers) are left as-is. The object is only reconstructed when a field actually changed, and.strict()is preserved so an empty strict “cloud” branch is untouched. - union: each option is rewritten independently, so an env value only satisfies the branch that declares that field (a direct/cloud union stays correctly discriminated).
- anything else is returned unchanged.
z.infer and downstream contexts are unaffected.