Object properties describe named fields. Spread, destructuring, and rest help you copy those fields without changing the caller's record, but their order and defaults carry specific meaning. Later spread values overwrite earlier ones. A destructuring default applies to an absent or undefined property, while an explicitly empty string stays empty. Object rest lets you remove a private field while preserving the remaining keys. You will also distinguish own properties from values inherited through a prototype. A public payload should include only the record's own fields. Read the expected output shape before writing the expression, then check both a missing field and an empty field.