/** App-extension columns a domain aggregate carries through untouched. */ export type CustomFields = Readonly>; export function mergeCustomFields(current: CustomFields, patch: CustomFields | undefined) { if (!patch) { return current; } const merged: Record = { ...current }; for (const [key, value] of Object.entries(patch)) { if (value !== undefined) { merged[key] = value; } } return merged; }