---
id: ADR-MBR-STR-012
title: Describe Both Replacement and Partial-Save Semantics
product_area: membership
module: structure
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Structure replacements restore omitted ordinary fields to defaults, while configuration updates preserve
  omitted fields and replace only submitted lists.
constrains:
  - SVC-MBR-STR-structure
  - SVC-MBR-STR-configuration
  - DOM-MBR-STR-001
  - DOM-MBR-STR-002
  - DOM-MBR-STR-006
  - WF-MBR-STR-005
origin: >-
  Observed contracts of the two services (FND-MBR-STR-012); the complete-payload rule for replacements as the
  structure's route declarations state it
alternatives:
  - option: Make every record use partial updates.
    why_not: That would change the structure replacement behavior already exercised by its contracts and tests.
  - option: Require complete configuration payloads for every save.
    why_not: >-
      That would require callers to resend long optional settings and lists that the current contract
      preserves when omitted.
consequences:
  - Omitting activity from kind replacement can reactivate a retired kind.
  - 'Unit replacement clears omitted ordinary details, while custom-field updates apply submitted values only.'
  - Clients must distinguish the two save styles until a harmonizing product decision exists.
supersedes: []
evidence:
  - >-
    services-membership at 5994c270: modules/structure/services/persistence/organizational-unit-types.ts
    (rowValues); organizational-units.ts (attributeValues);
    modules/configuration/services/configuration/configuration-records.ts (updateConfiguration)
---

# Describe Both Replacement and Partial-Save Semantics

## Context

Structure and configuration were implemented with different update contracts. Their difference affects omission, defaults and accidental reactivation.

## Decision

This record exposes the observed difference without silently changing planning. A future common contract needs an explicit decision and compatibility work.

## Alternatives Considered

Make every record use partial updates. That would change the structure replacement behavior already exercised by its contracts and tests. Require complete configuration payloads for every save. That would require callers to resend long optional settings and lists that the current contract preserves when omitted.

## Consequences

Omitting activity from kind replacement can reactivate a retired kind. Unit replacement clears omitted ordinary details, while custom-field updates apply submitted values only. Clients must distinguish the two save styles until a harmonizing product decision exists.
