The handle of the app is 1.
                        1. Create an engine session list in order to list the dimensions in the app (qDimensionListDef).
                        The client sends:
                        {
  "jsonrpc": "2.0",
  "id": 1,
  "method": "CreateObject",
  "handle": 1,
  "params": [
    {
      "qInfo": {
        "qId": "SE01",
        "qType": "SessionLists"
      },
      "qAppObjectListDef": {
        "qType": "sheet",
        "qData": {
          "id": "/qInfo/qId"
        }
      },
      "qDimensionListDef": {
        "qType": "Dimension",
        "qData": {}
      },
      "qMeasureListDef": {
        "qType": "Measure",
        "qData": {}
      }
    }
  ]
}
                        The engine returns:
                        {
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "qReturn": {
      "qType": "GenericObject",
      "qHandle": 2
    },
    "qInfo": {
      "qId": "SE01",
      "qType": "SessionLists"
    }
  },
  "change": [
    2
  ]
}
                        The engine session list SE01 is created and has 2 as a handle.
                        2. Create a dimension in the app with the identifier Dimension01.
                        The client sends:
                        {
  "jsonrpc": "2.0",
  "id": 2,
  "method": "CreateDimension",
  "handle": 1,
  "params": [
    {
      "qInfo": {
        "qId": "Dimension01",
        "qType": "Dimension"
      },
      "qDim": {
        "qGrouping": "N",
        "qFieldDefs": [
          "Country"
        ],
        "qFieldLabels": [
          "Country library label"
        ]
      }
    }
  ]
}
                        The engine returns:
                        {
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "qReturn": {
      "qType": "GenericDimension",
      "qHandle": 3
    },
    "qInfo": {
      "qId": "Dimension01",
      "qType": "Dimension"
    }
  },
  "change": [
    3
  ]
}
                        The dimension Dimension01 is created and has 3 as a handle.
                        3. Clone the dimension Dimension01. 
                        The client sends:
                        {
  "jsonrpc": "2.0",
  "id": 3,
  "method": "CloneDimension",
  "handle": 1,
  "params": [
    "Dimension01"
  ]
}
                        The engine returns:
                        {
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "qCloneId": "342af77a-7d70-4ea6-bcc4-885a8f91acf9"
  }
}
                        The clone is created. The identifier (set by the engine) of the clone is 342af77a-7d70-4ea6-bcc4-885a8f91acf9.
                        4. Get the handle of the clone. The identifier is 342af77a-7d70-4ea6-bcc4-885a8f91acf9.
                        The client sends:
                        {
  "jsonrpc": "2.0",
  "id": 4,
  "method": "GetDimension",
  "handle": 1,
  "params": [
    "342af77a-7d70-4ea6-bcc4-885a8f91acf9"
  ]
}
                        The engine returns:
                        {
  "jsonrpc": "2.0",
  "id": 4,
  "result": {
    "qReturn": {
      "qType": "GenericDimension",
      "qHandle": 4
    }
  }
}
                        The handle of the clone is 4.
                        5. Get the properties of the clone.
                        The client sends:
                        {
  "jsonrpc": "2.0",
  "id": 5,
  "method": "GetProperties",
  "handle": 4,
  "params": []
}
                        The engine returns:
                        {
  "jsonrpc": "2.0",
  "id": 5,
  "result": {
    "qProp": {
      "qInfo": {
        "qId": "342af77a-7d70-4ea6-bcc4-885a8f91acf9",
        "qType": "Dimension"
      },
      "qDim": {
        "qGrouping": "N",
        "qFieldDefs": [
          "Country"
        ],
        "qFieldLabels": [
          "Country library label"
        ]
      },
      "qMetaDef": {}
    }
  }
}
                        The clone is identical to the original dimension.
                        6. Check that the clone is added to the session list. The handle of the request is 2 because the handle of the session list is 2.
                        The client sends:
                        {
  "jsonrpc": "2.0",
  "id": 6,
  "method": "GetLayout",
  "handle": 2,
  "params": []
}
                        The engine returns:
                        {
  "jsonrpc": "2.0",
  "id": 6,
  "result": {
    "qLayout": {
      "qInfo": {
        "qId": "SE01",
        "qType": "SessionLists"
      },
      "qSelectionInfo": {},
      "qAppObjectList": {
        "qItems": []
      },
      "qDimensionList": {
        "qItems": [
          {
            "qInfo": {
              "qId": "Dimension01",
              "qType": "Dimension"
            },
            "qData": {}
          },
          {
            "qInfo": {
              "qId": "342af77a-7d70-4ea6-bcc4-885a8f91acf9",
              "qType": "Dimension"
            },
            "qData": {}
          }
        ]
      },
      "qMeasureList": {
        "qItems": []
      }
    }
  }
}
                        The session list contains the dimension Dimension01 and the clone 342af77a-7d70-4ea6-bcc4-885a8f91acf9.