# StudioProjectSaveDto

Source: https://frameleaf.app/docs/api/schema/StudioProjectSaveDto/

```json
{
  "properties": {
    "clientId": {
      "description": "Client-chosen identifier; letters, digits, `_ . : -`, up to 128 characters",
      "pattern": "^[\\w.:-]{1,128}$",
      "type": "string"
    },
    "commands": {
      "description": "The canonical commands the engine applied to produce this document (). Each is checked against the catalogue and the head, and the revision summary is counted from them.",
      "items": {
        "$ref": "#/components/schemas/StudioCommandEnvelopeDto"
      },
      "maxItems": 500,
      "type": "array"
    },
    "envelope": {
      "$ref": "#/components/schemas/StudioProjectEnvelopeDto"
    },
    "expectedRevision": {
      "description": "The head this document was built on",
      "maximum": 9007199254740991,
      "minimum": 0,
      "type": "integer"
    },
    "requestKey": {
      "description": "Stable per attempt; a retry carries the same key",
      "pattern": "^[\\w.:-]{1,128}$",
      "type": "string"
    },
    "summary": {
      "$ref": "#/components/schemas/StudioCommandSummaryDto"
    }
  },
  "required": [
    "clientId",
    "envelope",
    "expectedRevision",
    "requestKey"
  ],
  "type": "object"
}
```
