{
  "name": "assign_dashboard_field",
  "description": "Assign one governed semantic field to a dashboard visual in a private draft using an exact expected revision.",
  "authzMode": "privilege",
  "privilege": "RESOURCE_EDIT",
  "effect": "write",
  "operationId": "manual",
  "defaults": {},
  "tags": [
    "dashboard",
    "authoring",
    "intent"
  ],
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false,
    "openWorldHint": false
  },
  "inputSchema": {
    "additionalProperties": false,
    "properties": {
      "dashboardId": {
        "minLength": 1,
        "type": "string"
      },
      "draftId": {
        "minLength": 1,
        "type": "string"
      },
      "expectedRevision": {
        "additionalProperties": false,
        "properties": {
          "contentHash": {
            "type": "string"
          },
          "number": {
            "type": "integer"
          },
          "revisionId": {
            "type": "string"
          }
        },
        "required": [
          "contentHash",
          "number",
          "revisionId"
        ],
        "type": "object"
      },
      "fieldId": {
        "minLength": 1,
        "type": "string"
      },
      "pageId": {
        "minLength": 1,
        "type": "string"
      },
      "role": {
        "enum": [
          "metric",
          "dimension",
          "detail"
        ],
        "type": "string"
      },
      "visualId": {
        "minLength": 1,
        "type": "string"
      }
    },
    "required": [
      "dashboardId",
      "draftId",
      "expectedRevision",
      "fieldId",
      "pageId",
      "role",
      "visualId"
    ],
    "type": "object"
  },
  "outputSchema": {
    "additionalProperties": false,
    "properties": {
      "lifecycle": {
        "additionalProperties": {},
        "type": "object"
      },
      "revision": {
        "additionalProperties": {},
        "type": "object"
      }
    },
    "required": [
      "lifecycle",
      "revision"
    ],
    "type": "object"
  }
}
