Shallow merge of known own data properties; undefined updates inherit prior values.
Later updates win. Null, false, zero and empty strings are explicit replacements.
Defaults must declare every allowed key, even optional keys with undefined values.
Rejects unknown keys and accessors. Returns a new mutable object without mutation
or deep copying. No value validation is performed by this typed-input helper.
Shallow merge of known own data properties; undefined updates inherit prior values. Later updates win. Null, false, zero and empty strings are explicit replacements. Defaults must declare every allowed key, even optional keys with undefined values. Rejects unknown keys and accessors. Returns a new mutable object without mutation or deep copying. No value validation is performed by this typed-input helper.