{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Propose Deployment",
  "description": "Propose a deployment for human review. The deployment is created in PROPOSED status and will not execute until it is approved via approveDeployment. Params are validated against the bundle's params schema and snapshotted into the proposal.",
  "type": "object",
  "required": ["action", "params"],
  "properties": {
    "action": {
      "type": "string",
      "x-gql-type": "propose_deployment_action",
      "title": "Action",
      "description": "The operation that will run once the proposal is approved. PLAN is not proposable — use createDeployment for dry-run previews.",
      "enum": ["PROVISION", "DECOMMISSION"]
    },
    "params": {
      "type": "object",
      "x-gql-type": "map",
      "title": "Parameters",
      "description": "Bundle configuration parameters that should be applied if the proposal is approved. Validated against the bundle's params schema."
    },
    "message": {
      "type": "string",
      "title": "Message",
      "description": "A short message describing the reason for this proposal",
      "maxLength": 1200,
      "examples": ["Scale database to handle Black Friday traffic", "Decommission stale staging instance"]
    }
  }
}
