Whole-record Saves Carry the Complete Payload
Context
The recorded product answer requires complete replacement, with separate affiliation and custom-field semantics. This is an adopted target contract rather than a claim about current implementation.
Decision
Replacement must include every replaceable property, with null clearing a value and missing properties refused individually; reads must represent empty properties as null; affiliations and custom fields retain their separately defined collection behavior.
Alternatives Considered
Keep destructive omission as the replacement contract. That permits accidentally dropping a field from a payload to erase stored information, which the adopted complete-payload rule prevents.
Preserve omitted properties during replacement. That duplicates patch semantics instead of expressing a complete replacement. The recorded product answer selected explicit completeness.
Consequences
Existing replacements still clear omitted editable values. Contact editing reduces exposure by patching changed fields, while catalogue editors construct replacements from the record as read. Implementing the decision requires coordinated response and client changes.
The approved requirement remains unimplemented for these records; omitted editable values can still be cleared. Contact editors use patches, while configuration editors retain last-read fields in versioned replacements. Reads need explicit empty values before enforcing complete replacement payloads.