Zone Management XML changes  (#39694)

* Updates to ZoneManagement cluster xml from latest Spec update(PR#11732)

* Run zap-regen script.
diff --git a/src/app/zap-templates/zcl/data-model/chip/zone-management-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/zone-management-cluster.xml
index dc0fc2f..14820e5 100644
--- a/src/app/zap-templates/zcl/data-model/chip/zone-management-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/zone-management-cluster.xml
@@ -18,7 +18,7 @@
 XML generated by Alchemy; DO NOT EDIT.
 Source: src/app_clusters/ZoneManagement.adoc
 Parameters: in-progress 
-Git: 0.9.2-summer2025-38-gae503ff18
+Git: 0.9.2-summer2025-228-g4ec7ea4c4
 -->
 <configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
   <domain name="Measurement &amp; Sensing"/>
@@ -53,8 +53,8 @@
 
   <struct name="TwoDCartesianVertexStruct" apiMaturity="provisional">
     <cluster code="0x0550"/>
-    <item fieldId="0" name="X" type="int16u" default="0"/>
-    <item fieldId="1" name="Y" type="int16u" default="0"/>
+    <item fieldId="0" name="X" type="int16u"/>
+    <item fieldId="1" name="Y" type="int16u"/>
   </struct>
 
   <struct name="TwoDCartesianZoneStruct" apiMaturity="provisional">
@@ -70,16 +70,17 @@
     <item fieldId="0" name="ZoneID" type="int16u"/>
     <item fieldId="1" name="ZoneType" type="ZoneTypeEnum" min="0x00" max="0x00"/>
     <item fieldId="2" name="ZoneSource" type="ZoneSourceEnum" min="0x00" max="0x01"/>
+    <item fieldId="3" name="TwoDCartesianZone" type="TwoDCartesianZoneStruct" optional="true"/>
   </struct>
 
   <struct name="ZoneTriggerControlStruct" apiMaturity="provisional">
     <cluster code="0x0550"/>
     <item fieldId="0" name="ZoneID" type="int16u"/>
-    <item fieldId="1" name="InitialDuration" type="elapsed_s" default="10" min="1" max="65535"/>
-    <item fieldId="2" name="AugmentationDuration" type="elapsed_s" default="5" max="65535"/>
-    <item fieldId="3" name="MaxDuration" type="elapsed_s" default="30" min="1"/>
-    <item fieldId="4" name="BlindDuration" type="elapsed_s" default="30"/>
-    <item fieldId="5" name="Sensitivity" type="int8u" optional="true" default="5" min="1" max="10"/>
+    <item fieldId="1" name="InitialDuration" type="elapsed_s" min="1" max="65535"/>
+    <item fieldId="2" name="AugmentationDuration" type="elapsed_s" max="65535"/>
+    <item fieldId="3" name="MaxDuration" type="elapsed_s" min="1"/>
+    <item fieldId="4" name="BlindDuration" type="elapsed_s"/>
+    <item fieldId="5" name="Sensitivity" type="int8u" optional="true" min="1" max="10"/>
   </struct>
 
   <cluster apiMaturity="provisional">
@@ -168,24 +169,7 @@
       </mandatoryConform>
     </command>
 
-    <command code="0x03" source="client" name="GetTwoDCartesianZone" optional="true" response="GetTwoDCartesianZoneResponse">
-      <description>The GetTwoDCartesianZone SHALL return the TwoD Cartesian Zone for the passed in ZoneID.</description>
-      <access op="invoke" privilege="manage"/>
-      <arg id="0" name="ZoneID" type="int16u" optional="true" isNullable="true"/>
-      <mandatoryConform>
-        <feature name="TWODCART"/>
-      </mandatoryConform>
-    </command>
-
-    <command code="0x04" source="server" name="GetTwoDCartesianZoneResponse" optional="true" disableDefaultResponse="true">
-      <description>This command SHALL be generated in response to a GetTwoDCartesianZone command.</description>
-      <arg id="0" name="Zones" array="true" type="TwoDCartesianZoneStruct"/>
-      <mandatoryConform>
-        <feature name="TWODCART"/>
-      </mandatoryConform>
-    </command>
-
-    <command code="0x05" source="client" name="RemoveZone" optional="true">
+    <command code="0x03" source="client" name="RemoveZone" optional="true">
       <description>This command SHALL remove the Zone mapped to the passed in ZoneID.</description>
       <access op="invoke" privilege="manage"/>
       <arg id="0" name="ZoneID" type="int16u"/>
@@ -194,13 +178,13 @@
       </mandatoryConform>
     </command>
 
-    <command code="0x06" source="client" name="CreateOrUpdateTrigger">
+    <command code="0x04" source="client" name="CreateOrUpdateTrigger">
       <description>This command is used to create or update a Trigger for the specified motion Zone.</description>
       <access op="invoke" privilege="manage"/>
       <arg id="0" name="Trigger" type="ZoneTriggerControlStruct"/>
     </command>
 
-    <command code="0x07" source="client" name="RemoveTrigger">
+    <command code="0x05" source="client" name="RemoveTrigger">
       <description>This command SHALL remove the Trigger mapped to the provided ZoneID.</description>
       <access op="invoke" privilege="manage"/>
       <arg id="0" name="ZoneID" type="int16u"/>
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index 273d549..bb654d5 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -9639,6 +9639,7 @@
     int16u zoneID = 0;
     ZoneTypeEnum zoneType = 1;
     ZoneSourceEnum zoneSource = 2;
+    optional TwoDCartesianZoneStruct twoDCartesianZone = 3;
   }
 
   struct ZoneTriggerControlStruct {
@@ -9686,14 +9687,6 @@
     TwoDCartesianZoneStruct zone = 1;
   }
 
-  request struct GetTwoDCartesianZoneRequest {
-    optional nullable int16u zoneID = 0;
-  }
-
-  response struct GetTwoDCartesianZoneResponse = 4 {
-    TwoDCartesianZoneStruct zones[] = 0;
-  }
-
   request struct RemoveZoneRequest {
     int16u zoneID = 0;
   }
@@ -9710,14 +9703,12 @@
   command access(invoke: manage) CreateTwoDCartesianZone(CreateTwoDCartesianZoneRequest): CreateTwoDCartesianZoneResponse = 0;
   /** The UpdateTwoDCartesianZone SHALL update a stored TwoD Cartesian Zone. */
   command access(invoke: manage) UpdateTwoDCartesianZone(UpdateTwoDCartesianZoneRequest): DefaultSuccess = 2;
-  /** The GetTwoDCartesianZone SHALL return the TwoD Cartesian Zone for the passed in ZoneID. */
-  command access(invoke: manage) GetTwoDCartesianZone(GetTwoDCartesianZoneRequest): GetTwoDCartesianZoneResponse = 3;
   /** This command SHALL remove the Zone mapped to the passed in ZoneID. */
-  command access(invoke: manage) RemoveZone(RemoveZoneRequest): DefaultSuccess = 5;
+  command access(invoke: manage) RemoveZone(RemoveZoneRequest): DefaultSuccess = 3;
   /** This command is used to create or update a Trigger for the specified motion Zone. */
-  command access(invoke: manage) CreateOrUpdateTrigger(CreateOrUpdateTriggerRequest): DefaultSuccess = 6;
+  command access(invoke: manage) CreateOrUpdateTrigger(CreateOrUpdateTriggerRequest): DefaultSuccess = 4;
   /** This command SHALL remove the Trigger mapped to the provided ZoneID. */
-  command access(invoke: manage) RemoveTrigger(RemoveTriggerRequest): DefaultSuccess = 7;
+  command access(invoke: manage) RemoveTrigger(RemoveTriggerRequest): DefaultSuccess = 5;
 }
 
 /** The Camera AV Stream Management cluster is used to allow clients to manage, control, and configure various audio, video, and snapshot streams on a camera. */
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java b/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java
index 3d1761c..b2b906c 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java
@@ -56872,42 +56872,12 @@
         }}, commandId, commandArgs, timedInvokeTimeoutMs);
     }
 
-    public void getTwoDCartesianZone(GetTwoDCartesianZoneResponseCallback callback, @Nullable Optional<Integer> zoneID) {
-      getTwoDCartesianZone(callback, zoneID, 0);
-    }
-
-    public void getTwoDCartesianZone(GetTwoDCartesianZoneResponseCallback callback, @Nullable Optional<Integer> zoneID, int timedInvokeTimeoutMs) {
-      final long commandId = 3L;
-
-      ArrayList<StructElement> elements = new ArrayList<>();
-      final long zoneIDFieldID = 0L;
-      BaseTLVType zoneIDtlvValue = zoneID != null ? zoneID.<BaseTLVType>map((nonOptionalzoneID) -> new UIntType(nonOptionalzoneID)).orElse(new EmptyType()) : new NullType();
-      elements.add(new StructElement(zoneIDFieldID, zoneIDtlvValue));
-
-      StructType commandArgs = new StructType(elements);
-      invoke(new InvokeCallbackImpl(callback) {
-          @Override
-          public void onResponse(StructType invokeStructValue) {
-          final long zonesFieldID = 0L;
-          ArrayList<ChipStructs.ZoneManagementClusterTwoDCartesianZoneStruct> zones = null;
-          for (StructElement element: invokeStructValue.value()) {
-            if (element.contextTagNum() == zonesFieldID) {
-              if (element.value(BaseTLVType.class).type() == TLVType.Array) {
-                ArrayType castingValue = element.value(ArrayType.class);
-                zones = castingValue.map((elementcastingValue) -> ChipStructs.ZoneManagementClusterTwoDCartesianZoneStruct.decodeTlv(elementcastingValue));
-              }
-            }
-          }
-          callback.onSuccess(zones);
-        }}, commandId, commandArgs, timedInvokeTimeoutMs);
-    }
-
     public void removeZone(DefaultClusterCallback callback, Integer zoneID) {
       removeZone(callback, zoneID, 0);
     }
 
     public void removeZone(DefaultClusterCallback callback, Integer zoneID, int timedInvokeTimeoutMs) {
-      final long commandId = 5L;
+      final long commandId = 3L;
 
       ArrayList<StructElement> elements = new ArrayList<>();
       final long zoneIDFieldID = 0L;
@@ -56927,7 +56897,7 @@
     }
 
     public void createOrUpdateTrigger(DefaultClusterCallback callback, ChipStructs.ZoneManagementClusterZoneTriggerControlStruct trigger, int timedInvokeTimeoutMs) {
-      final long commandId = 6L;
+      final long commandId = 4L;
 
       ArrayList<StructElement> elements = new ArrayList<>();
       final long triggerFieldID = 0L;
@@ -56947,7 +56917,7 @@
     }
 
     public void removeTrigger(DefaultClusterCallback callback, Integer zoneID, int timedInvokeTimeoutMs) {
-      final long commandId = 7L;
+      final long commandId = 5L;
 
       ArrayList<StructElement> elements = new ArrayList<>();
       final long zoneIDFieldID = 0L;
@@ -56966,10 +56936,6 @@
       void onSuccess(Integer zoneID);
     }
 
-    public interface GetTwoDCartesianZoneResponseCallback extends BaseClusterCallback {
-      void onSuccess(ArrayList<ChipStructs.ZoneManagementClusterTwoDCartesianZoneStruct> zones);
-    }
-
     public interface ZonesAttributeCallback extends BaseAttributeCallback {
       void onSuccess(List<ChipStructs.ZoneManagementClusterZoneInformationStruct> value);
     }
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java b/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java
index 1452532..701f4c1 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java
@@ -13364,18 +13364,22 @@
   public Integer zoneID;
   public Integer zoneType;
   public Integer zoneSource;
+  public Optional<ChipStructs.ZoneManagementClusterTwoDCartesianZoneStruct> twoDCartesianZone;
   private static final long ZONE_ID_ID = 0L;
   private static final long ZONE_TYPE_ID = 1L;
   private static final long ZONE_SOURCE_ID = 2L;
+  private static final long TWO_D_CARTESIAN_ZONE_ID = 3L;
 
   public ZoneManagementClusterZoneInformationStruct(
     Integer zoneID,
     Integer zoneType,
-    Integer zoneSource
+    Integer zoneSource,
+    Optional<ChipStructs.ZoneManagementClusterTwoDCartesianZoneStruct> twoDCartesianZone
   ) {
     this.zoneID = zoneID;
     this.zoneType = zoneType;
     this.zoneSource = zoneSource;
+    this.twoDCartesianZone = twoDCartesianZone;
   }
 
   public StructType encodeTlv() {
@@ -13383,6 +13387,7 @@
     values.add(new StructElement(ZONE_ID_ID, new UIntType(zoneID)));
     values.add(new StructElement(ZONE_TYPE_ID, new UIntType(zoneType)));
     values.add(new StructElement(ZONE_SOURCE_ID, new UIntType(zoneSource)));
+    values.add(new StructElement(TWO_D_CARTESIAN_ZONE_ID, twoDCartesianZone.<BaseTLVType>map((nonOptionaltwoDCartesianZone) -> nonOptionaltwoDCartesianZone.encodeTlv()).orElse(new EmptyType())));
 
     return new StructType(values);
   }
@@ -13394,6 +13399,7 @@
     Integer zoneID = null;
     Integer zoneType = null;
     Integer zoneSource = null;
+    Optional<ChipStructs.ZoneManagementClusterTwoDCartesianZoneStruct> twoDCartesianZone = Optional.empty();
     for (StructElement element: ((StructType)tlvValue).value()) {
       if (element.contextTagNum() == ZONE_ID_ID) {
         if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
@@ -13410,12 +13416,18 @@
           UIntType castingValue = element.value(UIntType.class);
           zoneSource = castingValue.value(Integer.class);
         }
+      } else if (element.contextTagNum() == TWO_D_CARTESIAN_ZONE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Struct) {
+          StructType castingValue = element.value(StructType.class);
+          twoDCartesianZone = Optional.of(ChipStructs.ZoneManagementClusterTwoDCartesianZoneStruct.decodeTlv(castingValue));
+        }
       }
     }
     return new ZoneManagementClusterZoneInformationStruct(
       zoneID,
       zoneType,
-      zoneSource
+      zoneSource,
+      twoDCartesianZone
     );
   }
 
@@ -13432,6 +13444,9 @@
     output.append("\tzoneSource: ");
     output.append(zoneSource);
     output.append("\n");
+    output.append("\ttwoDCartesianZone: ");
+    output.append(twoDCartesianZone);
+    output.append("\n");
     output.append("}\n");
     return output.toString();
   }
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java
index 8d9475e..6965d47 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java
@@ -17343,10 +17343,9 @@
         public enum Command {
             CreateTwoDCartesianZone(0L),
             UpdateTwoDCartesianZone(2L),
-            GetTwoDCartesianZone(3L),
-            RemoveZone(5L),
-            CreateOrUpdateTrigger(6L),
-            RemoveTrigger(7L),;
+            RemoveZone(3L),
+            CreateOrUpdateTrigger(4L),
+            RemoveTrigger(5L),;
             private final long id;
             Command(long id) {
                 this.id = id;
@@ -17398,23 +17397,6 @@
                         }
                         throw new NoSuchFieldError();
                     }
-                }public enum GetTwoDCartesianZoneCommandField {ZoneID(0),;
-                    private final int id;
-                    GetTwoDCartesianZoneCommandField(int id) {
-                        this.id = id;
-                    }
-
-                    public int getID() {
-                        return id;
-                    }
-                    public static GetTwoDCartesianZoneCommandField value(int id) throws NoSuchFieldError {
-                        for (GetTwoDCartesianZoneCommandField field : GetTwoDCartesianZoneCommandField.values()) {
-                        if (field.getID() == id) {
-                            return field;
-                        }
-                        }
-                        throw new NoSuchFieldError();
-                    }
                 }public enum RemoveZoneCommandField {ZoneID(0),;
                     private final int id;
                     RemoveZoneCommandField(int id) {
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java
index 2289237..a7b234c 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java
@@ -17945,29 +17945,6 @@
       callback.onFailure(error);
     }
   }
-
-  public static class DelegatedZoneManagementClusterGetTwoDCartesianZoneResponseCallback implements ChipClusters.ZoneManagementCluster.GetTwoDCartesianZoneResponseCallback, DelegatedClusterCallback {
-    private ClusterCommandCallback callback;
-    @Override
-    public void setCallbackDelegate(ClusterCommandCallback callback) {
-      this.callback = callback;
-    }
-
-    @Override
-    public void onSuccess(ArrayList<ChipStructs.ZoneManagementClusterTwoDCartesianZoneStruct> zones) {
-      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      // zones: TwoDCartesianZoneStruct
-      // Conversion from this type to Java is not properly implemented yet
-
-      callback.onSuccess(responseValues);
-    }
-
-    @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
-    }
-  }
   public static class DelegatedZoneManagementClusterZonesAttributeCallback implements ChipClusters.ZoneManagementCluster.ZonesAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
@@ -29443,24 +29420,6 @@
     );
     zoneManagementClusterInteractionInfoMap.put("updateTwoDCartesianZone", zoneManagementupdateTwoDCartesianZoneInteractionInfo);
 
-    Map<String, CommandParameterInfo> zoneManagementgetTwoDCartesianZoneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo zoneManagementgetTwoDCartesianZonezoneIDCommandParameterInfo = new CommandParameterInfo("zoneID", Optional.class, Integer.class);
-    zoneManagementgetTwoDCartesianZoneCommandParams.put("zoneID",zoneManagementgetTwoDCartesianZonezoneIDCommandParameterInfo);
-    InteractionInfo zoneManagementgetTwoDCartesianZoneInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ZoneManagementCluster) cluster)
-          .getTwoDCartesianZone((ChipClusters.ZoneManagementCluster.GetTwoDCartesianZoneResponseCallback) callback
-           , (Optional<Integer>)
-             commandArguments.get("zoneID")
-
-            );
-        },
-        () -> new DelegatedZoneManagementClusterGetTwoDCartesianZoneResponseCallback(),
-        zoneManagementgetTwoDCartesianZoneCommandParams
-      );
-    zoneManagementClusterInteractionInfoMap.put("getTwoDCartesianZone", zoneManagementgetTwoDCartesianZoneInteractionInfo);
-
     Map<String, CommandParameterInfo> zoneManagementremoveZoneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
     CommandParameterInfo zoneManagementremoveZonezoneIDCommandParameterInfo = new CommandParameterInfo("zoneID", Integer.class, Integer.class);
diff --git a/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ZoneManagementClusterZoneInformationStruct.kt b/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ZoneManagementClusterZoneInformationStruct.kt
index 3073c80..4e555d9 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ZoneManagementClusterZoneInformationStruct.kt
+++ b/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ZoneManagementClusterZoneInformationStruct.kt
@@ -17,6 +17,7 @@
 package chip.devicecontroller.cluster.structs
 
 import chip.devicecontroller.cluster.*
+import java.util.Optional
 import matter.tlv.ContextSpecificTag
 import matter.tlv.Tag
 import matter.tlv.TlvReader
@@ -26,12 +27,14 @@
   val zoneID: UInt,
   val zoneType: UInt,
   val zoneSource: UInt,
+  val twoDCartesianZone: Optional<ZoneManagementClusterTwoDCartesianZoneStruct>,
 ) {
   override fun toString(): String = buildString {
     append("ZoneManagementClusterZoneInformationStruct {\n")
     append("\tzoneID : $zoneID\n")
     append("\tzoneType : $zoneType\n")
     append("\tzoneSource : $zoneSource\n")
+    append("\ttwoDCartesianZone : $twoDCartesianZone\n")
     append("}\n")
   }
 
@@ -41,6 +44,10 @@
       put(ContextSpecificTag(TAG_ZONE_ID), zoneID)
       put(ContextSpecificTag(TAG_ZONE_TYPE), zoneType)
       put(ContextSpecificTag(TAG_ZONE_SOURCE), zoneSource)
+      if (twoDCartesianZone.isPresent) {
+        val opttwoDCartesianZone = twoDCartesianZone.get()
+        opttwoDCartesianZone.toTlv(ContextSpecificTag(TAG_TWO_D_CARTESIAN_ZONE), this)
+      }
       endStructure()
     }
   }
@@ -49,16 +56,33 @@
     private const val TAG_ZONE_ID = 0
     private const val TAG_ZONE_TYPE = 1
     private const val TAG_ZONE_SOURCE = 2
+    private const val TAG_TWO_D_CARTESIAN_ZONE = 3
 
     fun fromTlv(tlvTag: Tag, tlvReader: TlvReader): ZoneManagementClusterZoneInformationStruct {
       tlvReader.enterStructure(tlvTag)
       val zoneID = tlvReader.getUInt(ContextSpecificTag(TAG_ZONE_ID))
       val zoneType = tlvReader.getUInt(ContextSpecificTag(TAG_ZONE_TYPE))
       val zoneSource = tlvReader.getUInt(ContextSpecificTag(TAG_ZONE_SOURCE))
+      val twoDCartesianZone =
+        if (tlvReader.isNextTag(ContextSpecificTag(TAG_TWO_D_CARTESIAN_ZONE))) {
+          Optional.of(
+            ZoneManagementClusterTwoDCartesianZoneStruct.fromTlv(
+              ContextSpecificTag(TAG_TWO_D_CARTESIAN_ZONE),
+              tlvReader,
+            )
+          )
+        } else {
+          Optional.empty()
+        }
 
       tlvReader.exitContainer()
 
-      return ZoneManagementClusterZoneInformationStruct(zoneID, zoneType, zoneSource)
+      return ZoneManagementClusterZoneInformationStruct(
+        zoneID,
+        zoneType,
+        zoneSource,
+        twoDCartesianZone,
+      )
     }
   }
 }
diff --git a/src/controller/java/generated/java/matter/controller/cluster/clusters/ZoneManagementCluster.kt b/src/controller/java/generated/java/matter/controller/cluster/clusters/ZoneManagementCluster.kt
index c75239f..e825f33 100644
--- a/src/controller/java/generated/java/matter/controller/cluster/clusters/ZoneManagementCluster.kt
+++ b/src/controller/java/generated/java/matter/controller/cluster/clusters/ZoneManagementCluster.kt
@@ -49,8 +49,6 @@
 ) {
   class CreateTwoDCartesianZoneResponse(val zoneID: UShort)
 
-  class GetTwoDCartesianZoneResponse(val zones: List<ZoneManagementClusterTwoDCartesianZoneStruct>)
-
   class ZonesAttribute(val value: List<ZoneManagementClusterZoneInformationStruct>)
 
   sealed class ZonesAttributeSubscriptionState {
@@ -189,62 +187,8 @@
     logger.log(Level.FINE, "Invoke command succeeded: ${response}")
   }
 
-  suspend fun getTwoDCartesianZone(
-    zoneID: UShort?,
-    timedInvokeTimeout: Duration? = null,
-  ): GetTwoDCartesianZoneResponse {
-    val commandId: UInt = 3u
-
-    val tlvWriter = TlvWriter()
-    tlvWriter.startStructure(AnonymousTag)
-
-    val TAG_ZONE_ID_REQ: Int = 0
-    zoneID?.let { tlvWriter.put(ContextSpecificTag(TAG_ZONE_ID_REQ), zoneID) }
-    tlvWriter.endStructure()
-
-    val request: InvokeRequest =
-      InvokeRequest(
-        CommandPath(endpointId, clusterId = CLUSTER_ID, commandId),
-        tlvPayload = tlvWriter.getEncoded(),
-        timedRequest = timedInvokeTimeout,
-      )
-
-    val response: InvokeResponse = controller.invoke(request)
-    logger.log(Level.FINE, "Invoke command succeeded: ${response}")
-
-    val tlvReader = TlvReader(response.payload)
-    tlvReader.enterStructure(AnonymousTag)
-    val TAG_ZONES: Int = 0
-    var zones_decoded: List<ZoneManagementClusterTwoDCartesianZoneStruct>? = null
-
-    while (!tlvReader.isEndOfContainer()) {
-      val tag = tlvReader.peekElement().tag
-
-      if (tag == ContextSpecificTag(TAG_ZONES)) {
-        zones_decoded =
-          buildList<ZoneManagementClusterTwoDCartesianZoneStruct> {
-            tlvReader.enterArray(tag)
-            while (!tlvReader.isEndOfContainer()) {
-              add(ZoneManagementClusterTwoDCartesianZoneStruct.fromTlv(AnonymousTag, tlvReader))
-            }
-            tlvReader.exitContainer()
-          }
-      } else {
-        tlvReader.skipElement()
-      }
-    }
-
-    if (zones_decoded == null) {
-      throw IllegalStateException("zones not found in TLV")
-    }
-
-    tlvReader.exitContainer()
-
-    return GetTwoDCartesianZoneResponse(zones_decoded)
-  }
-
   suspend fun removeZone(zoneID: UShort, timedInvokeTimeout: Duration? = null) {
-    val commandId: UInt = 5u
+    val commandId: UInt = 3u
 
     val tlvWriter = TlvWriter()
     tlvWriter.startStructure(AnonymousTag)
@@ -268,7 +212,7 @@
     trigger: ZoneManagementClusterZoneTriggerControlStruct,
     timedInvokeTimeout: Duration? = null,
   ) {
-    val commandId: UInt = 6u
+    val commandId: UInt = 4u
 
     val tlvWriter = TlvWriter()
     tlvWriter.startStructure(AnonymousTag)
@@ -289,7 +233,7 @@
   }
 
   suspend fun removeTrigger(zoneID: UShort, timedInvokeTimeout: Duration? = null) {
-    val commandId: UInt = 7u
+    val commandId: UInt = 5u
 
     val tlvWriter = TlvWriter()
     tlvWriter.startStructure(AnonymousTag)
diff --git a/src/controller/java/generated/java/matter/controller/cluster/structs/ZoneManagementClusterZoneInformationStruct.kt b/src/controller/java/generated/java/matter/controller/cluster/structs/ZoneManagementClusterZoneInformationStruct.kt
index 8de10c8..53f934b 100644
--- a/src/controller/java/generated/java/matter/controller/cluster/structs/ZoneManagementClusterZoneInformationStruct.kt
+++ b/src/controller/java/generated/java/matter/controller/cluster/structs/ZoneManagementClusterZoneInformationStruct.kt
@@ -16,6 +16,7 @@
  */
 package matter.controller.cluster.structs
 
+import java.util.Optional
 import matter.controller.cluster.*
 import matter.tlv.ContextSpecificTag
 import matter.tlv.Tag
@@ -26,12 +27,14 @@
   val zoneID: UShort,
   val zoneType: UByte,
   val zoneSource: UByte,
+  val twoDCartesianZone: Optional<ZoneManagementClusterTwoDCartesianZoneStruct>,
 ) {
   override fun toString(): String = buildString {
     append("ZoneManagementClusterZoneInformationStruct {\n")
     append("\tzoneID : $zoneID\n")
     append("\tzoneType : $zoneType\n")
     append("\tzoneSource : $zoneSource\n")
+    append("\ttwoDCartesianZone : $twoDCartesianZone\n")
     append("}\n")
   }
 
@@ -41,6 +44,10 @@
       put(ContextSpecificTag(TAG_ZONE_ID), zoneID)
       put(ContextSpecificTag(TAG_ZONE_TYPE), zoneType)
       put(ContextSpecificTag(TAG_ZONE_SOURCE), zoneSource)
+      if (twoDCartesianZone.isPresent) {
+        val opttwoDCartesianZone = twoDCartesianZone.get()
+        opttwoDCartesianZone.toTlv(ContextSpecificTag(TAG_TWO_D_CARTESIAN_ZONE), this)
+      }
       endStructure()
     }
   }
@@ -49,16 +56,33 @@
     private const val TAG_ZONE_ID = 0
     private const val TAG_ZONE_TYPE = 1
     private const val TAG_ZONE_SOURCE = 2
+    private const val TAG_TWO_D_CARTESIAN_ZONE = 3
 
     fun fromTlv(tlvTag: Tag, tlvReader: TlvReader): ZoneManagementClusterZoneInformationStruct {
       tlvReader.enterStructure(tlvTag)
       val zoneID = tlvReader.getUShort(ContextSpecificTag(TAG_ZONE_ID))
       val zoneType = tlvReader.getUByte(ContextSpecificTag(TAG_ZONE_TYPE))
       val zoneSource = tlvReader.getUByte(ContextSpecificTag(TAG_ZONE_SOURCE))
+      val twoDCartesianZone =
+        if (tlvReader.isNextTag(ContextSpecificTag(TAG_TWO_D_CARTESIAN_ZONE))) {
+          Optional.of(
+            ZoneManagementClusterTwoDCartesianZoneStruct.fromTlv(
+              ContextSpecificTag(TAG_TWO_D_CARTESIAN_ZONE),
+              tlvReader,
+            )
+          )
+        } else {
+          Optional.empty()
+        }
 
       tlvReader.exitContainer()
 
-      return ZoneManagementClusterZoneInformationStruct(zoneID, zoneType, zoneSource)
+      return ZoneManagementClusterZoneInformationStruct(
+        zoneID,
+        zoneType,
+        zoneSource,
+        twoDCartesianZone,
+      )
     }
   }
 }
diff --git a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
index 6119e86..6a03643 100644
--- a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
+++ b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
@@ -40536,6 +40536,128 @@
                 chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_zoneSourceClassName.c_str(),
                                                                            newElement_0_zoneSourceCtorSignature.c_str(),
                                                                            jninewElement_0_zoneSource, newElement_0_zoneSource);
+                jobject newElement_0_twoDCartesianZone;
+                if (!entry_0.twoDCartesianZone.HasValue())
+                {
+                    chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_twoDCartesianZone);
+                }
+                else
+                {
+                    jobject newElement_0_twoDCartesianZoneInsideOptional;
+                    jobject newElement_0_twoDCartesianZoneInsideOptional_name;
+                    LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
+                        entry_0.twoDCartesianZone.Value().name, newElement_0_twoDCartesianZoneInsideOptional_name));
+                    jobject newElement_0_twoDCartesianZoneInsideOptional_use;
+                    std::string newElement_0_twoDCartesianZoneInsideOptional_useClassName     = "java/lang/Integer";
+                    std::string newElement_0_twoDCartesianZoneInsideOptional_useCtorSignature = "(I)V";
+                    jint jninewElement_0_twoDCartesianZoneInsideOptional_use =
+                        static_cast<jint>(entry_0.twoDCartesianZone.Value().use);
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        newElement_0_twoDCartesianZoneInsideOptional_useClassName.c_str(),
+                        newElement_0_twoDCartesianZoneInsideOptional_useCtorSignature.c_str(),
+                        jninewElement_0_twoDCartesianZoneInsideOptional_use, newElement_0_twoDCartesianZoneInsideOptional_use);
+                    jobject newElement_0_twoDCartesianZoneInsideOptional_vertices;
+                    chip::JniReferences::GetInstance().CreateArrayList(newElement_0_twoDCartesianZoneInsideOptional_vertices);
+
+                    auto iter_newElement_0_twoDCartesianZoneInsideOptional_vertices_4 =
+                        entry_0.twoDCartesianZone.Value().vertices.begin();
+                    while (iter_newElement_0_twoDCartesianZoneInsideOptional_vertices_4.Next())
+                    {
+                        auto & entry_4 = iter_newElement_0_twoDCartesianZoneInsideOptional_vertices_4.GetValue();
+                        jobject newElement_4;
+                        jobject newElement_4_x;
+                        std::string newElement_4_xClassName     = "java/lang/Integer";
+                        std::string newElement_4_xCtorSignature = "(I)V";
+                        jint jninewElement_4_x                  = static_cast<jint>(entry_4.x);
+                        chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_4_xClassName.c_str(),
+                                                                                   newElement_4_xCtorSignature.c_str(),
+                                                                                   jninewElement_4_x, newElement_4_x);
+                        jobject newElement_4_y;
+                        std::string newElement_4_yClassName     = "java/lang/Integer";
+                        std::string newElement_4_yCtorSignature = "(I)V";
+                        jint jninewElement_4_y                  = static_cast<jint>(entry_4.y);
+                        chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_4_yClassName.c_str(),
+                                                                                   newElement_4_yCtorSignature.c_str(),
+                                                                                   jninewElement_4_y, newElement_4_y);
+
+                        {
+                            jclass twoDCartesianVertexStructStructClass_5;
+                            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                                env, "chip/devicecontroller/ChipStructs$ZoneManagementClusterTwoDCartesianVertexStruct",
+                                twoDCartesianVertexStructStructClass_5);
+                            if (err != CHIP_NO_ERROR)
+                            {
+                                ChipLogError(Zcl,
+                                             "Could not find class ChipStructs$ZoneManagementClusterTwoDCartesianVertexStruct");
+                                return nullptr;
+                            }
+
+                            jmethodID twoDCartesianVertexStructStructCtor_5;
+                            err = chip::JniReferences::GetInstance().FindMethod(
+                                env, twoDCartesianVertexStructStructClass_5, "<init>", "(Ljava/lang/Integer;Ljava/lang/Integer;)V",
+                                &twoDCartesianVertexStructStructCtor_5);
+                            if (err != CHIP_NO_ERROR || twoDCartesianVertexStructStructCtor_5 == nullptr)
+                            {
+                                ChipLogError(
+                                    Zcl, "Could not find ChipStructs$ZoneManagementClusterTwoDCartesianVertexStruct constructor");
+                                return nullptr;
+                            }
+
+                            newElement_4 = env->NewObject(twoDCartesianVertexStructStructClass_5,
+                                                          twoDCartesianVertexStructStructCtor_5, newElement_4_x, newElement_4_y);
+                        }
+                        chip::JniReferences::GetInstance().AddToList(newElement_0_twoDCartesianZoneInsideOptional_vertices,
+                                                                     newElement_4);
+                    }
+                    jobject newElement_0_twoDCartesianZoneInsideOptional_color;
+                    if (!entry_0.twoDCartesianZone.Value().color.HasValue())
+                    {
+                        chip::JniReferences::GetInstance().CreateOptional(nullptr,
+                                                                          newElement_0_twoDCartesianZoneInsideOptional_color);
+                    }
+                    else
+                    {
+                        jobject newElement_0_twoDCartesianZoneInsideOptional_colorInsideOptional;
+                        LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
+                            entry_0.twoDCartesianZone.Value().color.Value(),
+                            newElement_0_twoDCartesianZoneInsideOptional_colorInsideOptional));
+                        chip::JniReferences::GetInstance().CreateOptional(
+                            newElement_0_twoDCartesianZoneInsideOptional_colorInsideOptional,
+                            newElement_0_twoDCartesianZoneInsideOptional_color);
+                    }
+
+                    {
+                        jclass twoDCartesianZoneStructStructClass_3;
+                        err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                            env, "chip/devicecontroller/ChipStructs$ZoneManagementClusterTwoDCartesianZoneStruct",
+                            twoDCartesianZoneStructStructClass_3);
+                        if (err != CHIP_NO_ERROR)
+                        {
+                            ChipLogError(Zcl, "Could not find class ChipStructs$ZoneManagementClusterTwoDCartesianZoneStruct");
+                            return nullptr;
+                        }
+
+                        jmethodID twoDCartesianZoneStructStructCtor_3;
+                        err = chip::JniReferences::GetInstance().FindMethod(
+                            env, twoDCartesianZoneStructStructClass_3, "<init>",
+                            "(Ljava/lang/String;Ljava/lang/Integer;Ljava/util/ArrayList;Ljava/util/Optional;)V",
+                            &twoDCartesianZoneStructStructCtor_3);
+                        if (err != CHIP_NO_ERROR || twoDCartesianZoneStructStructCtor_3 == nullptr)
+                        {
+                            ChipLogError(Zcl,
+                                         "Could not find ChipStructs$ZoneManagementClusterTwoDCartesianZoneStruct constructor");
+                            return nullptr;
+                        }
+
+                        newElement_0_twoDCartesianZoneInsideOptional = env->NewObject(
+                            twoDCartesianZoneStructStructClass_3, twoDCartesianZoneStructStructCtor_3,
+                            newElement_0_twoDCartesianZoneInsideOptional_name, newElement_0_twoDCartesianZoneInsideOptional_use,
+                            newElement_0_twoDCartesianZoneInsideOptional_vertices,
+                            newElement_0_twoDCartesianZoneInsideOptional_color);
+                    }
+                    chip::JniReferences::GetInstance().CreateOptional(newElement_0_twoDCartesianZoneInsideOptional,
+                                                                      newElement_0_twoDCartesianZone);
+                }
 
                 {
                     jclass zoneInformationStructStructClass_1;
@@ -40551,15 +40673,17 @@
                     jmethodID zoneInformationStructStructCtor_1;
                     err = chip::JniReferences::GetInstance().FindMethod(
                         env, zoneInformationStructStructClass_1, "<init>",
-                        "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &zoneInformationStructStructCtor_1);
+                        "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;)V",
+                        &zoneInformationStructStructCtor_1);
                     if (err != CHIP_NO_ERROR || zoneInformationStructStructCtor_1 == nullptr)
                     {
                         ChipLogError(Zcl, "Could not find ChipStructs$ZoneManagementClusterZoneInformationStruct constructor");
                         return nullptr;
                     }
 
-                    newElement_0 = env->NewObject(zoneInformationStructStructClass_1, zoneInformationStructStructCtor_1,
-                                                  newElement_0_zoneID, newElement_0_zoneType, newElement_0_zoneSource);
+                    newElement_0 =
+                        env->NewObject(zoneInformationStructStructClass_1, zoneInformationStructStructCtor_1, newElement_0_zoneID,
+                                       newElement_0_zoneType, newElement_0_zoneSource, newElement_0_twoDCartesianZone);
                 }
                 chip::JniReferences::GetInstance().AddToList(value, newElement_0);
             }
diff --git a/src/controller/python/chip/clusters/CHIPClusters.py b/src/controller/python/chip/clusters/CHIPClusters.py
index b456de6..53642c5 100644
--- a/src/controller/python/chip/clusters/CHIPClusters.py
+++ b/src/controller/python/chip/clusters/CHIPClusters.py
@@ -12574,27 +12574,20 @@
             },
             0x00000003: {
                 "commandId": 0x00000003,
-                "commandName": "GetTwoDCartesianZone",
-                "args": {
-                    "zoneID": "int",
-                },
-            },
-            0x00000005: {
-                "commandId": 0x00000005,
                 "commandName": "RemoveZone",
                 "args": {
                     "zoneID": "int",
                 },
             },
-            0x00000006: {
-                "commandId": 0x00000006,
+            0x00000004: {
+                "commandId": 0x00000004,
                 "commandName": "CreateOrUpdateTrigger",
                 "args": {
                     "trigger": "ZoneTriggerControlStruct",
                 },
             },
-            0x00000007: {
-                "commandId": 0x00000007,
+            0x00000005: {
+                "commandId": 0x00000005,
                 "commandName": "RemoveTrigger",
                 "args": {
                     "zoneID": "int",
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index 431209c..2156def 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -45715,11 +45715,13 @@
                         ClusterObjectFieldDescriptor(Label="zoneID", Tag=0, Type=uint),
                         ClusterObjectFieldDescriptor(Label="zoneType", Tag=1, Type=ZoneManagement.Enums.ZoneTypeEnum),
                         ClusterObjectFieldDescriptor(Label="zoneSource", Tag=2, Type=ZoneManagement.Enums.ZoneSourceEnum),
+                        ClusterObjectFieldDescriptor(Label="twoDCartesianZone", Tag=3, Type=typing.Optional[ZoneManagement.Structs.TwoDCartesianZoneStruct]),
                     ])
 
             zoneID: 'uint' = 0
             zoneType: 'ZoneManagement.Enums.ZoneTypeEnum' = 0
             zoneSource: 'ZoneManagement.Enums.ZoneSourceEnum' = 0
+            twoDCartesianZone: 'typing.Optional[ZoneManagement.Structs.TwoDCartesianZoneStruct]' = None
 
         @dataclass
         class ZoneTriggerControlStruct(ClusterObject):
@@ -45794,41 +45796,9 @@
             zone: ZoneManagement.Structs.TwoDCartesianZoneStruct = field(default_factory=lambda: ZoneManagement.Structs.TwoDCartesianZoneStruct())
 
         @dataclass
-        class GetTwoDCartesianZone(ClusterCommand):
-            cluster_id: typing.ClassVar[int] = 0x00000550
-            command_id: typing.ClassVar[int] = 0x00000003
-            is_client: typing.ClassVar[bool] = True
-            response_type: typing.ClassVar[str] = 'GetTwoDCartesianZoneResponse'
-
-            @ChipUtility.classproperty
-            def descriptor(cls) -> ClusterObjectDescriptor:
-                return ClusterObjectDescriptor(
-                    Fields=[
-                        ClusterObjectFieldDescriptor(Label="zoneID", Tag=0, Type=typing.Union[None, Nullable, uint]),
-                    ])
-
-            zoneID: typing.Union[None, Nullable, uint] = None
-
-        @dataclass
-        class GetTwoDCartesianZoneResponse(ClusterCommand):
-            cluster_id: typing.ClassVar[int] = 0x00000550
-            command_id: typing.ClassVar[int] = 0x00000004
-            is_client: typing.ClassVar[bool] = False
-            response_type: typing.ClassVar[typing.Optional[str]] = None
-
-            @ChipUtility.classproperty
-            def descriptor(cls) -> ClusterObjectDescriptor:
-                return ClusterObjectDescriptor(
-                    Fields=[
-                        ClusterObjectFieldDescriptor(Label="zones", Tag=0, Type=typing.List[ZoneManagement.Structs.TwoDCartesianZoneStruct]),
-                    ])
-
-            zones: typing.List[ZoneManagement.Structs.TwoDCartesianZoneStruct] = field(default_factory=lambda: [])
-
-        @dataclass
         class RemoveZone(ClusterCommand):
             cluster_id: typing.ClassVar[int] = 0x00000550
-            command_id: typing.ClassVar[int] = 0x00000005
+            command_id: typing.ClassVar[int] = 0x00000003
             is_client: typing.ClassVar[bool] = True
             response_type: typing.ClassVar[typing.Optional[str]] = None
 
@@ -45844,7 +45814,7 @@
         @dataclass
         class CreateOrUpdateTrigger(ClusterCommand):
             cluster_id: typing.ClassVar[int] = 0x00000550
-            command_id: typing.ClassVar[int] = 0x00000006
+            command_id: typing.ClassVar[int] = 0x00000004
             is_client: typing.ClassVar[bool] = True
             response_type: typing.ClassVar[typing.Optional[str]] = None
 
@@ -45860,7 +45830,7 @@
         @dataclass
         class RemoveTrigger(ClusterCommand):
             cluster_id: typing.ClassVar[int] = 0x00000550
-            command_id: typing.ClassVar[int] = 0x00000007
+            command_id: typing.ClassVar[int] = 0x00000005
             is_client: typing.ClassVar[bool] = True
             response_type: typing.ClassVar[typing.Optional[str]] = None
 
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
index 0afffd1..bde435f 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
@@ -17333,6 +17333,46 @@
                 newElement_0.zoneID = [NSNumber numberWithUnsignedShort:entry_0.zoneID];
                 newElement_0.zoneType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.zoneType)];
                 newElement_0.zoneSource = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.zoneSource)];
+                if (entry_0.twoDCartesianZone.HasValue()) {
+                    newElement_0.twoDCartesianZone = [MTRZoneManagementClusterTwoDCartesianZoneStruct new];
+                    newElement_0.twoDCartesianZone.name = AsString(entry_0.twoDCartesianZone.Value().name);
+                    if (newElement_0.twoDCartesianZone.name == nil) {
+                        CHIP_ERROR err = CHIP_ERROR_INVALID_ARGUMENT;
+                        *aError = err;
+                        return nil;
+                    }
+                    newElement_0.twoDCartesianZone.use = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.twoDCartesianZone.Value().use)];
+                    { // Scope for our temporary variables
+                        auto * array_4 = [NSMutableArray new];
+                        auto iter_4 = entry_0.twoDCartesianZone.Value().vertices.begin();
+                        while (iter_4.Next()) {
+                            auto & entry_4 = iter_4.GetValue();
+                            MTRZoneManagementClusterTwoDCartesianVertexStruct * newElement_4;
+                            newElement_4 = [MTRZoneManagementClusterTwoDCartesianVertexStruct new];
+                            newElement_4.x = [NSNumber numberWithUnsignedShort:entry_4.x];
+                            newElement_4.y = [NSNumber numberWithUnsignedShort:entry_4.y];
+                            [array_4 addObject:newElement_4];
+                        }
+                        CHIP_ERROR err = iter_4.GetStatus();
+                        if (err != CHIP_NO_ERROR) {
+                            *aError = err;
+                            return nil;
+                        }
+                        newElement_0.twoDCartesianZone.vertices = array_4;
+                    }
+                    if (entry_0.twoDCartesianZone.Value().color.HasValue()) {
+                        newElement_0.twoDCartesianZone.color = AsString(entry_0.twoDCartesianZone.Value().color.Value());
+                        if (newElement_0.twoDCartesianZone.color == nil) {
+                            CHIP_ERROR err = CHIP_ERROR_INVALID_ARGUMENT;
+                            *aError = err;
+                            return nil;
+                        }
+                    } else {
+                        newElement_0.twoDCartesianZone.color = nil;
+                    }
+                } else {
+                    newElement_0.twoDCartesianZone = nil;
+                }
                 [array_0 addObject:newElement_0];
             }
             CHIP_ERROR err = iter_0.GetStatus();
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
index f81b2a1..f756363 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
@@ -14363,14 +14363,6 @@
  */
 - (void)updateTwoDCartesianZoneWithParams:(MTRZoneManagementClusterUpdateTwoDCartesianZoneParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
 /**
- * Command GetTwoDCartesianZone
- *
- * The GetTwoDCartesianZone SHALL return the TwoD Cartesian Zone for the passed in ZoneID.
- */
-- (void)getTwoDCartesianZoneWithParams:(MTRZoneManagementClusterGetTwoDCartesianZoneParams * _Nullable)params completion:(void (^)(MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
-- (void)getTwoDCartesianZoneWithCompletion:(void (^)(MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams * _Nullable data, NSError * _Nullable error))completion
-    MTR_PROVISIONALLY_AVAILABLE;
-/**
  * Command RemoveZone
  *
  * This command SHALL remove the Zone mapped to the passed in ZoneID.
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
index 9f550ac..d28ce45 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
@@ -98754,34 +98754,6 @@
                                              queue:self.callbackQueue
                                         completion:responseHandler];
 }
-- (void)getTwoDCartesianZoneWithCompletion:(void (^)(MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams * _Nullable data, NSError * _Nullable error))completion
-{
-    [self getTwoDCartesianZoneWithParams:nil completion:completion];
-}
-- (void)getTwoDCartesianZoneWithParams:(MTRZoneManagementClusterGetTwoDCartesianZoneParams * _Nullable)params completion:(void (^)(MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams * _Nullable data, NSError * _Nullable error))completion
-{
-    if (params == nil) {
-        params = [[MTRZoneManagementClusterGetTwoDCartesianZoneParams
-            alloc] init];
-    }
-
-    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
-        completion(response, error);
-    };
-
-    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
-
-    using RequestType = ZoneManagement::Commands::GetTwoDCartesianZone::Type;
-    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
-                                         clusterID:@(RequestType::GetClusterId())
-                                         commandID:@(RequestType::GetCommandId())
-                                    commandPayload:params
-                                timedInvokeTimeout:timedInvokeTimeoutMs
-                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
-                                     responseClass:MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams.class
-                                             queue:self.callbackQueue
-                                        completion:responseHandler];
-}
 - (void)removeZoneWithParams:(MTRZoneManagementClusterRemoveZoneParams *)params completion:(MTRStatusCompletion)completion
 {
     if (params == nil) {
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h b/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
index 2275a25..96068c0 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
@@ -7092,11 +7092,9 @@
     MTRCommandIDTypeClusterZoneManagementCommandCreateTwoDCartesianZoneID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
     MTRCommandIDTypeClusterZoneManagementCommandCreateTwoDCartesianZoneResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
     MTRCommandIDTypeClusterZoneManagementCommandUpdateTwoDCartesianZoneID MTR_PROVISIONALLY_AVAILABLE = 0x00000002,
-    MTRCommandIDTypeClusterZoneManagementCommandGetTwoDCartesianZoneID MTR_PROVISIONALLY_AVAILABLE = 0x00000003,
-    MTRCommandIDTypeClusterZoneManagementCommandGetTwoDCartesianZoneResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000004,
-    MTRCommandIDTypeClusterZoneManagementCommandRemoveZoneID MTR_PROVISIONALLY_AVAILABLE = 0x00000005,
-    MTRCommandIDTypeClusterZoneManagementCommandCreateOrUpdateTriggerID MTR_PROVISIONALLY_AVAILABLE = 0x00000006,
-    MTRCommandIDTypeClusterZoneManagementCommandRemoveTriggerID MTR_PROVISIONALLY_AVAILABLE = 0x00000007,
+    MTRCommandIDTypeClusterZoneManagementCommandRemoveZoneID MTR_PROVISIONALLY_AVAILABLE = 0x00000003,
+    MTRCommandIDTypeClusterZoneManagementCommandCreateOrUpdateTriggerID MTR_PROVISIONALLY_AVAILABLE = 0x00000004,
+    MTRCommandIDTypeClusterZoneManagementCommandRemoveTriggerID MTR_PROVISIONALLY_AVAILABLE = 0x00000005,
 
     // Cluster CameraAVStreamManagement commands
     MTRCommandIDTypeClusterCameraAVStreamManagementCommandAudioStreamAllocateID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm
index 4a7b8c2..6c7b119 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm
@@ -11692,10 +11692,6 @@
             result = @"UpdateTwoDCartesianZone";
             break;
 
-        case MTRCommandIDTypeClusterZoneManagementCommandGetTwoDCartesianZoneID:
-            result = @"GetTwoDCartesianZone";
-            break;
-
         case MTRCommandIDTypeClusterZoneManagementCommandRemoveZoneID:
             result = @"RemoveZone";
             break;
@@ -13798,10 +13794,6 @@
             result = @"CreateTwoDCartesianZoneResponse";
             break;
 
-        case MTRCommandIDTypeClusterZoneManagementCommandGetTwoDCartesianZoneResponseID:
-            result = @"GetTwoDCartesianZoneResponse";
-            break;
-
         default:
             result = [NSString stringWithFormat:@"<Unknown commandID %u>", commandID];
             break;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
index a2f1ee4..f687cc2 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
@@ -6741,9 +6741,6 @@
 
 - (void)createTwoDCartesianZoneWithParams:(MTRZoneManagementClusterCreateTwoDCartesianZoneParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRZoneManagementClusterCreateTwoDCartesianZoneResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
 - (void)updateTwoDCartesianZoneWithParams:(MTRZoneManagementClusterUpdateTwoDCartesianZoneParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
-- (void)getTwoDCartesianZoneWithParams:(MTRZoneManagementClusterGetTwoDCartesianZoneParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
-- (void)getTwoDCartesianZoneWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams * _Nullable data, NSError * _Nullable error))completion
-    MTR_PROVISIONALLY_AVAILABLE;
 - (void)removeZoneWithParams:(MTRZoneManagementClusterRemoveZoneParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
 - (void)createOrUpdateTriggerWithParams:(MTRZoneManagementClusterCreateOrUpdateTriggerParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
 - (void)removeTriggerWithParams:(MTRZoneManagementClusterRemoveTriggerParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
index f2db63d..5fb9702 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
@@ -19109,37 +19109,6 @@
                                         completion:responseHandler];
 }
 
-- (void)getTwoDCartesianZoneWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues expectedValueInterval:(NSNumber *)expectedValueIntervalMs completion:(void (^)(MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams * _Nullable data, NSError * _Nullable error))completion
-{
-    [self getTwoDCartesianZoneWithParams:nil expectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs completion:completion];
-}
-- (void)getTwoDCartesianZoneWithParams:(MTRZoneManagementClusterGetTwoDCartesianZoneParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams * _Nullable data, NSError * _Nullable error))completion
-{
-    if (params == nil) {
-        params = [[MTRZoneManagementClusterGetTwoDCartesianZoneParams
-            alloc] init];
-    }
-
-    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
-        completion(response, error);
-    };
-
-    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
-
-    using RequestType = ZoneManagement::Commands::GetTwoDCartesianZone::Type;
-    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
-                                         clusterID:@(RequestType::GetClusterId())
-                                         commandID:@(RequestType::GetCommandId())
-                                    commandPayload:params
-                                    expectedValues:expectedValues
-                             expectedValueInterval:expectedValueIntervalMs
-                                timedInvokeTimeout:timedInvokeTimeoutMs
-                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
-                                     responseClass:MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams.class
-                                             queue:self.callbackQueue
-                                        completion:responseHandler];
-}
-
 - (void)removeZoneWithParams:(MTRZoneManagementClusterRemoveZoneParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
 {
     if (params == nil) {
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
index 9b8a592..69aa245 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
@@ -11056,55 +11056,6 @@
 @end
 
 MTR_PROVISIONALLY_AVAILABLE
-@interface MTRZoneManagementClusterGetTwoDCartesianZoneParams : NSObject <NSCopying>
-
-@property (nonatomic, copy) NSNumber * _Nullable zoneID MTR_PROVISIONALLY_AVAILABLE;
-/**
- * Controls whether the command is a timed command (using Timed Invoke).
- *
- * If nil (the default value), a regular invoke is done for commands that do
- * not require a timed invoke and a timed invoke with some default timed request
- * timeout is done for commands that require a timed invoke.
- *
- * If not nil, a timed invoke is done, with the provided value used as the timed
- * request timeout.  The value should be chosen small enough to provide the
- * desired security properties but large enough that it will allow a round-trip
- * from the sever to the client (for the status response and actual invoke
- * request) within the timeout window.
- *
- */
-@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
-
-/**
- * Controls how much time, in seconds, we will allow for the server to process the command.
- *
- * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
- *
- * If nil, the framework will try to select an appropriate timeout value itself.
- */
-@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
-@end
-
-MTR_PROVISIONALLY_AVAILABLE
-@interface MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams : NSObject <NSCopying>
-
-@property (nonatomic, copy) NSArray * _Nonnull zones MTR_PROVISIONALLY_AVAILABLE;
-
-/**
- * Initialize an MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams with a response-value dictionary
- * of the sort that MTRDeviceResponseHandler would receive.
- *
- * Will return nil and hand out an error if the response-value dictionary is not
- * a command data response or is not the right command response.
- *
- * Will return nil and hand out an error if the data response does not match the known
- * schema for this command.
- */
-- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
-                                         error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE;
-@end
-
-MTR_PROVISIONALLY_AVAILABLE
 @interface MTRZoneManagementClusterRemoveZoneParams : NSObject <NSCopying>
 
 @property (nonatomic, copy) NSNumber * _Nonnull zoneID MTR_PROVISIONALLY_AVAILABLE;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
index db8c448..8c080d1 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
@@ -32178,218 +32178,6 @@
 }
 @end
 
-@implementation MTRZoneManagementClusterGetTwoDCartesianZoneParams
-- (instancetype)init
-{
-    if (self = [super init]) {
-
-        _zoneID = nil;
-        _timedInvokeTimeoutMs = nil;
-        _serverSideProcessingTimeout = nil;
-    }
-    return self;
-}
-
-- (id)copyWithZone:(NSZone * _Nullable)zone;
-{
-    auto other = [[MTRZoneManagementClusterGetTwoDCartesianZoneParams alloc] init];
-
-    other.zoneID = self.zoneID;
-    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
-    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
-
-    return other;
-}
-
-- (NSString *)description
-{
-    NSString * descriptionString = [NSString stringWithFormat:@"<%@: zoneID:%@; >", NSStringFromClass([self class]), _zoneID];
-    return descriptionString;
-}
-
-@end
-
-@implementation MTRZoneManagementClusterGetTwoDCartesianZoneParams (InternalMethods)
-
-- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
-{
-    chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZone::Type encodableStruct;
-    ListFreer listFreer;
-    {
-        if (self.zoneID != nil) {
-            auto & definedValue_0 = encodableStruct.zoneID.Emplace();
-            if (self.zoneID == nil) {
-                definedValue_0.SetNull();
-            } else {
-                auto & nonNullValue_1 = definedValue_0.SetNonNull();
-                nonNullValue_1 = self.zoneID.unsignedShortValue;
-            }
-        }
-    }
-
-    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
-    if (buffer.IsNull()) {
-        return CHIP_ERROR_NO_MEMORY;
-    }
-
-    chip::System::PacketBufferTLVWriter writer;
-    // Commands never need chained buffers, since they cannot be chunked.
-    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
-
-    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
-
-    ReturnErrorOnFailure(writer.Finalize(&buffer));
-
-    reader.Init(std::move(buffer));
-    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
-}
-
-- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
-{
-    chip::System::PacketBufferTLVReader reader;
-    CHIP_ERROR err = [self _encodeToTLVReader:reader];
-    if (err != CHIP_NO_ERROR) {
-        if (error) {
-            *error = [MTRError errorForCHIPErrorCode:err];
-        }
-        return nil;
-    }
-
-    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
-    if (decodedObj == nil) {
-        if (error) {
-            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
-        }
-    }
-    return decodedObj;
-}
-@end
-
-@implementation MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams
-- (instancetype)init
-{
-    if (self = [super init]) {
-
-        _zones = [NSArray array];
-    }
-    return self;
-}
-
-- (id)copyWithZone:(NSZone * _Nullable)zone;
-{
-    auto other = [[MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams alloc] init];
-
-    other.zones = self.zones;
-
-    return other;
-}
-
-- (NSString *)description
-{
-    NSString * descriptionString = [NSString stringWithFormat:@"<%@: zones:%@; >", NSStringFromClass([self class]), _zones];
-    return descriptionString;
-}
-
-- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
-                                         error:(NSError * __autoreleasing *)error
-{
-    if (!(self = [super init])) {
-        return nil;
-    }
-
-    using DecodableType = chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZoneResponse::DecodableType;
-    chip::System::PacketBufferHandle buffer = [MTRBaseDevice _responseDataForCommand:responseValue
-                                                                           clusterID:DecodableType::GetClusterId()
-                                                                           commandID:DecodableType::GetCommandId()
-                                                                               error:error];
-    if (buffer.IsNull()) {
-        return nil;
-    }
-
-    chip::TLV::TLVReader reader;
-    reader.Init(buffer->Start(), buffer->DataLength());
-
-    CHIP_ERROR err = reader.Next(chip::TLV::AnonymousTag());
-    if (err == CHIP_NO_ERROR) {
-        DecodableType decodedStruct;
-        err = chip::app::DataModel::Decode(reader, decodedStruct);
-        if (err == CHIP_NO_ERROR) {
-            err = [self _setFieldsFromDecodableStruct:decodedStruct];
-            if (err == CHIP_NO_ERROR) {
-                return self;
-            }
-        }
-    }
-
-    NSString * errorStr = [NSString stringWithFormat:@"Command payload decoding failed: %s", err.AsString()];
-    MTR_LOG_ERROR("%s", errorStr.UTF8String);
-    if (error != nil) {
-        NSDictionary * userInfo = @{ NSLocalizedFailureReasonErrorKey : NSLocalizedString(errorStr, nil) };
-        *error = [NSError errorWithDomain:MTRErrorDomain code:MTRErrorCodeSchemaMismatch userInfo:userInfo];
-    }
-    return nil;
-}
-
-@end
-
-@implementation MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams (InternalMethods)
-
-- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZoneResponse::DecodableType &)decodableStruct
-{
-    {
-        { // Scope for our temporary variables
-            auto * array_0 = [NSMutableArray new];
-            auto iter_0 = decodableStruct.zones.begin();
-            while (iter_0.Next()) {
-                auto & entry_0 = iter_0.GetValue();
-                MTRZoneManagementClusterTwoDCartesianZoneStruct * newElement_0;
-                newElement_0 = [MTRZoneManagementClusterTwoDCartesianZoneStruct new];
-                newElement_0.name = AsString(entry_0.name);
-                if (newElement_0.name == nil) {
-                    CHIP_ERROR err = CHIP_ERROR_INVALID_ARGUMENT;
-                    return err;
-                }
-                newElement_0.use = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.use)];
-                { // Scope for our temporary variables
-                    auto * array_2 = [NSMutableArray new];
-                    auto iter_2 = entry_0.vertices.begin();
-                    while (iter_2.Next()) {
-                        auto & entry_2 = iter_2.GetValue();
-                        MTRZoneManagementClusterTwoDCartesianVertexStruct * newElement_2;
-                        newElement_2 = [MTRZoneManagementClusterTwoDCartesianVertexStruct new];
-                        newElement_2.x = [NSNumber numberWithUnsignedShort:entry_2.x];
-                        newElement_2.y = [NSNumber numberWithUnsignedShort:entry_2.y];
-                        [array_2 addObject:newElement_2];
-                    }
-                    CHIP_ERROR err = iter_2.GetStatus();
-                    if (err != CHIP_NO_ERROR) {
-                        return err;
-                    }
-                    newElement_0.vertices = array_2;
-                }
-                if (entry_0.color.HasValue()) {
-                    newElement_0.color = AsString(entry_0.color.Value());
-                    if (newElement_0.color == nil) {
-                        CHIP_ERROR err = CHIP_ERROR_INVALID_ARGUMENT;
-                        return err;
-                    }
-                } else {
-                    newElement_0.color = nil;
-                }
-                [array_0 addObject:newElement_0];
-            }
-            CHIP_ERROR err = iter_0.GetStatus();
-            if (err != CHIP_NO_ERROR) {
-                return err;
-            }
-            self.zones = array_0;
-        }
-    }
-    return CHIP_NO_ERROR;
-}
-
-@end
-
 @implementation MTRZoneManagementClusterRemoveZoneParams
 - (instancetype)init
 {
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h
index 88312b8..13a444a 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h
@@ -2080,18 +2080,6 @@
 
 @end
 
-@interface MTRZoneManagementClusterGetTwoDCartesianZoneParams (InternalMethods)
-
-- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
-
-@end
-
-@interface MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams (InternalMethods)
-
-- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZoneResponse::DecodableType &)decodableStruct;
-
-@end
-
 @interface MTRZoneManagementClusterRemoveZoneParams (InternalMethods)
 
 - (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h
index d516f62..77b19fe 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h
@@ -2240,6 +2240,7 @@
 @property (nonatomic, copy) NSNumber * _Nonnull zoneID MTR_PROVISIONALLY_AVAILABLE;
 @property (nonatomic, copy) NSNumber * _Nonnull zoneType MTR_PROVISIONALLY_AVAILABLE;
 @property (nonatomic, copy) NSNumber * _Nonnull zoneSource MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRZoneManagementClusterTwoDCartesianZoneStruct * _Nullable twoDCartesianZone MTR_PROVISIONALLY_AVAILABLE;
 @end
 
 MTR_PROVISIONALLY_AVAILABLE
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm
index 42d1a3a..ac455e5 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm
@@ -9335,6 +9335,8 @@
         _zoneType = @(0);
 
         _zoneSource = @(0);
+
+        _twoDCartesianZone = nil;
     }
     return self;
 }
@@ -9346,13 +9348,14 @@
     other.zoneID = self.zoneID;
     other.zoneType = self.zoneType;
     other.zoneSource = self.zoneSource;
+    other.twoDCartesianZone = self.twoDCartesianZone;
 
     return other;
 }
 
 - (NSString *)description
 {
-    NSString * descriptionString = [NSString stringWithFormat:@"<%@: zoneID:%@; zoneType:%@; zoneSource:%@; >", NSStringFromClass([self class]), _zoneID, _zoneType, _zoneSource];
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: zoneID:%@; zoneType:%@; zoneSource:%@; twoDCartesianZone:%@; >", NSStringFromClass([self class]), _zoneID, _zoneType, _zoneSource, _twoDCartesianZone];
     return descriptionString;
 }
 
diff --git a/zzz_generated/app-common/app-common/zap-generated/callback.h b/zzz_generated/app-common/app-common/zap-generated/callback.h
index f0b8df2..278a85b 100644
--- a/zzz_generated/app-common/app-common/zap-generated/callback.h
+++ b/zzz_generated/app-common/app-common/zap-generated/callback.h
@@ -7873,12 +7873,6 @@
     chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
     const chip::app::Clusters::ZoneManagement::Commands::UpdateTwoDCartesianZone::DecodableType & commandData);
 /**
- * @brief Zone Management Cluster GetTwoDCartesianZone Command callback (from client)
- */
-bool emberAfZoneManagementClusterGetTwoDCartesianZoneCallback(
-    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
-    const chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZone::DecodableType & commandData);
-/**
  * @brief Zone Management Cluster RemoveZone Command callback (from client)
  */
 bool emberAfZoneManagementClusterRemoveZoneCallback(
diff --git a/zzz_generated/app-common/clusters/ZoneManagement/CommandIds.h b/zzz_generated/app-common/clusters/ZoneManagement/CommandIds.h
index bf571a4..a70c57b 100644
--- a/zzz_generated/app-common/clusters/ZoneManagement/CommandIds.h
+++ b/zzz_generated/app-common/clusters/ZoneManagement/CommandIds.h
@@ -19,30 +19,22 @@
 inline constexpr CommandId Id = 0x00000002;
 } // namespace UpdateTwoDCartesianZone
 
-namespace GetTwoDCartesianZone {
-inline constexpr CommandId Id = 0x00000003;
-} // namespace GetTwoDCartesianZone
-
 namespace RemoveZone {
-inline constexpr CommandId Id = 0x00000005;
+inline constexpr CommandId Id = 0x00000003;
 } // namespace RemoveZone
 
 namespace CreateOrUpdateTrigger {
-inline constexpr CommandId Id = 0x00000006;
+inline constexpr CommandId Id = 0x00000004;
 } // namespace CreateOrUpdateTrigger
 
 namespace RemoveTrigger {
-inline constexpr CommandId Id = 0x00000007;
+inline constexpr CommandId Id = 0x00000005;
 } // namespace RemoveTrigger
 
 namespace CreateTwoDCartesianZoneResponse {
 inline constexpr CommandId Id = 0x00000001;
 } // namespace CreateTwoDCartesianZoneResponse
 
-namespace GetTwoDCartesianZoneResponse {
-inline constexpr CommandId Id = 0x00000004;
-} // namespace GetTwoDCartesianZoneResponse
-
 } // namespace Commands
 } // namespace ZoneManagement
 } // namespace Clusters
diff --git a/zzz_generated/app-common/clusters/ZoneManagement/Commands.h b/zzz_generated/app-common/clusters/ZoneManagement/Commands.h
index c607f0a..310c767 100644
--- a/zzz_generated/app-common/clusters/ZoneManagement/Commands.h
+++ b/zzz_generated/app-common/clusters/ZoneManagement/Commands.h
@@ -62,16 +62,6 @@
 struct DecodableType;
 } // namespace UpdateTwoDCartesianZone
 
-namespace GetTwoDCartesianZone {
-struct Type;
-struct DecodableType;
-} // namespace GetTwoDCartesianZone
-
-namespace GetTwoDCartesianZoneResponse {
-struct Type;
-struct DecodableType;
-} // namespace GetTwoDCartesianZoneResponse
-
 namespace RemoveZone {
 struct Type;
 struct DecodableType;
@@ -194,73 +184,6 @@
     CHIP_ERROR Decode(TLV::TLVReader & reader);
 };
 }; // namespace UpdateTwoDCartesianZone
-namespace GetTwoDCartesianZone {
-enum class Fields : uint8_t
-{
-    kZoneID = 0,
-};
-
-struct Type
-{
-public:
-    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
-    static constexpr CommandId GetCommandId() { return Commands::GetTwoDCartesianZone::Id; }
-    static constexpr ClusterId GetClusterId() { return Clusters::ZoneManagement::Id; }
-
-    Optional<DataModel::Nullable<uint16_t>> zoneID;
-
-    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
-
-    using ResponseType = Clusters::ZoneManagement::Commands::GetTwoDCartesianZoneResponse::DecodableType;
-
-    static constexpr bool MustUseTimedInvoke() { return false; }
-};
-
-struct DecodableType
-{
-public:
-    static constexpr CommandId GetCommandId() { return Commands::GetTwoDCartesianZone::Id; }
-    static constexpr ClusterId GetClusterId() { return Clusters::ZoneManagement::Id; }
-    static constexpr bool kIsFabricScoped = false;
-
-    Optional<DataModel::Nullable<uint16_t>> zoneID;
-
-    CHIP_ERROR Decode(TLV::TLVReader & reader);
-};
-}; // namespace GetTwoDCartesianZone
-namespace GetTwoDCartesianZoneResponse {
-enum class Fields : uint8_t
-{
-    kZones = 0,
-};
-
-struct Type
-{
-public:
-    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
-    static constexpr CommandId GetCommandId() { return Commands::GetTwoDCartesianZoneResponse::Id; }
-    static constexpr ClusterId GetClusterId() { return Clusters::ZoneManagement::Id; }
-
-    DataModel::List<const Structs::TwoDCartesianZoneStruct::Type> zones;
-
-    CHIP_ERROR Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const;
-
-    using ResponseType = DataModel::NullObjectType;
-
-    static constexpr bool MustUseTimedInvoke() { return false; }
-};
-
-struct DecodableType
-{
-public:
-    static constexpr CommandId GetCommandId() { return Commands::GetTwoDCartesianZoneResponse::Id; }
-    static constexpr ClusterId GetClusterId() { return Clusters::ZoneManagement::Id; }
-
-    DataModel::DecodableList<Structs::TwoDCartesianZoneStruct::DecodableType> zones;
-
-    CHIP_ERROR Decode(TLV::TLVReader & reader);
-};
-}; // namespace GetTwoDCartesianZoneResponse
 namespace RemoveZone {
 enum class Fields : uint8_t
 {
diff --git a/zzz_generated/app-common/clusters/ZoneManagement/Commands.ipp b/zzz_generated/app-common/clusters/ZoneManagement/Commands.ipp
index a2b3926..cbe7e30 100644
--- a/zzz_generated/app-common/clusters/ZoneManagement/Commands.ipp
+++ b/zzz_generated/app-common/clusters/ZoneManagement/Commands.ipp
@@ -118,62 +118,6 @@
     }
 }
 } // namespace UpdateTwoDCartesianZone.
-namespace GetTwoDCartesianZone {
-
-CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
-{
-    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
-    encoder.Encode(to_underlying(Fields::kZoneID), zoneID);
-    return encoder.Finalize();
-}
-
-CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
-{
-    detail::StructDecodeIterator __iterator(reader);
-    while (true)
-    {
-        uint8_t __context_tag = 0;
-        CHIP_ERROR err        = __iterator.Next(__context_tag);
-        VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR);
-        ReturnErrorOnFailure(err);
-
-        if (__context_tag == to_underlying(Fields::kZoneID))
-        {
-            err = DataModel::Decode(reader, zoneID);
-        }
-
-        ReturnErrorOnFailure(err);
-    }
-}
-} // namespace GetTwoDCartesianZone.
-namespace GetTwoDCartesianZoneResponse {
-
-CHIP_ERROR Type::Encode(DataModel::FabricAwareTLVWriter & aWriter, TLV::Tag aTag) const
-{
-    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
-    encoder.Encode(to_underlying(Fields::kZones), zones);
-    return encoder.Finalize();
-}
-
-CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
-{
-    detail::StructDecodeIterator __iterator(reader);
-    while (true)
-    {
-        uint8_t __context_tag = 0;
-        CHIP_ERROR err        = __iterator.Next(__context_tag);
-        VerifyOrReturnError(err != CHIP_ERROR_END_OF_TLV, CHIP_NO_ERROR);
-        ReturnErrorOnFailure(err);
-
-        if (__context_tag == to_underlying(Fields::kZones))
-        {
-            err = DataModel::Decode(reader, zones);
-        }
-
-        ReturnErrorOnFailure(err);
-    }
-}
-} // namespace GetTwoDCartesianZoneResponse.
 namespace RemoveZone {
 
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
diff --git a/zzz_generated/app-common/clusters/ZoneManagement/Metadata.h b/zzz_generated/app-common/clusters/ZoneManagement/Metadata.h
index 0163b2d..4ca5e2a 100644
--- a/zzz_generated/app-common/clusters/ZoneManagement/Metadata.h
+++ b/zzz_generated/app-common/clusters/ZoneManagement/Metadata.h
@@ -61,10 +61,6 @@
 inline constexpr DataModel::AcceptedCommandEntry
     kMetadataEntry(UpdateTwoDCartesianZone::Id, BitFlags<DataModel::CommandQualityFlags>(), Access::Privilege::kManage);
 } // namespace UpdateTwoDCartesianZone
-namespace GetTwoDCartesianZone {
-inline constexpr DataModel::AcceptedCommandEntry
-    kMetadataEntry(GetTwoDCartesianZone::Id, BitFlags<DataModel::CommandQualityFlags>(), Access::Privilege::kManage);
-} // namespace GetTwoDCartesianZone
 namespace RemoveZone {
 inline constexpr DataModel::AcceptedCommandEntry kMetadataEntry(RemoveZone::Id, BitFlags<DataModel::CommandQualityFlags>(),
                                                                 Access::Privilege::kManage);
diff --git a/zzz_generated/app-common/clusters/ZoneManagement/Structs.h b/zzz_generated/app-common/clusters/ZoneManagement/Structs.h
index 2267ea1..8b8dfba 100644
--- a/zzz_generated/app-common/clusters/ZoneManagement/Structs.h
+++ b/zzz_generated/app-common/clusters/ZoneManagement/Structs.h
@@ -99,9 +99,10 @@
 namespace ZoneInformationStruct {
 enum class Fields : uint8_t
 {
-    kZoneID     = 0,
-    kZoneType   = 1,
-    kZoneSource = 2,
+    kZoneID            = 0,
+    kZoneType          = 1,
+    kZoneSource        = 2,
+    kTwoDCartesianZone = 3,
 };
 
 struct Type
@@ -110,15 +111,25 @@
     uint16_t zoneID           = static_cast<uint16_t>(0);
     ZoneTypeEnum zoneType     = static_cast<ZoneTypeEnum>(0);
     ZoneSourceEnum zoneSource = static_cast<ZoneSourceEnum>(0);
-
-    CHIP_ERROR Decode(TLV::TLVReader & reader);
+    Optional<Structs::TwoDCartesianZoneStruct::Type> twoDCartesianZone;
 
     static constexpr bool kIsFabricScoped = false;
 
     CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
 };
 
-using DecodableType = Type;
+struct DecodableType
+{
+public:
+    uint16_t zoneID           = static_cast<uint16_t>(0);
+    ZoneTypeEnum zoneType     = static_cast<ZoneTypeEnum>(0);
+    ZoneSourceEnum zoneSource = static_cast<ZoneSourceEnum>(0);
+    Optional<Structs::TwoDCartesianZoneStruct::DecodableType> twoDCartesianZone;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+};
 
 } // namespace ZoneInformationStruct
 namespace ZoneTriggerControlStruct {
diff --git a/zzz_generated/app-common/clusters/ZoneManagement/Structs.ipp b/zzz_generated/app-common/clusters/ZoneManagement/Structs.ipp
index 51e7028..2791af9 100644
--- a/zzz_generated/app-common/clusters/ZoneManagement/Structs.ipp
+++ b/zzz_generated/app-common/clusters/ZoneManagement/Structs.ipp
@@ -114,6 +114,7 @@
     encoder.Encode(to_underlying(Fields::kZoneID), zoneID);
     encoder.Encode(to_underlying(Fields::kZoneType), zoneType);
     encoder.Encode(to_underlying(Fields::kZoneSource), zoneSource);
+    encoder.Encode(to_underlying(Fields::kTwoDCartesianZone), twoDCartesianZone);
     return encoder.Finalize();
 }
 
@@ -139,6 +140,10 @@
         {
             err = DataModel::Decode(reader, zoneSource);
         }
+        else if (__context_tag == to_underlying(Fields::kTwoDCartesianZone))
+        {
+            err = DataModel::Decode(reader, twoDCartesianZone);
+        }
 
         ReturnErrorOnFailure(err);
     }
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
index ab372d7..7b31ae5 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
@@ -13701,10 +13701,9 @@
 | Commands:                                                           |        |
 | * CreateTwoDCartesianZone                                           |   0x00 |
 | * UpdateTwoDCartesianZone                                           |   0x02 |
-| * GetTwoDCartesianZone                                              |   0x03 |
-| * RemoveZone                                                        |   0x05 |
-| * CreateOrUpdateTrigger                                             |   0x06 |
-| * RemoveTrigger                                                     |   0x07 |
+| * RemoveZone                                                        |   0x03 |
+| * CreateOrUpdateTrigger                                             |   0x04 |
+| * RemoveTrigger                                                     |   0x05 |
 |------------------------------------------------------------------------------|
 | Attributes:                                                         |        |
 | * MaxUserDefinedZones                                               | 0x0000 |
@@ -13805,44 +13804,6 @@
 };
 
 /*
- * Command GetTwoDCartesianZone
- */
-class ZoneManagementGetTwoDCartesianZone : public ClusterCommand
-{
-public:
-    ZoneManagementGetTwoDCartesianZone(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("get-two-dcartesian-zone", credsIssuerConfig)
-    {
-        AddArgument("ZoneID", 0, UINT16_MAX, &mRequest.zoneID);
-        ClusterCommand::AddArguments();
-    }
-
-    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
-    {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::ZoneManagement::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZone::Id;
-
-        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
-                        commandId, endpointIds.at(0));
-        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
-    }
-
-    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
-    {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::ZoneManagement::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZone::Id;
-
-        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
-                        groupId);
-
-        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
-    }
-
-private:
-    chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZone::Type mRequest;
-};
-
-/*
  * Command RemoveZone
  */
 class ZoneManagementRemoveZone : public ClusterCommand
@@ -29619,7 +29580,6 @@
         make_unique<ClusterCommand>(Id, credsIssuerConfig),                    //
         make_unique<ZoneManagementCreateTwoDCartesianZone>(credsIssuerConfig), //
         make_unique<ZoneManagementUpdateTwoDCartesianZone>(credsIssuerConfig), //
-        make_unique<ZoneManagementGetTwoDCartesianZone>(credsIssuerConfig),    //
         make_unique<ZoneManagementRemoveZone>(credsIssuerConfig),              //
         make_unique<ZoneManagementCreateOrUpdateTrigger>(credsIssuerConfig),   //
         make_unique<ZoneManagementRemoveTrigger>(credsIssuerConfig),           //
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp
index 2e94d14..f48d887 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp
@@ -6282,6 +6282,13 @@
     ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.zoneSource, value["zoneSource"]));
     valueCopy.removeMember("zoneSource");
 
+    if (value.isMember("twoDCartesianZone"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "twoDCartesianZone");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.twoDCartesianZone, value["twoDCartesianZone"]));
+    }
+    valueCopy.removeMember("twoDCartesianZone");
+
     return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
 }
 
@@ -6290,6 +6297,7 @@
     ComplexArgumentParser::Finalize(request.zoneID);
     ComplexArgumentParser::Finalize(request.zoneType);
     ComplexArgumentParser::Finalize(request.zoneSource);
+    ComplexArgumentParser::Finalize(request.twoDCartesianZone);
 }
 
 CHIP_ERROR ComplexArgumentParser::Setup(const char * label,
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
index 8d25055..1bce248 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
@@ -5567,6 +5567,14 @@
             return err;
         }
     }
+    {
+        CHIP_ERROR err = LogValue("TwoDCartesianZone", indent + 1, value.twoDCartesianZone);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'TwoDCartesianZone'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
 
     return CHIP_NO_ERROR;
@@ -11605,14 +11613,6 @@
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ZoneManagement::Commands::GetTwoDCartesianZoneResponse::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("zones", indent + 1, value.zones));
-    DataModelLogger::LogString(indent, "}");
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
                                      const CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
@@ -22907,11 +22907,6 @@
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("CreateTwoDCartesianZoneResponse", 1, value);
         }
-        case ZoneManagement::Commands::GetTwoDCartesianZoneResponse::Id: {
-            ZoneManagement::Commands::GetTwoDCartesianZoneResponse::DecodableType value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("GetTwoDCartesianZoneResponse", 1, value);
-        }
         }
         break;
     }
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h
index 70ce34b..c17d2e2 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h
@@ -1085,9 +1085,6 @@
          const chip::app::Clusters::ZoneManagement::Commands::CreateTwoDCartesianZoneResponse::DecodableType & value);
 static CHIP_ERROR
 LogValue(const char * label, size_t indent,
-         const chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZoneResponse::DecodableType & value);
-static CHIP_ERROR
-LogValue(const char * label, size_t indent,
          const chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::DecodableType & value);
 static CHIP_ERROR
 LogValue(const char * label, size_t indent,
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp
index 68ffd36..9babdbb 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp
@@ -6070,8 +6070,6 @@
             return "CreateTwoDCartesianZone";
         case chip::app::Clusters::ZoneManagement::Commands::UpdateTwoDCartesianZone::Id:
             return "UpdateTwoDCartesianZone";
-        case chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZone::Id:
-            return "GetTwoDCartesianZone";
         case chip::app::Clusters::ZoneManagement::Commands::RemoveZone::Id:
             return "RemoveZone";
         case chip::app::Clusters::ZoneManagement::Commands::CreateOrUpdateTrigger::Id:
@@ -6848,8 +6846,6 @@
         {
         case chip::app::Clusters::ZoneManagement::Commands::CreateTwoDCartesianZoneResponse::Id:
             return "CreateTwoDCartesianZoneResponse";
-        case chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZoneResponse::Id:
-            return "GetTwoDCartesianZoneResponse";
         default:
             return "Unknown";
         }
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
index 2c43d2e..c4ff1c2 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
@@ -150849,10 +150849,9 @@
 | Commands:                                                           |        |
 | * CreateTwoDCartesianZone                                           |   0x00 |
 | * UpdateTwoDCartesianZone                                           |   0x02 |
-| * GetTwoDCartesianZone                                              |   0x03 |
-| * RemoveZone                                                        |   0x05 |
-| * CreateOrUpdateTrigger                                             |   0x06 |
-| * RemoveTrigger                                                     |   0x07 |
+| * RemoveZone                                                        |   0x03 |
+| * CreateOrUpdateTrigger                                             |   0x04 |
+| * RemoveTrigger                                                     |   0x05 |
 |------------------------------------------------------------------------------|
 | Attributes:                                                         |        |
 | * MaxUserDefinedZones                                               | 0x0000 |
@@ -151033,73 +151032,6 @@
 #endif // MTR_ENABLE_PROVISIONAL
 #if MTR_ENABLE_PROVISIONAL
 /*
- * Command GetTwoDCartesianZone
- */
-class ZoneManagementGetTwoDCartesianZone : public ClusterCommand {
-public:
-    ZoneManagementGetTwoDCartesianZone()
-        : ClusterCommand("get-two-dcartesian-zone")
-    {
-#if MTR_ENABLE_PROVISIONAL
-        AddArgument("ZoneID", 0, UINT16_MAX, &mRequest.zoneID);
-#endif // MTR_ENABLE_PROVISIONAL
-        ClusterCommand::AddArguments();
-    }
-
-    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
-    {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::ZoneManagement::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZone::Id;
-
-        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
-
-        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL);
-        __auto_type * cluster = [[MTRBaseClusterZoneManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
-        __auto_type * params = [[MTRZoneManagementClusterGetTwoDCartesianZoneParams alloc] init];
-        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
-#if MTR_ENABLE_PROVISIONAL
-        if (mRequest.zoneID.HasValue()) {
-            if (mRequest.zoneID.Value().IsNull()) {
-                params.zoneID = nil;
-            } else {
-                params.zoneID = [NSNumber numberWithUnsignedShort:mRequest.zoneID.Value().Value()];
-            }
-        } else {
-            params.zoneID = nil;
-        }
-#endif // MTR_ENABLE_PROVISIONAL
-        uint16_t repeatCount = mRepeatCount.ValueOr(1);
-        uint16_t __block responsesNeeded = repeatCount;
-        while (repeatCount--) {
-            [cluster getTwoDCartesianZoneWithParams:params completion:
-                    ^(MTRZoneManagementClusterGetTwoDCartesianZoneResponseParams * _Nullable values, NSError * _Nullable error) {
-                        NSLog(@"Values: %@", values);
-                        if (error == nil) {
-                            constexpr chip::CommandId responseId = chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZoneResponse::Id;
-                            RemoteDataModelLogger::LogCommandAsJSON(@(endpointId), @(clusterId), @(responseId), values);
-                        }
-                        responsesNeeded--;
-                        if (error != nil) {
-                            mError = error;
-                            LogNSError("Error", error);
-                            constexpr chip::CommandId responseId = chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZoneResponse::Id;
-                            RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(responseId), error);
-                        }
-                        if (responsesNeeded == 0) {
-                            SetCommandExitStatus(mError);
-                        }
-                    }];
-        }
-        return CHIP_NO_ERROR;
-    }
-
-private:
-    chip::app::Clusters::ZoneManagement::Commands::GetTwoDCartesianZone::Type mRequest;
-};
-
-#endif // MTR_ENABLE_PROVISIONAL
-#if MTR_ENABLE_PROVISIONAL
-/*
  * Command RemoveZone
  */
 class ZoneManagementRemoveZone : public ClusterCommand {
@@ -195017,9 +194949,6 @@
         make_unique<ZoneManagementUpdateTwoDCartesianZone>(), //
 #endif // MTR_ENABLE_PROVISIONAL
 #if MTR_ENABLE_PROVISIONAL
-        make_unique<ZoneManagementGetTwoDCartesianZone>(), //
-#endif // MTR_ENABLE_PROVISIONAL
-#if MTR_ENABLE_PROVISIONAL
         make_unique<ZoneManagementRemoveZone>(), //
 #endif // MTR_ENABLE_PROVISIONAL
 #if MTR_ENABLE_PROVISIONAL