---
id: ADR-CRM-REG-008
title: Region Replacement Carries the Complete Payload
product_area: crm
module: regions
revision: 2
status: proposed
design_intent: proposed
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  The proposed regional replacement contract requires every replaceable property, uses null to clear optional
  values and refuses omissions, extending the recorded Entities choice only if Product adopts it for regions.
constrains:
  - DOM-CRM-REG-001
  - SVC-CRM-REG-regions
  - SCR-CRM-REG-001
  - WF-CRM-REG-005
origin: >-
  OQ-CRM-ENT-001 decided 2026-10-22 by Andrew: A (for contacts and organizations), proposed here for regions
  through OQ-CRM-REG-004
alternatives:
  - option: Continue clearing every omitted replaceable value.
    why_not: >-
      Clients unaware of hidden integration or lock values can erase them unless they preserve the full read
      payload.
  - option: Preserve omitted values on replacement.
    why_not: >-
      That supplies partial-update behavior already available through the patch operation and obscures
      replacement semantics.
consequences:
  - Imports and integrations would have to send all replaceable properties.
  - The console’s preservation of read values would become an explicit replacement obligation.
supersedes: []
evidence:
  - >-
    services-crm at a8d1364f: modules/regions/aws/api/regions.routes.ts (toWriteInput); react-console at
    baf6dae3: lib/configuration/regions.ts (carriedThrough).
---

# Region Replacement Carries the Complete Payload

## Context

Entities has a recorded complete-payload replacement decision. Current regional replacement still clears omitted optional values, so clients must carry hidden fields back.

## Decision

This proposal extends the existing record decision to regional definitions without treating that extension as approved. Current omission-as-removal remains observed behavior until Product resolves the regional question.

## Alternatives Considered

Continue clearing every omitted replaceable value. Clients unaware of hidden integration or lock values can erase them unless they preserve the full read payload.

Preserve omitted values on replacement. That supplies partial-update behavior already available through the patch operation and obscures replacement semantics.

## Consequences

Imports and integrations would have to send all replaceable properties. The console’s preservation of read values would become an explicit replacement obligation.
