/** Apply the spawn contract: an empty override removes the inherited key. */ export function mergeEnvironment( inherited: Readonly>, overrides: Readonly> = {}, ): Record { const result: Record = {}; for (const [key, value] of Object.entries(inherited)) { if (value !== undefined) result[key] = value; } for (const [key, value] of Object.entries(overrides)) { if (value === "") delete result[key]; else result[key] = value; } return result; }