{
  "$defs": {
    "RichBlockField": {
      "oneOf": [
        {
          "properties": {
            "control": {
              "const": "text",
              "type": "string"
            },
            "default": {
              "maxLength": 10000,
              "type": "string"
            },
            "help_text": {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "key": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "label": {
              "maxLength": 40,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "required": {
              "type": "boolean"
            },
            "validation": {
              "properties": {
                "max_length": {
                  "maximum": 10000,
                  "minimum": 1,
                  "type": "integer"
                },
                "min_length": {
                  "maximum": 10000,
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "key",
            "label",
            "control"
          ],
          "type": "object"
        },
        {
          "properties": {
            "control": {
              "const": "rich_text",
              "type": "string"
            },
            "help_text": {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "key": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "label": {
              "maxLength": 40,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "required": {
              "type": "boolean"
            }
          },
          "required": [
            "key",
            "label",
            "control"
          ],
          "type": "object"
        },
        {
          "properties": {
            "control": {
              "const": "textarea",
              "type": "string"
            },
            "default": {
              "maxLength": 10000,
              "type": "string"
            },
            "help_text": {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "key": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "label": {
              "maxLength": 40,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "required": {
              "type": "boolean"
            },
            "validation": {
              "properties": {
                "max_length": {
                  "maximum": 10000,
                  "minimum": 1,
                  "type": "integer"
                },
                "min_length": {
                  "maximum": 10000,
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "key",
            "label",
            "control"
          ],
          "type": "object"
        },
        {
          "properties": {
            "control": {
              "const": "url",
              "type": "string"
            },
            "default": {
              "maxLength": 2048,
              "type": "string"
            },
            "help_text": {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "key": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "label": {
              "maxLength": 40,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "required": {
              "type": "boolean"
            },
            "validation": {
              "properties": {
                "max_length": {
                  "maximum": 2048,
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "key",
            "label",
            "control"
          ],
          "type": "object"
        },
        {
          "properties": {
            "control": {
              "const": "number",
              "type": "string"
            },
            "default": {
              "type": "number"
            },
            "help_text": {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "key": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "label": {
              "maxLength": 40,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "required": {
              "type": "boolean"
            },
            "validation": {
              "properties": {
                "integer": {
                  "type": "boolean"
                },
                "max": {
                  "type": "number"
                },
                "min": {
                  "type": "number"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "key",
            "label",
            "control"
          ],
          "type": "object"
        },
        {
          "properties": {
            "control": {
              "const": "boolean",
              "type": "string"
            },
            "default": {
              "type": "boolean"
            },
            "help_text": {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "key": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "label": {
              "maxLength": 40,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            }
          },
          "required": [
            "key",
            "label",
            "control"
          ],
          "type": "object"
        },
        {
          "properties": {
            "control": {
              "const": "select",
              "type": "string"
            },
            "default": {
              "maxLength": 64,
              "type": "string"
            },
            "help_text": {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "key": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "label": {
              "maxLength": 40,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "options": {
              "items": {
                "properties": {
                  "label": {
                    "maxLength": 64,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "value": {
                    "maxLength": 64,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  }
                },
                "required": [
                  "value",
                  "label"
                ],
                "type": "object"
              },
              "maxItems": 50,
              "minItems": 1,
              "type": "array"
            },
            "required": {
              "type": "boolean"
            }
          },
          "required": [
            "key",
            "label",
            "control",
            "options"
          ],
          "type": "object"
        },
        {
          "properties": {
            "control": {
              "const": "media",
              "type": "string"
            },
            "help_text": {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "key": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "label": {
              "maxLength": 40,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "media_kind": {
              "enum": [
                "image",
                "document",
                "audio",
                "video",
                "file"
              ],
              "type": "string"
            },
            "required": {
              "type": "boolean"
            }
          },
          "required": [
            "key",
            "label",
            "control",
            "media_kind"
          ],
          "type": "object"
        },
        {
          "properties": {
            "control": {
              "const": "relation",
              "type": "string"
            },
            "help_text": {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "key": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "label": {
              "maxLength": 40,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "models": {
              "items": {
                "maxLength": 128,
                "minLength": 1,
                "type": "string"
              },
              "maxItems": 16,
              "minItems": 1,
              "type": "array"
            },
            "multiple": {
              "type": "boolean"
            },
            "required": {
              "type": "boolean"
            }
          },
          "required": [
            "key",
            "label",
            "control",
            "models"
          ],
          "type": "object"
        },
        {
          "properties": {
            "control": {
              "const": "group",
              "type": "string"
            },
            "fields": {
              "items": {
                "$ref": "#/$defs/RichBlockField"
              },
              "maxItems": 24,
              "minItems": 1,
              "type": "array"
            },
            "help_text": {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "key": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "label": {
              "maxLength": 40,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            },
            "max_items": {
              "maximum": 50,
              "minimum": 1,
              "type": "integer"
            },
            "repeatable": {
              "type": "boolean"
            },
            "required": {
              "type": "boolean"
            }
          },
          "required": [
            "key",
            "label",
            "control",
            "fields"
          ],
          "type": "object"
        }
      ]
    },
    "RichBlockRenderNode": {
      "anyOf": [
        {
          "properties": {
            "children": {
              "items": {
                "$ref": "#/$defs/RichBlockRenderNode"
              },
              "type": "array"
            },
            "group": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            }
          },
          "required": [
            "group",
            "children"
          ],
          "type": "object"
        },
        {
          "properties": {
            "children": {
              "items": {
                "$ref": "#/$defs/RichBlockRenderNode"
              },
              "type": "array"
            },
            "each": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            }
          },
          "required": [
            "each",
            "children"
          ],
          "type": "object"
        },
        {
          "description": "Literal words, escaped.",
          "properties": {
            "text": {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}<>]+$",
              "type": "string"
            }
          },
          "required": [
            "text"
          ],
          "type": "object"
        },
        {
          "description": "A field’s value as escaped text; a select shows its option label.",
          "properties": {
            "field": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "property": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            }
          },
          "required": [
            "field"
          ],
          "type": "object"
        },
        {
          "description": "Children shown only while the field is filled (or equals `equals`).",
          "properties": {
            "children": {
              "items": {
                "$ref": "#/$defs/RichBlockRenderNode"
              },
              "type": "array"
            },
            "equals": {
              "anyOf": [
                {
                  "maxLength": 10000,
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                }
              ]
            },
            "when": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            }
          },
          "required": [
            "when",
            "children"
          ],
          "type": "object"
        },
        {
          "description": "A link to a url or media field. Without a usable address only the children render.",
          "properties": {
            "children": {
              "items": {
                "$ref": "#/$defs/RichBlockRenderNode"
              },
              "type": "array"
            },
            "element": {
              "const": "a",
              "type": "string"
            },
            "href": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            }
          },
          "required": [
            "element",
            "href"
          ],
          "type": "object"
        },
        {
          "description": "An image media field; `alt` names a text field.",
          "properties": {
            "alt": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            },
            "element": {
              "const": "img",
              "type": "string"
            },
            "src": {
              "pattern": "^[a-z][a-z0-9_]{0,31}$",
              "type": "string"
            }
          },
          "required": [
            "element",
            "src"
          ],
          "type": "object"
        },
        {
          "properties": {
            "children": {
              "items": {
                "$ref": "#/$defs/RichBlockRenderNode"
              },
              "type": "array"
            },
            "element": {
              "enum": [
                "div",
                "section",
                "aside",
                "p",
                "span",
                "strong",
                "em",
                "small",
                "h2",
                "h3",
                "h4",
                "blockquote",
                "ul",
                "ol",
                "li",
                "figure",
                "figcaption",
                "hr",
                "br"
              ],
              "type": "string"
            }
          },
          "required": [
            "element"
          ],
          "type": "object"
        }
      ],
      "description": "One node of a host-interpreted render tree."
    },
    "__schema0": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        },
        {
          "items": {
            "$ref": "#/$defs/__schema0"
          },
          "type": "array"
        },
        {
          "additionalProperties": {
            "$ref": "#/$defs/__schema0"
          },
          "propertyNames": {
            "type": "string"
          },
          "type": "object"
        }
      ]
    },
    "activation_handoff": {
      "additionalProperties": false,
      "properties": {
        "activation_code": {
          "pattern": "^[A-Za-z0-9_-]{16,128}$",
          "type": "string"
        },
        "dee_wan_base_url": {
          "format": "uri",
          "type": "string"
        },
        "installation_id": {
          "type": "string"
        },
        "kind": {
          "enum": [
            "activate",
            "rotate"
          ],
          "type": "string"
        },
        "protocol_version": {
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "type": "integer"
        },
        "site_id": {
          "type": "string"
        },
        "token": {
          "pattern": "^dwp_[A-Za-z0-9_-]{43}$",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "installation_id",
        "site_id",
        "dee_wan_base_url",
        "protocol_version",
        "token",
        "activation_code"
      ],
      "type": "object"
    },
    "column_request": {
      "additionalProperties": false,
      "properties": {
        "instance_ids": {
          "items": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "maxItems": 50,
          "minItems": 1,
          "type": "array"
        },
        "model": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "slug"
          ],
          "type": "object"
        }
      },
      "required": [
        "model",
        "instance_ids"
      ],
      "type": "object"
    },
    "content_create_command": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "locale_relations": {
          "additionalProperties": {
            "additionalProperties": {
              "anyOf": [
                {
                  "items": {
                    "anyOf": [
                      {
                        "minLength": 1,
                        "type": "string"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "minLength": 1,
                            "type": "string"
                          },
                          "model": {
                            "minLength": 1,
                            "type": "string"
                          }
                        },
                        "required": [
                          "model",
                          "id"
                        ],
                        "type": "object"
                      }
                    ],
                    "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                  },
                  "type": "array"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "set": {
                      "items": {
                        "anyOf": [
                          {
                            "minLength": 1,
                            "type": "string"
                          },
                          {
                            "additionalProperties": false,
                            "properties": {
                              "id": {
                                "minLength": 1,
                                "type": "string"
                              },
                              "model": {
                                "minLength": 1,
                                "type": "string"
                              }
                            },
                            "required": [
                              "model",
                              "id"
                            ],
                            "type": "object"
                          }
                        ],
                        "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "set"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "connect": {
                      "description": "Items to add, in array order. A plain id goes to the end. `{ id, position }` places it. Positions on a single-target relation are refused (`relation_position_not_ordered`).",
                      "items": {
                        "anyOf": [
                          {
                            "anyOf": [
                              {
                                "minLength": 1,
                                "type": "string"
                              },
                              {
                                "additionalProperties": false,
                                "properties": {
                                  "id": {
                                    "minLength": 1,
                                    "type": "string"
                                  },
                                  "model": {
                                    "minLength": 1,
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "model",
                                  "id"
                                ],
                                "type": "object"
                              }
                            ],
                            "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                          },
                          {
                            "additionalProperties": false,
                            "properties": {
                              "id": {
                                "minLength": 1,
                                "type": "string"
                              },
                              "model": {
                                "minLength": 1,
                                "type": "string"
                              },
                              "position": {
                                "anyOf": [
                                  {
                                    "additionalProperties": false,
                                    "properties": {
                                      "before": {
                                        "minLength": 1,
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "before"
                                    ],
                                    "type": "object"
                                  },
                                  {
                                    "additionalProperties": false,
                                    "properties": {
                                      "after": {
                                        "minLength": 1,
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "after"
                                    ],
                                    "type": "object"
                                  },
                                  {
                                    "additionalProperties": false,
                                    "properties": {
                                      "start": {
                                        "const": true,
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "start"
                                    ],
                                    "type": "object"
                                  },
                                  {
                                    "additionalProperties": false,
                                    "properties": {
                                      "end": {
                                        "const": true,
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "end"
                                    ],
                                    "type": "object"
                                  }
                                ],
                                "description": "Exactly one of `{ before: id }`, `{ after: id }`, `{ start: true }`, `{ end: true }`. An anchor is an id in the list at that step."
                              }
                            },
                            "required": [
                              "id"
                            ],
                            "type": "object"
                          }
                        ]
                      },
                      "type": "array"
                    },
                    "disconnect": {
                      "description": "Items to remove first.",
                      "items": {
                        "anyOf": [
                          {
                            "minLength": 1,
                            "type": "string"
                          },
                          {
                            "additionalProperties": false,
                            "properties": {
                              "id": {
                                "minLength": 1,
                                "type": "string"
                              },
                              "model": {
                                "minLength": 1,
                                "type": "string"
                              }
                            },
                            "required": [
                              "model",
                              "id"
                            ],
                            "type": "object"
                          }
                        ],
                        "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                      },
                      "type": "array"
                    },
                    "move": {
                      "description": "Items already related to reposition, in array order, after disconnect and connect. An item not related is refused (`relation_move_target_missing`).",
                      "items": {
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "minLength": 1,
                            "type": "string"
                          },
                          "model": {
                            "minLength": 1,
                            "type": "string"
                          },
                          "position": {
                            "anyOf": [
                              {
                                "additionalProperties": false,
                                "properties": {
                                  "before": {
                                    "minLength": 1,
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "before"
                                ],
                                "type": "object"
                              },
                              {
                                "additionalProperties": false,
                                "properties": {
                                  "after": {
                                    "minLength": 1,
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "after"
                                ],
                                "type": "object"
                              },
                              {
                                "additionalProperties": false,
                                "properties": {
                                  "start": {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "start"
                                ],
                                "type": "object"
                              },
                              {
                                "additionalProperties": false,
                                "properties": {
                                  "end": {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "end"
                                ],
                                "type": "object"
                              }
                            ],
                            "description": "Exactly one of `{ before: id }`, `{ after: id }`, `{ start: true }`, `{ end: true }`. An anchor is an id in the list at that step."
                          }
                        },
                        "required": [
                          "id",
                          "position"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              ],
              "description": "A plain list or `{ set }` replaces the list. `{ connect, disconnect, move }` edits it: disconnect, then connect, then move; the result is the same for the same input."
            },
            "propertyNames": {
              "minLength": 1,
              "type": "string"
            },
            "type": "object"
          },
          "description": "Each language's own lists, for a relation field with different links in each language.",
          "propertyNames": {
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        },
        "locales": {
          "additionalProperties": {
            "additionalProperties": {},
            "propertyNames": {
              "minLength": 1,
              "type": "string"
            },
            "type": "object"
          },
          "propertyNames": {
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        },
        "media": {
          "additionalProperties": {
            "items": {
              "anyOf": [
                {
                  "minLength": 1,
                  "type": "string"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "crop": {
                      "anyOf": [
                        {
                          "additionalProperties": false,
                          "properties": {
                            "height": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            },
                            "width": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            },
                            "x": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            },
                            "y": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            }
                          },
                          "required": [
                            "x",
                            "y",
                            "width",
                            "height"
                          ],
                          "type": "object"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "focal": {
                      "anyOf": [
                        {
                          "additionalProperties": false,
                          "properties": {
                            "x": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            },
                            "y": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            }
                          },
                          "required": [
                            "x",
                            "y"
                          ],
                          "type": "object"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "id": {
                      "minLength": 1,
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                }
              ]
            },
            "type": "array"
          },
          "propertyNames": {
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        },
        "model_id": {
          "minLength": 1,
          "type": "string"
        },
        "primary_lang": {
          "minLength": 1,
          "type": "string"
        },
        "relations": {
          "additionalProperties": {
            "anyOf": [
              {
                "items": {
                  "anyOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "id": {
                          "minLength": 1,
                          "type": "string"
                        },
                        "model": {
                          "minLength": 1,
                          "type": "string"
                        }
                      },
                      "required": [
                        "model",
                        "id"
                      ],
                      "type": "object"
                    }
                  ],
                  "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                },
                "type": "array"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "set": {
                    "items": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "type": "string"
                        },
                        {
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "minLength": 1,
                              "type": "string"
                            },
                            "model": {
                              "minLength": 1,
                              "type": "string"
                            }
                          },
                          "required": [
                            "model",
                            "id"
                          ],
                          "type": "object"
                        }
                      ],
                      "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "set"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "connect": {
                    "description": "Items to add, in array order. A plain id goes to the end. `{ id, position }` places it. Positions on a single-target relation are refused (`relation_position_not_ordered`).",
                    "items": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "minLength": 1,
                              "type": "string"
                            },
                            {
                              "additionalProperties": false,
                              "properties": {
                                "id": {
                                  "minLength": 1,
                                  "type": "string"
                                },
                                "model": {
                                  "minLength": 1,
                                  "type": "string"
                                }
                              },
                              "required": [
                                "model",
                                "id"
                              ],
                              "type": "object"
                            }
                          ],
                          "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                        },
                        {
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "minLength": 1,
                              "type": "string"
                            },
                            "model": {
                              "minLength": 1,
                              "type": "string"
                            },
                            "position": {
                              "anyOf": [
                                {
                                  "additionalProperties": false,
                                  "properties": {
                                    "before": {
                                      "minLength": 1,
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "before"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "additionalProperties": false,
                                  "properties": {
                                    "after": {
                                      "minLength": 1,
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "after"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "additionalProperties": false,
                                  "properties": {
                                    "start": {
                                      "const": true,
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "start"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "additionalProperties": false,
                                  "properties": {
                                    "end": {
                                      "const": true,
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "end"
                                  ],
                                  "type": "object"
                                }
                              ],
                              "description": "Exactly one of `{ before: id }`, `{ after: id }`, `{ start: true }`, `{ end: true }`. An anchor is an id in the list at that step."
                            }
                          },
                          "required": [
                            "id"
                          ],
                          "type": "object"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "disconnect": {
                    "description": "Items to remove first.",
                    "items": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "type": "string"
                        },
                        {
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "minLength": 1,
                              "type": "string"
                            },
                            "model": {
                              "minLength": 1,
                              "type": "string"
                            }
                          },
                          "required": [
                            "model",
                            "id"
                          ],
                          "type": "object"
                        }
                      ],
                      "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                    },
                    "type": "array"
                  },
                  "move": {
                    "description": "Items already related to reposition, in array order, after disconnect and connect. An item not related is refused (`relation_move_target_missing`).",
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "id": {
                          "minLength": 1,
                          "type": "string"
                        },
                        "model": {
                          "minLength": 1,
                          "type": "string"
                        },
                        "position": {
                          "anyOf": [
                            {
                              "additionalProperties": false,
                              "properties": {
                                "before": {
                                  "minLength": 1,
                                  "type": "string"
                                }
                              },
                              "required": [
                                "before"
                              ],
                              "type": "object"
                            },
                            {
                              "additionalProperties": false,
                              "properties": {
                                "after": {
                                  "minLength": 1,
                                  "type": "string"
                                }
                              },
                              "required": [
                                "after"
                              ],
                              "type": "object"
                            },
                            {
                              "additionalProperties": false,
                              "properties": {
                                "start": {
                                  "const": true,
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "start"
                              ],
                              "type": "object"
                            },
                            {
                              "additionalProperties": false,
                              "properties": {
                                "end": {
                                  "const": true,
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "end"
                              ],
                              "type": "object"
                            }
                          ],
                          "description": "Exactly one of `{ before: id }`, `{ after: id }`, `{ start: true }`, `{ end: true }`. An anchor is an id in the list at that step."
                        }
                      },
                      "required": [
                        "id",
                        "position"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            ],
            "description": "A plain list or `{ set }` replaces the list. `{ connect, disconnect, move }` edits it: disconnect, then connect, then move; the result is the same for the same input."
          },
          "propertyNames": {
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        },
        "seo": {
          "additionalProperties": {
            "anyOf": [
              {
                "additionalProperties": false,
                "properties": {
                  "canonical": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "format": {
                    "const": 1,
                    "type": "number"
                  },
                  "image": {
                    "anyOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "alt": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "media_id": {
                            "minLength": 1,
                            "type": "string"
                          }
                        },
                        "required": [
                          "media_id"
                        ],
                        "type": "object"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "robots": {
                    "enum": [
                      "index",
                      "noindex"
                    ],
                    "type": "string"
                  },
                  "schema_type": {
                    "anyOf": [
                      {
                        "enum": [
                          "WebPage",
                          "AboutPage",
                          "ContactPage",
                          "Article"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "title": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "format"
                ],
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "propertyNames": {
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        },
        "slugs": {
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "description": "Each language's own address. `null` on create: no address in that language.",
          "propertyNames": {
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        }
      },
      "required": [
        "model_id",
        "locales",
        "delegation_id"
      ],
      "type": "object"
    },
    "content_delete_command": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "expected_version_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "delegation_id",
        "expected_version_id"
      ],
      "type": "object"
    },
    "content_detail": {
      "properties": {
        "current_version_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "instance_id": {
          "type": "string"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "lang": {
          "type": "string"
        },
        "model_id": {
          "type": "string"
        },
        "model_slug": {
          "type": "string"
        },
        "primary_instance_id": {
          "type": "string"
        },
        "published_version_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "saved": {
          "anyOf": [
            {
              "properties": {
                "data": {},
                "id": {
                  "type": "string"
                },
                "version_number": {
                  "maximum": 9007199254740991,
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "id",
                "version_number",
                "data"
              ],
              "type": "object"
            },
            {
              "type": "null"
            }
          ]
        },
        "slug": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "translation_group_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "workflow": {
          "properties": {
            "locales": {
              "items": {
                "properties": {
                  "instance_id": {
                    "type": "string"
                  },
                  "locale": {
                    "type": "string"
                  },
                  "published_version_id": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "state": {
                    "type": "string"
                  },
                  "transitions": {
                    "items": {
                      "properties": {
                        "kind": {
                          "enum": [
                            "publish",
                            "unpublish"
                          ],
                          "type": "string"
                        },
                        "to": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "to",
                        "kind"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "locale",
                  "instance_id",
                  "state",
                  "published_version_id",
                  "transitions"
                ],
                "type": "object"
              },
              "type": "array"
            },
            "revision": {
              "maximum": 9007199254740991,
              "minimum": 0,
              "type": "integer"
            },
            "state": {
              "type": "string"
            },
            "transitions": {
              "items": {
                "properties": {
                  "kind": {
                    "enum": [
                      "publish",
                      "unpublish"
                    ],
                    "type": "string"
                  },
                  "to": {
                    "type": "string"
                  }
                },
                "required": [
                  "to",
                  "kind"
                ],
                "type": "object"
              },
              "type": "array"
            }
          },
          "required": [
            "state",
            "revision",
            "transitions"
          ],
          "type": "object"
        }
      },
      "required": [
        "instance_id",
        "primary_instance_id",
        "translation_group_id",
        "model_id",
        "model_slug",
        "lang",
        "label",
        "slug",
        "current_version_id",
        "published_version_id"
      ],
      "type": "object"
    },
    "content_item_query": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        }
      },
      "type": "object"
    },
    "content_list_query": {
      "additionalProperties": false,
      "properties": {
        "after": {
          "type": "string"
        },
        "limit": {
          "description": "Page size, 1..50. Default 20. Anything else is invalid_request.",
          "pattern": "^(?:0{0,2}[1-9]|0?(?:[1-4][0-9]|50))$",
          "type": "string"
        },
        "model_id": {
          "minLength": 1,
          "type": "string"
        },
        "published": {
          "enum": [
            "true",
            "false"
          ],
          "type": "string"
        }
      },
      "required": [
        "model_id"
      ],
      "type": "object"
    },
    "content_page": {
      "properties": {
        "data": {
          "items": {
            "properties": {
              "current_version_id": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "instance_id": {
                "type": "string"
              },
              "label": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lang": {
                "type": "string"
              },
              "model_id": {
                "type": "string"
              },
              "model_slug": {
                "type": "string"
              },
              "primary_instance_id": {
                "type": "string"
              },
              "published_version_id": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "slug": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "translation_group_id": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "workflow": {
                "properties": {
                  "locales": {
                    "items": {
                      "properties": {
                        "instance_id": {
                          "type": "string"
                        },
                        "locale": {
                          "type": "string"
                        },
                        "published_version_id": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "state": {
                          "type": "string"
                        },
                        "transitions": {
                          "items": {
                            "properties": {
                              "kind": {
                                "enum": [
                                  "publish",
                                  "unpublish"
                                ],
                                "type": "string"
                              },
                              "to": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "to",
                              "kind"
                            ],
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "required": [
                        "locale",
                        "instance_id",
                        "state",
                        "published_version_id",
                        "transitions"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "revision": {
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "state": {
                    "type": "string"
                  },
                  "transitions": {
                    "items": {
                      "properties": {
                        "kind": {
                          "enum": [
                            "publish",
                            "unpublish"
                          ],
                          "type": "string"
                        },
                        "to": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "to",
                        "kind"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "state",
                  "revision",
                  "transitions"
                ],
                "type": "object"
              }
            },
            "required": [
              "instance_id",
              "primary_instance_id",
              "translation_group_id",
              "model_id",
              "model_slug",
              "lang",
              "label",
              "slug",
              "current_version_id",
              "published_version_id"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "next": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "data",
        "next"
      ],
      "type": "object"
    },
    "content_save_result": {
      "properties": {
        "current_version_id": {
          "minLength": 1,
          "type": "string"
        },
        "instance_id": {
          "minLength": 1,
          "type": "string"
        },
        "locales": {
          "additionalProperties": {
            "type": "string"
          },
          "propertyNames": {
            "type": "string"
          },
          "type": "object"
        },
        "policy_results": {
          "description": "Plugin content policies that warned, did not answer while set to warn, or transformed the stored content. A refusal is an error instead.",
          "items": {
            "properties": {
              "failure": {
                "anyOf": [
                  {
                    "enum": [
                      "plugin_timeout",
                      "plugin_unreachable",
                      "plugin_response_invalid",
                      "plugin_refused",
                      "plugin_unavailable",
                      "idempotency_key_reused",
                      "invocation_in_progress",
                      "input_too_large",
                      "audit_unavailable"
                    ],
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Why an `unavailable` policy did not answer; null otherwise."
              },
              "fields": {
                "description": "Field keys the message is about; for `transformed`, the keys the policy changed (`seo` for search settings).",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "installation_id": {
                "type": "string"
              },
              "locale": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "outcome": {
                "enum": [
                  "warning",
                  "unavailable",
                  "transformed"
                ],
                "type": "string"
              },
              "plugin_name": {
                "type": "string"
              },
              "policy_id": {
                "type": "string"
              },
              "policy_label": {
                "type": "string"
              }
            },
            "required": [
              "installation_id",
              "plugin_name",
              "policy_id",
              "policy_label",
              "locale",
              "outcome",
              "message",
              "fields",
              "failure"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "primary_instance_id": {
          "minLength": 1,
          "type": "string"
        },
        "published_version_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "slugs": {
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "propertyNames": {
            "type": "string"
          },
          "type": "object"
        },
        "translation_group_id": {
          "minLength": 1,
          "type": "string"
        },
        "version": {
          "properties": {
            "id": {
              "minLength": 1,
              "type": "string"
            },
            "version_number": {
              "maximum": 9007199254740991,
              "minimum": -9007199254740991,
              "type": "integer"
            }
          },
          "required": [
            "id",
            "version_number"
          ],
          "type": "object"
        },
        "warnings": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "instance_id",
        "primary_instance_id",
        "translation_group_id",
        "version",
        "current_version_id",
        "published_version_id",
        "slugs",
        "locales",
        "warnings",
        "policy_results"
      ],
      "type": "object"
    },
    "content_summary": {
      "properties": {
        "current_version_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "instance_id": {
          "type": "string"
        },
        "label": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "lang": {
          "type": "string"
        },
        "model_id": {
          "type": "string"
        },
        "model_slug": {
          "type": "string"
        },
        "primary_instance_id": {
          "type": "string"
        },
        "published_version_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "slug": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "translation_group_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "workflow": {
          "properties": {
            "locales": {
              "items": {
                "properties": {
                  "instance_id": {
                    "type": "string"
                  },
                  "locale": {
                    "type": "string"
                  },
                  "published_version_id": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "state": {
                    "type": "string"
                  },
                  "transitions": {
                    "items": {
                      "properties": {
                        "kind": {
                          "enum": [
                            "publish",
                            "unpublish"
                          ],
                          "type": "string"
                        },
                        "to": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "to",
                        "kind"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "locale",
                  "instance_id",
                  "state",
                  "published_version_id",
                  "transitions"
                ],
                "type": "object"
              },
              "type": "array"
            },
            "revision": {
              "maximum": 9007199254740991,
              "minimum": 0,
              "type": "integer"
            },
            "state": {
              "type": "string"
            },
            "transitions": {
              "items": {
                "properties": {
                  "kind": {
                    "enum": [
                      "publish",
                      "unpublish"
                    ],
                    "type": "string"
                  },
                  "to": {
                    "type": "string"
                  }
                },
                "required": [
                  "to",
                  "kind"
                ],
                "type": "object"
              },
              "type": "array"
            }
          },
          "required": [
            "state",
            "revision",
            "transitions"
          ],
          "type": "object"
        }
      },
      "required": [
        "instance_id",
        "primary_instance_id",
        "translation_group_id",
        "model_id",
        "model_slug",
        "lang",
        "label",
        "slug",
        "current_version_id",
        "published_version_id"
      ],
      "type": "object"
    },
    "content_version": {
      "properties": {
        "data": {},
        "id": {
          "type": "string"
        },
        "version_number": {
          "maximum": 9007199254740991,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "id",
        "version_number",
        "data"
      ],
      "type": "object"
    },
    "content_versions": {
      "properties": {
        "data": {
          "items": {
            "properties": {
              "created_at": {
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "version_number": {
                "maximum": 9007199254740991,
                "minimum": 1,
                "type": "integer"
              }
            },
            "required": [
              "id",
              "version_number",
              "created_at"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "next": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "data",
        "next"
      ],
      "type": "object"
    },
    "content_write_command": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "expected_version_id": {
          "description": "The current version a read reported. A newer one is version_conflict.",
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "fields": {
          "additionalProperties": {},
          "description": "1 to 50 value fields of the entry's model, keyed by field key, at most 65536 bytes of values. Relation and media writes use their separate typed properties.",
          "propertyNames": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        },
        "locale": {
          "description": "The language these values are for. Absent: the addressed item’s own language.",
          "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
          "type": "string"
        },
        "locale_relations": {
          "additionalProperties": {
            "additionalProperties": {
              "anyOf": [
                {
                  "items": {
                    "anyOf": [
                      {
                        "minLength": 1,
                        "type": "string"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "minLength": 1,
                            "type": "string"
                          },
                          "model": {
                            "minLength": 1,
                            "type": "string"
                          }
                        },
                        "required": [
                          "model",
                          "id"
                        ],
                        "type": "object"
                      }
                    ],
                    "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                  },
                  "type": "array"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "set": {
                      "items": {
                        "anyOf": [
                          {
                            "minLength": 1,
                            "type": "string"
                          },
                          {
                            "additionalProperties": false,
                            "properties": {
                              "id": {
                                "minLength": 1,
                                "type": "string"
                              },
                              "model": {
                                "minLength": 1,
                                "type": "string"
                              }
                            },
                            "required": [
                              "model",
                              "id"
                            ],
                            "type": "object"
                          }
                        ],
                        "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "set"
                  ],
                  "type": "object"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "connect": {
                      "description": "Items to add, in array order. A plain id goes to the end. `{ id, position }` places it. Positions on a single-target relation are refused (`relation_position_not_ordered`).",
                      "items": {
                        "anyOf": [
                          {
                            "anyOf": [
                              {
                                "minLength": 1,
                                "type": "string"
                              },
                              {
                                "additionalProperties": false,
                                "properties": {
                                  "id": {
                                    "minLength": 1,
                                    "type": "string"
                                  },
                                  "model": {
                                    "minLength": 1,
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "model",
                                  "id"
                                ],
                                "type": "object"
                              }
                            ],
                            "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                          },
                          {
                            "additionalProperties": false,
                            "properties": {
                              "id": {
                                "minLength": 1,
                                "type": "string"
                              },
                              "model": {
                                "minLength": 1,
                                "type": "string"
                              },
                              "position": {
                                "anyOf": [
                                  {
                                    "additionalProperties": false,
                                    "properties": {
                                      "before": {
                                        "minLength": 1,
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "before"
                                    ],
                                    "type": "object"
                                  },
                                  {
                                    "additionalProperties": false,
                                    "properties": {
                                      "after": {
                                        "minLength": 1,
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "after"
                                    ],
                                    "type": "object"
                                  },
                                  {
                                    "additionalProperties": false,
                                    "properties": {
                                      "start": {
                                        "const": true,
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "start"
                                    ],
                                    "type": "object"
                                  },
                                  {
                                    "additionalProperties": false,
                                    "properties": {
                                      "end": {
                                        "const": true,
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "end"
                                    ],
                                    "type": "object"
                                  }
                                ],
                                "description": "Exactly one of `{ before: id }`, `{ after: id }`, `{ start: true }`, `{ end: true }`. An anchor is an id in the list at that step."
                              }
                            },
                            "required": [
                              "id"
                            ],
                            "type": "object"
                          }
                        ]
                      },
                      "type": "array"
                    },
                    "disconnect": {
                      "description": "Items to remove first.",
                      "items": {
                        "anyOf": [
                          {
                            "minLength": 1,
                            "type": "string"
                          },
                          {
                            "additionalProperties": false,
                            "properties": {
                              "id": {
                                "minLength": 1,
                                "type": "string"
                              },
                              "model": {
                                "minLength": 1,
                                "type": "string"
                              }
                            },
                            "required": [
                              "model",
                              "id"
                            ],
                            "type": "object"
                          }
                        ],
                        "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                      },
                      "type": "array"
                    },
                    "move": {
                      "description": "Items already related to reposition, in array order, after disconnect and connect. An item not related is refused (`relation_move_target_missing`).",
                      "items": {
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "minLength": 1,
                            "type": "string"
                          },
                          "model": {
                            "minLength": 1,
                            "type": "string"
                          },
                          "position": {
                            "anyOf": [
                              {
                                "additionalProperties": false,
                                "properties": {
                                  "before": {
                                    "minLength": 1,
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "before"
                                ],
                                "type": "object"
                              },
                              {
                                "additionalProperties": false,
                                "properties": {
                                  "after": {
                                    "minLength": 1,
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "after"
                                ],
                                "type": "object"
                              },
                              {
                                "additionalProperties": false,
                                "properties": {
                                  "start": {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "start"
                                ],
                                "type": "object"
                              },
                              {
                                "additionalProperties": false,
                                "properties": {
                                  "end": {
                                    "const": true,
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "end"
                                ],
                                "type": "object"
                              }
                            ],
                            "description": "Exactly one of `{ before: id }`, `{ after: id }`, `{ start: true }`, `{ end: true }`. An anchor is an id in the list at that step."
                          }
                        },
                        "required": [
                          "id",
                          "position"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              ],
              "description": "A plain list or `{ set }` replaces the list. `{ connect, disconnect, move }` edits it: disconnect, then connect, then move; the result is the same for the same input."
            },
            "propertyNames": {
              "minLength": 1,
              "type": "string"
            },
            "type": "object"
          },
          "description": "Each language's own lists, for a relation field with different links in each language.",
          "propertyNames": {
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        },
        "media": {
          "additionalProperties": {
            "items": {
              "anyOf": [
                {
                  "minLength": 1,
                  "type": "string"
                },
                {
                  "additionalProperties": false,
                  "properties": {
                    "crop": {
                      "anyOf": [
                        {
                          "additionalProperties": false,
                          "properties": {
                            "height": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            },
                            "width": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            },
                            "x": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            },
                            "y": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            }
                          },
                          "required": [
                            "x",
                            "y",
                            "width",
                            "height"
                          ],
                          "type": "object"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "focal": {
                      "anyOf": [
                        {
                          "additionalProperties": false,
                          "properties": {
                            "x": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            },
                            "y": {
                              "maximum": 1,
                              "minimum": 0,
                              "type": "number"
                            }
                          },
                          "required": [
                            "x",
                            "y"
                          ],
                          "type": "object"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "id": {
                      "minLength": 1,
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                }
              ]
            },
            "type": "array"
          },
          "propertyNames": {
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        },
        "relations": {
          "additionalProperties": {
            "anyOf": [
              {
                "items": {
                  "anyOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "additionalProperties": false,
                      "properties": {
                        "id": {
                          "minLength": 1,
                          "type": "string"
                        },
                        "model": {
                          "minLength": 1,
                          "type": "string"
                        }
                      },
                      "required": [
                        "model",
                        "id"
                      ],
                      "type": "object"
                    }
                  ],
                  "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                },
                "type": "array"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "set": {
                    "items": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "type": "string"
                        },
                        {
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "minLength": 1,
                              "type": "string"
                            },
                            "model": {
                              "minLength": 1,
                              "type": "string"
                            }
                          },
                          "required": [
                            "model",
                            "id"
                          ],
                          "type": "object"
                        }
                      ],
                      "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "set"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "connect": {
                    "description": "Items to add, in array order. A plain id goes to the end. `{ id, position }` places it. Positions on a single-target relation are refused (`relation_position_not_ordered`).",
                    "items": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "minLength": 1,
                              "type": "string"
                            },
                            {
                              "additionalProperties": false,
                              "properties": {
                                "id": {
                                  "minLength": 1,
                                  "type": "string"
                                },
                                "model": {
                                  "minLength": 1,
                                  "type": "string"
                                }
                              },
                              "required": [
                                "model",
                                "id"
                              ],
                              "type": "object"
                            }
                          ],
                          "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                        },
                        {
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "minLength": 1,
                              "type": "string"
                            },
                            "model": {
                              "minLength": 1,
                              "type": "string"
                            },
                            "position": {
                              "anyOf": [
                                {
                                  "additionalProperties": false,
                                  "properties": {
                                    "before": {
                                      "minLength": 1,
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "before"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "additionalProperties": false,
                                  "properties": {
                                    "after": {
                                      "minLength": 1,
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "after"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "additionalProperties": false,
                                  "properties": {
                                    "start": {
                                      "const": true,
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "start"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "additionalProperties": false,
                                  "properties": {
                                    "end": {
                                      "const": true,
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "end"
                                  ],
                                  "type": "object"
                                }
                              ],
                              "description": "Exactly one of `{ before: id }`, `{ after: id }`, `{ start: true }`, `{ end: true }`. An anchor is an id in the list at that step."
                            }
                          },
                          "required": [
                            "id"
                          ],
                          "type": "object"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "disconnect": {
                    "description": "Items to remove first.",
                    "items": {
                      "anyOf": [
                        {
                          "minLength": 1,
                          "type": "string"
                        },
                        {
                          "additionalProperties": false,
                          "properties": {
                            "id": {
                              "minLength": 1,
                              "type": "string"
                            },
                            "model": {
                              "minLength": 1,
                              "type": "string"
                            }
                          },
                          "required": [
                            "model",
                            "id"
                          ],
                          "type": "object"
                        }
                      ],
                      "description": "An instance id, or `{ model, id }` naming the target's model slug as well. When `model` is given it must be the target's own model; a field that accepts several models takes targets of each (`relation_target_not_found` otherwise)."
                    },
                    "type": "array"
                  },
                  "move": {
                    "description": "Items already related to reposition, in array order, after disconnect and connect. An item not related is refused (`relation_move_target_missing`).",
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "id": {
                          "minLength": 1,
                          "type": "string"
                        },
                        "model": {
                          "minLength": 1,
                          "type": "string"
                        },
                        "position": {
                          "anyOf": [
                            {
                              "additionalProperties": false,
                              "properties": {
                                "before": {
                                  "minLength": 1,
                                  "type": "string"
                                }
                              },
                              "required": [
                                "before"
                              ],
                              "type": "object"
                            },
                            {
                              "additionalProperties": false,
                              "properties": {
                                "after": {
                                  "minLength": 1,
                                  "type": "string"
                                }
                              },
                              "required": [
                                "after"
                              ],
                              "type": "object"
                            },
                            {
                              "additionalProperties": false,
                              "properties": {
                                "start": {
                                  "const": true,
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "start"
                              ],
                              "type": "object"
                            },
                            {
                              "additionalProperties": false,
                              "properties": {
                                "end": {
                                  "const": true,
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "end"
                              ],
                              "type": "object"
                            }
                          ],
                          "description": "Exactly one of `{ before: id }`, `{ after: id }`, `{ start: true }`, `{ end: true }`. An anchor is an id in the list at that step."
                        }
                      },
                      "required": [
                        "id",
                        "position"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            ],
            "description": "A plain list or `{ set }` replaces the list. `{ connect, disconnect, move }` edits it: disconnect, then connect, then move; the result is the same for the same input."
          },
          "propertyNames": {
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        }
      },
      "required": [
        "delegation_id",
        "expected_version_id",
        "fields"
      ],
      "type": "object"
    },
    "context": {
      "properties": {
        "capabilities": {
          "items": {
            "enum": [
              "content:read",
              "workflow:read",
              "workflow:publish",
              "workflow:unpublish",
              "workflow:locale",
              "workflow:release",
              "content:write",
              "content:create",
              "content:delete",
              "draft:write",
              "media:write",
              "media:read",
              "media:update",
              "media:delete",
              "content:restore",
              "comments:read",
              "comments:moderate",
              "redirects:read",
              "redirects:write",
              "mail:send",
              "renderer:metadata",
              "content:propose",
              "media:source"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "installation_id": {
          "type": "string"
        },
        "model_ids": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "protocol_version": {
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "type": "integer"
        },
        "site": {
          "properties": {
            "default_lang": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "name",
            "default_lang"
          ],
          "type": "object"
        }
      },
      "required": [
        "installation_id",
        "site",
        "protocol_version",
        "capabilities",
        "model_ids"
      ],
      "type": "object"
    },
    "delegation_entries": {
      "properties": {
        "delegation_id": {
          "type": "string"
        },
        "entries": {
          "items": {
            "properties": {
              "instance_id": {
                "type": "string"
              },
              "kinds": {
                "items": {
                  "enum": [
                    "publish",
                    "unpublish"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "model_id": {
                "type": "string"
              }
            },
            "required": [
              "instance_id",
              "model_id",
              "kinds"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "type": "array"
        }
      },
      "required": [
        "delegation_id",
        "entries"
      ],
      "type": "object"
    },
    "delegation_models": {
      "properties": {
        "delegation_id": {
          "type": "string"
        },
        "models": {
          "items": {
            "properties": {
              "entries": {
                "enum": [
                  "all",
                  "checked"
                ],
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "kinds": {
                "items": {
                  "enum": [
                    "publish",
                    "unpublish"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "slug": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "slug",
              "kinds",
              "entries"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "delegation_id",
        "models"
      ],
      "type": "object"
    },
    "draft_discard_command": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "locale": {
          "pattern": "^[A-Za-z]{2,8}(-[A-Za-z0-9]{1,8})*$",
          "type": "string"
        },
        "revision": {
          "maximum": 9007199254740991,
          "minimum": 1,
          "type": "integer"
        },
        "target": {
          "description": "An entry id, or `new:<model id>` for an entry not created yet.",
          "pattern": "^(?:new:)?[A-Za-z0-9_-]{1,128}$",
          "type": "string"
        }
      },
      "required": [
        "delegation_id",
        "target",
        "locale",
        "revision"
      ],
      "type": "object"
    },
    "draft_query": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "locale": {
          "pattern": "^[A-Za-z]{2,8}(-[A-Za-z0-9]{1,8})*$",
          "type": "string"
        },
        "target": {
          "description": "An entry id, or `new:<model id>` for an entry not created yet.",
          "pattern": "^(?:new:)?[A-Za-z0-9_-]{1,128}$",
          "type": "string"
        }
      },
      "required": [
        "delegation_id",
        "target",
        "locale"
      ],
      "type": "object"
    },
    "draft_read": {
      "properties": {
        "data": {
          "anyOf": [
            {
              "properties": {
                "baseline_version_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "data": {},
                "expires_at": {
                  "type": "string"
                },
                "kind": {
                  "enum": [
                    "content",
                    "page",
                    "page-assist"
                  ],
                  "type": "string"
                },
                "locale": {
                  "type": "string"
                },
                "revision": {
                  "maximum": 9007199254740991,
                  "minimum": 1,
                  "type": "integer"
                },
                "target": {
                  "type": "string"
                },
                "updated_at": {
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "target",
                "locale",
                "baseline_version_id",
                "revision",
                "data",
                "updated_at",
                "expires_at"
              ],
              "type": "object"
            },
            {
              "type": "null"
            }
          ]
        },
        "expired": {
          "type": "boolean"
        }
      },
      "required": [
        "data",
        "expired"
      ],
      "type": "object"
    },
    "draft_write_command": {
      "additionalProperties": false,
      "properties": {
        "baseline_version_id": {
          "anyOf": [
            {
              "pattern": "^[A-Za-z0-9_-]{1,128}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "data": {
          "additionalProperties": {},
          "propertyNames": {
            "type": "string"
          },
          "type": "object"
        },
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "expected_revision": {
          "maximum": 9007199254740991,
          "minimum": 0,
          "type": "integer"
        },
        "locale": {
          "pattern": "^[A-Za-z]{2,8}(-[A-Za-z0-9]{1,8})*$",
          "type": "string"
        },
        "target": {
          "description": "An entry id, or `new:<model id>` for an entry not created yet.",
          "pattern": "^(?:new:)?[A-Za-z0-9_-]{1,128}$",
          "type": "string"
        }
      },
      "required": [
        "delegation_id",
        "target",
        "locale",
        "baseline_version_id",
        "expected_revision",
        "data"
      ],
      "type": "object"
    },
    "field_editor_source": {
      "properties": {
        "editors": {
          "items": {
            "oneOf": [
              {
                "properties": {
                  "control": {
                    "const": "text",
                    "type": "string"
                  },
                  "frame": {
                    "properties": {
                      "operations": {
                        "items": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      "origin": {
                        "format": "uri",
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "maxLength": 2048,
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "origin"
                    ],
                    "type": "object"
                  },
                  "help_text": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "id": {
                    "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                    "type": "string"
                  },
                  "label": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "placement": {
                    "const": "field_editor",
                    "type": "string"
                  },
                  "validation": {
                    "properties": {
                      "max_length": {
                        "maximum": 100000,
                        "minimum": 1,
                        "type": "integer"
                      },
                      "min_length": {
                        "maximum": 100000,
                        "minimum": 0,
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "id",
                  "placement",
                  "control",
                  "label"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "control": {
                    "const": "textarea",
                    "type": "string"
                  },
                  "frame": {
                    "properties": {
                      "operations": {
                        "items": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      "origin": {
                        "format": "uri",
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "maxLength": 2048,
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "origin"
                    ],
                    "type": "object"
                  },
                  "help_text": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "id": {
                    "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                    "type": "string"
                  },
                  "label": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "placement": {
                    "const": "field_editor",
                    "type": "string"
                  },
                  "validation": {
                    "properties": {
                      "max_length": {
                        "maximum": 100000,
                        "minimum": 1,
                        "type": "integer"
                      },
                      "min_length": {
                        "maximum": 100000,
                        "minimum": 0,
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "id",
                  "placement",
                  "control",
                  "label"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "control": {
                    "const": "url",
                    "type": "string"
                  },
                  "frame": {
                    "properties": {
                      "operations": {
                        "items": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      "origin": {
                        "format": "uri",
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "maxLength": 2048,
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "origin"
                    ],
                    "type": "object"
                  },
                  "help_text": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "id": {
                    "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                    "type": "string"
                  },
                  "label": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "placement": {
                    "const": "field_editor",
                    "type": "string"
                  },
                  "validation": {
                    "properties": {
                      "max_length": {
                        "maximum": 100000,
                        "minimum": 1,
                        "type": "integer"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "id",
                  "placement",
                  "control",
                  "label"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "control": {
                    "const": "number",
                    "type": "string"
                  },
                  "frame": {
                    "properties": {
                      "operations": {
                        "items": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      "origin": {
                        "format": "uri",
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "maxLength": 2048,
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "origin"
                    ],
                    "type": "object"
                  },
                  "help_text": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "id": {
                    "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                    "type": "string"
                  },
                  "label": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "placement": {
                    "const": "field_editor",
                    "type": "string"
                  },
                  "validation": {
                    "properties": {
                      "max": {
                        "type": "number"
                      },
                      "min": {
                        "type": "number"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "id",
                  "placement",
                  "control",
                  "label"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "control": {
                    "const": "boolean",
                    "type": "string"
                  },
                  "frame": {
                    "properties": {
                      "operations": {
                        "items": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      "origin": {
                        "format": "uri",
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "maxLength": 2048,
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "origin"
                    ],
                    "type": "object"
                  },
                  "help_text": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "id": {
                    "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                    "type": "string"
                  },
                  "label": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "placement": {
                    "const": "field_editor",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "placement",
                  "control",
                  "label"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "control": {
                    "const": "date",
                    "type": "string"
                  },
                  "frame": {
                    "properties": {
                      "operations": {
                        "items": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      "origin": {
                        "format": "uri",
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "maxLength": 2048,
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "origin"
                    ],
                    "type": "object"
                  },
                  "help_text": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "id": {
                    "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                    "type": "string"
                  },
                  "label": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "placement": {
                    "const": "field_editor",
                    "type": "string"
                  },
                  "validation": {
                    "properties": {
                      "max_date": {
                        "pattern": "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
                        "type": "string"
                      },
                      "min_date": {
                        "pattern": "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "id",
                  "placement",
                  "control",
                  "label"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "control": {
                    "const": "select",
                    "type": "string"
                  },
                  "frame": {
                    "properties": {
                      "operations": {
                        "items": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      "origin": {
                        "format": "uri",
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "maxLength": 2048,
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "origin"
                    ],
                    "type": "object"
                  },
                  "help_text": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "id": {
                    "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                    "type": "string"
                  },
                  "label": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "options": {
                    "items": {
                      "properties": {
                        "label": {
                          "maxLength": 64,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        },
                        "value": {
                          "maxLength": 64,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "value",
                        "label"
                      ],
                      "type": "object"
                    },
                    "maxItems": 50,
                    "minItems": 1,
                    "type": "array"
                  },
                  "placement": {
                    "const": "field_editor",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "placement",
                  "control",
                  "label",
                  "options"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "control": {
                    "const": "group",
                    "type": "string"
                  },
                  "frame": {
                    "properties": {
                      "operations": {
                        "items": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      "origin": {
                        "format": "uri",
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "maxLength": 2048,
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "origin"
                    ],
                    "type": "object"
                  },
                  "help_text": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "id": {
                    "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                    "type": "string"
                  },
                  "label": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "members": {
                    "description": "The closed members of the structured value. The field stores one JSON object; its schema is written onto the field.",
                    "items": {
                      "oneOf": [
                        {
                          "properties": {
                            "control": {
                              "const": "text",
                              "type": "string"
                            },
                            "key": {
                              "pattern": "^[a-z][a-z0-9_]{0,31}$",
                              "type": "string"
                            },
                            "label": {
                              "maxLength": 40,
                              "minLength": 1,
                              "pattern": "^[^\\p{Cc}<>]+$",
                              "type": "string"
                            },
                            "max_length": {
                              "maximum": 500,
                              "minimum": 1,
                              "type": "integer"
                            },
                            "required": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "key",
                            "label",
                            "control",
                            "max_length"
                          ],
                          "type": "object"
                        },
                        {
                          "properties": {
                            "control": {
                              "const": "number",
                              "type": "string"
                            },
                            "integer": {
                              "type": "boolean"
                            },
                            "key": {
                              "pattern": "^[a-z][a-z0-9_]{0,31}$",
                              "type": "string"
                            },
                            "label": {
                              "maxLength": 40,
                              "minLength": 1,
                              "pattern": "^[^\\p{Cc}<>]+$",
                              "type": "string"
                            },
                            "max": {
                              "type": "number"
                            },
                            "min": {
                              "type": "number"
                            },
                            "required": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "key",
                            "label",
                            "control"
                          ],
                          "type": "object"
                        },
                        {
                          "properties": {
                            "control": {
                              "const": "boolean",
                              "type": "string"
                            },
                            "key": {
                              "pattern": "^[a-z][a-z0-9_]{0,31}$",
                              "type": "string"
                            },
                            "label": {
                              "maxLength": 40,
                              "minLength": 1,
                              "pattern": "^[^\\p{Cc}<>]+$",
                              "type": "string"
                            }
                          },
                          "required": [
                            "key",
                            "label",
                            "control"
                          ],
                          "type": "object"
                        },
                        {
                          "properties": {
                            "control": {
                              "const": "select",
                              "type": "string"
                            },
                            "key": {
                              "pattern": "^[a-z][a-z0-9_]{0,31}$",
                              "type": "string"
                            },
                            "label": {
                              "maxLength": 40,
                              "minLength": 1,
                              "pattern": "^[^\\p{Cc}<>]+$",
                              "type": "string"
                            },
                            "options": {
                              "items": {
                                "properties": {
                                  "label": {
                                    "maxLength": 64,
                                    "minLength": 1,
                                    "pattern": "^[^\\p{Cc}<>]+$",
                                    "type": "string"
                                  },
                                  "value": {
                                    "maxLength": 64,
                                    "minLength": 1,
                                    "pattern": "^[^\\p{Cc}<>]+$",
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "value",
                                  "label"
                                ],
                                "type": "object"
                              },
                              "maxItems": 12,
                              "minItems": 1,
                              "type": "array"
                            },
                            "required": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "key",
                            "label",
                            "control",
                            "options"
                          ],
                          "type": "object"
                        }
                      ]
                    },
                    "maxItems": 8,
                    "minItems": 1,
                    "type": "array"
                  },
                  "placement": {
                    "const": "field_editor",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "placement",
                  "control",
                  "label",
                  "members"
                ],
                "type": "object"
              }
            ]
          },
          "type": "array"
        },
        "installation_id": {
          "type": "string"
        },
        "plugin_id": {
          "type": "string"
        },
        "plugin_name": {
          "type": "string"
        },
        "state": {
          "enum": [
            "active",
            "disabled"
          ],
          "type": "string"
        }
      },
      "required": [
        "installation_id",
        "plugin_id",
        "plugin_name",
        "state",
        "editors"
      ],
      "type": "object"
    },
    "future_create_command": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "type": "string"
        },
        "locale": {
          "type": "string"
        },
        "name": {
          "description": "A new branch name is trimmed and must contain 1–120 characters.",
          "type": "string"
        },
        "release_id": {
          "type": "string"
        }
      },
      "required": [
        "delegation_id",
        "release_id",
        "name"
      ],
      "type": "object"
    },
    "future_created": {
      "properties": {
        "base_version_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string"
        },
        "created_by_id": {
          "type": "string"
        },
        "current_version_id": {
          "type": "string"
        },
        "editor_url": {
          "format": "uri",
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "installation_id": {
          "type": "string"
        },
        "instance_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "release_id": {
          "type": "string"
        },
        "revision": {
          "maximum": 9007199254740991,
          "minimum": 0,
          "type": "integer"
        },
        "site_id": {
          "type": "string"
        },
        "state": {
          "enum": [
            "editable",
            "frozen",
            "published",
            "cancelled"
          ],
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        },
        "updated_by_id": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "site_id",
        "instance_id",
        "installation_id",
        "release_id",
        "name",
        "base_version_id",
        "current_version_id",
        "revision",
        "state",
        "created_by_id",
        "updated_by_id",
        "created_at",
        "updated_at",
        "editor_url"
      ],
      "type": "object"
    },
    "future_draft": {
      "properties": {
        "base_version_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string"
        },
        "created_by_id": {
          "type": "string"
        },
        "current_version_id": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "installation_id": {
          "type": "string"
        },
        "instance_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "release_id": {
          "type": "string"
        },
        "revision": {
          "maximum": 9007199254740991,
          "minimum": 0,
          "type": "integer"
        },
        "site_id": {
          "type": "string"
        },
        "state": {
          "enum": [
            "editable",
            "frozen",
            "published",
            "cancelled"
          ],
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        },
        "updated_by_id": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "site_id",
        "instance_id",
        "installation_id",
        "release_id",
        "name",
        "base_version_id",
        "current_version_id",
        "revision",
        "state",
        "created_by_id",
        "updated_by_id",
        "created_at",
        "updated_at"
      ],
      "type": "object"
    },
    "future_read": {
      "properties": {
        "data": {
          "properties": {
            "future": {
              "properties": {
                "base_version_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "created_at": {
                  "type": "string"
                },
                "created_by_id": {
                  "type": "string"
                },
                "current_version_id": {
                  "type": "string"
                },
                "id": {
                  "type": "string"
                },
                "installation_id": {
                  "type": "string"
                },
                "instance_id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "release_id": {
                  "type": "string"
                },
                "revision": {
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "site_id": {
                  "type": "string"
                },
                "state": {
                  "enum": [
                    "editable",
                    "frozen",
                    "published",
                    "cancelled"
                  ],
                  "type": "string"
                },
                "updated_at": {
                  "type": "string"
                },
                "updated_by_id": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "site_id",
                "instance_id",
                "installation_id",
                "release_id",
                "name",
                "base_version_id",
                "current_version_id",
                "revision",
                "state",
                "created_by_id",
                "updated_by_id",
                "created_at",
                "updated_at"
              ],
              "type": "object"
            },
            "summary": {
              "properties": {
                "current_version_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "instance_id": {
                  "type": "string"
                },
                "label": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "lang": {
                  "type": "string"
                },
                "model_id": {
                  "type": "string"
                },
                "model_slug": {
                  "type": "string"
                },
                "primary_instance_id": {
                  "type": "string"
                },
                "published_version_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "slug": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "translation_group_id": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "workflow": {
                  "properties": {
                    "locales": {
                      "items": {
                        "properties": {
                          "instance_id": {
                            "type": "string"
                          },
                          "locale": {
                            "type": "string"
                          },
                          "published_version_id": {
                            "anyOf": [
                              {
                                "type": "string"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "state": {
                            "type": "string"
                          },
                          "transitions": {
                            "items": {
                              "properties": {
                                "kind": {
                                  "enum": [
                                    "publish",
                                    "unpublish"
                                  ],
                                  "type": "string"
                                },
                                "to": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "to",
                                "kind"
                              ],
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "required": [
                          "locale",
                          "instance_id",
                          "state",
                          "published_version_id",
                          "transitions"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "revision": {
                      "maximum": 9007199254740991,
                      "minimum": 0,
                      "type": "integer"
                    },
                    "state": {
                      "type": "string"
                    },
                    "transitions": {
                      "items": {
                        "properties": {
                          "kind": {
                            "enum": [
                              "publish",
                              "unpublish"
                            ],
                            "type": "string"
                          },
                          "to": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "to",
                          "kind"
                        ],
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "state",
                    "revision",
                    "transitions"
                  ],
                  "type": "object"
                }
              },
              "required": [
                "instance_id",
                "primary_instance_id",
                "translation_group_id",
                "model_id",
                "model_slug",
                "lang",
                "label",
                "slug",
                "current_version_id",
                "published_version_id"
              ],
              "type": "object"
            }
          },
          "required": [
            "future",
            "summary"
          ],
          "type": "object"
        }
      },
      "required": [
        "data"
      ],
      "type": "object"
    },
    "future_read_query": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "delegation_id"
      ],
      "type": "object"
    },
    "hook_comment_facts": {
      "additionalProperties": false,
      "properties": {
        "comment": {
          "additionalProperties": false,
          "properties": {
            "author_name": {
              "maxLength": 200,
              "type": "string"
            },
            "author_website": {
              "anyOf": [
                {
                  "maxLength": 2048,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "body": {
              "maxLength": 10000,
              "type": "string"
            },
            "id": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "parent_id": {
              "anyOf": [
                {
                  "maxLength": 64,
                  "minLength": 1,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "id",
            "parent_id",
            "author_name",
            "author_website",
            "body"
          ],
          "type": "object"
        },
        "entry": {
          "additionalProperties": false,
          "properties": {
            "instance_id": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "locale": {
              "maxLength": 35,
              "pattern": "^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
              "type": "string"
            }
          },
          "required": [
            "instance_id",
            "locale"
          ],
          "type": "object"
        },
        "kind": {
          "const": "comment_moderation",
          "type": "string"
        },
        "model": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "slug": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            }
          },
          "required": [
            "id",
            "slug"
          ],
          "type": "object"
        }
      },
      "required": [
        "kind",
        "model",
        "entry",
        "comment"
      ],
      "type": "object"
    },
    "hook_comment_reply": {
      "oneOf": [
        {
          "additionalProperties": false,
          "properties": {
            "decision": {
              "const": "approve",
              "type": "string"
            }
          },
          "required": [
            "decision"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "decision": {
              "const": "hold",
              "type": "string"
            },
            "reason": {
              "maxLength": 300,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}]+$",
              "type": "string"
            }
          },
          "required": [
            "decision"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "as": {
              "enum": [
                "spam",
                "refused"
              ],
              "type": "string"
            },
            "decision": {
              "const": "reject",
              "type": "string"
            }
          },
          "required": [
            "decision"
          ],
          "type": "object"
        }
      ]
    },
    "hook_upload_facts": {
      "additionalProperties": false,
      "properties": {
        "kind": {
          "const": "upload_metadata",
          "type": "string"
        },
        "site_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "upload": {
          "additionalProperties": false,
          "properties": {
            "alt_texts": {
              "additionalProperties": {
                "maxLength": 1000,
                "type": "string"
              },
              "propertyNames": {
                "maxLength": 35,
                "pattern": "^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
                "type": "string"
              },
              "type": "object"
            },
            "filename": {
              "maxLength": 255,
              "minLength": 1,
              "pattern": "^[^\\\\/\\p{Cc}<>:\"|?*]+$",
              "type": "string"
            },
            "folder_id": {
              "anyOf": [
                {
                  "maxLength": 64,
                  "minLength": 1,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "height": {
              "anyOf": [
                {
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "mime_type": {
              "maxLength": 127,
              "minLength": 1,
              "type": "string"
            },
            "size_bytes": {
              "maximum": 9007199254740991,
              "minimum": 0,
              "type": "integer"
            },
            "width": {
              "anyOf": [
                {
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "filename",
            "mime_type",
            "size_bytes",
            "width",
            "height",
            "alt_texts",
            "folder_id"
          ],
          "type": "object"
        }
      },
      "required": [
        "kind",
        "site_id",
        "upload"
      ],
      "type": "object"
    },
    "hook_upload_reply": {
      "oneOf": [
        {
          "additionalProperties": false,
          "properties": {
            "decision": {
              "const": "accept",
              "type": "string"
            },
            "normalized": {
              "additionalProperties": false,
              "properties": {
                "alt_texts": {
                  "additionalProperties": {
                    "maxLength": 1000,
                    "type": "string"
                  },
                  "propertyNames": {
                    "maxLength": 35,
                    "pattern": "^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
                    "type": "string"
                  },
                  "type": "object"
                },
                "filename": {
                  "maxLength": 255,
                  "minLength": 1,
                  "pattern": "^[^\\\\/\\p{Cc}<>:\"|?*]+$",
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "decision"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "code": {
              "pattern": "^[a-z][a-z0-9_]{0,63}$",
              "type": "string"
            },
            "decision": {
              "const": "refuse",
              "type": "string"
            },
            "message": {
              "maxLength": 300,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}]+$",
              "type": "string"
            }
          },
          "required": [
            "decision",
            "code",
            "message"
          ],
          "type": "object"
        }
      ]
    },
    "installation": {
      "properties": {
        "admin_views": {
          "items": {
            "properties": {
              "capabilities": {
                "items": {
                  "enum": [
                    "content:read",
                    "workflow:read",
                    "workflow:publish",
                    "workflow:unpublish",
                    "workflow:locale",
                    "workflow:release",
                    "content:write",
                    "content:create",
                    "content:delete",
                    "draft:write",
                    "media:write",
                    "media:read",
                    "media:update",
                    "media:delete",
                    "content:restore",
                    "comments:read",
                    "comments:moderate",
                    "redirects:read",
                    "redirects:write",
                    "mail:send",
                    "renderer:metadata",
                    "content:propose",
                    "media:source"
                  ],
                  "type": "string"
                },
                "maxItems": 8,
                "minItems": 1,
                "type": "array"
              },
              "dashboard": {
                "default": false,
                "type": "boolean"
              },
              "frame": {
                "properties": {
                  "operations": {
                    "items": {
                      "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                      "type": "string"
                    },
                    "maxItems": 8,
                    "type": "array"
                  },
                  "origin": {
                    "format": "uri",
                    "type": "string"
                  },
                  "url": {
                    "format": "uri",
                    "maxLength": 2048,
                    "type": "string"
                  }
                },
                "required": [
                  "url",
                  "origin"
                ],
                "type": "object"
              },
              "id": {
                "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                "type": "string"
              },
              "label": {
                "maxLength": 32,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}<>]+$",
                "type": "string"
              },
              "navigation": {
                "default": true,
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "label",
              "frame",
              "navigation",
              "dashboard",
              "capabilities"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "capabilities": {
          "items": {
            "enum": [
              "content:read",
              "workflow:read",
              "workflow:publish",
              "workflow:unpublish",
              "workflow:locale",
              "workflow:release",
              "content:write",
              "content:create",
              "content:delete",
              "draft:write",
              "media:write",
              "media:read",
              "media:update",
              "media:delete",
              "content:restore",
              "comments:read",
              "comments:moderate",
              "redirects:read",
              "redirects:write",
              "mail:send",
              "renderer:metadata",
              "content:propose",
              "media:source"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "content_actions": {
          "items": {
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "label"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "created_at": {
          "type": "string"
        },
        "created_by_email": {
          "type": "string"
        },
        "hook_modes": {
          "additionalProperties": {
            "enum": [
              "off",
              "on"
            ],
            "type": "string"
          },
          "description": "Whether each declared pre-operation hook is on. A hook is off until an administrator turns it on.",
          "propertyNames": {
            "type": "string"
          },
          "type": "object"
        },
        "hooks": {
          "items": {
            "properties": {
              "endpoint": {
                "description": "HTTPS, on the manifest’s one origin. Core POSTs the invocation envelope here.",
                "format": "uri",
                "maxLength": 2048,
                "type": "string"
              },
              "id": {
                "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                "type": "string"
              },
              "kind": {
                "description": "`upload_metadata`: asked before a new library file is accepted; may refuse it or normalize its name and alt texts. `comment_moderation`: asked before a visitor comment is stored; decides approve, hold or reject. Never runs until an administrator turns it on; a failing hook refuses the upload or holds the comment, never approves.",
                "enum": [
                  "upload_metadata",
                  "comment_moderation"
                ],
                "type": "string"
              },
              "label": {
                "maxLength": 40,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}<>]+$",
                "type": "string"
              },
              "requires": {
                "description": "Installation capabilities this needs. Listed in requested_capabilities; unavailable while the grant lacks one.",
                "items": {
                  "enum": [
                    "content:read",
                    "workflow:read",
                    "workflow:publish",
                    "workflow:unpublish",
                    "workflow:locale",
                    "workflow:release",
                    "content:write",
                    "content:create",
                    "content:delete",
                    "draft:write",
                    "media:write",
                    "media:read",
                    "media:update",
                    "media:delete",
                    "content:restore",
                    "comments:read",
                    "comments:moderate",
                    "redirects:read",
                    "redirects:write",
                    "mail:send",
                    "renderer:metadata",
                    "content:propose",
                    "media:source"
                  ],
                  "type": "string"
                },
                "maxItems": 23,
                "type": "array",
                "uniqueItems": true
              }
            },
            "required": [
              "id",
              "label",
              "kind",
              "endpoint",
              "requires"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "id": {
          "type": "string"
        },
        "mail_template_declarations": {
          "items": {
            "properties": {
              "id": {
                "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                "type": "string"
              },
              "label": {
                "maxLength": 64,
                "minLength": 1,
                "type": "string"
              },
              "variables": {
                "items": {
                  "pattern": "^[a-z][a-z0-9_]{0,31}$",
                  "type": "string"
                },
                "maxItems": 16,
                "type": "array"
              }
            },
            "required": [
              "id",
              "label",
              "variables"
            ],
            "type": "object"
          },
          "maxItems": 8,
          "minItems": 1,
          "type": "array"
        },
        "mail_templates": {
          "additionalProperties": {
            "anyOf": [
              {
                "properties": {
                  "recipient_source": {
                    "const": "fixed",
                    "type": "string"
                  },
                  "recipients": {
                    "items": {
                      "format": "email",
                      "maxLength": 254,
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
                      "type": "string"
                    },
                    "maxItems": 8,
                    "minItems": 1,
                    "type": "array"
                  },
                  "subject": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\r\\n]+$",
                    "type": "string"
                  },
                  "text": {
                    "maxLength": 12000,
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "recipients",
                  "subject",
                  "text"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "recipient_source": {
                    "enum": [
                      "entry_author",
                      "entry_assignee"
                    ],
                    "type": "string"
                  },
                  "recipients": {
                    "default": [],
                    "items": {
                      "format": "email",
                      "maxLength": 254,
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
                      "type": "string"
                    },
                    "maxItems": 0,
                    "type": "array"
                  },
                  "subject": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\r\\n]+$",
                    "type": "string"
                  },
                  "text": {
                    "maxLength": 12000,
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "required": [
                  "recipient_source",
                  "recipients",
                  "subject",
                  "text"
                ],
                "type": "object"
              }
            ]
          },
          "propertyNames": {
            "pattern": "^[a-z][a-z0-9_-]{0,31}$",
            "type": "string"
          },
          "type": "object"
        },
        "manage_views": {
          "items": {
            "enum": [
              "calendar",
              "releases"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "management_origin": {
          "anyOf": [
            {
              "format": "uri",
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "manifest_url": {
          "format": "uri",
          "type": "string"
        },
        "model_ids": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "operations": {
          "items": {
            "properties": {
              "audience": {
                "description": "`interactive`: listed and run in the admin, management API, CLI and MCP. `automation`: never listed there and refused by their run routes; only a named core workflow (the planner’s Scheduling handoff) invokes it. `column`: only the content list invokes it, and only for a `page` scope operation.",
                "enum": [
                  "interactive",
                  "automation",
                  "column"
                ],
                "type": "string"
              },
              "cell": {
                "description": "A `page` operation only, and required there: how the host draws each cell of the column. The operation’s label is the column header.",
                "enum": [
                  "text",
                  "badge",
                  "link"
                ],
                "type": "string"
              },
              "description": {
                "maxLength": 160,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}<>]+$",
                "type": "string"
              },
              "destructive": {
                "const": true,
                "description": "Asks for the shared destructive confirmation before it runs.",
                "type": "boolean"
              },
              "endpoint": {
                "description": "HTTPS, on the manifest’s one origin. Core POSTs the invocation envelope here.",
                "format": "uri",
                "maxLength": 2048,
                "type": "string"
              },
              "id": {
                "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                "type": "string"
              },
              "input": {
                "items": {
                  "oneOf": [
                    {
                      "properties": {
                        "help": {
                          "maxLength": 160,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        },
                        "key": {
                          "pattern": "^[a-z][a-z0-9_]{0,31}$",
                          "type": "string"
                        },
                        "kind": {
                          "const": "text",
                          "type": "string"
                        },
                        "label": {
                          "maxLength": 40,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        },
                        "max_length": {
                          "maximum": 1000,
                          "minimum": 1,
                          "type": "integer"
                        },
                        "multiline": {
                          "type": "boolean"
                        },
                        "required": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "key",
                        "label",
                        "kind",
                        "max_length"
                      ],
                      "type": "object"
                    },
                    {
                      "properties": {
                        "help": {
                          "maxLength": 160,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        },
                        "integer": {
                          "type": "boolean"
                        },
                        "key": {
                          "pattern": "^[a-z][a-z0-9_]{0,31}$",
                          "type": "string"
                        },
                        "kind": {
                          "const": "number",
                          "type": "string"
                        },
                        "label": {
                          "maxLength": 40,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        },
                        "max": {
                          "type": "number"
                        },
                        "min": {
                          "type": "number"
                        },
                        "required": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "key",
                        "label",
                        "kind"
                      ],
                      "type": "object"
                    },
                    {
                      "properties": {
                        "help": {
                          "maxLength": 160,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        },
                        "key": {
                          "pattern": "^[a-z][a-z0-9_]{0,31}$",
                          "type": "string"
                        },
                        "kind": {
                          "const": "boolean",
                          "type": "string"
                        },
                        "label": {
                          "maxLength": 40,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "key",
                        "label",
                        "kind"
                      ],
                      "type": "object"
                    },
                    {
                      "properties": {
                        "help": {
                          "maxLength": 160,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        },
                        "key": {
                          "pattern": "^[a-z][a-z0-9_]{0,31}$",
                          "type": "string"
                        },
                        "kind": {
                          "const": "select",
                          "type": "string"
                        },
                        "label": {
                          "maxLength": 40,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        },
                        "options": {
                          "items": {
                            "properties": {
                              "label": {
                                "maxLength": 64,
                                "minLength": 1,
                                "pattern": "^[^\\p{Cc}<>]+$",
                                "type": "string"
                              },
                              "value": {
                                "maxLength": 64,
                                "minLength": 1,
                                "pattern": "^[^\\p{Cc}<>]+$",
                                "type": "string"
                              }
                            },
                            "required": [
                              "value",
                              "label"
                            ],
                            "type": "object"
                          },
                          "maxItems": 32,
                          "minItems": 1,
                          "type": "array"
                        },
                        "required": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "key",
                        "label",
                        "kind",
                        "options"
                      ],
                      "type": "object"
                    }
                  ]
                },
                "maxItems": 8,
                "type": "array"
              },
              "label": {
                "maxLength": 40,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}<>]+$",
                "type": "string"
              },
              "list_action": {
                "const": true,
                "description": "An interactive `entry` operation only: also offered on the content list for the rows a person selected. The host runs it once per row through the ordinary run path, so every row is authorized, audited and answered on its own.",
                "type": "boolean"
              },
              "requires": {
                "description": "Installation capabilities this needs. Listed in requested_capabilities; unavailable while the grant lacks one.",
                "items": {
                  "enum": [
                    "content:read",
                    "workflow:read",
                    "workflow:publish",
                    "workflow:unpublish",
                    "workflow:locale",
                    "workflow:release",
                    "content:write",
                    "content:create",
                    "content:delete",
                    "draft:write",
                    "media:write",
                    "media:read",
                    "media:update",
                    "media:delete",
                    "content:restore",
                    "comments:read",
                    "comments:moderate",
                    "redirects:read",
                    "redirects:write",
                    "mail:send",
                    "renderer:metadata",
                    "content:propose",
                    "media:source"
                  ],
                  "type": "string"
                },
                "maxItems": 23,
                "type": "array",
                "uniqueItems": true
              },
              "result": {
                "description": "The CMS components a completed result may use.",
                "items": {
                  "enum": [
                    "text",
                    "rows",
                    "links",
                    "json",
                    "cells"
                  ],
                  "type": "string"
                },
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "uniqueItems": true
              },
              "scope": {
                "description": "`site`: run from Settings → Plugins. `entry`: run on one entry of a granted model. `page`: a content-list column the plugin computes for a bounded page of rows of one granted model.",
                "enum": [
                  "site",
                  "entry",
                  "page"
                ],
                "type": "string"
              }
            },
            "required": [
              "id",
              "label",
              "endpoint",
              "scope",
              "audience",
              "requires",
              "result"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "plugin_id": {
          "type": "string"
        },
        "plugin_name": {
          "type": "string"
        },
        "plugin_version": {
          "type": "string"
        },
        "policies": {
          "items": {
            "properties": {
              "endpoint": {
                "description": "HTTPS, on the manifest’s one origin. Core POSTs the invocation envelope here.",
                "format": "uri",
                "maxLength": 2048,
                "type": "string"
              },
              "id": {
                "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                "type": "string"
              },
              "kind": {
                "description": "`save`: before a content save, including link, media and SEO-only changes; may transform. `restore`: before an old version is restored (may transform) or an entry leaves Trash. `delete`: before an entry or language moves to Trash or is deleted permanently. `publish`: before a publication. `unpublish`: before content is taken offline. `transition`: before every workflow move, scheduled and plugin moves included.",
                "enum": [
                  "save",
                  "restore",
                  "delete",
                  "publish",
                  "unpublish",
                  "transition"
                ],
                "type": "string"
              },
              "label": {
                "maxLength": 40,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}<>]+$",
                "type": "string"
              },
              "requires": {
                "description": "Installation capabilities this needs. Listed in requested_capabilities; unavailable while the grant lacks one.",
                "items": {
                  "enum": [
                    "content:read",
                    "workflow:read",
                    "workflow:publish",
                    "workflow:unpublish",
                    "workflow:locale",
                    "workflow:release",
                    "content:write",
                    "content:create",
                    "content:delete",
                    "draft:write",
                    "media:write",
                    "media:read",
                    "media:update",
                    "media:delete",
                    "content:restore",
                    "comments:read",
                    "comments:moderate",
                    "redirects:read",
                    "redirects:write",
                    "mail:send",
                    "renderer:metadata",
                    "content:propose",
                    "media:source"
                  ],
                  "type": "string"
                },
                "maxItems": 23,
                "type": "array",
                "uniqueItems": true
              }
            },
            "required": [
              "id",
              "label",
              "kind",
              "endpoint",
              "requires"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "policy_modes": {
          "additionalProperties": {
            "enum": [
              "warn",
              "required"
            ],
            "type": "string"
          },
          "description": "The availability mode of every declared policy.",
          "propertyNames": {
            "type": "string"
          },
          "type": "object"
        },
        "protocol_version": {
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "type": "integer"
        },
        "requested_capabilities": {
          "items": {
            "enum": [
              "content:read",
              "workflow:read",
              "workflow:publish",
              "workflow:unpublish",
              "workflow:locale",
              "workflow:release",
              "content:write",
              "content:create",
              "content:delete",
              "draft:write",
              "media:write",
              "media:read",
              "media:update",
              "media:delete",
              "content:restore",
              "comments:read",
              "comments:moderate",
              "redirects:read",
              "redirects:write",
              "mail:send",
              "renderer:metadata",
              "content:propose",
              "media:source"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "state": {
          "enum": [
            "pending",
            "active",
            "disabled",
            "revoked"
          ],
          "type": "string"
        },
        "ui_extensions": {
          "items": {
            "oneOf": [
              {
                "properties": {
                  "description": {
                    "maxLength": 160,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "frame": {
                    "properties": {
                      "operations": {
                        "items": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      "origin": {
                        "format": "uri",
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "maxLength": 2048,
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "origin"
                    ],
                    "type": "object"
                  },
                  "id": {
                    "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                    "type": "string"
                  },
                  "launch": {
                    "oneOf": [
                      {
                        "description": "Opens one of this manifest’s content_actions for the item on screen.",
                        "properties": {
                          "action": {
                            "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                            "type": "string"
                          },
                          "kind": {
                            "const": "content_action",
                            "type": "string"
                          }
                        },
                        "required": [
                          "kind",
                          "action"
                        ],
                        "type": "object"
                      },
                      {
                        "description": "Opens one of this manifest’s manage_views. Shown in the sidebar of an item whose model the grant includes, and always to people with site:plugins.",
                        "properties": {
                          "kind": {
                            "const": "manage_view",
                            "type": "string"
                          },
                          "view": {
                            "enum": [
                              "calendar",
                              "releases"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "kind",
                          "view"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "placement": {
                    "const": "entry_sidebar",
                    "type": "string"
                  },
                  "title": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "placement",
                  "title",
                  "launch"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "description": {
                    "maxLength": 160,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "frame": {
                    "properties": {
                      "operations": {
                        "items": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      "origin": {
                        "format": "uri",
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "maxLength": 2048,
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "origin"
                    ],
                    "type": "object"
                  },
                  "id": {
                    "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                    "type": "string"
                  },
                  "launch": {
                    "oneOf": [
                      {
                        "description": "Opens one of this manifest’s content_actions for the item on screen.",
                        "properties": {
                          "action": {
                            "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                            "type": "string"
                          },
                          "kind": {
                            "const": "content_action",
                            "type": "string"
                          }
                        },
                        "required": [
                          "kind",
                          "action"
                        ],
                        "type": "object"
                      },
                      {
                        "description": "Opens one of this manifest’s manage_views. Shown in the sidebar of an item whose model the grant includes, and always to people with site:plugins.",
                        "properties": {
                          "kind": {
                            "const": "manage_view",
                            "type": "string"
                          },
                          "view": {
                            "enum": [
                              "calendar",
                              "releases"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "kind",
                          "view"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "placement": {
                    "const": "page_sidebar",
                    "type": "string"
                  },
                  "title": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "placement",
                  "title",
                  "launch"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "description": {
                    "maxLength": 160,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "frame": {
                    "properties": {
                      "operations": {
                        "items": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "maxItems": 8,
                        "type": "array"
                      },
                      "origin": {
                        "format": "uri",
                        "type": "string"
                      },
                      "url": {
                        "format": "uri",
                        "maxLength": 2048,
                        "type": "string"
                      }
                    },
                    "required": [
                      "url",
                      "origin"
                    ],
                    "type": "object"
                  },
                  "id": {
                    "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                    "type": "string"
                  },
                  "launch": {
                    "description": "Opens one of this manifest’s manage_views. Shown in the sidebar of an item whose model the grant includes, and always to people with site:plugins.",
                    "properties": {
                      "kind": {
                        "const": "manage_view",
                        "type": "string"
                      },
                      "view": {
                        "enum": [
                          "calendar",
                          "releases"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "view"
                    ],
                    "type": "object"
                  },
                  "placement": {
                    "const": "settings_row",
                    "type": "string"
                  },
                  "title": {
                    "maxLength": 40,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "placement",
                  "title",
                  "launch"
                ],
                "type": "object"
              },
              {
                "oneOf": [
                  {
                    "properties": {
                      "control": {
                        "const": "text",
                        "type": "string"
                      },
                      "frame": {
                        "properties": {
                          "operations": {
                            "items": {
                              "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                              "type": "string"
                            },
                            "maxItems": 8,
                            "type": "array"
                          },
                          "origin": {
                            "format": "uri",
                            "type": "string"
                          },
                          "url": {
                            "format": "uri",
                            "maxLength": 2048,
                            "type": "string"
                          }
                        },
                        "required": [
                          "url",
                          "origin"
                        ],
                        "type": "object"
                      },
                      "help_text": {
                        "maxLength": 200,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "id": {
                        "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                        "type": "string"
                      },
                      "label": {
                        "maxLength": 40,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "placement": {
                        "const": "field_editor",
                        "type": "string"
                      },
                      "validation": {
                        "properties": {
                          "max_length": {
                            "maximum": 100000,
                            "minimum": 1,
                            "type": "integer"
                          },
                          "min_length": {
                            "maximum": 100000,
                            "minimum": 0,
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "id",
                      "placement",
                      "control",
                      "label"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "control": {
                        "const": "textarea",
                        "type": "string"
                      },
                      "frame": {
                        "properties": {
                          "operations": {
                            "items": {
                              "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                              "type": "string"
                            },
                            "maxItems": 8,
                            "type": "array"
                          },
                          "origin": {
                            "format": "uri",
                            "type": "string"
                          },
                          "url": {
                            "format": "uri",
                            "maxLength": 2048,
                            "type": "string"
                          }
                        },
                        "required": [
                          "url",
                          "origin"
                        ],
                        "type": "object"
                      },
                      "help_text": {
                        "maxLength": 200,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "id": {
                        "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                        "type": "string"
                      },
                      "label": {
                        "maxLength": 40,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "placement": {
                        "const": "field_editor",
                        "type": "string"
                      },
                      "validation": {
                        "properties": {
                          "max_length": {
                            "maximum": 100000,
                            "minimum": 1,
                            "type": "integer"
                          },
                          "min_length": {
                            "maximum": 100000,
                            "minimum": 0,
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "id",
                      "placement",
                      "control",
                      "label"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "control": {
                        "const": "url",
                        "type": "string"
                      },
                      "frame": {
                        "properties": {
                          "operations": {
                            "items": {
                              "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                              "type": "string"
                            },
                            "maxItems": 8,
                            "type": "array"
                          },
                          "origin": {
                            "format": "uri",
                            "type": "string"
                          },
                          "url": {
                            "format": "uri",
                            "maxLength": 2048,
                            "type": "string"
                          }
                        },
                        "required": [
                          "url",
                          "origin"
                        ],
                        "type": "object"
                      },
                      "help_text": {
                        "maxLength": 200,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "id": {
                        "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                        "type": "string"
                      },
                      "label": {
                        "maxLength": 40,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "placement": {
                        "const": "field_editor",
                        "type": "string"
                      },
                      "validation": {
                        "properties": {
                          "max_length": {
                            "maximum": 100000,
                            "minimum": 1,
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "id",
                      "placement",
                      "control",
                      "label"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "control": {
                        "const": "number",
                        "type": "string"
                      },
                      "frame": {
                        "properties": {
                          "operations": {
                            "items": {
                              "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                              "type": "string"
                            },
                            "maxItems": 8,
                            "type": "array"
                          },
                          "origin": {
                            "format": "uri",
                            "type": "string"
                          },
                          "url": {
                            "format": "uri",
                            "maxLength": 2048,
                            "type": "string"
                          }
                        },
                        "required": [
                          "url",
                          "origin"
                        ],
                        "type": "object"
                      },
                      "help_text": {
                        "maxLength": 200,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "id": {
                        "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                        "type": "string"
                      },
                      "label": {
                        "maxLength": 40,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "placement": {
                        "const": "field_editor",
                        "type": "string"
                      },
                      "validation": {
                        "properties": {
                          "max": {
                            "type": "number"
                          },
                          "min": {
                            "type": "number"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "id",
                      "placement",
                      "control",
                      "label"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "control": {
                        "const": "boolean",
                        "type": "string"
                      },
                      "frame": {
                        "properties": {
                          "operations": {
                            "items": {
                              "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                              "type": "string"
                            },
                            "maxItems": 8,
                            "type": "array"
                          },
                          "origin": {
                            "format": "uri",
                            "type": "string"
                          },
                          "url": {
                            "format": "uri",
                            "maxLength": 2048,
                            "type": "string"
                          }
                        },
                        "required": [
                          "url",
                          "origin"
                        ],
                        "type": "object"
                      },
                      "help_text": {
                        "maxLength": 200,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "id": {
                        "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                        "type": "string"
                      },
                      "label": {
                        "maxLength": 40,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "placement": {
                        "const": "field_editor",
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "placement",
                      "control",
                      "label"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "control": {
                        "const": "date",
                        "type": "string"
                      },
                      "frame": {
                        "properties": {
                          "operations": {
                            "items": {
                              "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                              "type": "string"
                            },
                            "maxItems": 8,
                            "type": "array"
                          },
                          "origin": {
                            "format": "uri",
                            "type": "string"
                          },
                          "url": {
                            "format": "uri",
                            "maxLength": 2048,
                            "type": "string"
                          }
                        },
                        "required": [
                          "url",
                          "origin"
                        ],
                        "type": "object"
                      },
                      "help_text": {
                        "maxLength": 200,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "id": {
                        "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                        "type": "string"
                      },
                      "label": {
                        "maxLength": 40,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "placement": {
                        "const": "field_editor",
                        "type": "string"
                      },
                      "validation": {
                        "properties": {
                          "max_date": {
                            "pattern": "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
                            "type": "string"
                          },
                          "min_date": {
                            "pattern": "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "required": [
                      "id",
                      "placement",
                      "control",
                      "label"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "control": {
                        "const": "select",
                        "type": "string"
                      },
                      "frame": {
                        "properties": {
                          "operations": {
                            "items": {
                              "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                              "type": "string"
                            },
                            "maxItems": 8,
                            "type": "array"
                          },
                          "origin": {
                            "format": "uri",
                            "type": "string"
                          },
                          "url": {
                            "format": "uri",
                            "maxLength": 2048,
                            "type": "string"
                          }
                        },
                        "required": [
                          "url",
                          "origin"
                        ],
                        "type": "object"
                      },
                      "help_text": {
                        "maxLength": 200,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "id": {
                        "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                        "type": "string"
                      },
                      "label": {
                        "maxLength": 40,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "options": {
                        "items": {
                          "properties": {
                            "label": {
                              "maxLength": 64,
                              "minLength": 1,
                              "pattern": "^[^\\p{Cc}<>]+$",
                              "type": "string"
                            },
                            "value": {
                              "maxLength": 64,
                              "minLength": 1,
                              "pattern": "^[^\\p{Cc}<>]+$",
                              "type": "string"
                            }
                          },
                          "required": [
                            "value",
                            "label"
                          ],
                          "type": "object"
                        },
                        "maxItems": 50,
                        "minItems": 1,
                        "type": "array"
                      },
                      "placement": {
                        "const": "field_editor",
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "placement",
                      "control",
                      "label",
                      "options"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "control": {
                        "const": "group",
                        "type": "string"
                      },
                      "frame": {
                        "properties": {
                          "operations": {
                            "items": {
                              "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                              "type": "string"
                            },
                            "maxItems": 8,
                            "type": "array"
                          },
                          "origin": {
                            "format": "uri",
                            "type": "string"
                          },
                          "url": {
                            "format": "uri",
                            "maxLength": 2048,
                            "type": "string"
                          }
                        },
                        "required": [
                          "url",
                          "origin"
                        ],
                        "type": "object"
                      },
                      "help_text": {
                        "maxLength": 200,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "id": {
                        "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                        "type": "string"
                      },
                      "label": {
                        "maxLength": 40,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "members": {
                        "description": "The closed members of the structured value. The field stores one JSON object; its schema is written onto the field.",
                        "items": {
                          "oneOf": [
                            {
                              "properties": {
                                "control": {
                                  "const": "text",
                                  "type": "string"
                                },
                                "key": {
                                  "pattern": "^[a-z][a-z0-9_]{0,31}$",
                                  "type": "string"
                                },
                                "label": {
                                  "maxLength": 40,
                                  "minLength": 1,
                                  "pattern": "^[^\\p{Cc}<>]+$",
                                  "type": "string"
                                },
                                "max_length": {
                                  "maximum": 500,
                                  "minimum": 1,
                                  "type": "integer"
                                },
                                "required": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "key",
                                "label",
                                "control",
                                "max_length"
                              ],
                              "type": "object"
                            },
                            {
                              "properties": {
                                "control": {
                                  "const": "number",
                                  "type": "string"
                                },
                                "integer": {
                                  "type": "boolean"
                                },
                                "key": {
                                  "pattern": "^[a-z][a-z0-9_]{0,31}$",
                                  "type": "string"
                                },
                                "label": {
                                  "maxLength": 40,
                                  "minLength": 1,
                                  "pattern": "^[^\\p{Cc}<>]+$",
                                  "type": "string"
                                },
                                "max": {
                                  "type": "number"
                                },
                                "min": {
                                  "type": "number"
                                },
                                "required": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "key",
                                "label",
                                "control"
                              ],
                              "type": "object"
                            },
                            {
                              "properties": {
                                "control": {
                                  "const": "boolean",
                                  "type": "string"
                                },
                                "key": {
                                  "pattern": "^[a-z][a-z0-9_]{0,31}$",
                                  "type": "string"
                                },
                                "label": {
                                  "maxLength": 40,
                                  "minLength": 1,
                                  "pattern": "^[^\\p{Cc}<>]+$",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "key",
                                "label",
                                "control"
                              ],
                              "type": "object"
                            },
                            {
                              "properties": {
                                "control": {
                                  "const": "select",
                                  "type": "string"
                                },
                                "key": {
                                  "pattern": "^[a-z][a-z0-9_]{0,31}$",
                                  "type": "string"
                                },
                                "label": {
                                  "maxLength": 40,
                                  "minLength": 1,
                                  "pattern": "^[^\\p{Cc}<>]+$",
                                  "type": "string"
                                },
                                "options": {
                                  "items": {
                                    "properties": {
                                      "label": {
                                        "maxLength": 64,
                                        "minLength": 1,
                                        "pattern": "^[^\\p{Cc}<>]+$",
                                        "type": "string"
                                      },
                                      "value": {
                                        "maxLength": 64,
                                        "minLength": 1,
                                        "pattern": "^[^\\p{Cc}<>]+$",
                                        "type": "string"
                                      }
                                    },
                                    "required": [
                                      "value",
                                      "label"
                                    ],
                                    "type": "object"
                                  },
                                  "maxItems": 12,
                                  "minItems": 1,
                                  "type": "array"
                                },
                                "required": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "key",
                                "label",
                                "control",
                                "options"
                              ],
                              "type": "object"
                            }
                          ]
                        },
                        "maxItems": 8,
                        "minItems": 1,
                        "type": "array"
                      },
                      "placement": {
                        "const": "field_editor",
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "placement",
                      "control",
                      "label",
                      "members"
                    ],
                    "type": "object"
                  }
                ]
              }
            ]
          },
          "type": "array"
        },
        "updated_at": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "plugin_id",
        "plugin_name",
        "plugin_version",
        "protocol_version",
        "state",
        "capabilities",
        "requested_capabilities",
        "model_ids",
        "content_actions",
        "manage_views",
        "ui_extensions",
        "operations",
        "policies",
        "policy_modes",
        "hooks",
        "hook_modes",
        "manifest_url",
        "management_origin",
        "created_by_email",
        "created_at",
        "updated_at"
      ],
      "type": "object"
    },
    "invocation_binding": {
      "properties": {
        "caller": {
          "anyOf": [
            {
              "properties": {
                "email": {
                  "type": "string"
                },
                "id": {
                  "type": "string"
                },
                "via": {
                  "enum": [
                    "person",
                    "management_credential",
                    "plugin",
                    "planner"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "id",
                "email",
                "via"
              ],
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "description": "Who asked. Display identity only; it grants the plugin nothing. Null for a hook: it is told the question, never who asked."
        },
        "delegation_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Entry operation: a durable delegation bound to the caller, site, installation, model and entry. Site operation: a delegation with no entry, reaching the granted models the caller reads, like a `manage` launch. Keep it for later reads and transition commands; core rechecks the person’s live authority on every use. Null for a policy."
        },
        "expires_at": {
          "type": "string"
        },
        "id": {
          "description": "The operation, policy, media source or hook id the manifest declares.",
          "type": "string"
        },
        "input": {
          "additionalProperties": {},
          "description": "Operation values, or for a policy `$defs/policy_facts`, or for a hook its closed facts.",
          "propertyNames": {
            "type": "string"
          },
          "type": "object"
        },
        "installation_id": {
          "type": "string"
        },
        "instance_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "invocation_id": {
          "type": "string"
        },
        "kind": {
          "enum": [
            "operation",
            "policy",
            "media_source",
            "hook"
          ],
          "type": "string"
        },
        "model_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "site_id": {
          "type": "string"
        }
      },
      "required": [
        "invocation_id",
        "installation_id",
        "site_id",
        "kind",
        "id",
        "model_id",
        "instance_id",
        "delegation_id",
        "caller",
        "input",
        "expires_at"
      ],
      "type": "object"
    },
    "invocation_envelope": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "pattern": "^dwi_[A-Za-z0-9_-]{43}$",
          "type": "string"
        },
        "expires_at": {
          "description": "ISO time. Exchange the code and answer before it.",
          "type": "string"
        },
        "installation_id": {
          "description": "Which installation’s token exchanges the code. Not a secret.",
          "type": "string"
        },
        "invocation_id": {
          "type": "string"
        },
        "protocol_version": {
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "type": "integer"
        }
      },
      "required": [
        "protocol_version",
        "installation_id",
        "invocation_id",
        "code",
        "expires_at"
      ],
      "type": "object"
    },
    "invocation_exchange_request": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "pattern": "^dwi_[A-Za-z0-9_-]{43}$",
          "type": "string"
        }
      },
      "required": [
        "code"
      ],
      "type": "object"
    },
    "launch": {
      "properties": {
        "url": {
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "url"
      ],
      "type": "object"
    },
    "launch_delegation": {
      "properties": {
        "action": {
          "type": "string"
        },
        "delegation_id": {
          "type": "string"
        },
        "installation_id": {
          "type": "string"
        },
        "instance_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "model_ids": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "site_id": {
          "type": "string"
        },
        "user": {
          "properties": {
            "email": {
              "type": "string"
            },
            "id": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "email"
          ],
          "type": "object"
        }
      },
      "required": [
        "delegation_id",
        "installation_id",
        "site_id",
        "action",
        "instance_id",
        "model_ids",
        "user"
      ],
      "type": "object"
    },
    "launch_exchange_request": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "pattern": "^dwl_[A-Za-z0-9_-]{43}$",
          "type": "string"
        }
      },
      "required": [
        "code"
      ],
      "type": "object"
    },
    "mail_command": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "instance_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "template": {
          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
          "type": "string"
        },
        "variables": {
          "additionalProperties": {
            "maxLength": 1000,
            "type": "string"
          },
          "propertyNames": {
            "maxLength": 32,
            "type": "string"
          },
          "type": "object"
        }
      },
      "required": [
        "delegation_id",
        "template",
        "variables"
      ],
      "type": "object"
    },
    "media": {
      "properties": {
        "alt_texts": {
          "additionalProperties": {
            "type": "string"
          },
          "propertyNames": {
            "type": "string"
          },
          "type": "object"
        },
        "created_at": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "height": {
          "anyOf": [
            {
              "maximum": 9007199254740991,
              "minimum": -9007199254740991,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "id": {
          "minLength": 1,
          "type": "string"
        },
        "kind": {
          "enum": [
            "image",
            "document",
            "audio",
            "video",
            "file"
          ],
          "type": "string"
        },
        "mime_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "name": {
          "type": "string"
        },
        "size": {
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "type": "integer"
        },
        "thumbnail_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "url": {
          "type": "string"
        },
        "width": {
          "anyOf": [
            {
              "maximum": 9007199254740991,
              "minimum": -9007199254740991,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "name",
        "url",
        "thumbnail_url",
        "mime_type",
        "kind",
        "width",
        "height",
        "size",
        "format",
        "alt_texts",
        "created_at"
      ],
      "type": "object"
    },
    "media_duplicate": {
      "properties": {
        "copies": {
          "maximum": 9007199254740991,
          "minimum": 1,
          "type": "integer"
        },
        "existing": {
          "properties": {
            "alt_texts": {
              "additionalProperties": {
                "type": "string"
              },
              "propertyNames": {
                "type": "string"
              },
              "type": "object"
            },
            "created_at": {
              "type": "string"
            },
            "format": {
              "type": "string"
            },
            "height": {
              "anyOf": [
                {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            },
            "id": {
              "minLength": 1,
              "type": "string"
            },
            "kind": {
              "enum": [
                "image",
                "document",
                "audio",
                "video",
                "file"
              ],
              "type": "string"
            },
            "mime_type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "name": {
              "type": "string"
            },
            "size": {
              "maximum": 9007199254740991,
              "minimum": -9007199254740991,
              "type": "integer"
            },
            "thumbnail_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "url": {
              "type": "string"
            },
            "width": {
              "anyOf": [
                {
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991,
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "id",
            "name",
            "url",
            "thumbnail_url",
            "mime_type",
            "kind",
            "width",
            "height",
            "size",
            "format",
            "alt_texts",
            "created_at"
          ],
          "type": "object"
        }
      },
      "required": [
        "existing",
        "copies"
      ],
      "type": "object"
    },
    "media_source_item_reply": {
      "oneOf": [
        {
          "additionalProperties": false,
          "properties": {
            "item": {
              "additionalProperties": false,
              "properties": {
                "attribution": {
                  "additionalProperties": false,
                  "description": "Kept on the site’s copy and shown in its media details. Links are shown, never fetched.",
                  "properties": {
                    "author": {
                      "maxLength": 120,
                      "minLength": 1,
                      "pattern": "^[^\\p{Cc}<>]+$",
                      "type": "string"
                    },
                    "author_url": {
                      "maxLength": 2048,
                      "pattern": "^https?:\\/\\/[^\\s]+$",
                      "type": "string"
                    },
                    "license": {
                      "description": "The license name, as the source states it.",
                      "maxLength": 80,
                      "minLength": 1,
                      "pattern": "^[^\\p{Cc}<>]+$",
                      "type": "string"
                    },
                    "license_url": {
                      "maxLength": 2048,
                      "pattern": "^https?:\\/\\/[^\\s]+$",
                      "type": "string"
                    },
                    "source_name": {
                      "maxLength": 80,
                      "minLength": 1,
                      "pattern": "^[^\\p{Cc}<>]+$",
                      "type": "string"
                    },
                    "source_url": {
                      "description": "The item’s own page at the source.",
                      "maxLength": 2048,
                      "pattern": "^https?:\\/\\/[^\\s]+$",
                      "type": "string"
                    }
                  },
                  "required": [
                    "source_name",
                    "license"
                  ],
                  "type": "object"
                },
                "byte_size": {
                  "maximum": 9007199254740991,
                  "minimum": 0,
                  "type": "integer"
                },
                "delivery_url": {
                  "description": "Where the file is served from, on one of the source’s `delivery_origins`. Required when the source declares `reference`. Core never fetches it; sites and browsers load it.",
                  "maxLength": 2048,
                  "pattern": "^https?:\\/\\/[^\\s]+$",
                  "type": "string"
                },
                "description": {
                  "description": "The alt text of an image in the site’s default language.",
                  "maxLength": 125,
                  "minLength": 1,
                  "pattern": "^[^\\p{Cc}<>]+$",
                  "type": "string"
                },
                "download_url": {
                  "description": "The file itself, on the manifest’s origin. Required when the source declares `copy`. Core fetches it with no credential, follows no redirect, and copies it.",
                  "maxLength": 2048,
                  "pattern": "^https?:\\/\\/[^\\s]+$",
                  "type": "string"
                },
                "file_name": {
                  "maxLength": 200,
                  "minLength": 1,
                  "pattern": "^[^\\p{Cc}<>/\\\\]+$",
                  "type": "string"
                },
                "height": {
                  "maximum": 100000,
                  "minimum": 1,
                  "type": "integer"
                },
                "id": {
                  "maxLength": 128,
                  "minLength": 1,
                  "pattern": "^[A-Za-z0-9._:-]+$",
                  "type": "string"
                },
                "mime_type": {
                  "description": "What the file is. Core checks the bytes it fetches against the site’s file rules.",
                  "maxLength": 128,
                  "pattern": "^[a-z]+\\/[a-z0-9.+-]+$",
                  "type": "string"
                },
                "thumbnail_url": {
                  "description": "A small preview on the manifest’s origin. The picker loads it with no referrer and no Dee Wan credential.",
                  "maxLength": 2048,
                  "pattern": "^https?:\\/\\/[^\\s]+$",
                  "type": "string"
                },
                "title": {
                  "maxLength": 200,
                  "minLength": 1,
                  "pattern": "^[^\\p{Cc}<>]+$",
                  "type": "string"
                },
                "width": {
                  "maximum": 100000,
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "id",
                "title",
                "file_name",
                "mime_type",
                "thumbnail_url",
                "attribution"
              ],
              "type": "object"
            },
            "status": {
              "const": "completed",
              "type": "string"
            }
          },
          "required": [
            "status",
            "item"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "code": {
              "pattern": "^[a-z][a-z0-9_]{0,63}$",
              "type": "string"
            },
            "message": {
              "maxLength": 300,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}]+$",
              "type": "string"
            },
            "status": {
              "const": "refused",
              "type": "string"
            }
          },
          "required": [
            "status",
            "code",
            "message"
          ],
          "type": "object"
        }
      ]
    },
    "media_source_page_reply": {
      "oneOf": [
        {
          "additionalProperties": false,
          "properties": {
            "items": {
              "items": {
                "additionalProperties": false,
                "properties": {
                  "attribution": {
                    "additionalProperties": false,
                    "description": "Kept on the site’s copy and shown in its media details. Links are shown, never fetched.",
                    "properties": {
                      "author": {
                        "maxLength": 120,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "author_url": {
                        "maxLength": 2048,
                        "pattern": "^https?:\\/\\/[^\\s]+$",
                        "type": "string"
                      },
                      "license": {
                        "description": "The license name, as the source states it.",
                        "maxLength": 80,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "license_url": {
                        "maxLength": 2048,
                        "pattern": "^https?:\\/\\/[^\\s]+$",
                        "type": "string"
                      },
                      "source_name": {
                        "maxLength": 80,
                        "minLength": 1,
                        "pattern": "^[^\\p{Cc}<>]+$",
                        "type": "string"
                      },
                      "source_url": {
                        "description": "The item’s own page at the source.",
                        "maxLength": 2048,
                        "pattern": "^https?:\\/\\/[^\\s]+$",
                        "type": "string"
                      }
                    },
                    "required": [
                      "source_name",
                      "license"
                    ],
                    "type": "object"
                  },
                  "byte_size": {
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "delivery_url": {
                    "description": "Where the file is served from, on one of the source’s `delivery_origins`. Required when the source declares `reference`. Core never fetches it; sites and browsers load it.",
                    "maxLength": 2048,
                    "pattern": "^https?:\\/\\/[^\\s]+$",
                    "type": "string"
                  },
                  "description": {
                    "description": "The alt text of an image in the site’s default language.",
                    "maxLength": 125,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "download_url": {
                    "description": "The file itself, on the manifest’s origin. Required when the source declares `copy`. Core fetches it with no credential, follows no redirect, and copies it.",
                    "maxLength": 2048,
                    "pattern": "^https?:\\/\\/[^\\s]+$",
                    "type": "string"
                  },
                  "file_name": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>/\\\\]+$",
                    "type": "string"
                  },
                  "height": {
                    "maximum": 100000,
                    "minimum": 1,
                    "type": "integer"
                  },
                  "id": {
                    "maxLength": 128,
                    "minLength": 1,
                    "pattern": "^[A-Za-z0-9._:-]+$",
                    "type": "string"
                  },
                  "mime_type": {
                    "description": "What the file is. Core checks the bytes it fetches against the site’s file rules.",
                    "maxLength": 128,
                    "pattern": "^[a-z]+\\/[a-z0-9.+-]+$",
                    "type": "string"
                  },
                  "thumbnail_url": {
                    "description": "A small preview on the manifest’s origin. The picker loads it with no referrer and no Dee Wan credential.",
                    "maxLength": 2048,
                    "pattern": "^https?:\\/\\/[^\\s]+$",
                    "type": "string"
                  },
                  "title": {
                    "maxLength": 200,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  },
                  "width": {
                    "maximum": 100000,
                    "minimum": 1,
                    "type": "integer"
                  }
                },
                "required": [
                  "id",
                  "title",
                  "file_name",
                  "mime_type",
                  "thumbnail_url",
                  "attribution"
                ],
                "type": "object"
              },
              "maxItems": 24,
              "type": "array"
            },
            "next_cursor": {
              "anyOf": [
                {
                  "maxLength": 512,
                  "minLength": 1,
                  "pattern": "^[\\x21-\\x7e]+$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Null on the last page."
            },
            "status": {
              "const": "completed",
              "type": "string"
            }
          },
          "required": [
            "status",
            "items",
            "next_cursor"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "code": {
              "pattern": "^[a-z][a-z0-9_]{0,63}$",
              "type": "string"
            },
            "message": {
              "maxLength": 300,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}]+$",
              "type": "string"
            },
            "status": {
              "const": "refused",
              "type": "string"
            }
          },
          "required": [
            "status",
            "code",
            "message"
          ],
          "type": "object"
        }
      ]
    },
    "media_source_request": {
      "oneOf": [
        {
          "additionalProperties": false,
          "properties": {
            "action": {
              "const": "browse",
              "type": "string"
            },
            "cursor": {
              "anyOf": [
                {
                  "maxLength": 512,
                  "minLength": 1,
                  "pattern": "^[\\x21-\\x7e]+$",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The `next_cursor` of the page before, or null for the first page."
            },
            "limit": {
              "maximum": 24,
              "minimum": 1,
              "type": "integer"
            },
            "query": {
              "description": "What the person typed. Empty: the source’s own first page.",
              "maxLength": 200,
              "pattern": "^[^\\p{Cc}]*$",
              "type": "string"
            }
          },
          "required": [
            "action",
            "query",
            "cursor",
            "limit"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "action": {
              "const": "item",
              "type": "string"
            },
            "item_id": {
              "description": "The item a person chose. Answer it with its `download_url` and, for a `reference` source, its `delivery_url`.",
              "maxLength": 128,
              "minLength": 1,
              "pattern": "^[A-Za-z0-9._:-]+$",
              "type": "string"
            }
          },
          "required": [
            "action",
            "item_id"
          ],
          "type": "object"
        }
      ]
    },
    "media_update_command": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "metadata": {
          "additionalProperties": false,
          "properties": {
            "alt_texts": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Language code to alt text. Languages left out keep theirs; an empty string clears one.",
              "propertyNames": {
                "minLength": 1,
                "type": "string"
              },
              "type": "object"
            },
            "default_focal": {
              "anyOf": [
                {
                  "additionalProperties": false,
                  "properties": {
                    "x": {
                      "maximum": 1,
                      "minimum": 0,
                      "type": "number"
                    },
                    "y": {
                      "maximum": 1,
                      "minimum": 0,
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y"
                  ],
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Images only. Null clears it."
            },
            "fetch_priority": {
              "enum": [
                "high",
                "low",
                "auto"
              ],
              "type": "string"
            },
            "loading": {
              "enum": [
                "eager",
                "lazy"
              ],
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "required": [
        "delegation_id",
        "metadata"
      ],
      "type": "object"
    },
    "media_upload_form": {
      "additionalProperties": false,
      "properties": {
        "alt_texts": {
          "description": "JSON object: language code to alt text.",
          "type": "string"
        },
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "file": {
          "format": "binary",
          "type": "string"
        },
        "height": {
          "type": "string"
        },
        "on_duplicate": {
          "description": "When this site already holds the same bytes: `ask` (default) refuses with 409 `media_duplicate` naming the existing file, `use_existing` answers it with 200 and `reused: true`, `copy` uploads a separate copy.",
          "enum": [
            "ask",
            "use_existing",
            "copy"
          ],
          "type": "string"
        },
        "width": {
          "type": "string"
        }
      },
      "required": [
        "file",
        "delegation_id"
      ],
      "type": "object"
    },
    "operation_reply": {
      "oneOf": [
        {
          "additionalProperties": false,
          "properties": {
            "result": {
              "additionalProperties": false,
              "properties": {
                "blocks": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "kind": {
                            "const": "text",
                            "type": "string"
                          },
                          "text": {
                            "maxLength": 4000,
                            "minLength": 1,
                            "pattern": "^(?:[^\\p{Cc}]|[\\n\\t])*$",
                            "type": "string"
                          }
                        },
                        "required": [
                          "kind",
                          "text"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "kind": {
                            "const": "rows",
                            "type": "string"
                          },
                          "rows": {
                            "items": {
                              "additionalProperties": false,
                              "properties": {
                                "key": {
                                  "maxLength": 80,
                                  "minLength": 1,
                                  "pattern": "^[^\\p{Cc}<>]+$",
                                  "type": "string"
                                },
                                "value": {
                                  "maxLength": 1000,
                                  "pattern": "^(?:[^\\p{Cc}]|[\\n\\t])*$",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "key",
                                "value"
                              ],
                              "type": "object"
                            },
                            "maxItems": 100,
                            "type": "array"
                          },
                          "title": {
                            "maxLength": 80,
                            "minLength": 1,
                            "pattern": "^[^\\p{Cc}<>]+$",
                            "type": "string"
                          }
                        },
                        "required": [
                          "kind",
                          "rows"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "kind": {
                            "const": "links",
                            "type": "string"
                          },
                          "links": {
                            "items": {
                              "additionalProperties": false,
                              "properties": {
                                "label": {
                                  "maxLength": 80,
                                  "minLength": 1,
                                  "pattern": "^[^\\p{Cc}<>]+$",
                                  "type": "string"
                                },
                                "url": {
                                  "maxLength": 2048,
                                  "pattern": "^https:\\/\\/[^\\s]+$",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "label",
                                "url"
                              ],
                              "type": "object"
                            },
                            "maxItems": 20,
                            "minItems": 1,
                            "type": "array"
                          }
                        },
                        "required": [
                          "kind",
                          "links"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "description": "Offered as a download named `name`. Never rendered.",
                        "properties": {
                          "kind": {
                            "const": "json",
                            "type": "string"
                          },
                          "name": {
                            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,59}\\.json$",
                            "type": "string"
                          },
                          "value": {}
                        },
                        "required": [
                          "kind",
                          "name",
                          "value"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "description": "A column’s cells, one per requested row at most, none for a row with nothing to show. Drawn by the host as text, a badge or a link, as the operation’s `cell` says.",
                        "properties": {
                          "cells": {
                            "items": {
                              "additionalProperties": false,
                              "properties": {
                                "id": {
                                  "description": "The instance id the cell is for, as the request named it.",
                                  "maxLength": 64,
                                  "minLength": 1,
                                  "type": "string"
                                },
                                "text": {
                                  "maxLength": 80,
                                  "minLength": 1,
                                  "pattern": "^[^\\p{Cc}<>]+$",
                                  "type": "string"
                                },
                                "tone": {
                                  "description": "A badge only.",
                                  "enum": [
                                    "neutral",
                                    "positive",
                                    "warning",
                                    "critical"
                                  ],
                                  "type": "string"
                                },
                                "url": {
                                  "description": "A link only.",
                                  "maxLength": 2048,
                                  "pattern": "^https:\\/\\/[^\\s]+$",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "id",
                                "text"
                              ],
                              "type": "object"
                            },
                            "maxItems": 50,
                            "type": "array"
                          },
                          "kind": {
                            "const": "cells",
                            "type": "string"
                          }
                        },
                        "required": [
                          "kind",
                          "cells"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "maxItems": 16,
                  "minItems": 1,
                  "type": "array"
                }
              },
              "required": [
                "blocks"
              ],
              "type": "object"
            },
            "status": {
              "const": "completed",
              "type": "string"
            }
          },
          "required": [
            "status",
            "result"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "code": {
              "pattern": "^[a-z][a-z0-9_]{0,63}$",
              "type": "string"
            },
            "message": {
              "maxLength": 300,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}]+$",
              "type": "string"
            },
            "status": {
              "const": "refused",
              "type": "string"
            }
          },
          "required": [
            "status",
            "code",
            "message"
          ],
          "type": "object"
        }
      ]
    },
    "operation_result": {
      "additionalProperties": false,
      "properties": {
        "blocks": {
          "items": {
            "oneOf": [
              {
                "additionalProperties": false,
                "properties": {
                  "kind": {
                    "const": "text",
                    "type": "string"
                  },
                  "text": {
                    "maxLength": 4000,
                    "minLength": 1,
                    "pattern": "^(?:[^\\p{Cc}]|[\\n\\t])*$",
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "text"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "kind": {
                    "const": "rows",
                    "type": "string"
                  },
                  "rows": {
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "key": {
                          "maxLength": 80,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        },
                        "value": {
                          "maxLength": 1000,
                          "pattern": "^(?:[^\\p{Cc}]|[\\n\\t])*$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "key",
                        "value"
                      ],
                      "type": "object"
                    },
                    "maxItems": 100,
                    "type": "array"
                  },
                  "title": {
                    "maxLength": 80,
                    "minLength": 1,
                    "pattern": "^[^\\p{Cc}<>]+$",
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "rows"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "kind": {
                    "const": "links",
                    "type": "string"
                  },
                  "links": {
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "label": {
                          "maxLength": 80,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        },
                        "url": {
                          "maxLength": 2048,
                          "pattern": "^https:\\/\\/[^\\s]+$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "label",
                        "url"
                      ],
                      "type": "object"
                    },
                    "maxItems": 20,
                    "minItems": 1,
                    "type": "array"
                  }
                },
                "required": [
                  "kind",
                  "links"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "description": "Offered as a download named `name`. Never rendered.",
                "properties": {
                  "kind": {
                    "const": "json",
                    "type": "string"
                  },
                  "name": {
                    "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,59}\\.json$",
                    "type": "string"
                  },
                  "value": {}
                },
                "required": [
                  "kind",
                  "name",
                  "value"
                ],
                "type": "object"
              },
              {
                "additionalProperties": false,
                "description": "A column’s cells, one per requested row at most, none for a row with nothing to show. Drawn by the host as text, a badge or a link, as the operation’s `cell` says.",
                "properties": {
                  "cells": {
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "id": {
                          "description": "The instance id the cell is for, as the request named it.",
                          "maxLength": 64,
                          "minLength": 1,
                          "type": "string"
                        },
                        "text": {
                          "maxLength": 80,
                          "minLength": 1,
                          "pattern": "^[^\\p{Cc}<>]+$",
                          "type": "string"
                        },
                        "tone": {
                          "description": "A badge only.",
                          "enum": [
                            "neutral",
                            "positive",
                            "warning",
                            "critical"
                          ],
                          "type": "string"
                        },
                        "url": {
                          "description": "A link only.",
                          "maxLength": 2048,
                          "pattern": "^https:\\/\\/[^\\s]+$",
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "text"
                      ],
                      "type": "object"
                    },
                    "maxItems": 50,
                    "type": "array"
                  },
                  "kind": {
                    "const": "cells",
                    "type": "string"
                  }
                },
                "required": [
                  "kind",
                  "cells"
                ],
                "type": "object"
              }
            ]
          },
          "maxItems": 16,
          "minItems": 1,
          "type": "array"
        }
      },
      "required": [
        "blocks"
      ],
      "type": "object"
    },
    "outcome_envelope": {
      "properties": {
        "data": {},
        "outcome": {
          "properties": {
            "code": {
              "enum": [
                "release_applied",
                "operation_applied",
                "transition_applied",
                "idempotent_replay",
                "content_deleted",
                "media_updated",
                "content_saved",
                "draft_saved",
                "draft_discarded",
                "media_uploaded",
                "media_reused",
                "proposal_created",
                "invalid_request",
                "plugin_unauthorized",
                "capability_refused",
                "requester_unauthorized",
                "content_not_found",
                "scheduled_target_stale",
                "workflow_conflict",
                "dependent_content",
                "idempotency_key_reused",
                "version_conflict",
                "media_duplicate",
                "draft_conflict",
                "limit_exceeded",
                "transition_unavailable",
                "transition_refused",
                "validation_failed",
                "rate_limited",
                "temporary_failure"
              ],
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retry": {
              "type": "boolean"
            }
          },
          "required": [
            "code",
            "message",
            "retry"
          ],
          "type": "object"
        }
      },
      "required": [
        "outcome"
      ],
      "type": "object"
    },
    "plugin_card": {
      "properties": {
        "card": {
          "oneOf": [
            {
              "properties": {
                "description": {
                  "maxLength": 160,
                  "minLength": 1,
                  "pattern": "^[^\\p{Cc}<>]+$",
                  "type": "string"
                },
                "frame": {
                  "properties": {
                    "operations": {
                      "items": {
                        "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                        "type": "string"
                      },
                      "maxItems": 8,
                      "type": "array"
                    },
                    "origin": {
                      "format": "uri",
                      "type": "string"
                    },
                    "url": {
                      "format": "uri",
                      "maxLength": 2048,
                      "type": "string"
                    }
                  },
                  "required": [
                    "url",
                    "origin"
                  ],
                  "type": "object"
                },
                "id": {
                  "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                  "type": "string"
                },
                "launch": {
                  "oneOf": [
                    {
                      "description": "Opens one of this manifest’s content_actions for the item on screen.",
                      "properties": {
                        "action": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "kind": {
                          "const": "content_action",
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "action"
                      ],
                      "type": "object"
                    },
                    {
                      "description": "Opens one of this manifest’s manage_views. Shown in the sidebar of an item whose model the grant includes, and always to people with site:plugins.",
                      "properties": {
                        "kind": {
                          "const": "manage_view",
                          "type": "string"
                        },
                        "view": {
                          "enum": [
                            "calendar",
                            "releases"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "view"
                      ],
                      "type": "object"
                    }
                  ]
                },
                "placement": {
                  "const": "entry_sidebar",
                  "type": "string"
                },
                "title": {
                  "maxLength": 40,
                  "minLength": 1,
                  "pattern": "^[^\\p{Cc}<>]+$",
                  "type": "string"
                }
              },
              "required": [
                "id",
                "placement",
                "title",
                "launch"
              ],
              "type": "object"
            },
            {
              "properties": {
                "description": {
                  "maxLength": 160,
                  "minLength": 1,
                  "pattern": "^[^\\p{Cc}<>]+$",
                  "type": "string"
                },
                "frame": {
                  "properties": {
                    "operations": {
                      "items": {
                        "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                        "type": "string"
                      },
                      "maxItems": 8,
                      "type": "array"
                    },
                    "origin": {
                      "format": "uri",
                      "type": "string"
                    },
                    "url": {
                      "format": "uri",
                      "maxLength": 2048,
                      "type": "string"
                    }
                  },
                  "required": [
                    "url",
                    "origin"
                  ],
                  "type": "object"
                },
                "id": {
                  "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                  "type": "string"
                },
                "launch": {
                  "oneOf": [
                    {
                      "description": "Opens one of this manifest’s content_actions for the item on screen.",
                      "properties": {
                        "action": {
                          "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                          "type": "string"
                        },
                        "kind": {
                          "const": "content_action",
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "action"
                      ],
                      "type": "object"
                    },
                    {
                      "description": "Opens one of this manifest’s manage_views. Shown in the sidebar of an item whose model the grant includes, and always to people with site:plugins.",
                      "properties": {
                        "kind": {
                          "const": "manage_view",
                          "type": "string"
                        },
                        "view": {
                          "enum": [
                            "calendar",
                            "releases"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "kind",
                        "view"
                      ],
                      "type": "object"
                    }
                  ]
                },
                "placement": {
                  "const": "page_sidebar",
                  "type": "string"
                },
                "title": {
                  "maxLength": 40,
                  "minLength": 1,
                  "pattern": "^[^\\p{Cc}<>]+$",
                  "type": "string"
                }
              },
              "required": [
                "id",
                "placement",
                "title",
                "launch"
              ],
              "type": "object"
            },
            {
              "properties": {
                "description": {
                  "maxLength": 160,
                  "minLength": 1,
                  "pattern": "^[^\\p{Cc}<>]+$",
                  "type": "string"
                },
                "frame": {
                  "properties": {
                    "operations": {
                      "items": {
                        "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                        "type": "string"
                      },
                      "maxItems": 8,
                      "type": "array"
                    },
                    "origin": {
                      "format": "uri",
                      "type": "string"
                    },
                    "url": {
                      "format": "uri",
                      "maxLength": 2048,
                      "type": "string"
                    }
                  },
                  "required": [
                    "url",
                    "origin"
                  ],
                  "type": "object"
                },
                "id": {
                  "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                  "type": "string"
                },
                "launch": {
                  "description": "Opens one of this manifest’s manage_views. Shown in the sidebar of an item whose model the grant includes, and always to people with site:plugins.",
                  "properties": {
                    "kind": {
                      "const": "manage_view",
                      "type": "string"
                    },
                    "view": {
                      "enum": [
                        "calendar",
                        "releases"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "kind",
                    "view"
                  ],
                  "type": "object"
                },
                "placement": {
                  "const": "settings_row",
                  "type": "string"
                },
                "title": {
                  "maxLength": 40,
                  "minLength": 1,
                  "pattern": "^[^\\p{Cc}<>]+$",
                  "type": "string"
                }
              },
              "required": [
                "id",
                "placement",
                "title",
                "launch"
              ],
              "type": "object"
            }
          ]
        },
        "installation_id": {
          "type": "string"
        },
        "plugin_id": {
          "type": "string"
        },
        "plugin_name": {
          "type": "string"
        }
      },
      "required": [
        "installation_id",
        "plugin_id",
        "plugin_name",
        "card"
      ],
      "type": "object"
    },
    "policy_facts": {
      "additionalProperties": false,
      "properties": {
        "action": {
          "description": "`delete`: `trash` or `purge`. `restore`: `version` (an old version) or `trash` (leaving Trash).",
          "enum": [
            "trash",
            "purge",
            "version"
          ],
          "type": "string"
        },
        "changed_fields": {
          "description": "Value, relation and media field keys that change, and `seo` when the SEO overrides change.",
          "items": {
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[^\\p{Cc}\\s]+$",
            "type": "string"
          },
          "maxItems": 100,
          "type": "array"
        },
        "instance_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Null for an entry not created yet."
        },
        "kind": {
          "enum": [
            "save",
            "restore",
            "delete",
            "publish",
            "unpublish",
            "transition"
          ],
          "type": "string"
        },
        "links": {
          "additionalProperties": {
            "items": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 200,
            "type": "array"
          },
          "description": "Relation field key → ordered target entry ids.",
          "propertyNames": {
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[^\\p{Cc}\\s]+$",
            "type": "string"
          },
          "type": "object"
        },
        "locale": {
          "type": "string"
        },
        "media": {
          "additionalProperties": {
            "items": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 200,
            "type": "array"
          },
          "description": "Media field key → ordered media ids.",
          "propertyNames": {
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[^\\p{Cc}\\s]+$",
            "type": "string"
          },
          "type": "object"
        },
        "model": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "type": "string"
            },
            "slug": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "slug"
          ],
          "type": "object"
        },
        "seo": {
          "anyOf": [
            {
              "additionalProperties": {},
              "propertyNames": {
                "type": "string"
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "description": "This language’s search and sharing overrides; null for none."
        },
        "transition": {
          "additionalProperties": false,
          "description": "`transition`: the workflow stages it moves between.",
          "properties": {
            "from": {
              "type": "string"
            },
            "to": {
              "type": "string"
            }
          },
          "required": [
            "from",
            "to"
          ],
          "type": "object"
        },
        "values": {
          "additionalProperties": {},
          "propertyNames": {
            "maxLength": 64,
            "minLength": 1,
            "pattern": "^[^\\p{Cc}\\s]+$",
            "type": "string"
          },
          "type": "object"
        }
      },
      "required": [
        "kind",
        "model",
        "instance_id",
        "locale",
        "changed_fields",
        "values"
      ],
      "type": "object"
    },
    "policy_reply": {
      "oneOf": [
        {
          "additionalProperties": false,
          "properties": {
            "decision": {
              "const": "allow",
              "type": "string"
            }
          },
          "required": [
            "decision"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "decision": {
              "const": "warning",
              "type": "string"
            },
            "fields": {
              "description": "Field keys the message is about.",
              "items": {
                "maxLength": 64,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}\\s]+$",
                "type": "string"
              },
              "maxItems": 32,
              "minItems": 1,
              "type": "array"
            },
            "message": {
              "maxLength": 300,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}]+$",
              "type": "string"
            }
          },
          "required": [
            "decision",
            "message"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "code": {
              "pattern": "^[a-z][a-z0-9_]{0,63}$",
              "type": "string"
            },
            "decision": {
              "const": "refuse",
              "type": "string"
            },
            "fields": {
              "description": "Field keys the message is about.",
              "items": {
                "maxLength": 64,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}\\s]+$",
                "type": "string"
              },
              "maxItems": 32,
              "minItems": 1,
              "type": "array"
            },
            "message": {
              "maxLength": 300,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}]+$",
              "type": "string"
            }
          },
          "required": [
            "decision",
            "code",
            "message"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "decision": {
              "const": "transform",
              "type": "string"
            },
            "links": {
              "additionalProperties": {
                "items": {
                  "maxLength": 64,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 200,
                "type": "array"
              },
              "propertyNames": {
                "maxLength": 64,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}\\s]+$",
                "type": "string"
              },
              "type": "object"
            },
            "media": {
              "additionalProperties": {
                "items": {
                  "maxLength": 64,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 200,
                "type": "array"
              },
              "propertyNames": {
                "maxLength": 64,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}\\s]+$",
                "type": "string"
              },
              "type": "object"
            },
            "message": {
              "description": "Shown with the list of fields this policy changed.",
              "maxLength": 300,
              "minLength": 1,
              "pattern": "^[^\\p{Cc}]+$",
              "type": "string"
            },
            "seo": {
              "anyOf": [
                {
                  "additionalProperties": {},
                  "propertyNames": {
                    "type": "string"
                  },
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ]
            },
            "values": {
              "additionalProperties": {},
              "propertyNames": {
                "maxLength": 64,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}\\s]+$",
                "type": "string"
              },
              "type": "object"
            }
          },
          "required": [
            "decision"
          ],
          "type": "object"
        }
      ]
    },
    "proposal": {
      "properties": {
        "applied_version_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "base_version_id": {
          "minLength": 1,
          "type": "string"
        },
        "created_at": {
          "type": "string"
        },
        "fields": {
          "additionalProperties": {},
          "propertyNames": {
            "type": "string"
          },
          "type": "object"
        },
        "id": {
          "minLength": 1,
          "type": "string"
        },
        "instance_id": {
          "minLength": 1,
          "type": "string"
        },
        "lang": {
          "type": "string"
        },
        "note": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "original_fields": {
          "additionalProperties": {},
          "propertyNames": {
            "type": "string"
          },
          "type": "object"
        },
        "resolved_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "revision": {
          "description": "Current proposal revision; 0 when created.",
          "maximum": 9007199254740991,
          "minimum": 0,
          "type": "integer"
        },
        "source": {
          "oneOf": [
            {
              "properties": {
                "id": {
                  "minLength": 1,
                  "type": "string"
                },
                "kind": {
                  "const": "management",
                  "type": "string"
                },
                "label": {
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "id",
                "label"
              ],
              "type": "object"
            },
            {
              "properties": {
                "id": {
                  "minLength": 1,
                  "type": "string"
                },
                "kind": {
                  "const": "ai",
                  "type": "string"
                },
                "label": {
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "id",
                "label"
              ],
              "type": "object"
            },
            {
              "properties": {
                "id": {
                  "description": "The plugin installation id.",
                  "minLength": 1,
                  "type": "string"
                },
                "kind": {
                  "const": "plugin",
                  "type": "string"
                },
                "label": {
                  "description": "The plugin name.",
                  "type": "string"
                },
                "requested_by": {
                  "description": "The email of the person the plugin acted for.",
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "id",
                "label",
                "requested_by"
              ],
              "type": "object"
            }
          ]
        },
        "state": {
          "enum": [
            "open",
            "applied",
            "dismissed"
          ],
          "type": "string"
        }
      },
      "required": [
        "id",
        "revision",
        "instance_id",
        "lang",
        "base_version_id",
        "fields",
        "note",
        "source",
        "state",
        "applied_version_id",
        "created_at",
        "resolved_at"
      ],
      "type": "object"
    },
    "proposal_command": {
      "additionalProperties": false,
      "properties": {
        "base_version_id": {
          "minLength": 1,
          "type": "string"
        },
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "fields": {
          "additionalProperties": {},
          "propertyNames": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "type": "object"
        },
        "note": {
          "maxLength": 2000,
          "type": "string"
        }
      },
      "required": [
        "base_version_id",
        "fields",
        "delegation_id"
      ],
      "type": "object"
    },
    "proposal_list": {
      "properties": {
        "data": {
          "items": {
            "properties": {
              "applied_version_id": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "base_version_id": {
                "minLength": 1,
                "type": "string"
              },
              "created_at": {
                "type": "string"
              },
              "fields": {
                "additionalProperties": {},
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              },
              "id": {
                "minLength": 1,
                "type": "string"
              },
              "instance_id": {
                "minLength": 1,
                "type": "string"
              },
              "lang": {
                "type": "string"
              },
              "note": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "original_fields": {
                "additionalProperties": {},
                "propertyNames": {
                  "type": "string"
                },
                "type": "object"
              },
              "resolved_at": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "revision": {
                "description": "Current proposal revision; 0 when created.",
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "source": {
                "oneOf": [
                  {
                    "properties": {
                      "id": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "kind": {
                        "const": "management",
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "id",
                      "label"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "id": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "kind": {
                        "const": "ai",
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "id",
                      "label"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "id": {
                        "description": "The plugin installation id.",
                        "minLength": 1,
                        "type": "string"
                      },
                      "kind": {
                        "const": "plugin",
                        "type": "string"
                      },
                      "label": {
                        "description": "The plugin name.",
                        "type": "string"
                      },
                      "requested_by": {
                        "description": "The email of the person the plugin acted for.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "id",
                      "label",
                      "requested_by"
                    ],
                    "type": "object"
                  }
                ]
              },
              "state": {
                "enum": [
                  "open",
                  "applied",
                  "dismissed"
                ],
                "type": "string"
              }
            },
            "required": [
              "id",
              "revision",
              "instance_id",
              "lang",
              "base_version_id",
              "fields",
              "note",
              "source",
              "state",
              "applied_version_id",
              "created_at",
              "resolved_at"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "data"
      ],
      "type": "object"
    },
    "publish_command": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "expected_current_version_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "expected_future_revision": {
          "maximum": 9007199254740991,
          "minimum": 0,
          "type": "integer"
        },
        "expected_workflow_revision": {
          "maximum": 9007199254740991,
          "minimum": 0,
          "type": "integer"
        },
        "future_draft_id": {
          "description": "Independent branch bound to this site, primary entry, installation and release. Requires expected_future_revision.",
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "type": "string"
        },
        "kind": {
          "const": "publish",
          "type": "string"
        },
        "locale": {
          "description": "Move this one language. Requires workflow:locale. Absent moves the whole translation group.",
          "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "expected_current_version_id",
        "expected_workflow_revision",
        "delegation_id"
      ],
      "type": "object"
    },
    "release_command": {
      "additionalProperties": false,
      "properties": {
        "commands": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "command": {
                "oneOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "delegation_id": {
                        "maxLength": 64,
                        "minLength": 1,
                        "type": "string"
                      },
                      "expected_current_version_id": {
                        "maxLength": 64,
                        "minLength": 1,
                        "type": "string"
                      },
                      "expected_future_revision": {
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "expected_workflow_revision": {
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "future_draft_id": {
                        "description": "Independent branch bound to this site, primary entry, installation and release. Requires expected_future_revision.",
                        "pattern": "^[A-Za-z0-9_-]{1,64}$",
                        "type": "string"
                      },
                      "kind": {
                        "const": "publish",
                        "type": "string"
                      },
                      "locale": {
                        "description": "Move this one language. Requires workflow:locale. Absent moves the whole translation group.",
                        "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "expected_current_version_id",
                      "expected_workflow_revision",
                      "delegation_id"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "delegation_id": {
                        "maxLength": 64,
                        "minLength": 1,
                        "type": "string"
                      },
                      "expected_published_version_id": {
                        "maxLength": 64,
                        "minLength": 1,
                        "type": "string"
                      },
                      "expected_workflow_revision": {
                        "maximum": 9007199254740991,
                        "minimum": 0,
                        "type": "integer"
                      },
                      "kind": {
                        "const": "unpublish",
                        "type": "string"
                      },
                      "locale": {
                        "description": "Move this one language. Requires workflow:locale. Absent moves the whole translation group.",
                        "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
                        "type": "string"
                      }
                    },
                    "required": [
                      "kind",
                      "expected_published_version_id",
                      "expected_workflow_revision",
                      "delegation_id"
                    ],
                    "type": "object"
                  }
                ]
              },
              "instance_id": {
                "pattern": "^[A-Za-z0-9_-]{1,64}$",
                "type": "string"
              },
              "target_state": {
                "maxLength": 64,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "instance_id",
              "target_state",
              "command"
            ],
            "type": "object"
          },
          "maxItems": 25,
          "minItems": 1,
          "type": "array"
        },
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "release_id": {
          "pattern": "^[A-Za-z0-9_-]{1,64}$",
          "type": "string"
        },
        "revision": {
          "maximum": 9007199254740991,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "release_id",
        "revision",
        "delegation_id",
        "commands"
      ],
      "type": "object"
    },
    "release_result": {
      "properties": {
        "items": {
          "items": {
            "properties": {
              "from": {
                "type": "string"
              },
              "instance_id": {
                "type": "string"
              },
              "locale": {
                "type": "string"
              },
              "policy_results": {
                "description": "Plugin content policies that warned, did not answer while set to warn, or transformed the stored content. A refusal is an error instead.",
                "items": {
                  "properties": {
                    "failure": {
                      "anyOf": [
                        {
                          "enum": [
                            "plugin_timeout",
                            "plugin_unreachable",
                            "plugin_response_invalid",
                            "plugin_refused",
                            "plugin_unavailable",
                            "idempotency_key_reused",
                            "invocation_in_progress",
                            "input_too_large",
                            "audit_unavailable"
                          ],
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "description": "Why an `unavailable` policy did not answer; null otherwise."
                    },
                    "fields": {
                      "description": "Field keys the message is about; for `transformed`, the keys the policy changed (`seo` for search settings).",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "installation_id": {
                      "type": "string"
                    },
                    "locale": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    },
                    "outcome": {
                      "enum": [
                        "warning",
                        "unavailable",
                        "transformed"
                      ],
                      "type": "string"
                    },
                    "plugin_name": {
                      "type": "string"
                    },
                    "policy_id": {
                      "type": "string"
                    },
                    "policy_label": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "installation_id",
                    "plugin_name",
                    "policy_id",
                    "policy_label",
                    "locale",
                    "outcome",
                    "message",
                    "fields",
                    "failure"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "primary_instance_id": {
                "type": "string"
              },
              "published": {
                "type": "boolean"
              },
              "published_changed": {
                "type": "boolean"
              },
              "published_version_id": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "redirect": {
                "description": "Present when the transition published: the automatic redirect the same lifecycle call made, or why none was made.",
                "oneOf": [
                  {
                    "properties": {
                      "draft": {
                        "enum": [
                          "none",
                          "carried",
                          "needs_rebase"
                        ],
                        "type": "string"
                      },
                      "redirects": {
                        "items": {
                          "properties": {
                            "from": {
                              "type": "string"
                            },
                            "to": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "from",
                            "to"
                          ],
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "status": {
                        "const": "created",
                        "type": "string"
                      }
                    },
                    "required": [
                      "status",
                      "redirects",
                      "draft"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "redirects": {
                        "items": {
                          "properties": {
                            "from": {
                              "type": "string"
                            },
                            "to": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "from",
                            "to"
                          ],
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "status": {
                        "const": "exists",
                        "type": "string"
                      }
                    },
                    "required": [
                      "status",
                      "redirects"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "reason": {
                        "enum": [
                          "no_previous_address",
                          "address_unchanged",
                          "no_public_address"
                        ],
                        "type": "string"
                      },
                      "status": {
                        "const": "none",
                        "type": "string"
                      }
                    },
                    "required": [
                      "status",
                      "reason"
                    ],
                    "type": "object"
                  },
                  {
                    "properties": {
                      "from": {
                        "type": "string"
                      },
                      "message": {
                        "type": "string"
                      },
                      "reason": {
                        "enum": [
                          "redirect_loop",
                          "redirect_collision",
                          "redirect_limit",
                          "redirect_invalid",
                          "redirect_failed"
                        ],
                        "type": "string"
                      },
                      "status": {
                        "const": "refused",
                        "type": "string"
                      },
                      "to": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "status",
                      "reason",
                      "message",
                      "from",
                      "to"
                    ],
                    "type": "object"
                  }
                ]
              },
              "revision": {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              },
              "to": {
                "type": "string"
              }
            },
            "required": [
              "instance_id",
              "primary_instance_id",
              "from",
              "to",
              "published",
              "published_changed",
              "published_version_id",
              "revision",
              "policy_results"
            ],
            "type": "object"
          },
          "maxItems": 25,
          "minItems": 1,
          "type": "array"
        },
        "release_id": {
          "type": "string"
        },
        "replayed": {
          "type": "boolean"
        },
        "revision": {
          "maximum": 9007199254740991,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "release_id",
        "revision",
        "items"
      ],
      "type": "object"
    },
    "renderer_metadata_command": {
      "additionalProperties": false,
      "properties": {
        "contributions": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "json_ld": {
                "items": {
                  "additionalProperties": {
                    "$ref": "#/$defs/__schema0"
                  },
                  "propertyNames": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "maxItems": 8,
                "type": "array"
              },
              "key": {
                "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                "type": "string"
              },
              "links": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "href": {
                      "maxLength": 2048,
                      "type": "string"
                    },
                    "hreflang": {
                      "pattern": "^[A-Za-z0-9-]{1,35}$",
                      "type": "string"
                    },
                    "rel": {
                      "enum": [
                        "alternate",
                        "related",
                        "author",
                        "license"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "rel",
                    "href"
                  ],
                  "type": "object"
                },
                "maxItems": 16,
                "type": "array"
              },
              "meta": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "content": {
                      "maxLength": 2000,
                      "minLength": 1,
                      "pattern": "^[^<>\\p{Cc}]+$",
                      "type": "string"
                    },
                    "name": {
                      "maxLength": 64,
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "content"
                  ],
                  "type": "object"
                },
                "maxItems": 16,
                "type": "array"
              }
            },
            "required": [
              "key"
            ],
            "type": "object"
          },
          "maxItems": 16,
          "type": "array"
        },
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "expected_version_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "locale": {
          "pattern": "^[A-Za-z0-9-]{1,35}$",
          "type": "string"
        }
      },
      "required": [
        "delegation_id",
        "expected_version_id",
        "locale",
        "contributions"
      ],
      "type": "object"
    },
    "rich_block_source": {
      "properties": {
        "definitions": {
          "items": {
            "properties": {
              "description": {
                "maxLength": 160,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}<>]+$",
                "type": "string"
              },
              "fields": {
                "items": {
                  "$ref": "#/$defs/RichBlockField"
                },
                "maxItems": 24,
                "minItems": 1,
                "type": "array"
              },
              "inline": {
                "type": "boolean"
              },
              "label": {
                "maxLength": 40,
                "minLength": 1,
                "pattern": "^[^\\p{Cc}<>]+$",
                "type": "string"
              },
              "migrations": {
                "description": "Steps from one version to the next. A version without an entry carries values unchanged.",
                "items": {
                  "properties": {
                    "from": {
                      "maximum": 9007199254740991,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "steps": {
                      "items": {
                        "oneOf": [
                          {
                            "properties": {
                              "from": {
                                "pattern": "^[a-z][a-z0-9_]{0,31}$",
                                "type": "string"
                              },
                              "op": {
                                "const": "rename",
                                "type": "string"
                              },
                              "to": {
                                "pattern": "^[a-z][a-z0-9_]{0,31}$",
                                "type": "string"
                              }
                            },
                            "required": [
                              "op",
                              "from",
                              "to"
                            ],
                            "type": "object"
                          },
                          {
                            "properties": {
                              "field": {
                                "pattern": "^[a-z][a-z0-9_]{0,31}$",
                                "type": "string"
                              },
                              "op": {
                                "const": "set_default",
                                "type": "string"
                              },
                              "value": {
                                "anyOf": [
                                  {
                                    "maxLength": 10000,
                                    "type": "string"
                                  },
                                  {
                                    "type": "number"
                                  },
                                  {
                                    "type": "boolean"
                                  }
                                ]
                              }
                            },
                            "required": [
                              "op",
                              "field",
                              "value"
                            ],
                            "type": "object"
                          },
                          {
                            "properties": {
                              "field": {
                                "pattern": "^[a-z][a-z0-9_]{0,31}$",
                                "type": "string"
                              },
                              "op": {
                                "const": "drop",
                                "type": "string"
                              }
                            },
                            "required": [
                              "op",
                              "field"
                            ],
                            "type": "object"
                          }
                        ]
                      },
                      "maxItems": 24,
                      "minItems": 1,
                      "type": "array"
                    },
                    "to": {
                      "maximum": 9007199254740991,
                      "minimum": 2,
                      "type": "integer"
                    }
                  },
                  "required": [
                    "from",
                    "to",
                    "steps"
                  ],
                  "type": "object"
                },
                "maxItems": 100,
                "type": "array"
              },
              "name": {
                "description": "Stored as `<plugin id>/<name>`.",
                "pattern": "^[a-z][a-z0-9_-]{0,31}$",
                "type": "string"
              },
              "plugin": {
                "type": "string"
              },
              "preview": {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "maxLength": 10000,
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "boolean"
                    }
                  ]
                },
                "description": "Sample values the insert menu previews with. No media.",
                "propertyNames": {
                  "pattern": "^[a-z][a-z0-9_]{0,31}$",
                  "type": "string"
                },
                "type": "object"
              },
              "render": {
                "description": "Host-interpreted render tree. Without it renderers show the block as unsupported.",
                "properties": {
                  "nodes": {
                    "items": {
                      "$ref": "#/$defs/RichBlockRenderNode"
                    },
                    "minItems": 1,
                    "type": "array"
                  },
                  "tone": {
                    "description": "A select field whose value (neutral, info, success, warning, danger) tints the block.",
                    "pattern": "^[a-z][a-z0-9_]{0,31}$",
                    "type": "string"
                  }
                },
                "required": [
                  "nodes"
                ],
                "type": "object"
              },
              "type": {
                "description": "`<plugin id>/<name>`: what a stored block names in `data-type`.",
                "type": "string"
              },
              "version": {
                "description": "Raise it when fields change; stored blocks keep the version they were saved with.",
                "maximum": 1000,
                "minimum": 1,
                "type": "integer"
              }
            },
            "required": [
              "name",
              "version",
              "label",
              "fields",
              "type",
              "plugin"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "installation_id": {
          "type": "string"
        },
        "plugin_id": {
          "type": "string"
        },
        "plugin_name": {
          "type": "string"
        },
        "state": {
          "enum": [
            "active",
            "disabled"
          ],
          "type": "string"
        }
      },
      "required": [
        "installation_id",
        "plugin_id",
        "plugin_name",
        "state",
        "definitions"
      ],
      "type": "object"
    },
    "transition_command": {
      "oneOf": [
        {
          "additionalProperties": false,
          "properties": {
            "delegation_id": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "expected_current_version_id": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "expected_future_revision": {
              "maximum": 9007199254740991,
              "minimum": 0,
              "type": "integer"
            },
            "expected_workflow_revision": {
              "maximum": 9007199254740991,
              "minimum": 0,
              "type": "integer"
            },
            "future_draft_id": {
              "description": "Independent branch bound to this site, primary entry, installation and release. Requires expected_future_revision.",
              "pattern": "^[A-Za-z0-9_-]{1,64}$",
              "type": "string"
            },
            "kind": {
              "const": "publish",
              "type": "string"
            },
            "locale": {
              "description": "Move this one language. Requires workflow:locale. Absent moves the whole translation group.",
              "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
              "type": "string"
            }
          },
          "required": [
            "kind",
            "expected_current_version_id",
            "expected_workflow_revision",
            "delegation_id"
          ],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "delegation_id": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "expected_published_version_id": {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            "expected_workflow_revision": {
              "maximum": 9007199254740991,
              "minimum": 0,
              "type": "integer"
            },
            "kind": {
              "const": "unpublish",
              "type": "string"
            },
            "locale": {
              "description": "Move this one language. Requires workflow:locale. Absent moves the whole translation group.",
              "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
              "type": "string"
            }
          },
          "required": [
            "kind",
            "expected_published_version_id",
            "expected_workflow_revision",
            "delegation_id"
          ],
          "type": "object"
        }
      ]
    },
    "transition_result": {
      "properties": {
        "from": {
          "type": "string"
        },
        "instance_id": {
          "type": "string"
        },
        "locale": {
          "type": "string"
        },
        "policy_results": {
          "description": "Plugin content policies that warned, did not answer while set to warn, or transformed the stored content. A refusal is an error instead.",
          "items": {
            "properties": {
              "failure": {
                "anyOf": [
                  {
                    "enum": [
                      "plugin_timeout",
                      "plugin_unreachable",
                      "plugin_response_invalid",
                      "plugin_refused",
                      "plugin_unavailable",
                      "idempotency_key_reused",
                      "invocation_in_progress",
                      "input_too_large",
                      "audit_unavailable"
                    ],
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Why an `unavailable` policy did not answer; null otherwise."
              },
              "fields": {
                "description": "Field keys the message is about; for `transformed`, the keys the policy changed (`seo` for search settings).",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "installation_id": {
                "type": "string"
              },
              "locale": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "outcome": {
                "enum": [
                  "warning",
                  "unavailable",
                  "transformed"
                ],
                "type": "string"
              },
              "plugin_name": {
                "type": "string"
              },
              "policy_id": {
                "type": "string"
              },
              "policy_label": {
                "type": "string"
              }
            },
            "required": [
              "installation_id",
              "plugin_name",
              "policy_id",
              "policy_label",
              "locale",
              "outcome",
              "message",
              "fields",
              "failure"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "primary_instance_id": {
          "type": "string"
        },
        "published": {
          "type": "boolean"
        },
        "published_changed": {
          "type": "boolean"
        },
        "published_version_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "redirect": {
          "description": "Present when the transition published: the automatic redirect the same lifecycle call made, or why none was made.",
          "oneOf": [
            {
              "properties": {
                "draft": {
                  "enum": [
                    "none",
                    "carried",
                    "needs_rebase"
                  ],
                  "type": "string"
                },
                "redirects": {
                  "items": {
                    "properties": {
                      "from": {
                        "type": "string"
                      },
                      "to": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "from",
                      "to"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "status": {
                  "const": "created",
                  "type": "string"
                }
              },
              "required": [
                "status",
                "redirects",
                "draft"
              ],
              "type": "object"
            },
            {
              "properties": {
                "redirects": {
                  "items": {
                    "properties": {
                      "from": {
                        "type": "string"
                      },
                      "to": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "from",
                      "to"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "status": {
                  "const": "exists",
                  "type": "string"
                }
              },
              "required": [
                "status",
                "redirects"
              ],
              "type": "object"
            },
            {
              "properties": {
                "reason": {
                  "enum": [
                    "no_previous_address",
                    "address_unchanged",
                    "no_public_address"
                  ],
                  "type": "string"
                },
                "status": {
                  "const": "none",
                  "type": "string"
                }
              },
              "required": [
                "status",
                "reason"
              ],
              "type": "object"
            },
            {
              "properties": {
                "from": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                },
                "reason": {
                  "enum": [
                    "redirect_loop",
                    "redirect_collision",
                    "redirect_limit",
                    "redirect_invalid",
                    "redirect_failed"
                  ],
                  "type": "string"
                },
                "status": {
                  "const": "refused",
                  "type": "string"
                },
                "to": {
                  "type": "string"
                }
              },
              "required": [
                "status",
                "reason",
                "message",
                "from",
                "to"
              ],
              "type": "object"
            }
          ]
        },
        "revision": {
          "maximum": 9007199254740991,
          "minimum": 0,
          "type": "integer"
        },
        "to": {
          "type": "string"
        }
      },
      "required": [
        "instance_id",
        "primary_instance_id",
        "from",
        "to",
        "published",
        "published_changed",
        "published_version_id",
        "revision",
        "policy_results"
      ],
      "type": "object"
    },
    "unpublish_command": {
      "additionalProperties": false,
      "properties": {
        "delegation_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "expected_published_version_id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "expected_workflow_revision": {
          "maximum": 9007199254740991,
          "minimum": 0,
          "type": "integer"
        },
        "kind": {
          "const": "unpublish",
          "type": "string"
        },
        "locale": {
          "description": "Move this one language. Requires workflow:locale. Absent moves the whole translation group.",
          "pattern": "^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "expected_published_version_id",
        "expected_workflow_revision",
        "delegation_id"
      ],
      "type": "object"
    },
    "validation_detail": {
      "properties": {
        "fields": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "reason": {
          "type": "string"
        }
      },
      "required": [
        "reason"
      ],
      "type": "object"
    },
    "working_draft": {
      "properties": {
        "baseline_version_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "data": {},
        "expires_at": {
          "type": "string"
        },
        "kind": {
          "enum": [
            "content",
            "page",
            "page-assist"
          ],
          "type": "string"
        },
        "locale": {
          "type": "string"
        },
        "revision": {
          "maximum": 9007199254740991,
          "minimum": 1,
          "type": "integer"
        },
        "target": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        }
      },
      "required": [
        "kind",
        "target",
        "locale",
        "baseline_version_id",
        "revision",
        "data",
        "updated_at",
        "expires_at"
      ],
      "type": "object"
    }
  },
  "$id": "https://dee-wan.dev/schemas/plugins/protocol-v1.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "capabilities": [
    "content:read",
    "workflow:read",
    "workflow:publish",
    "workflow:unpublish",
    "workflow:locale",
    "workflow:release",
    "content:write",
    "content:create",
    "content:delete",
    "draft:write",
    "media:write",
    "media:read",
    "media:update",
    "media:delete",
    "content:restore",
    "comments:read",
    "comments:moderate",
    "redirects:read",
    "redirects:write",
    "mail:send",
    "renderer:metadata",
    "content:propose",
    "media:source"
  ],
  "description": "Request and response shapes for /api/plugin/v1 and the administrative /api/plugins routes, and the activation hand-off body core sends to a plugin. Generated from the definitions the routes use. Request shapes are closed; response shapes allow additional properties, which clients must ignore.",
  "installation_states": [
    "pending",
    "active",
    "disabled",
    "revoked"
  ],
  "invocations": {
    "code_pattern": "^dwi_[A-Za-z0-9_-]{43}$",
    "column_cell_kinds": [
      "text",
      "badge",
      "link"
    ],
    "column_cell_tones": [
      "neutral",
      "positive",
      "warning",
      "critical"
    ],
    "failures": [
      "plugin_timeout",
      "plugin_unreachable",
      "plugin_response_invalid",
      "plugin_refused",
      "plugin_unavailable"
    ],
    "kinds": [
      "operation",
      "policy",
      "media_source",
      "hook"
    ],
    "limits": {
      "cell_text": 80,
      "column_rows": 50,
      "field_pointers": 32,
      "fields": 8,
      "list_action_items": 25,
      "operations": 8,
      "policies": 8,
      "policy_changed_fields": 100,
      "policy_transform_ids": 200,
      "result_blocks": 16,
      "result_links": 20,
      "result_rows": 100,
      "result_text": 4000,
      "select_options": 32,
      "text_length": 1000
    },
    "max_input_bytes": 32768,
    "max_response_bytes": 65536,
    "media_source_limits": {
      "cursor_length": 512,
      "delivery_origins": 4,
      "description_length": 125,
      "download_timeout_ms": 20000,
      "item_id_length": 128,
      "page_size": 24,
      "query_length": 200,
      "sources": 4,
      "title_length": 200
    },
    "operation_audiences": [
      "interactive",
      "automation",
      "column"
    ],
    "operation_field_kinds": [
      "text",
      "number",
      "boolean",
      "select"
    ],
    "operation_result_components": [
      "text",
      "rows",
      "links",
      "json",
      "cells"
    ],
    "operation_scopes": [
      "site",
      "entry",
      "page"
    ],
    "policy_decisions": [
      "allow",
      "warning",
      "refuse",
      "transform"
    ],
    "policy_kinds": [
      "save",
      "restore",
      "delete",
      "publish",
      "unpublish",
      "transition"
    ],
    "replay_hours": 24,
    "timeout_ms": 10000
  },
  "limits": {
    "draft_retention_days": 30,
    "entry_id_pattern": "^[A-Za-z0-9_-]{1,64}$",
    "launch_code_prefix": "dwl_",
    "launch_code_ttl_ms": 60000,
    "max_delegation_entries": 100,
    "max_draft_bytes": 1900000,
    "max_draft_request_bytes": 1916384,
    "max_drafts_per_person": 200,
    "max_field_value_bytes": 65536,
    "max_field_write_request_bytes": 81920,
    "max_fields_per_write": 50,
    "max_idempotency_key_length": 128,
    "max_manifest_bytes": 32768,
    "max_media_file_bytes": 33554432,
    "max_media_request_bytes": 33619968,
    "max_page_size": 50,
    "max_request_bytes": 16384,
    "rate_limit": {
      "keyed_by": "installation",
      "max_requests": 120,
      "window_ms": 60000
    },
    "remote_call_timeout_ms": 5000,
    "token_prefix": "dwp_",
    "token_rotation_overlap_ms": 600000
  },
  "media_types": [
    {
      "kind": "image",
      "mime": "image/png"
    },
    {
      "kind": "image",
      "mime": "image/jpeg"
    },
    {
      "kind": "image",
      "mime": "image/webp"
    },
    {
      "kind": "image",
      "mime": "image/avif"
    },
    {
      "kind": "image",
      "mime": "image/gif"
    },
    {
      "kind": "document",
      "mime": "application/pdf"
    },
    {
      "kind": "document",
      "mime": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
    },
    {
      "kind": "document",
      "mime": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
    },
    {
      "kind": "document",
      "mime": "application/vnd.openxmlformats-officedocument.presentationml.presentation"
    },
    {
      "kind": "document",
      "mime": "application/vnd.oasis.opendocument.text"
    },
    {
      "kind": "document",
      "mime": "application/vnd.oasis.opendocument.spreadsheet"
    },
    {
      "kind": "document",
      "mime": "application/vnd.oasis.opendocument.presentation"
    },
    {
      "kind": "document",
      "mime": "application/rtf"
    },
    {
      "kind": "document",
      "mime": "text/plain"
    },
    {
      "kind": "document",
      "mime": "text/csv"
    },
    {
      "kind": "audio",
      "mime": "audio/mpeg"
    },
    {
      "kind": "audio",
      "mime": "audio/mp4"
    },
    {
      "kind": "audio",
      "mime": "audio/ogg"
    },
    {
      "kind": "audio",
      "mime": "audio/wav"
    },
    {
      "kind": "audio",
      "mime": "audio/flac"
    },
    {
      "kind": "audio",
      "mime": "audio/aac"
    },
    {
      "kind": "video",
      "mime": "video/mp4"
    },
    {
      "kind": "video",
      "mime": "video/webm"
    },
    {
      "kind": "video",
      "mime": "video/quicktime"
    },
    {
      "kind": "video",
      "mime": "video/ogg"
    },
    {
      "kind": "image",
      "mime": "image/svg+xml"
    }
  ],
  "outcomes": {
    "capability_refused": {
      "http": 403,
      "message": "This installation was not granted that capability or model.",
      "retry": false
    },
    "content_deleted": {
      "http": 200,
      "message": "The entry was moved to Trash.",
      "retry": false
    },
    "content_not_found": {
      "http": 404,
      "message": "No such content in this installation’s scope.",
      "retry": false
    },
    "content_saved": {
      "http": 200,
      "message": "The field values were saved as a new version.",
      "retry": false
    },
    "dependent_content": {
      "http": 409,
      "message": "Other content depends on this item. A person must review the unpublish in Dee Wan.",
      "retry": false
    },
    "draft_conflict": {
      "http": 409,
      "message": "The working draft changed after the pinned revision. Read it again before writing.",
      "retry": false
    },
    "draft_discarded": {
      "http": 200,
      "message": "The working draft was discarded.",
      "retry": false
    },
    "draft_saved": {
      "http": 200,
      "message": "The working draft was saved.",
      "retry": false
    },
    "idempotency_key_reused": {
      "http": 409,
      "message": "This idempotency key was already used for a different command.",
      "retry": false
    },
    "idempotent_replay": {
      "http": 200,
      "message": "This command was already applied. The first result is returned.",
      "retry": false
    },
    "invalid_request": {
      "http": 400,
      "message": "The request is not valid for protocol v1.",
      "retry": false
    },
    "limit_exceeded": {
      "http": 413,
      "message": "The request exceeds a size or count limit.",
      "retry": false
    },
    "media_duplicate": {
      "http": 409,
      "message": "The site already holds this file. Nothing was uploaded. Send on_duplicate to reuse it or upload a copy.",
      "retry": false
    },
    "media_reused": {
      "http": 200,
      "message": "The site already holds this file. The existing media is returned and nothing was uploaded.",
      "retry": false
    },
    "media_updated": {
      "http": 200,
      "message": "The media metadata was updated.",
      "retry": false
    },
    "media_uploaded": {
      "http": 200,
      "message": "The media was uploaded.",
      "retry": false
    },
    "operation_applied": {
      "http": 200,
      "message": "The operation was applied.",
      "retry": false
    },
    "plugin_unauthorized": {
      "http": 401,
      "message": "The installation token is missing, unknown, disabled or revoked.",
      "retry": false
    },
    "proposal_created": {
      "http": 200,
      "message": "The proposal was created. Nothing changes until a person applies it.",
      "retry": false
    },
    "rate_limited": {
      "http": 429,
      "message": "Too many requests for this installation.",
      "retry": true
    },
    "release_applied": {
      "http": 200,
      "message": "The release was applied atomically.",
      "retry": false
    },
    "requester_unauthorized": {
      "http": 403,
      "message": "The person who requested this no longer holds the authority it needs.",
      "retry": false
    },
    "scheduled_target_stale": {
      "http": 409,
      "message": "The pinned version is no longer the one this transition would move.",
      "retry": false
    },
    "temporary_failure": {
      "http": 503,
      "message": "Dee Wan could not complete the request. Nothing is known to have changed.",
      "retry": true
    },
    "transition_applied": {
      "http": 200,
      "message": "The transition was applied.",
      "retry": false
    },
    "transition_refused": {
      "http": 422,
      "message": "The lifecycle refused this transition. Nothing was changed.",
      "retry": false
    },
    "transition_unavailable": {
      "http": 422,
      "message": "That transition is not available from the content’s current state.",
      "retry": false
    },
    "validation_failed": {
      "http": 422,
      "message": "The values were refused by the content rules. Nothing was changed.",
      "retry": false
    },
    "version_conflict": {
      "http": 409,
      "message": "The entry changed after the pinned version. Read it again before writing.",
      "retry": false
    },
    "workflow_conflict": {
      "http": 409,
      "message": "The content moved through its workflow after this was requested.",
      "retry": false
    }
  },
  "protocol_versions": [
    1
  ],
  "retry_contract": {
    "bare_body": "No outcome member: empty, non-JSON or another payload is retryable only at the listed statuses.",
    "bare_http_statuses": [
      429,
      500,
      502,
      503,
      504
    ],
    "concurrency": "Only the current lease owner may start a command; request deadline must precede lease expiry.",
    "exhaustion": "Stop sending at the attempt or age cap; an unacknowledged effect remains unknown.",
    "idempotency": "Reuse the same key and body on every retry and recovered lease, within core retention.",
    "mismatch": "terminal",
    "retry_after": "Nonnegative integer seconds or canonical HTTP-date (IMF-fixdate); invalid values use backoff; over the maximum exhausts.",
    "structured": "Validate outcome code, HTTP status, retry flag and message before classifying.",
    "transport": "bounded_retry"
  },
  "secrets": {
    "activation_code": {
      "minted_by": "the plugin, one per install or rotation",
      "pattern": "^[A-Za-z0-9_-]{16,128}$",
      "sent_as": "activation_code in the install/rotate request, then in the activation_handoff body"
    },
    "installation_token": {
      "pattern": "^dwp_[A-Za-z0-9_-]{43}$",
      "sent_as": "Authorization: Bearer <token>",
      "stored_by_core": "SHA-256 hash only"
    },
    "invocation_code": {
      "pattern": "^dwi_[A-Za-z0-9_-]{43}$",
      "sent_as": "code in the invocation envelope",
      "stored_by_core": "SHA-256 hash only"
    },
    "launch_code": {
      "pattern": "^dwl_[A-Za-z0-9_-]{43}$",
      "sent_as": "query parameter dee_wan_launch",
      "stored_by_core": "SHA-256 hash only"
    }
  },
  "title": "Dee Wan plugin protocol v1",
  "transition_kinds": [
    "publish",
    "unpublish"
  ],
  "transition_success_codes": [
    "transition_applied",
    "idempotent_replay"
  ],
  "ui_extensions": {
    "card_placements": [
      "entry_sidebar",
      "page_sidebar",
      "settings_row"
    ],
    "field_editor_controls": [
      {
        "control": "text",
        "stored_type": "text"
      },
      {
        "control": "textarea",
        "stored_type": "text"
      },
      {
        "control": "url",
        "stored_type": "text"
      },
      {
        "control": "number",
        "stored_type": "number"
      },
      {
        "control": "boolean",
        "stored_type": "boolean"
      },
      {
        "control": "date",
        "stored_type": "date"
      },
      {
        "control": "select",
        "stored_type": "select"
      },
      {
        "control": "group",
        "stored_type": "json"
      }
    ],
    "group_limits": {
      "members": 8,
      "options": 12,
      "textLength": 500,
      "valueBytes": 8192
    },
    "max_editor_options": 50,
    "max_extensions": 16,
    "placements": [
      "entry_sidebar",
      "page_sidebar",
      "settings_row",
      "field_editor"
    ],
    "reserved_ids": [
      "manage",
      "core",
      "dee-wan",
      "workflow",
      "history",
      "seo",
      "preview",
      "settings"
    ],
    "url_field_pattern": "^https?://[^\\s<>\"]+$"
  }
}
