Plan V2 Webhook Documentation

This document describes the Plan V2 webhook payload for external API consumers. It explains the payload structure, supported actions, schema definitions, examples, and backward-compatibility considerations.

1) Top-level payload schema (WebhookPayloadV2)

{
  "requestedModifications": {
	"entityType": "PlanVersion | Plan",
	"requestPayload": {},
	"requestor": {}
  },
  "transactionId": "guid",
  "planVersion": {},
  "milestone": {},
  "requestedModificationsV2": {
	"entityType": "PlanVersion | Plan",
	"action": "mutate | discard | publish | move | ...",
	"requestPayload": {},
	"requestor": {}
  }
}
Field Type Description
requestedModifications object Existing/legacy modification context (backward compatibility).
transactionId guid Correlation id for tracing and idempotency.
planVersion PlanVersionRespDtoV2 Native Plan V2 plan version snapshot. Can be null if unavailable.
milestone MilestoneRoadmapEntity Legacy milestone-shaped projection for backward compatibility consumers.
requestedModificationsV2 RequestedModificationsV2 V2-native modification context with explicit action + command DTO payload.

2) requestedModificationsV2 schema (RequestedModificationsV2)

Field Type Description
entityType enum Typically PlanVersion or Plan.
action string Command action name (for example mutate, discard, publish, move).
requestPayload object Action-specific command DTO.
requestor object Requesting user details when available.

Action -> command DTO mapping

Action DTO type
mutate PlanVersionMutateCmdReqDto
discard PlanVersionDiscardCmdReqDto
publish PlanVersionPublishCmdReqDto
move PlanMoveCmdReqDto
create PlanCreateCmdReqDto
archive PlanArchiveCmdReqDto
restore PlanRestoreCmdReqDto

3) Detailed command DTO schemas

3.1 PlanCreateCmdReqDto

Gocious.Minotaur.Proteus.Model.PlanVersion.Dto.Req.PlanVersionCreateCmdReqDto

Field Type Description
description string Plan version description.
DMZDescription string DMZ description (takes precedence over description).
startOfProduction datetime (UTC) Start of production date.
productLineId guid Product line id for the new plan version.
parentId guid (optional) Parent plan id (optional).
planId guid Plan id.
version VersionDts Version information.
stageId guid (optional) Stage id (optional).
planPropertyIds array of guid List of plan property ids.
benefits array of BenefitAttributeValueDts Plan benefits with attribute values.
costs array of AttributeValueDts Plan costs with attribute values.
themeIds array of guid List of theme ids.
featureIds array of guid List of feature ids.
featureChangeIndicators object map<guid, FeatureChangeIndicator> Feature change indicators by feature id.
keyFeatureTypes array of guid Set of key feature type ids.
attributeValues object map<guid, AttributeValueDts> Attribute values by attribute id.
meta Meta Command metadata.

Note: PlanVersionMutateCmdReqDto uses optional/patch semantics. A field may be omitted if not being changed.

3.2 PlanVersionMutateCmdReqDto

Field Type Description
name string Plan version name update.
description string Plan version description update.
startOfProduction datetime (UTC) / null SOP date update.
parentId guid / null Parent plan reference update.
stageId guid / null Workflow stage reference update.
attributeValues List<ListItem<AttributeValueDts>> Summary/cost style attribute updates.
benefits List<BenefitAttributeValueDts> Benefit attribute updates scoped by market division ids.
costs List<AttributeValueDts> Cost attribute updates.
planPropertyIds List<ListItem<Guid>> Plan properties add/modify/delete operations.
themeIds List<ListItem<Guid>> Themes add/modify/delete operations.
featureIds List<ListItem<Guid>> Scope features add/modify/delete operations.
keyFeatureTypes List<ListItem<Guid>> Key feature types updates.
featureChangeIndicators List<ListItem<FeatureChangeIndicatorDts>> Feature change indicator updates.
meta Meta Common command metadata.

Meta

Field Type Description
includeEntityDetailsInResponse bool Whether command response includes entity details.

ListItem<T>

Field Type Description
action enum (Delete=-1, Modify=0, Add=1) Mutation operation to apply to item.
item T Item payload for that operation.

FeatureChangeIndicatorDts

Field Type Description
featureId guid Feature id.
indicator enum Unchanged, New, Changed, Introduction.

AttributeValueDts request polymorphic schema

Base shape:

Field Type Description
id guid Attribute id.
dataTypeEnum enum Attribute data type discriminator.

Possible concrete shapes:

Concrete type Additional fields
TextAttributeValueDts value: string
NumericAttributeValueDts value: double?
PercentageAttributeValueDts value: double?
DateTimeAttributeValueDts value: datetime?
ValueChoiceAttributeValueDts choiceId: guid
MultipleChoiceAttributeValueDts choiceIds: List<guid>
CurrencyAttributeValueDts value: double?, currencyId: guid
UnitOfMeasureAttributeValueDts value: double?, unitOfMeasureId: guid

BenefitAttributeValueDts

Field Type Description
marketDivisionIds HashSet<guid> Market divisions this benefit applies to.
attributeValue AttributeValueDts Benefit attribute payload (polymorphic).

3.3 PlanVersionDiscardCmdReqDto

Field Type Description
id guid Plan version id to discard.
planId guid plan id.
meta Meta Command metadata.

3.4 PlanVersionPublishCmdReqDto

Field Type Description
meta Meta Command metadata.

3.5 PlanArchiveCmdReqDto

Field Type Description
planId guid Plan id to archive.
meta Meta Command metadata.

3.6 PlanRestoreCmdReqDto

Field Type Description
planId guid Plan id to restore.
meta Meta Command metadata.

3.7 PlanMoveCmdReqDto

Field Type Description
sourceProductLineId guid Current/source product line id.
targetProductLineId guid Target product line id.

4) Detailed planVersion schema (PlanVersionRespDtoV2)

planVersion is composed of base response fields plus section objects.

4.1 Base fields from BaseRespDto

Field Type Description
id guid Plan version id.
name string Plan version display name.
createDate datetime (UTC) Creation timestamp.
createdBy UserRespDts User who created the record.
updateDate datetime (UTC) Last update timestamp.
updatedBy UserRespDts User who last updated the record.
status enum Entity status.

UserRespDts

Field Type Description
id guid User id.
name string User name fallback.
firstName string First name.
middleName string Middle name.
lastName string Last name.
displayName string Computed display name (first + last, fallback to name).
email string Email address.
avatarUrl string Avatar URL.

4.2 Section fields in PlanVersionRespDtoV2

Field Type Description
core CoreSectionDts Core identity and metadata.
summary SummarySectionDts Summary attribute values.
workflow WorkflowSectionDts Stage/workflow information.
scope ScopeSectionDts Feature scope list.
benefits BenefitSectionDts Benefit attribute values.
costs CostSectionDts Cost attribute values.
market MarketSectionDts Market references.

4.3 CoreSectionDts

Field Type Description
version VersionDts Version metadata.
parent BaseRespDts Parent plan reference (id, name).
planId guid plan id.
productLine ProductLineRespDts Product line reference + metadata.
description string Plan version description.
startOfProduction datetime (UTC) / null SOP date.
themes List<AttributeRespDts> Theme attributes.
planProperties List<PlanPropertyRespDts> Plan properties.

VersionDts

Field Type Description
name string Derived value v{sequentialId}.
sequentialId int Version sequence number.
id guid Version id.
isPublished bool Published state.
isProposed bool Proposed state.
isCurrent bool Current active state.

BaseRespDts (reference object)

Field Type Description
id guid Reference id.
name string Reference display name.

ProductLineRespDts

Field Type Description
id guid Product line id.
name string Product line name.
color string Display color.
thumbnailRefId string Thumbnail reference id.
createDate datetime (UTC) / null Product line creation timestamp.
createdBy guid Product line creator id.
categories List<CategoryRespDts> Product line categories.
access AccessRespDts Access model details.

CategoryRespDts

Field Type Description
id guid Category id.
name string Category name.
categoryLevelId string Category level id.

AccessRespDts

Field Type Description
memberAccess array List of explicit member access entries.

PlanPropertyRespDts

Field Type Description
id guid Plan property id.
name string Plan property name.
abbreviation string Plan property abbreviation.
color string Plan property color.
planGroupCategory PlanPropertyCategoryRespDts Group category metadata.

PlanPropertyCategoryRespDts

Field Type Description
id guid Category id.
name string Category name.
abbreviation string Category abbreviation.
displayOnRoadmaps bool Whether shown on roadmaps.

AttributeRespDts

Field Type Description
id guid Attribute id.
name string Attribute name.
scope enum Attribute scope.
abbreviation string Attribute abbreviation.
thumbnailRefId string Thumbnail reference id.
attributeGroupRef BaseRespDts Attribute group reference.
dataTypeRef DataTypeRespDts Data type details.
systemAttributeEnum enum / null System attribute kind.
origin enum Origin type.
configuration object Data-type-specific attribute configuration.
alerts array Alerts for the attribute.

DataTypeRespDts

Field Type Description
id guid Data type id.
name string Data type name.
dataTypeEnum enum Data type enum.
isUserAssignable bool User assignable flag.
isGroupable bool Groupable flag.
isSortable bool Sortable flag.
isFilterable bool Filterable flag.
isAggregable bool Aggregable flag.

4.4 SummarySectionDts

Field Type Description
attributeValues Dictionary<guid, AttributeValueDts> Summary attribute values keyed by attribute id.

4.5 WorkflowSectionDts

Field Type Description
stage StageRespDts Current stage.

StageRespDts

Field Type Description
id guid Stage id.
name string Stage name.
color string Stage color.
status enum Stage status.
abbreviation string Stage abbreviation.
isEnabledForMilestones bool / null Milestone enablement flag.

4.6 ScopeSectionDts

Field Type Description
features List<FeatureDts> Features included in scope.

FeatureDts

Field Type Description
id guid Feature id.
name string Feature name.
description string Feature description.
code string Feature code.
startDate datetime (UTC) / null Feature start date.
endDate datetime (UTC) / null Feature end date.
featureType FeatureTypeDts Feature type metadata.
changeIndicator enum Change indicator.

FeatureTypeDts

Field Type Description
id guid Feature type id.
name string Feature type name.
category enum Feature type category.
isKey bool Whether key feature type.

4.7 BenefitSectionDts

Field Type Description
attributeValues List<BenefitAttributeValueDts> Benefit values scoped by market divisions.

4.8 CostSectionDts

Field Type Description
attributeValues Dictionary<guid, AttributeValueDts> Cost values keyed by attribute id.

4.9 MarketSectionDts

Field Type Description
marketRefs List<MarketDts> Market references for the plan version.

MarketDts

Field Type Description
id guid Market id.
name string Market name.
code string Market code.
marketDivision BaseRespDts Market division reference (id, name).

4.10 AttributeValueDts response polymorphic schema

Base shape:

Field Type Description
id guid Attribute id.
name string Attribute name.
dataTypeEnum enum Data type discriminator.

Possible concrete response shapes:

Concrete type Additional fields
TextAttributeValueDts value: string
NumericAttributeValueDts value: decimal?
PercentageAttributeValueDts value: decimal?
DateTimeAttributeValueDts value: datetime?
ValueChoiceAttributeValueDts value: string
ChoiceAttributeValueDts choiceId: guid, choiceLabel: string
MultipleChoiceAttributeValueDts choices: List<ChoiceDts>
CurrencyAttributeValueDts value: decimal?, currencyRef: CurrencyDts
UnitOfMeasureAttributeValueDts value: decimal?, unitOfMeasureRef: UnitOfMeasureDts

ChoiceDts

Field Type Description
id guid Choice id.
label string Choice label.

CurrencyDts

Field Type Description
id guid Currency id.
name string Currency name.
code string Currency code.

UnitOfMeasureDts

Field Type Description
id guid UOM id.
name string UOM name.
abbreviation string UOM abbreviation.
categoryRef MeasurementCategoryDts UOM category reference.

MeasurementCategoryDts

Field Type Description
id guid Category id.
name string Category name.

5) JSON examples

5.1 Mutate request payload example (PlanVersionMutateCmdReqDto)

{
  "name": "Updated Plan Version Name",
  "description": "Updated description",
  "DMZDescription": "Updated DMZ text",
  "startOfProduction": "2026-01-15T00:00:00Z",
  "parentId": null,
  "stageId": "b7be44ef-4c68-4e2f-b96a-8fb9b4f3e89e",
  "attributeValues": [
	{
	  "action": 0,
	  "item": {
		"id": "53cfcf70-8d6f-4f7e-a2da-c62fe08aa2a4",
		"dataTypeEnum": "Text",
		"value": "Updated value"
	  }
	}
  ],
  "meta": {
	"includeEntityDetailsInResponse": true
  }
}

5.2 Full webhook example (Mutate)

{
  "transactionId": "9aeb4f6e-f08e-4d78-9f90-77c8fd407fcc",
  "planVersion": {
		"core": {
			"version": {
				"name": "v1",
				"sequentialId": 1,
				"id": "471fae45-2e2b-40be-9b50-bc4ebd9bf1dd",
				"isPublished": false,
				"isProposed": true,
				"isCurrent": false
			},
			"parent": null,
			"planId": "e03555fd-ae3a-421f-81a7-74f9ef77012d",
			"productLine": {
				"color": "#1C6ED9",
				"createDate": "2026-08-10T06:55:46.5984779Z",
				"createdBy": "0ae13d2b-0207-42b6-849e-597603f681b2",
				"categories": [
					{
						"categoryLevelId": "161ccede-504f-45bb-a8de-c685efce5af3",
						"id": "7e26b0f4-e865-4a7c-aac9-05861d20aa90",
						"name": "L1 "
					},
					{
						"categoryLevelId": "807c2c90-b5b2-4aef-b81d-65a7ed024c98",
						"id": "4ae5ce95-fea3-47bf-a669-3d1572a654c1",
						"name": "L2a"
					},
					{
						"categoryLevelId": "876c400c-c70b-493a-a490-4f9c80ef554e",
						"id": "eb2ee3e8-b9d2-496b-ace6-2959c8cc0b5f",
						"name": "L3a"
					},
					{
						"categoryLevelId": "38c48780-6f94-4ed0-be0a-508c2d077038",
						"id": "803a84e9-9579-45d1-9912-86216e88a831",
						"name": "L4"
					}
				],
				"id": "d1a333e4-226c-4e6e-8927-46aece481ef0",
				"name": "PlanV2WebhookTest2"
			},
			"description": "<p>Updated description</p>",
			"startOfProduction": "2026-01-15T00:00:00Z",
			"themes": [
				{
					"scope": "KpiBusiness",
					"abbreviation": "abcd",
					"thumbnailRefId": "dd6af046-6fae-40a2-a226-54fc940ea38a3",
					"attributeGroupRef": null,
					"dataTypeRef": {
						"dataTypeEnum": "Currency",
						"isUserAssignable": true,
						"isGroupable": false,
						"isSortable": true,
						"isFilterable": true,
						"isAggregable": true,
						"id": "d91c59d6-7ae7-47ae-9187-7904646f38e1",
						"name": "Currency"
					},
					"origin": "User",
					"configuration": {
						"id": "da1ff0ab-4512-4783-8e40-53fe97c372db",
						"name": "United States Dollar",
						"code": "USD",
						"status": 10,
						"dataTypeEnum": "Currency"
					},
					"alerts": [],
					"id": "cc97da2d-abb0-445a-9b7c-02fd74eba358",
					"name": "Jan 28 test 2"
				}
			],
			"planProperties": [
				{
					"abbreviation": "OP2",
					"color": "#e87130",
					"planGroupCategory": {
						"abbreviation": "LES",
						"displayOnRoadmaps": true,
						"id": "c672a012-a08b-49b6-968b-e79af3975372",
						"name": "Lead Engineering Site"
					},
					"id": "0f3e09f6-2c1f-42c3-b87e-c28a5664da58",
					"name": "Option2"
				}
			]
		},
		"summary": {
			"attributeValues": {
				"d8d5dccb-b3f5-45c1-bae5-8b9ab3c34dae": {
					"choiceId": "765d8909-f578-4d37-a19f-9de6d9be0697",
					"choiceLabel": "Label 1 updated",
					"id": "d8d5dccb-b3f5-45c1-bae5-8b9ab3c34dae",
					"name": "Feb15ChoiceListUpdated",
					"dataTypeEnum": 90
				},
				"23a3820d-e9be-4b10-9049-4eb68971c904": {
					"value": "99",
					"id": "23a3820d-e9be-4b10-9049-4eb68971c904",
					"name": "Feb15ValueChoiceList",
					"dataTypeEnum": 100
				},
				"53cfcf70-8d6f-4f7e-a2da-c62fe08aa2a4": {
					"value": "rt",
					"id": "53cfcf70-8d6f-4f7e-a2da-c62fe08aa2a4",
					"name": "Updated Value",
					"dataTypeEnum": 10
				},
				"24eca692-09c3-4daf-8ee2-f9a38e92bf30": {
					"value": 23,
					"unitOfMeasureRef": {
						"id": "f008714d-480a-4473-b13f-609e3ee37ca2",
						"name": "kW",
						"abbreviation": "kW Updated4",
						"categoryRef": {
							"id": "ed1e2cf8-df9b-4087-97a6-c97a6ae61e42",
							"name": "Unassigned"
						}
					},
					"id": "24eca692-09c3-4daf-8ee2-f9a38e92bf30",
					"name": "Feb15UOM",
					"dataTypeEnum": 70
				},
				"793dd12b-7981-44f8-874c-4017adcaaaf8": {
					"value": null,
					"id": "793dd12b-7981-44f8-874c-4017adcaaaf8",
					"name": "Feb15DateTime",
					"dataTypeEnum": 50
				},
				"77c18384-00ec-476e-ac26-508a901d585c": {
					"value": 12,
					"currencyRef": {
						"id": "da1ff0ab-4512-4783-8e40-53fe97c372db",
						"name": "United States Dollar",
						"code": "USD"
					},
					"id": "77c18384-00ec-476e-ac26-508a901d585c",
					"name": "Feb15Currency_Updated_07_04_2026",
					"dataTypeEnum": 30
				},
				"bb118e0b-6ae7-47ff-83c3-1f07c6446239": {
					"value": "2026-08-09T18:30:00",
					"id": "bb118e0b-6ae7-47ff-83c3-1f07c6446239",
					"name": "CR (LE)",
					"dataTypeEnum": 50
				},
				"e42b3bd5-3c3e-46f9-9c43-4d97d7186ac4": {
					"choices": [
						{
							"id": "95df1bb5-8d1a-487e-98ce-be4c415afe92",
							"label": "Choice3"
						},
						{
							"id": "bf2768ec-9880-4a45-a8e0-cfe9cfd41062",
							"label": "Choice1Updated"
						}
					],
					"id": "e42b3bd5-3c3e-46f9-9c43-4d97d7186ac4",
					"name": "MCL Attr1",
					"dataTypeEnum": 200
				}
			}
		},
		"workflow": {
			"stage": {
				"color": "#c7df4e",
				"status": 10,
				"abbreviation": "PH6",
				"isEnabledForMilestones": true,
				"id": "b7be44ef-4c68-4e2f-b96a-8fb9b4f3e89e",
				"name": "Evaluation"
			}
		},
		"scope": {
			"features": [
				{
					"id": "04208b9b-d4c3-432e-9dda-29ee598b923e",
					"name": "15v power outlet front",
					"description": null,
					"code": "15vPF",
					"startDate": "2023-08-29T00:00:00",
					"endDate": "2023-12-29T00:00:00",
					"featureType": {
						"id": "87b3e3b2-728f-40a6-b4ed-40ffcd959c8a",
						"name": "KSP_17_15v power outlet front",
						"category": 10,
						"isKey": false
					},
					"changeIndicator": 1
				},
				{
					"id": "29713b5f-11f7-455f-832e-e86a399dc675",
					"name": "15v power outlet front",
					"description": null,
					"code": "15vPF",
					"startDate": "2025-05-09T00:00:00",
					"endDate": null,
					"featureType": {
						"id": "697bdb91-e87b-4787-bf5b-1bfa039e8659",
						"name": "KSP_615v power outlet front",
						"category": 10,
						"isKey": false
					},
					"changeIndicator": 2
				}
			]
		},
		"benefits": {
			"attributeValues": [
				{
					"marketDivisionIds": [],
					"attributeValue": {
						"value": 15,
						"id": "d2f6de46-9e82-43c1-abfb-2727cc933506",
						"name": "FT2",
						"dataTypeEnum": 60
					}
				},
				{
					"marketDivisionIds": [],
					"attributeValue": {
						"value": 35,
						"currencyRef": {
							"id": "da1ff0ab-4512-4783-8e40-53fe97c372db",
							"name": "United States Dollar",
							"code": "USD"
						},
						"id": "ca17b7b2-459e-4aac-a36f-645b5b78168a",
						"name": "FT4",
						"dataTypeEnum": 30
					}
				},
				{
					"marketDivisionIds": [
						"f2f1a765-cfc7-4f7d-a847-b52bf3a5216a",
						"969e305f-2823-41db-8040-42e85f0fca9d"
					],
					"attributeValue": {
						"value": 10,
						"id": "354ae4ce-bf7d-4e38-b9ef-204ba8118e1f",
						"name": "FT1",
						"dataTypeEnum": 60
					}
				}
			]
		},
		"costs": {
			"attributeValues": {
				"59a7f21f-fcec-4b86-8618-a5cb51c1d935": {
					"value": 18,
					"id": "59a7f21f-fcec-4b86-8618-a5cb51c1d935",
					"name": "cost1 updated",
					"dataTypeEnum": 60
				},
				"688bc668-c896-4bf0-8d41-c10c7f43ede0": {
					"value": 20,
					"currencyRef": {
						"id": "da1ff0ab-4512-4783-8e40-53fe97c372db",
						"name": "United States Dollar",
						"code": "USD"
					},
					"id": "688bc668-c896-4bf0-8d41-c10c7f43ede0",
					"name": "Cost4",
					"dataTypeEnum": 30
				}
			}
		},
		"market": {
			"marketRefs": [
				{
					"code": "MDT001",
					"marketDivision": {
						"id": "27c0ae56-e22b-4804-9ccf-6dc1e86a59d4",
						"name": "MD-Test"
					},
					"id": "969e305f-2823-41db-8040-42e85f0fca9d",
					"name": "MD-Test"
				},
				{
					"code": "BC",
					"marketDivision": {
						"id": "cbd9622f-af47-46db-81c6-efaa8d2a2cad",
						"name": "Brand up"
					},
					"id": "f2f1a765-cfc7-4f7d-a847-b52bf3a5216a",
					"name": "Borch"
				}
			]
		},
		"id": "471fae45-2e2b-40be-9b50-bc4ebd9bf1dd",
		"name": "Updated Plan Version Name",
		"createDate": "2026-08-10T06:55:56.1779361Z",
		"createdBy": {
			"firstName": "Jane",
			"middleName": null,
			"lastName": "Doe",
			"displayName": "Jane Doe",
			"email": "jane.doe@example.com",
			"avatarUrl": "https://s.gravatar.com/avatar/822e5c04cf8c93d052e0e83ac0ad731e?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fkr.png",
			"id": "0ae13d2b-0207-42b6-849e-597603f681b2",
			"name": "Jane Doe"
		},
		"updateDate": "2026-08-10T10:57:10.6604672Z",
		"updatedBy": {
			"firstName": "Jane",
			"middleName": null,
			"lastName": "Doe",
			"displayName": "Jane Doe",
			"email": "jane.doe@example.com",
			"avatarUrl": "https://s.gravatar.com/avatar/822e5c04cf8c93d052e0e83ac0ad731e?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fkr.png",
			"id": "0ae13d2b-0207-42b6-849e-597603f681b2",
			"name": "Jane Doe"
		},
		"status": 10
	},
 "requestedModificationsV2": {
		"entityType": "PlanVersion",
		"action": "Mutate",
		"requestPayload": {
		  "name": "Updated Plan Version Name",
		  "description": "Updated description",
		  "startOfProduction": "2026-01-15T00:00:00Z",
		  "parentId": null,
		  "stageId": "b7be44ef-4c68-4e2f-b96a-8fb9b4f3e89e",
		  "attributeValues": [
			{
			  "action": 0,
			  "item": {
				"id": "53cfcf70-8d6f-4f7e-a2da-c62fe08aa2a4",
				"dataTypeEnum": "Text",
				"value": "Updated value"
			  }
			}
		  ],
		  "meta": {
			"includeEntityDetailsInResponse": true
		  }
		},
		"requestor": {
			"id": "0ae13d2b-0207-42b6-849e-597603f681b2",
			"name": "Jane Doe",
			"displayName": "Jane Doe",
			"firstName": "Jane",
			"lastName": "Doe",
			"email": "jane.doe@example.com",
			"avatarURL": "https://s.gravatar.com/avatar/822e5c04cf8c93d052e0e83ac0ad731e?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fkr.png"
		}
	}
}

6) Client integration notes

  1. Continue supporting legacy fields (requestedModifications, milestone) for backward compatibility.
  2. Use requestedModificationsV2.action as the primary discriminator for command parsing.
  3. Deserialize requestedModificationsV2.requestPayload to the matching DTO using the mapping table above.
  4. Use transactionId for idempotency and trace correlation.
  5. Treat unknown future fields as non-breaking additions.