{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$ref": "#/definitions/SiteConfig",
  "definitions": {
    "SiteConfig": {
      "type": "object",
      "properties": {
        "load_config_file": {
          "type": "boolean",
          "description": "Whether to load YAML/JSON site configuration file(s) when [manually initializing the CMS](https://decapcms.org/docs/manual-initialization/). This works only in the `CMS.init()` method’s `config` option. Default: `true`.",
          "markdownDescription": "Whether to load YAML/JSON site configuration file(s) when [manually initializing the CMS](https://decapcms.org/docs/manual-initialization/). This works only in the `CMS.init()` method’s `config` option. Default: `true`."
        },
        "backend": {
          "$ref": "#/definitions/BackendOptions",
          "description": "Backend options.",
          "markdownDescription": "Backend options."
        },
        "publish_mode": {
          "type": "string",
          "enum": [
            "simple",
            "editorial_workflow",
            ""
          ],
          "description": "Publish mode. An empty string is the same as `simple`. Default: `simple`.",
          "markdownDescription": "Publish mode. An empty string is the same as `simple`. Default: `simple`."
        },
        "media_folder": {
          "type": "string",
          "description": "Global internal media folder path, relative to the project’s root directory.",
          "markdownDescription": "Global internal media folder path, relative to the project’s root directory."
        },
        "public_folder": {
          "type": "string",
          "description": "Global public media folder path, relative to the project’s public URL. It must be an absolute path starting with `/`. Default: `media_folder` option value.",
          "markdownDescription": "Global public media folder path, relative to the project’s public URL. It must be an absolute path starting with `/`. Default: `media_folder` option value."
        },
        "media_library": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "config": {
                  "$ref": "#/definitions/DefaultMediaLibraryConfig",
                  "description": "Configuration for the default media library.",
                  "markdownDescription": "Configuration for the default media library."
                }
              },
              "required": [
                "name"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "output_filename_only": {
                  "type": "boolean",
                  "description": "Whether to output a file name instead of a full URL. Default: `false`.",
                  "markdownDescription": "Whether to output a file name instead of a full URL. Default: `false`."
                },
                "use_transformations": {
                  "type": "boolean",
                  "description": "Whether to include transformation segments in an output URL. Default: `true`.",
                  "markdownDescription": "Whether to include transformation segments in an output URL. Default: `true`."
                },
                "use_secure_url": {
                  "type": "boolean",
                  "description": "Whether to use an HTTP URL. Default: `true`.",
                  "markdownDescription": "Whether to use an HTTP URL. Default: `true`."
                },
                "config": {
                  "type": "object",
                  "description": "Options to be passed to Cloudinary, such as `multiple`. The `cloud_name` and `api_key` options are required for the global `media_library` option. See the [Cloudinary documentation](https://cloudinary.com/documentation/media_library_widget#2_set_the_configuration_options) for a full list of available options.",
                  "markdownDescription": "Options to be passed to Cloudinary, such as `multiple`. The `cloud_name` and `api_key` options are required for the global `media_library` option. See the [Cloudinary documentation](https://cloudinary.com/documentation/media_library_widget#2_set_the_configuration_options) for a full list of available options."
                }
              },
              "required": [
                "name"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "config": {
                  "type": "object",
                  "description": "Options to be passed to Uploadcare, such as `multiple`. The `publicKey` option is required for the global `media_library` option. See the [Uploadcare documentation](https://uploadcare.com/docs/uploads/file-uploader-options/) for a full list of available options.",
                  "markdownDescription": "Options to be passed to Uploadcare, such as `multiple`. The `publicKey` option is required for the global `media_library` option. See the [Uploadcare documentation](https://uploadcare.com/docs/uploads/file-uploader-options/) for a full list of available options."
                },
                "settings": {
                  "$ref": "#/definitions/UploadcareMediaLibrarySettings",
                  "description": "Integration settings.",
                  "markdownDescription": "Integration settings."
                }
              },
              "required": [
                "name"
              ]
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "providers": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/StockAssetProviderName"
                  },
                  "description": "Enabled stock photo/video providers. The stock photo/video section in the asset browser is hidden if an empty array is given. Default: all supported providers.",
                  "markdownDescription": "Enabled stock photo/video providers. The stock photo/video section in the asset browser is hidden if an empty array is given. Default: all supported providers."
                }
              },
              "required": [
                "name"
              ]
            }
          ],
          "description": "Legacy media library option that allows only one library. This overrides the global `media_library` option. Use `media_libraries` instead to support multiple libraries.",
          "markdownDescription": "Legacy media library option that allows only one library. This overrides the global `media_library` option. Use `media_libraries` instead to support multiple libraries."
        },
        "media_libraries": {
          "$ref": "#/definitions/MediaLibraries",
          "description": "Unified media library option that supports multiple libraries. See our [README](https://github.com/sveltia/sveltia-cms#configuring-multiple-media-libraries) for details.",
          "markdownDescription": "Unified media library option that supports multiple libraries. See our [README](https://github.com/sveltia/sveltia-cms#configuring-multiple-media-libraries) for details."
        },
        "site_url": {
          "type": "string",
          "description": "Site URL. Default: current site’s origin ([`location.origin`](https://developer.mozilla.org/en-US/docs/Web/API/Location/origin)).",
          "markdownDescription": "Site URL. Default: current site’s origin ([`location.origin`](https://developer.mozilla.org/en-US/docs/Web/API/Location/origin))."
        },
        "display_url": {
          "type": "string",
          "description": "Site URL linked from the UI. Default: `site_url` option value.",
          "markdownDescription": "Site URL linked from the UI. Default: `site_url` option value."
        },
        "logo_url": {
          "type": "string",
          "description": "Absolute URL or absolute path to the site logo that will be displayed on the entrance page and the browser’s tab (favicon). A square image works best. Default: Sveltia logo.",
          "markdownDescription": "Absolute URL or absolute path to the site logo that will be displayed on the entrance page and the browser’s tab (favicon). A square image works best. Default: Sveltia logo."
        },
        "show_preview_links": {
          "type": "boolean",
          "description": "Whether to show site preview links. Default: `true`.",
          "markdownDescription": "Whether to show site preview links. Default: `true`."
        },
        "slug": {
          "$ref": "#/definitions/SlugOptions",
          "description": "Entry slug options.",
          "markdownDescription": "Entry slug options."
        },
        "collections": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/definitions/Collection"
              },
              {
                "$ref": "#/definitions/CollectionDivider"
              }
            ]
          },
          "description": "Set of collections. The list can also contain dividers, which are used to group collections in the collection list. Either `collections` or `singletons` option must be defined.",
          "markdownDescription": "Set of collections. The list can also contain dividers, which are used to group collections in the collection list. Either `collections` or `singletons` option must be defined."
        },
        "singletons": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/definitions/CollectionFile"
              },
              {
                "$ref": "#/definitions/CollectionDivider"
              }
            ]
          },
          "description": "Set of singleton files, such as the site configuration file or the homepage file. They are not part of any collection and can be accessed directly through the collection list. The list can also contain dividers. See our [README](https://github.com/sveltia/sveltia-cms#using-singletons) for details.",
          "markdownDescription": "Set of singleton files, such as the site configuration file or the homepage file. They are not part of any collection and can be accessed directly through the collection list. The list can also contain dividers. See our [README](https://github.com/sveltia/sveltia-cms#using-singletons) for details."
        },
        "i18n": {
          "$ref": "#/definitions/I18nOptions",
          "description": "Global i18n options.",
          "markdownDescription": "Global i18n options."
        },
        "editor": {
          "$ref": "#/definitions/EditorOptions",
          "description": "Editor view options.",
          "markdownDescription": "Editor view options."
        },
        "output": {
          "$ref": "#/definitions/OutputOptions",
          "description": "Data output options. See our [README](https://github.com/sveltia/sveltia-cms#controlling-data-output) for details.",
          "markdownDescription": "Data output options. See our [README](https://github.com/sveltia/sveltia-cms#controlling-data-output) for details."
        }
      },
      "required": [
        "backend",
        "media_folder"
      ],
      "additionalProperties": false,
      "description": "Site configuration.",
      "markdownDescription": "Site configuration."
    },
    "BackendOptions": {
      "type": "object",
      "properties": {
        "name": {
          "$ref": "#/definitions/BackendName",
          "description": "Backend name.",
          "markdownDescription": "Backend name."
        },
        "repo": {
          "type": "string",
          "description": "Repository identifier. Required for Git backends. GitHub/Gitea/Forgejo: organization/user name and repository name joined by a slash, e.g. `owner/repo`. GitLab: namespace and project name joined by a slash, e.g. `group/project` or `group/subgroup/project`.",
          "markdownDescription": "Repository identifier. Required for Git backends. GitHub/Gitea/Forgejo: organization/user name and repository name joined by a slash, e.g. `owner/repo`. GitLab: namespace and project name joined by a slash, e.g. `group/project` or `group/subgroup/project`."
        },
        "branch": {
          "type": "string",
          "description": "Git branch name. If omitted, the default branch, usually `main` or `master`, will be used. Git backends only.",
          "markdownDescription": "Git branch name. If omitted, the default branch, usually `main` or `master`, will be used. Git backends only."
        },
        "api_root": {
          "type": "string",
          "description": "REST API endpoint for the backend. Git backends only. Required when using GitHub Enterprise Server, a self-hosted GitLab/Gitea/Forgejo instance. Default: `https://api.github.com` (GitHub), `https://gitlab.com/api/v4` (GitLab) or `https://gitea.com/api/v1` (Gitea/Forgejo).",
          "markdownDescription": "REST API endpoint for the backend. Git backends only. Required when using GitHub Enterprise Server, a self-hosted GitLab/Gitea/Forgejo instance. Default: `https://api.github.com` (GitHub), `https://gitlab.com/api/v4` (GitLab) or `https://gitea.com/api/v1` (Gitea/Forgejo)."
        },
        "graphql_api_root": {
          "type": "string",
          "description": "GraphQL API endpoint for the backend. Git backends only. Default: inferred from `api_root` option value.",
          "markdownDescription": "GraphQL API endpoint for the backend. Git backends only. Default: inferred from `api_root` option value."
        },
        "site_domain": {
          "type": "string",
          "description": "Site domain used for OAuth, which will be included in the `site_id` param to be sent to the API endpoint. Git backends only. Default: [`location.hostname`](https://developer.mozilla.org/en-US/docs/Web/API/Location/hostname).",
          "markdownDescription": "Site domain used for OAuth, which will be included in the `site_id` param to be sent to the API endpoint. Git backends only. Default: [`location.hostname`](https://developer.mozilla.org/en-US/docs/Web/API/Location/hostname)."
        },
        "base_url": {
          "type": "string",
          "description": "OAuth base URL origin. Git backends only. Required when using an OAuth client other than Netlify, including [Sveltia CMS Authenticator](https://github.com/sveltia/sveltia-cms-auth). Default: `https://api.netlify.com` (GitHub), `https://gitlab.com` (GitLab) or `https://gitea.com/` (Gitea/Forgejo).",
          "markdownDescription": "OAuth base URL origin. Git backends only. Required when using an OAuth client other than Netlify, including [Sveltia CMS Authenticator](https://github.com/sveltia/sveltia-cms-auth). Default: `https://api.netlify.com` (GitHub), `https://gitlab.com` (GitLab) or `https://gitea.com/` (Gitea/Forgejo)."
        },
        "auth_endpoint": {
          "type": "string",
          "description": "OAuth base URL path. Git backends only. Default: `auth` (GitHub) or `oauth/authorize` (GitLab).",
          "markdownDescription": "OAuth base URL path. Git backends only. Default: `auth` (GitHub) or `oauth/authorize` (GitLab)."
        },
        "auth_type": {
          "type": "string",
          "enum": [
            "pkce",
            "implicit"
          ],
          "description": "OAuth authentication method. GitLab only. Default: `pkce`.",
          "markdownDescription": "OAuth authentication method. GitLab only. Default: `pkce`."
        },
        "app_id": {
          "type": "string",
          "description": "OAuth application ID. GitLab, Gitea/Forgejo only. Required for Gitea/Forgejo.",
          "markdownDescription": "OAuth application ID. GitLab, Gitea/Forgejo only. Required for Gitea/Forgejo."
        },
        "commit_messages": {
          "$ref": "#/definitions/CommitMessages",
          "description": "Custom commit messages. Git backends only.",
          "markdownDescription": "Custom commit messages. Git backends only."
        },
        "preview_context": {
          "type": "string",
          "description": "Deploy preview link context. GitHub only.",
          "markdownDescription": "Deploy preview link context. GitHub only."
        },
        "cms_label_prefix": {
          "type": "string",
          "description": "Pull request label prefix for Editorial Workflow. Git backends only. Default: `sveltia-cms/`.",
          "markdownDescription": "Pull request label prefix for Editorial Workflow. Git backends only. Default: `sveltia-cms/`."
        },
        "squash_merges": {
          "type": "boolean",
          "description": "Whether to use squash marge for Editorial Workflow. Git backends only. Default: `false`.",
          "markdownDescription": "Whether to use squash marge for Editorial Workflow. Git backends only. Default: `false`."
        },
        "open_authoring": {
          "type": "boolean",
          "description": "Whether to use Open Authoring. Git backends only. Default: `false`.",
          "markdownDescription": "Whether to use Open Authoring. Git backends only. Default: `false`."
        },
        "auth_scope": {
          "type": "string",
          "enum": [
            "repo",
            "public_repo"
          ],
          "description": "Authentication scope for Open Authoring. Git backends only.",
          "markdownDescription": "Authentication scope for Open Authoring. Git backends only."
        },
        "automatic_deployments": {
          "type": "boolean",
          "description": "Whether to enable or disable automatic deployments with any connected CI/CD provider, such as GitHub Actions or Cloudflare Pages. If `false`, the `[skip ci]` prefix will be added to commit messages. Git backends only. Default: `undefined`. See our [README](https://github.com/sveltia/sveltia-cms#disabling-automatic-deployments) for details.",
          "markdownDescription": "Whether to enable or disable automatic deployments with any connected CI/CD provider, such as GitHub Actions or Cloudflare Pages. If `false`, the `[skip ci]` prefix will be added to commit messages. Git backends only. Default: `undefined`. See our [README](https://github.com/sveltia/sveltia-cms#disabling-automatic-deployments) for details."
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false,
      "description": "Backend options.",
      "markdownDescription": "Backend options."
    },
    "BackendName": {
      "anyOf": [
        {
          "$ref": "#/definitions/GitBackendName"
        },
        {
          "type": "string",
          "const": "test-repo"
        }
      ],
      "description": "Supported backend name.",
      "markdownDescription": "Supported backend name."
    },
    "GitBackendName": {
      "type": "string",
      "enum": [
        "github",
        "gitlab",
        "gitea"
      ],
      "description": "Supported Git backend name.",
      "markdownDescription": "Supported Git backend name."
    },
    "CommitMessages": {
      "type": "object",
      "properties": {
        "create": {
          "type": "string",
          "description": "Message to be used when a new entry is created.",
          "markdownDescription": "Message to be used when a new entry is created."
        },
        "update": {
          "type": "string",
          "description": "Message to be used when existing entries are updated.",
          "markdownDescription": "Message to be used when existing entries are updated."
        },
        "delete": {
          "type": "string",
          "description": "Message to be used when existing entries are deleted.",
          "markdownDescription": "Message to be used when existing entries are deleted."
        },
        "uploadMedia": {
          "type": "string",
          "description": "Message to be used when new files are uploaded/updated.",
          "markdownDescription": "Message to be used when new files are uploaded/updated."
        },
        "deleteMedia": {
          "type": "string",
          "description": "Message to be used when existing files are deleted.",
          "markdownDescription": "Message to be used when existing files are deleted."
        },
        "openAuthoring": {
          "type": "string",
          "description": "Message to be used when committed via a forked repository.",
          "markdownDescription": "Message to be used when committed via a forked repository."
        }
      },
      "additionalProperties": false,
      "description": "Custom commit messages.",
      "markdownDescription": "Custom commit messages."
    },
    "MediaLibraryName": {
      "type": "string",
      "enum": [
        "default",
        "cloudinary",
        "uploadcare",
        "stock_assets"
      ],
      "description": "Supported media library name.",
      "markdownDescription": "Supported media library name."
    },
    "DefaultMediaLibraryConfig": {
      "type": "object",
      "properties": {
        "max_file_size": {
          "type": "number",
          "description": "Maximum file size in bytes that can be accepted for uploading.",
          "markdownDescription": "Maximum file size in bytes that can be accepted for uploading."
        },
        "slugify_filename": {
          "type": "boolean",
          "description": "Whether to rename an original asset file when saving it, according to the global `slug` option. Default: `false`, meaning that the original file name is kept by default, while Netlify/Decap CMS forces to slugify file names. If set to `true`, for example, `Hello World (1).webp` would be `hello-world-1.webp`.",
          "markdownDescription": "Whether to rename an original asset file when saving it, according to the global `slug` option. Default: `false`, meaning that the original file name is kept by default, while Netlify/Decap CMS forces to slugify file names. If set to `true`, for example, `Hello World (1).webp` would be `hello-world-1.webp`."
        },
        "transformations": {
          "$ref": "#/definitions/FileTransformations",
          "description": "File transformation option map. The key is an original format like `png` or `jpeg`. It can also be `raster_image` that matches any supported raster image format. See our [README](https://github.com/sveltia/sveltia-cms#optimizing-images-for-upload) for details.",
          "markdownDescription": "File transformation option map. The key is an original format like `png` or `jpeg`. It can also be `raster_image` that matches any supported raster image format. See our [README](https://github.com/sveltia/sveltia-cms#optimizing-images-for-upload) for details."
        }
      },
      "additionalProperties": false,
      "description": "Configuration for the default media library.",
      "markdownDescription": "Configuration for the default media library."
    },
    "FileTransformations": {
      "$ref": "#/definitions/ImageTransformations",
      "description": "File transformation option map.",
      "markdownDescription": "File transformation option map."
    },
    "ImageTransformations": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "svg": {
          "$ref": "#/definitions/VectorImageTransformationOptions",
          "description": "SVG image transformation options.",
          "markdownDescription": "SVG image transformation options."
        },
        "raster_image": {
          "$ref": "#/definitions/RasterImageTransformationOptions",
          "description": "Raster image transformation options that apply to any supported raster image format.",
          "markdownDescription": "Raster image transformation options that apply to any supported raster image format."
        },
        "avif": {
          "$ref": "#/definitions/RasterImageTransformationOptions",
          "description": "AVIF image transformation options.",
          "markdownDescription": "AVIF image transformation options."
        },
        "gif": {
          "$ref": "#/definitions/RasterImageTransformationOptions",
          "description": "GIF image transformation options.",
          "markdownDescription": "GIF image transformation options."
        },
        "jpeg": {
          "$ref": "#/definitions/RasterImageTransformationOptions",
          "description": "JPEG image transformation options.",
          "markdownDescription": "JPEG image transformation options."
        },
        "png": {
          "$ref": "#/definitions/RasterImageTransformationOptions",
          "description": "PNG image transformation options.",
          "markdownDescription": "PNG image transformation options."
        },
        "webp": {
          "$ref": "#/definitions/RasterImageTransformationOptions",
          "description": "WebP image transformation options.",
          "markdownDescription": "WebP image transformation options."
        }
      },
      "description": "Image transformation option map.",
      "markdownDescription": "Image transformation option map."
    },
    "VectorImageTransformationOptions": {
      "type": "object",
      "properties": {
        "optimize": {
          "type": "boolean",
          "description": "Whether to optimize the image.",
          "markdownDescription": "Whether to optimize the image."
        }
      },
      "additionalProperties": false,
      "description": "Vector image transformation option map.",
      "markdownDescription": "Vector image transformation option map."
    },
    "RasterImageTransformationOptions": {
      "type": "object",
      "properties": {
        "format": {
          "$ref": "#/definitions/RasterImageConversionFormat",
          "description": "New format. Default: `webp`.",
          "markdownDescription": "New format. Default: `webp`."
        },
        "quality": {
          "type": "number",
          "description": "Image quality between 0 and 100. Default: `85`.",
          "markdownDescription": "Image quality between 0 and 100. Default: `85`."
        },
        "width": {
          "type": "number",
          "description": "Max width. Default: original width.",
          "markdownDescription": "Max width. Default: original width."
        },
        "height": {
          "type": "number",
          "description": "Max height. Default: original height.",
          "markdownDescription": "Max height. Default: original height."
        }
      },
      "additionalProperties": false,
      "description": "Raster image transformation options. See our [README](https://github.com/sveltia/sveltia-cms#optimizing-images-for-upload) for details.",
      "markdownDescription": "Raster image transformation options. See our [README](https://github.com/sveltia/sveltia-cms#optimizing-images-for-upload) for details."
    },
    "RasterImageConversionFormat": {
      "type": "string",
      "const": "webp",
      "description": "Supported raster image conversion format. We don’t support AVIF at this time because no browser supports AVIF encoding natively and `@jsquash/avif` is slow. Meanwhile, browsers other than Safari support WebP encoding and `@jsquash/webp` is relatively fast.",
      "markdownDescription": "Supported raster image conversion format. We don’t support AVIF at this time because no browser supports AVIF encoding natively and `@jsquash/avif` is slow. Meanwhile, browsers other than Safari support WebP encoding and `@jsquash/webp` is relatively fast."
    },
    "UploadcareMediaLibrarySettings": {
      "type": "object",
      "properties": {
        "autoFilename": {
          "type": "boolean",
          "description": "Whether to append a file name to an output URL. Default: `false`.",
          "markdownDescription": "Whether to append a file name to an output URL. Default: `false`."
        },
        "defaultOperations": {
          "type": "string",
          "description": "Transformation operations to be included in an output URL. Default: empty string.",
          "markdownDescription": "Transformation operations to be included in an output URL. Default: empty string."
        }
      },
      "additionalProperties": false,
      "description": "Settings for the [Uploadcare media library](https://decapcms.org/docs/uploadcare/).",
      "markdownDescription": "Settings for the [Uploadcare media library](https://decapcms.org/docs/uploadcare/)."
    },
    "StockAssetProviderName": {
      "type": "string",
      "enum": [
        "pexels",
        "pixabay",
        "unsplash"
      ],
      "description": "Name of supported stock photo/video provider.",
      "markdownDescription": "Name of supported stock photo/video provider."
    },
    "MediaLibraries": {
      "type": "object",
      "properties": {
        "default": {
          "$ref": "#/definitions/DefaultMediaLibrary",
          "description": "Options for the default media library.",
          "markdownDescription": "Options for the default media library."
        },
        "cloudinary": {
          "$ref": "#/definitions/CloudinaryMediaLibrary",
          "description": "Options for the Cloudinary media library.",
          "markdownDescription": "Options for the Cloudinary media library."
        },
        "uploadcare": {
          "$ref": "#/definitions/UploadcareMediaLibrary",
          "description": "Options for the Uploadcare media library.",
          "markdownDescription": "Options for the Uploadcare media library."
        },
        "stock_assets": {
          "$ref": "#/definitions/StockAssetMediaLibrary",
          "description": "Options for the unified stock photo/video media library.",
          "markdownDescription": "Options for the unified stock photo/video media library."
        }
      },
      "additionalProperties": false,
      "description": "Unified media library option that supports multiple libraries. See our [README](https://github.com/sveltia/sveltia-cms#configuring-multiple-media-libraries) for details.",
      "markdownDescription": "Unified media library option that supports multiple libraries. See our [README](https://github.com/sveltia/sveltia-cms#configuring-multiple-media-libraries) for details."
    },
    "DefaultMediaLibrary": {
      "type": "object",
      "properties": {
        "config": {
          "$ref": "#/definitions/DefaultMediaLibraryConfig",
          "description": "Configuration for the default media library.",
          "markdownDescription": "Configuration for the default media library."
        }
      },
      "additionalProperties": false,
      "description": "Options for the default media library.",
      "markdownDescription": "Options for the default media library."
    },
    "CloudinaryMediaLibrary": {
      "type": "object",
      "properties": {
        "output_filename_only": {
          "type": "boolean",
          "description": "Whether to output a file name instead of a full URL. Default: `false`.",
          "markdownDescription": "Whether to output a file name instead of a full URL. Default: `false`."
        },
        "use_transformations": {
          "type": "boolean",
          "description": "Whether to include transformation segments in an output URL. Default: `true`.",
          "markdownDescription": "Whether to include transformation segments in an output URL. Default: `true`."
        },
        "use_secure_url": {
          "type": "boolean",
          "description": "Whether to use an HTTP URL. Default: `true`.",
          "markdownDescription": "Whether to use an HTTP URL. Default: `true`."
        },
        "config": {
          "type": "object",
          "description": "Options to be passed to Cloudinary, such as `multiple`. The `cloud_name` and `api_key` options are required for the global `media_library` option. See the [Cloudinary documentation](https://cloudinary.com/documentation/media_library_widget#2_set_the_configuration_options) for a full list of available options.",
          "markdownDescription": "Options to be passed to Cloudinary, such as `multiple`. The `cloud_name` and `api_key` options are required for the global `media_library` option. See the [Cloudinary documentation](https://cloudinary.com/documentation/media_library_widget#2_set_the_configuration_options) for a full list of available options."
        }
      },
      "additionalProperties": false,
      "description": "Options for the [Cloudinary media library](https://decapcms.org/docs/cloudinary/).",
      "markdownDescription": "Options for the [Cloudinary media library](https://decapcms.org/docs/cloudinary/)."
    },
    "UploadcareMediaLibrary": {
      "type": "object",
      "properties": {
        "config": {
          "type": "object",
          "description": "Options to be passed to Uploadcare, such as `multiple`. The `publicKey` option is required for the global `media_library` option. See the [Uploadcare documentation](https://uploadcare.com/docs/uploads/file-uploader-options/) for a full list of available options.",
          "markdownDescription": "Options to be passed to Uploadcare, such as `multiple`. The `publicKey` option is required for the global `media_library` option. See the [Uploadcare documentation](https://uploadcare.com/docs/uploads/file-uploader-options/) for a full list of available options."
        },
        "settings": {
          "$ref": "#/definitions/UploadcareMediaLibrarySettings",
          "description": "Integration settings.",
          "markdownDescription": "Integration settings."
        }
      },
      "additionalProperties": false,
      "description": "Options for the [Uploadcare media library](https://decapcms.org/docs/uploadcare/).",
      "markdownDescription": "Options for the [Uploadcare media library](https://decapcms.org/docs/uploadcare/)."
    },
    "StockAssetMediaLibrary": {
      "type": "object",
      "properties": {
        "providers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/StockAssetProviderName"
          },
          "description": "Enabled stock photo/video providers. The stock photo/video section in the asset browser is hidden if an empty array is given. Default: all supported providers.",
          "markdownDescription": "Enabled stock photo/video providers. The stock photo/video section in the asset browser is hidden if an empty array is given. Default: all supported providers."
        }
      },
      "additionalProperties": false,
      "description": "Options for the unified stock photo/video media library.",
      "markdownDescription": "Options for the unified stock photo/video media library."
    },
    "SlugOptions": {
      "type": "object",
      "properties": {
        "encoding": {
          "type": "string",
          "enum": [
            "unicode",
            "ascii"
          ],
          "description": "Encoding option. Default: `unicode`.",
          "markdownDescription": "Encoding option. Default: `unicode`."
        },
        "clean_accents": {
          "type": "boolean",
          "description": "Whether to remove accents. Default: `false`.",
          "markdownDescription": "Whether to remove accents. Default: `false`."
        },
        "sanitize_replacement": {
          "type": "string",
          "description": "String to replace sanitized characters. Default: `-`.",
          "markdownDescription": "String to replace sanitized characters. Default: `-`."
        },
        "trim": {
          "type": "boolean",
          "description": "Whether to trim leading and trailing replacement characters. Default: `true`.",
          "markdownDescription": "Whether to trim leading and trailing replacement characters. Default: `true`."
        }
      },
      "additionalProperties": false,
      "description": "Entry slug options.",
      "markdownDescription": "Entry slug options."
    },
    "Collection": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Unique identifier for the collection.",
          "markdownDescription": "Unique identifier for the collection."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` option value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` option value."
        },
        "label_singular": {
          "type": "string",
          "description": "Singular UI label. It will be Blog Post if the `label` is Blog Posts, for example. Default: `label` option value.",
          "markdownDescription": "Singular UI label. It will be Blog Post if the `label` is Blog Posts, for example. Default: `label` option value."
        },
        "description": {
          "type": "string",
          "description": "Short description of the collection to be displayed in the editor UI.",
          "markdownDescription": "Short description of the collection to be displayed in the editor UI."
        },
        "icon": {
          "type": "string",
          "description": "Name of a [Material Symbols icon](https://fonts.google.com/icons?icon.set=Material+Symbols) to be displayed in the collection list.",
          "markdownDescription": "Name of a [Material Symbols icon](https://fonts.google.com/icons?icon.set=Material+Symbols) to be displayed in the collection list."
        },
        "identifier_field": {
          "$ref": "#/definitions/FieldKeyPath",
          "description": "Field name to be used as the title and slug of an entry. Entry collection only. Default: `title`.",
          "markdownDescription": "Field name to be used as the title and slug of an entry. Entry collection only. Default: `title`."
        },
        "files": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CollectionFile"
          },
          "description": "A set of files. File collection only.",
          "markdownDescription": "A set of files. File collection only."
        },
        "folder": {
          "type": "string",
          "description": "Base folder path relative to the project root. Entry collection only.",
          "markdownDescription": "Base folder path relative to the project root. Entry collection only."
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Field"
          },
          "description": "Set of fields to be included in entries. Entry collection only.",
          "markdownDescription": "Set of fields to be included in entries. Entry collection only."
        },
        "path": {
          "type": "string",
          "description": "File path relative to `folder`, without a file extension. Entry collection only.",
          "markdownDescription": "File path relative to `folder`, without a file extension. Entry collection only."
        },
        "media_folder": {
          "type": "string",
          "description": "Internal media folder path for the collection. This overrides the global `media_folder` option. It can be a relative path from the project root if it starts with a slash. Otherwise it’s a path relative to the entry. If this option is omitted, the global `media_folder` option value is used. See our [README](https://github.com/sveltia/sveltia-cms#using-a-custom-media-folder-for-a-collection) for details.",
          "markdownDescription": "Internal media folder path for the collection. This overrides the global `media_folder` option. It can be a relative path from the project root if it starts with a slash. Otherwise it’s a path relative to the entry. If this option is omitted, the global `media_folder` option value is used. See our [README](https://github.com/sveltia/sveltia-cms#using-a-custom-media-folder-for-a-collection) for details."
        },
        "public_folder": {
          "type": "string",
          "description": "Public media folder path for an entry collection. This overrides the global `public_folder` option. Default: `media_folder` option value.",
          "markdownDescription": "Public media folder path for an entry collection. This overrides the global `public_folder` option. Default: `media_folder` option value."
        },
        "filter": {
          "$ref": "#/definitions/CollectionFilter",
          "description": "Entry filter. Entry collection only.",
          "markdownDescription": "Entry filter. Entry collection only."
        },
        "hide": {
          "type": "boolean",
          "description": "Whether to hide the collection in the UI. Default: `false`.",
          "markdownDescription": "Whether to hide the collection in the UI. Default: `false`."
        },
        "create": {
          "type": "boolean",
          "description": "Whether to allow users to create entries in the collection. Entry collection only. Default: `false`.",
          "markdownDescription": "Whether to allow users to create entries in the collection. Entry collection only. Default: `false`."
        },
        "delete": {
          "type": "boolean",
          "description": "Whether to allow users to delete entries in the collection. Entry collection only. Default: `true`.",
          "markdownDescription": "Whether to allow users to delete entries in the collection. Entry collection only. Default: `true`."
        },
        "publish": {
          "type": "boolean",
          "description": "Whether to show the publishing control UI for Editorial Workflow. Default: `true`.",
          "markdownDescription": "Whether to show the publishing control UI for Editorial Workflow. Default: `true`."
        },
        "extension": {
          "$ref": "#/definitions/FileExtension",
          "description": "File extension. Entry collection only. Default: `md`.",
          "markdownDescription": "File extension. Entry collection only. Default: `md`."
        },
        "format": {
          "$ref": "#/definitions/FileFormat",
          "description": "File format. It should match the file extension. Default: `yaml-frontmatter`.",
          "markdownDescription": "File format. It should match the file extension. Default: `yaml-frontmatter`."
        },
        "frontmatter_delimiter": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          ],
          "description": "Delimiters to be used for the front matter format. Default: depends on the front matter type.",
          "markdownDescription": "Delimiters to be used for the front matter format. Default: depends on the front matter type."
        },
        "slug": {
          "type": "string",
          "description": "Item slug template. Entry collection only. Default: `identifier_field` option value. It’s possible to [localize the slug](https://github.com/sveltia/sveltia-cms#localizing-entry-slugs) or [use a random ID](https://github.com/sveltia/sveltia-cms#using-a-random-id-for-an-entry-slug).",
          "markdownDescription": "Item slug template. Entry collection only. Default: `identifier_field` option value. It’s possible to [localize the slug](https://github.com/sveltia/sveltia-cms#localizing-entry-slugs) or [use a random ID](https://github.com/sveltia/sveltia-cms#using-a-random-id-for-an-entry-slug)."
        },
        "slug_length": {
          "type": "number",
          "description": "The maximum number of characters allowed for an entry slug. Entry collection only. Default: `Infinity`.",
          "markdownDescription": "The maximum number of characters allowed for an entry slug. Entry collection only. Default: `Infinity`."
        },
        "summary": {
          "type": "string",
          "description": "Entry summary template. Entry collection only. Default: `identifier_field`.",
          "markdownDescription": "Entry summary template. Entry collection only. Default: `identifier_field`."
        },
        "sortable_fields": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FieldKeyPath"
              }
            },
            {
              "$ref": "#/definitions/SortableFields"
            }
          ],
          "description": "Custom sortable fields. Entry collection only. Default: `title`, `name`, `date`, `author` and `description`. For a Git backend, commit author and commit date are also included by default. See our [README](https://github.com/sveltia/sveltia-cms#specifying-default-sort-field-and-direction) for details.",
          "markdownDescription": "Custom sortable fields. Entry collection only. Default: `title`, `name`, `date`, `author` and `description`. For a Git backend, commit author and commit date are also included by default. See our [README](https://github.com/sveltia/sveltia-cms#specifying-default-sort-field-and-direction) for details."
        },
        "view_filters": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ViewFilter"
              }
            },
            {
              "$ref": "#/definitions/ViewFilters"
            }
          ],
          "description": "View filters to be used in the entry list. Entry collection only.",
          "markdownDescription": "View filters to be used in the entry list. Entry collection only."
        },
        "view_groups": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ViewGroup"
              }
            },
            {
              "$ref": "#/definitions/ViewGroups"
            }
          ],
          "description": "View groups to be used in the entry list. Entry collection only.",
          "markdownDescription": "View groups to be used in the entry list. Entry collection only."
        },
        "i18n": {
          "anyOf": [
            {
              "$ref": "#/definitions/I18nOptions"
            },
            {
              "type": "boolean"
            }
          ],
          "description": "I18n options. Default: `false`.",
          "markdownDescription": "I18n options. Default: `false`."
        },
        "preview_path": {
          "type": "string",
          "description": "Preview URL path template.",
          "markdownDescription": "Preview URL path template."
        },
        "preview_path_date_field": {
          "type": "string",
          "description": "Date field name used for `preview_path`.",
          "markdownDescription": "Date field name used for `preview_path`."
        },
        "editor": {
          "$ref": "#/definitions/EditorOptions",
          "description": "Editor view options.",
          "markdownDescription": "Editor view options."
        },
        "nested": {
          "$ref": "#/definitions/NestedCollectionOptions",
          "description": "Options for a nested collection. Entry collection only.",
          "markdownDescription": "Options for a nested collection. Entry collection only."
        },
        "meta": {
          "$ref": "#/definitions/CollectionMetaData",
          "description": "Meta data for a nested collection. Entry collection only.",
          "markdownDescription": "Meta data for a nested collection. Entry collection only."
        },
        "index_file": {
          "anyOf": [
            {
              "$ref": "#/definitions/CollectionIndexFile"
            },
            {
              "type": "boolean"
            }
          ],
          "description": "Index file inclusion options. Entry collection only. If `true`, the default index file name is `_index`, which is used for Hugo’s special index file. See our [README](https://github.com/sveltia/sveltia-cms#including-hugos-special-index-file-in-a-folder-collection) for details.",
          "markdownDescription": "Index file inclusion options. Entry collection only. If `true`, the default index file name is `_index`, which is used for Hugo’s special index file. See our [README](https://github.com/sveltia/sveltia-cms#including-hugos-special-index-file-in-a-folder-collection) for details."
        },
        "yaml_quote": {
          "type": "boolean",
          "description": "Whether to double-quote all the strings values if the YAML format is used for file output. Default: `false`. DEPRECATED in favor of the global YAML format options.",
          "markdownDescription": "Whether to double-quote all the strings values if the YAML format is used for file output. Default: `false`. DEPRECATED in favor of the global YAML format options."
        },
        "thumbnail": {
          "anyOf": [
            {
              "$ref": "#/definitions/FieldKeyPath"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/FieldKeyPath"
              }
            }
          ],
          "description": "A field key path to be used to find an entry thumbnail displayed on the entry list. A nested field can be specified using dot notation, e.g. `heroImage.src`. A wildcard in the key path is also supported, e.g. `images.*.src`. Multiple key paths can be specified as an array for fallbacks. If this option is omitted, the `name` of any non-nested, non-empty field using the Image or File widget is used. Entry collection only.",
          "markdownDescription": "A field key path to be used to find an entry thumbnail displayed on the entry list. A nested field can be specified using dot notation, e.g. `heroImage.src`. A wildcard in the key path is also supported, e.g. `images.*.src`. Multiple key paths can be specified as an array for fallbacks. If this option is omitted, the `name` of any non-nested, non-empty field using the Image or File widget is used. Entry collection only."
        },
        "limit": {
          "type": "number",
          "description": "The maximum number of entries that can be created in the collection. Entry collection only. Default: `Infinity`.",
          "markdownDescription": "The maximum number of entries that can be created in the collection. Entry collection only. Default: `Infinity`."
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false,
      "description": "A raw collection defined in the configuration file. Note: In Sveltia CMS, a folder collection is called an entry collection.",
      "markdownDescription": "A raw collection defined in the configuration file. Note: In Sveltia CMS, a folder collection is called an entry collection."
    },
    "FieldKeyPath": {
      "type": "string",
      "description": "An entry field name. It can be written in dot notation like `author.name` if the field is nested with an Object field. For a List subfield, a wildcard can be used like `authors.*.name`. We call this a key path, which is derived from the [IndexedDB API terminology](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#key_path), and use it everywhere, as entry data is managed as a [flatten object](https://www.npmjs.com/package/flat) for easier access.",
      "markdownDescription": "An entry field name. It can be written in dot notation like `author.name` if the field is nested with an Object field. For a List subfield, a wildcard can be used like `authors.*.name`. We call this a key path, which is derived from the [IndexedDB API terminology](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#key_path), and use it everywhere, as entry data is managed as a [flatten object](https://www.npmjs.com/package/flat) for easier access."
    },
    "CollectionFile": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Unique identifier for the file.",
          "markdownDescription": "Unique identifier for the file."
        },
        "label": {
          "type": "string",
          "description": "Label to be displayed in the editor UI. Default: `name` option value.",
          "markdownDescription": "Label to be displayed in the editor UI. Default: `name` option value."
        },
        "icon": {
          "type": "string",
          "description": "Name of a [Material Symbols icon](https://fonts.google.com/icons?icon.set=Material+Symbols) to be displayed in the collection file list and other places. See our [README](https://github.com/sveltia/sveltia-cms#using-a-custom-icon-for-a-collection) for details.",
          "markdownDescription": "Name of a [Material Symbols icon](https://fonts.google.com/icons?icon.set=Material+Symbols) to be displayed in the collection file list and other places. See our [README](https://github.com/sveltia/sveltia-cms#using-a-custom-icon-for-a-collection) for details."
        },
        "file": {
          "type": "string",
          "description": "File path relative to the project root.",
          "markdownDescription": "File path relative to the project root."
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Field"
          },
          "description": "Set of fields to be included in the file.",
          "markdownDescription": "Set of fields to be included in the file."
        },
        "media_folder": {
          "type": "string",
          "description": "Internal media folder path for the collection. This overrides the global or collection-level `media_folder` option.",
          "markdownDescription": "Internal media folder path for the collection. This overrides the global or collection-level `media_folder` option."
        },
        "public_folder": {
          "type": "string",
          "description": "Public media folder path for an entry collection. This overrides the global or collection-level `public_folder` option. Default: `media_folder` option value.",
          "markdownDescription": "Public media folder path for an entry collection. This overrides the global or collection-level `public_folder` option. Default: `media_folder` option value."
        },
        "format": {
          "$ref": "#/definitions/FileFormat",
          "description": "File format. This overrides the collection-level `format` option. Default: `yaml-frontmatter`.",
          "markdownDescription": "File format. This overrides the collection-level `format` option. Default: `yaml-frontmatter`."
        },
        "frontmatter_delimiter": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          ],
          "description": "Delimiters to be used for the front matter format. This overrides the collection-level `frontmatter_delimiter` option. Default: depends on the front matter type.",
          "markdownDescription": "Delimiters to be used for the front matter format. This overrides the collection-level `frontmatter_delimiter` option. Default: depends on the front matter type."
        },
        "i18n": {
          "anyOf": [
            {
              "$ref": "#/definitions/I18nOptions"
            },
            {
              "type": "boolean"
            }
          ],
          "description": "I18n options. Default: `false`.",
          "markdownDescription": "I18n options. Default: `false`."
        },
        "preview_path": {
          "type": "string",
          "description": "Preview URL path template.",
          "markdownDescription": "Preview URL path template."
        },
        "preview_path_date_field": {
          "$ref": "#/definitions/FieldKeyPath",
          "description": "Date field name used for `preview_path`.",
          "markdownDescription": "Date field name used for `preview_path`."
        }
      },
      "required": [
        "name",
        "file",
        "fields"
      ],
      "additionalProperties": false,
      "description": "Single file in a file/singleton collection.",
      "markdownDescription": "Single file in a file/singleton collection."
    },
    "Field": {
      "anyOf": [
        {
          "$ref": "#/definitions/StandardField"
        },
        {
          "$ref": "#/definitions/CustomField"
        }
      ],
      "description": "Entry field.",
      "markdownDescription": "Entry field."
    },
    "StandardField": {
      "anyOf": [
        {
          "$ref": "#/definitions/BooleanField"
        },
        {
          "$ref": "#/definitions/CodeField"
        },
        {
          "$ref": "#/definitions/ColorField"
        },
        {
          "$ref": "#/definitions/ComputeField"
        },
        {
          "$ref": "#/definitions/DateTimeField"
        },
        {
          "$ref": "#/definitions/FileField"
        },
        {
          "$ref": "#/definitions/HiddenField"
        },
        {
          "$ref": "#/definitions/ImageField"
        },
        {
          "$ref": "#/definitions/KeyValueField"
        },
        {
          "$ref": "#/definitions/ListField"
        },
        {
          "$ref": "#/definitions/MapField"
        },
        {
          "$ref": "#/definitions/MarkdownField"
        },
        {
          "$ref": "#/definitions/NumberField"
        },
        {
          "$ref": "#/definitions/ObjectField"
        },
        {
          "$ref": "#/definitions/RelationField"
        },
        {
          "$ref": "#/definitions/SelectField"
        },
        {
          "$ref": "#/definitions/StringField"
        },
        {
          "$ref": "#/definitions/TextField"
        },
        {
          "$ref": "#/definitions/UuidField"
        }
      ],
      "description": "Entry field using a built-in widget.",
      "markdownDescription": "Entry field using a built-in widget."
    },
    "BooleanField": {
      "type": "object",
      "properties": {
        "before_input": {
          "type": "string",
          "description": "An extra label to be displayed before the input UI. Markdown is supported. Default: empty string.",
          "markdownDescription": "An extra label to be displayed before the input UI. Markdown is supported. Default: empty string."
        },
        "after_input": {
          "type": "string",
          "description": "An extra label to be displayed after the input UI. Markdown is supported. Default: empty string.",
          "markdownDescription": "An extra label to be displayed after the input UI. Markdown is supported. Default: empty string."
        },
        "widget": {
          "type": "string",
          "const": "boolean",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "boolean",
          "description": "Default value. Accepts `true` or `false`.",
          "markdownDescription": "Default value. Accepts `true` or `false`."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "Boolean field definition.",
      "markdownDescription": "Boolean field definition."
    },
    "LocaleCode": {
      "type": "string",
      "description": "Standard [IETF locale tag](https://en.wikipedia.org/wiki/IETF_language_tag) like `en` or `en-US`.",
      "markdownDescription": "Standard [IETF locale tag](https://en.wikipedia.org/wiki/IETF_language_tag) like `en` or `en-US`."
    },
    "CodeField": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "const": "code",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          ],
          "description": "Default value. It must be a string if `output_code_only` is `false`. Otherwise it must be an object that match the `keys` option.",
          "markdownDescription": "Default value. It must be a string if `output_code_only` is `false`. Otherwise it must be an object that match the `keys` option."
        },
        "default_language": {
          "type": "string",
          "description": "Default language to be selected, like `js`. See the [Prism documentation](https://prismjs.com/#supported-languages) for a list of supported languages. Default: empty string, which is plaintext.",
          "markdownDescription": "Default language to be selected, like `js`. See the [Prism documentation](https://prismjs.com/#supported-languages) for a list of supported languages. Default: empty string, which is plaintext."
        },
        "allow_language_selection": {
          "type": "boolean",
          "description": "Whether to show a language switcher so that users can change the language mode. Default: `true` (the Decap CMS document is wrong).",
          "markdownDescription": "Whether to show a language switcher so that users can change the language mode. Default: `true` (the Decap CMS document is wrong)."
        },
        "output_code_only": {
          "type": "boolean",
          "description": "Whether to output code snippet only. Default: `false`.",
          "markdownDescription": "Whether to output code snippet only. Default: `false`."
        },
        "keys": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "lang": {
              "type": "string"
            }
          },
          "required": [
            "code",
            "lang"
          ],
          "additionalProperties": false,
          "description": "Output property names. It has no effect if `output_code_only` is `true`. Default: `{ code: 'code', lang: 'lang' }`.",
          "markdownDescription": "Output property names. It has no effect if `output_code_only` is `true`. Default: `{ code: 'code', lang: 'lang' }`."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "Code field definition.",
      "markdownDescription": "Code field definition."
    },
    "ColorField": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "const": "color",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "string",
          "description": "Default value. Accepts a Hex color code in the six-value (`#RRGGBB`) or eight-value (`#RRGGBBAA`) syntax.",
          "markdownDescription": "Default value. Accepts a Hex color code in the six-value (`#RRGGBB`) or eight-value (`#RRGGBBAA`) syntax."
        },
        "allowInput": {
          "type": "boolean",
          "description": "Whether to show a textbox that allows users to manually edit the value. Default: `false`.",
          "markdownDescription": "Whether to show a textbox that allows users to manually edit the value. Default: `false`."
        },
        "enableAlpha": {
          "type": "boolean",
          "description": "Whether to edit/save the alpha channel value. Default: `false`.",
          "markdownDescription": "Whether to edit/save the alpha channel value. Default: `false`."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "Color field definition.",
      "markdownDescription": "Color field definition."
    },
    "ComputeField": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "const": "compute",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "value": {
          "type": "string",
          "description": "Value template, like `posts-{{fields.slug}}`.",
          "markdownDescription": "Value template, like `posts-{{fields.slug}}`."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "value",
        "widget"
      ],
      "description": "Compute field definition.",
      "markdownDescription": "Compute field definition."
    },
    "DateTimeField": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "const": "datetime",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "string",
          "description": "Default value. Accepts a date/time string that matches the `format`, or `{{now}}` to populate the current date/time. Default: empty string.",
          "markdownDescription": "Default value. Accepts a date/time string that matches the `format`, or `{{now}}` to populate the current date/time. Default: empty string."
        },
        "format": {
          "type": "string",
          "description": "Storage format written in [Moment.js tokens](https://momentjs.com/docs/#/displaying/format/). Default: ISO 8601 format.",
          "markdownDescription": "Storage format written in [Moment.js tokens](https://momentjs.com/docs/#/displaying/format/). Default: ISO 8601 format."
        },
        "date_format": {
          "type": [
            "string",
            "boolean"
          ],
          "description": "Date storage format written in [Moment.js tokens](https://momentjs.com/docs/#/displaying/format/) if the value is a string and the `format` option is not defined. If `true`, ISO 8601 format is used unless the `format` option is defined. If `false`, date input/output is disabled.",
          "markdownDescription": "Date storage format written in [Moment.js tokens](https://momentjs.com/docs/#/displaying/format/) if the value is a string and the `format` option is not defined. If `true`, ISO 8601 format is used unless the `format` option is defined. If `false`, date input/output is disabled."
        },
        "time_format": {
          "type": [
            "string",
            "boolean"
          ],
          "description": "Time storage format written in [Moment.js tokens](https://momentjs.com/docs/#/displaying/format/) if the value is a string and the `format` option is not defined. If `true`, ISO 8601 format is used unless the `format` option is defined. If `false`, time input/output is disabled.",
          "markdownDescription": "Time storage format written in [Moment.js tokens](https://momentjs.com/docs/#/displaying/format/) if the value is a string and the `format` option is not defined. If `true`, ISO 8601 format is used unless the `format` option is defined. If `false`, time input/output is disabled."
        },
        "picker_utc": {
          "type": "boolean",
          "description": "Whether to make the date input/output UTC. Default: `false`.",
          "markdownDescription": "Whether to make the date input/output UTC. Default: `false`."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "DateTime field definition.",
      "markdownDescription": "DateTime field definition."
    },
    "FileField": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "const": "file",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "string",
          "description": "Default value. Accepts a file path or complete URL.",
          "markdownDescription": "Default value. Accepts a file path or complete URL."
        },
        "accept": {
          "type": "string",
          "description": "File types that the field should accept. The value would be a comma-separated list of unique file type specifiers, the format used for the HTML [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/accept) attribute.",
          "markdownDescription": "File types that the field should accept. The value would be a comma-separated list of unique file type specifiers, the format used for the HTML [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/accept) attribute."
        },
        "choose_url": {
          "type": "boolean",
          "description": "Whether to show the URL input UI. Default: `true`.",
          "markdownDescription": "Whether to show the URL input UI. Default: `true`."
        },
        "media_folder": {
          "type": "string",
          "description": "Internal media folder path for the field. Default: global or collection-level `media_folder` value.",
          "markdownDescription": "Internal media folder path for the field. Default: global or collection-level `media_folder` value."
        },
        "public_folder": {
          "type": "string",
          "description": "Public media folder path for the field. Default: `media_folder` option value.",
          "markdownDescription": "Public media folder path for the field. Default: `media_folder` option value."
        },
        "media_library": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "config": {
                  "$ref": "#/definitions/DefaultMediaLibraryConfig",
                  "description": "Configuration for the default media library.",
                  "markdownDescription": "Configuration for the default media library."
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "output_filename_only": {
                  "type": "boolean",
                  "description": "Whether to output a file name instead of a full URL. Default: `false`.",
                  "markdownDescription": "Whether to output a file name instead of a full URL. Default: `false`."
                },
                "use_transformations": {
                  "type": "boolean",
                  "description": "Whether to include transformation segments in an output URL. Default: `true`.",
                  "markdownDescription": "Whether to include transformation segments in an output URL. Default: `true`."
                },
                "use_secure_url": {
                  "type": "boolean",
                  "description": "Whether to use an HTTP URL. Default: `true`.",
                  "markdownDescription": "Whether to use an HTTP URL. Default: `true`."
                },
                "config": {
                  "type": "object",
                  "description": "Options to be passed to Cloudinary, such as `multiple`. The `cloud_name` and `api_key` options are required for the global `media_library` option. See the [Cloudinary documentation](https://cloudinary.com/documentation/media_library_widget#2_set_the_configuration_options) for a full list of available options.",
                  "markdownDescription": "Options to be passed to Cloudinary, such as `multiple`. The `cloud_name` and `api_key` options are required for the global `media_library` option. See the [Cloudinary documentation](https://cloudinary.com/documentation/media_library_widget#2_set_the_configuration_options) for a full list of available options."
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "config": {
                  "type": "object",
                  "description": "Options to be passed to Uploadcare, such as `multiple`. The `publicKey` option is required for the global `media_library` option. See the [Uploadcare documentation](https://uploadcare.com/docs/uploads/file-uploader-options/) for a full list of available options.",
                  "markdownDescription": "Options to be passed to Uploadcare, such as `multiple`. The `publicKey` option is required for the global `media_library` option. See the [Uploadcare documentation](https://uploadcare.com/docs/uploads/file-uploader-options/) for a full list of available options."
                },
                "settings": {
                  "$ref": "#/definitions/UploadcareMediaLibrarySettings",
                  "description": "Integration settings.",
                  "markdownDescription": "Integration settings."
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "providers": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/StockAssetProviderName"
                  },
                  "description": "Enabled stock photo/video providers. The stock photo/video section in the asset browser is hidden if an empty array is given. Default: all supported providers.",
                  "markdownDescription": "Enabled stock photo/video providers. The stock photo/video section in the asset browser is hidden if an empty array is given. Default: all supported providers."
                }
              }
            }
          ],
          "description": "Legacy media library option that allows only one library. This overrides the global `media_library` option. Use `media_libraries` instead to support multiple libraries.",
          "markdownDescription": "Legacy media library option that allows only one library. This overrides the global `media_library` option. Use `media_libraries` instead to support multiple libraries."
        },
        "media_libraries": {
          "$ref": "#/definitions/MediaLibraries",
          "description": "Unified media library option that supports multiple libraries. This overrides the global `media_libraries` option.",
          "markdownDescription": "Unified media library option that supports multiple libraries. This overrides the global `media_libraries` option."
        },
        "allow_multiple": {
          "type": "boolean",
          "description": "Whether to enable multiple item selection in an external media library. Default: `true`.",
          "markdownDescription": "Whether to enable multiple item selection in an external media library. Default: `true`."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "File field definition.",
      "markdownDescription": "File field definition."
    },
    "HiddenField": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "const": "hidden",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "description": "Default value. Accepts any data type that can be stored with the configured file format.",
          "markdownDescription": "Default value. Accepts any data type that can be stored with the configured file format."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "Hidden field definition.",
      "markdownDescription": "Hidden field definition."
    },
    "ImageField": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "const": "image",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "string",
          "description": "Default value. Accepts a file path or complete URL.",
          "markdownDescription": "Default value. Accepts a file path or complete URL."
        },
        "accept": {
          "type": "string",
          "description": "File types that the field should accept. The value would be a comma-separated list of unique file type specifiers, the format used for the HTML [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/accept) attribute.",
          "markdownDescription": "File types that the field should accept. The value would be a comma-separated list of unique file type specifiers, the format used for the HTML [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/accept) attribute."
        },
        "choose_url": {
          "type": "boolean",
          "description": "Whether to show the URL input UI. Default: `true`.",
          "markdownDescription": "Whether to show the URL input UI. Default: `true`."
        },
        "media_folder": {
          "type": "string",
          "description": "Internal media folder path for the field. Default: global or collection-level `media_folder` value.",
          "markdownDescription": "Internal media folder path for the field. Default: global or collection-level `media_folder` value."
        },
        "public_folder": {
          "type": "string",
          "description": "Public media folder path for the field. Default: `media_folder` option value.",
          "markdownDescription": "Public media folder path for the field. Default: `media_folder` option value."
        },
        "media_library": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "config": {
                  "$ref": "#/definitions/DefaultMediaLibraryConfig",
                  "description": "Configuration for the default media library.",
                  "markdownDescription": "Configuration for the default media library."
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "output_filename_only": {
                  "type": "boolean",
                  "description": "Whether to output a file name instead of a full URL. Default: `false`.",
                  "markdownDescription": "Whether to output a file name instead of a full URL. Default: `false`."
                },
                "use_transformations": {
                  "type": "boolean",
                  "description": "Whether to include transformation segments in an output URL. Default: `true`.",
                  "markdownDescription": "Whether to include transformation segments in an output URL. Default: `true`."
                },
                "use_secure_url": {
                  "type": "boolean",
                  "description": "Whether to use an HTTP URL. Default: `true`.",
                  "markdownDescription": "Whether to use an HTTP URL. Default: `true`."
                },
                "config": {
                  "type": "object",
                  "description": "Options to be passed to Cloudinary, such as `multiple`. The `cloud_name` and `api_key` options are required for the global `media_library` option. See the [Cloudinary documentation](https://cloudinary.com/documentation/media_library_widget#2_set_the_configuration_options) for a full list of available options.",
                  "markdownDescription": "Options to be passed to Cloudinary, such as `multiple`. The `cloud_name` and `api_key` options are required for the global `media_library` option. See the [Cloudinary documentation](https://cloudinary.com/documentation/media_library_widget#2_set_the_configuration_options) for a full list of available options."
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "config": {
                  "type": "object",
                  "description": "Options to be passed to Uploadcare, such as `multiple`. The `publicKey` option is required for the global `media_library` option. See the [Uploadcare documentation](https://uploadcare.com/docs/uploads/file-uploader-options/) for a full list of available options.",
                  "markdownDescription": "Options to be passed to Uploadcare, such as `multiple`. The `publicKey` option is required for the global `media_library` option. See the [Uploadcare documentation](https://uploadcare.com/docs/uploads/file-uploader-options/) for a full list of available options."
                },
                "settings": {
                  "$ref": "#/definitions/UploadcareMediaLibrarySettings",
                  "description": "Integration settings.",
                  "markdownDescription": "Integration settings."
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "$ref": "#/definitions/MediaLibraryName",
                  "description": "Library name.",
                  "markdownDescription": "Library name."
                },
                "providers": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/StockAssetProviderName"
                  },
                  "description": "Enabled stock photo/video providers. The stock photo/video section in the asset browser is hidden if an empty array is given. Default: all supported providers.",
                  "markdownDescription": "Enabled stock photo/video providers. The stock photo/video section in the asset browser is hidden if an empty array is given. Default: all supported providers."
                }
              }
            }
          ],
          "description": "Legacy media library option that allows only one library. This overrides the global `media_library` option. Use `media_libraries` instead to support multiple libraries.",
          "markdownDescription": "Legacy media library option that allows only one library. This overrides the global `media_library` option. Use `media_libraries` instead to support multiple libraries."
        },
        "media_libraries": {
          "$ref": "#/definitions/MediaLibraries",
          "description": "Unified media library option that supports multiple libraries. This overrides the global `media_libraries` option.",
          "markdownDescription": "Unified media library option that supports multiple libraries. This overrides the global `media_libraries` option."
        },
        "allow_multiple": {
          "type": "boolean",
          "description": "Whether to enable multiple item selection in an external media library. Default: `true`.",
          "markdownDescription": "Whether to enable multiple item selection in an external media library. Default: `true`."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "Image field definition.",
      "markdownDescription": "Image field definition."
    },
    "KeyValueField": {
      "type": "object",
      "properties": {
        "min": {
          "type": "number",
          "description": "Minimum number of items that can be added. Default: `0`.",
          "markdownDescription": "Minimum number of items that can be added. Default: `0`."
        },
        "max": {
          "type": "number",
          "description": "Maximum number of items that can be added. Default: `Infinity`.",
          "markdownDescription": "Maximum number of items that can be added. Default: `Infinity`."
        },
        "widget": {
          "type": "string",
          "const": "keyvalue",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Default key-value pairs.",
          "markdownDescription": "Default key-value pairs."
        },
        "key_label": {
          "type": "string",
          "description": "Label for the key column. Default: Key.",
          "markdownDescription": "Label for the key column. Default: Key."
        },
        "value_label": {
          "type": "string",
          "description": "Label for the value column. Default: Value.",
          "markdownDescription": "Label for the value column. Default: Value."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "KeyValue field definition.",
      "markdownDescription": "KeyValue field definition."
    },
    "ListField": {
      "type": "object",
      "properties": {
        "types": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/VariableFieldType"
          },
          "description": "Set of nested Object fields to be selected or added.",
          "markdownDescription": "Set of nested Object fields to be selected or added."
        },
        "typeKey": {
          "type": "string",
          "description": "Property name to store the type name in nested objects. Default: `type`.",
          "markdownDescription": "Property name to store the type name in nested objects. Default: `type`."
        },
        "min": {
          "type": "number",
          "description": "Minimum number of items that can be added. Default: `0`.",
          "markdownDescription": "Minimum number of items that can be added. Default: `0`."
        },
        "max": {
          "type": "number",
          "description": "Maximum number of items that can be added. Default: `Infinity`.",
          "markdownDescription": "Maximum number of items that can be added. Default: `Infinity`."
        },
        "widget": {
          "type": "string",
          "const": "list",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "array",
              "items": {
                "type": "object"
              }
            },
            {
              "type": "object"
            }
          ],
          "description": "Default value. The format depends on how the field is configured, with or without `field`, `fields` or `types`. See the document for details.",
          "markdownDescription": "Default value. The format depends on how the field is configured, with or without `field`, `fields` or `types`. See the document for details."
        },
        "allow_add": {
          "type": "boolean",
          "description": "Whether to allow users to add new items to the list. Default: `true`.",
          "markdownDescription": "Whether to allow users to add new items to the list. Default: `true`."
        },
        "allow_remove": {
          "type": "boolean",
          "description": "Whether to allow users to remove items from the list. Default: `true`.",
          "markdownDescription": "Whether to allow users to remove items from the list. Default: `true`."
        },
        "allow_reorder": {
          "type": "boolean",
          "description": "Whether to allow users to reorder items in the list. Default: `true`.",
          "markdownDescription": "Whether to allow users to reorder items in the list. Default: `true`."
        },
        "add_to_top": {
          "type": "boolean",
          "description": "Whether to add new items to the top of the list instead of the bottom. Default: `false`.",
          "markdownDescription": "Whether to add new items to the top of the list instead of the bottom. Default: `false`."
        },
        "label_singular": {
          "type": "string",
          "description": "Label to be displayed on the Add button. Default: `label` field value.",
          "markdownDescription": "Label to be displayed on the Add button. Default: `label` field value."
        },
        "summary": {
          "type": "string",
          "description": "Template of a label to be displayed on a collapsed list item.",
          "markdownDescription": "Template of a label to be displayed on a collapsed list item."
        },
        "collapsed": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "auto"
            }
          ],
          "description": "Whether to collapse the list items by default. Default: `false`. If set to `auto`, the UI is collapsed if the item has any filled subfields and expanded if all the subfields are empty.",
          "markdownDescription": "Whether to collapse the list items by default. Default: `false`. If set to `auto`, the UI is collapsed if the item has any filled subfields and expanded if all the subfields are empty."
        },
        "minimize_collapsed": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "auto"
            }
          ],
          "description": "Whether to collapse the entire list. Default: `false`. If set to `auto`, the UI is collapsed if the list has any items and expanded if it’s empty.",
          "markdownDescription": "Whether to collapse the entire list. Default: `false`. If set to `auto`, the UI is collapsed if the list has any items and expanded if it’s empty."
        },
        "field": {
          "$ref": "#/definitions/Field",
          "description": "Single field to be included in a list item.",
          "markdownDescription": "Single field to be included in a list item."
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Field"
          },
          "description": "Set of fields to be included in a list item.",
          "markdownDescription": "Set of fields to be included in a list item."
        },
        "root": {
          "type": "boolean",
          "description": "Whether to save the field value at the top-level of the data file without the field name. If the `single_file` i18n structure is enabled, the lists will still be saved under locale keys. Default: `false`. See our [README](https://github.com/sveltia/sveltia-cms#editing-data-files-with-a-top-level-list) for details.",
          "markdownDescription": "Whether to save the field value at the top-level of the data file without the field name. If the `single_file` i18n structure is enabled, the lists will still be saved under locale keys. Default: `false`. See our [README](https://github.com/sveltia/sveltia-cms#editing-data-files-with-a-top-level-list) for details."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "List field definition.",
      "markdownDescription": "List field definition."
    },
    "VariableFieldType": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Unique identifier for the type.",
          "markdownDescription": "Unique identifier for the type."
        },
        "label": {
          "type": "string",
          "description": "Label of the type to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the type to be displayed in the editor UI. Default: `name` field value."
        },
        "widget": {
          "type": "string",
          "const": "object",
          "description": "Widget name. Values other than `object` are ignored.",
          "markdownDescription": "Widget name. Values other than `object` are ignored."
        },
        "summary": {
          "type": "string",
          "description": "Template of a label to be displayed on a collapsed object.",
          "markdownDescription": "Template of a label to be displayed on a collapsed object."
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Field"
          },
          "description": "Set of subfields. This option can be omitted; in that case, only the `type` property will be saved.",
          "markdownDescription": "Set of subfields. This option can be omitted; in that case, only the `type` property will be saved."
        }
      },
      "required": [
        "name"
      ],
      "additionalProperties": false,
      "description": "Variable type for List/Object fields.",
      "markdownDescription": "Variable type for List/Object fields."
    },
    "MapField": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "const": "map",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "string",
          "description": "Default value. Accepts a stringified single [GeoJSON](https://geojson.org/) geometry object that contains `type` and `coordinates` properties.",
          "markdownDescription": "Default value. Accepts a stringified single [GeoJSON](https://geojson.org/) geometry object that contains `type` and `coordinates` properties."
        },
        "decimals": {
          "type": "number",
          "description": "Precision of coordinates to be saved. Default: `7`.",
          "markdownDescription": "Precision of coordinates to be saved. Default: `7`."
        },
        "type": {
          "type": "string",
          "enum": [
            "Point",
            "LineString",
            "Polygon"
          ],
          "description": "Geometry type. Default: `Point`.",
          "markdownDescription": "Geometry type. Default: `Point`."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "Map field definition.",
      "markdownDescription": "Map field definition."
    },
    "MarkdownField": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "const": "markdown",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "string",
          "description": "Default value.",
          "markdownDescription": "Default value."
        },
        "minimal": {
          "type": "boolean",
          "description": "Whether to minimize the toolbar height.",
          "markdownDescription": "Whether to minimize the toolbar height."
        },
        "buttons": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RichTextEditorButtonName"
          },
          "description": "Names of formatting buttons and menu items to be enabled in the editor UI. Default: all the supported button names.",
          "markdownDescription": "Names of formatting buttons and menu items to be enabled in the editor UI. Default: all the supported button names."
        },
        "editor_components": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/definitions/RichTextEditorComponentName"
              },
              {
                "type": "string"
              }
            ]
          },
          "description": "Names of components to be enabled in the editor UI. This may include custom component names. Default: all the built-in component names.",
          "markdownDescription": "Names of components to be enabled in the editor UI. This may include custom component names. Default: all the built-in component names."
        },
        "modes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RichTextEditorMode"
          },
          "description": "Editor modes to be enabled. If it’s `[raw, rich_text]`, rich text mode is disabled by default. Default: `[rich_text, raw]`.",
          "markdownDescription": "Editor modes to be enabled. If it’s `[raw, rich_text]`, rich text mode is disabled by default. Default: `[rich_text, raw]`."
        },
        "sanitize_preview": {
          "type": "boolean",
          "description": "Whether to sanitize the preview HTML. Default: `false`.",
          "markdownDescription": "Whether to sanitize the preview HTML. Default: `false`."
        },
        "linked_images": {
          "type": "boolean",
          "description": "Whether to enable the linked images feature for the built-in `image` component. Default: `true`. When enabled, the image component provides an additional text field for specifying a URL to wrap the image as a link. The resulting Markdown output will be in the format `[![alt](src)](link)`, where clicking the image navigates to the provided link. This feature can be disabled if it causes conflicts with certain frameworks.",
          "markdownDescription": "Whether to enable the linked images feature for the built-in `image` component. Default: `true`. When enabled, the image component provides an additional text field for specifying a URL to wrap the image as a link. The resulting Markdown output will be in the format `[![alt](src)](link)`, where clicking the image navigates to the provided link. This feature can be disabled if it causes conflicts with certain frameworks."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "Markdown field definition.",
      "markdownDescription": "Markdown field definition."
    },
    "RichTextEditorButtonName": {
      "type": "string",
      "enum": [
        "bold",
        "italic",
        "code",
        "link",
        "heading-one",
        "heading-two",
        "heading-three",
        "heading-four",
        "heading-five",
        "heading-six",
        "quote",
        "bulleted-list",
        "numbered-list"
      ],
      "description": "Supported button name for the rich text editor.",
      "markdownDescription": "Supported button name for the rich text editor."
    },
    "RichTextEditorComponentName": {
      "type": "string",
      "enum": [
        "code-block",
        "image"
      ],
      "description": "Built-in editor component name for the rich text editor.",
      "markdownDescription": "Built-in editor component name for the rich text editor."
    },
    "RichTextEditorMode": {
      "type": "string",
      "enum": [
        "rich_text",
        "raw"
      ],
      "description": "Supported mode name for the rich text editor.",
      "markdownDescription": "Supported mode name for the rich text editor."
    },
    "NumberField": {
      "type": "object",
      "properties": {
        "before_input": {
          "type": "string",
          "description": "An extra label to be displayed before the input UI. Markdown is supported. Default: empty string.",
          "markdownDescription": "An extra label to be displayed before the input UI. Markdown is supported. Default: empty string."
        },
        "after_input": {
          "type": "string",
          "description": "An extra label to be displayed after the input UI. Markdown is supported. Default: empty string.",
          "markdownDescription": "An extra label to be displayed after the input UI. Markdown is supported. Default: empty string."
        },
        "widget": {
          "type": "string",
          "const": "number",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": [
            "number",
            "string"
          ],
          "description": "Default value.",
          "markdownDescription": "Default value."
        },
        "value_type": {
          "type": "string",
          "description": "Type of value to be saved. Default: `int`.",
          "markdownDescription": "Type of value to be saved. Default: `int`."
        },
        "min": {
          "type": "number",
          "description": "Minimum value that can be entered in the input. Default: `-Infinity`.",
          "markdownDescription": "Minimum value that can be entered in the input. Default: `-Infinity`."
        },
        "max": {
          "type": "number",
          "description": "Maximum value that can be entered in the input. Default: `Infinity`.",
          "markdownDescription": "Maximum value that can be entered in the input. Default: `Infinity`."
        },
        "step": {
          "type": "number",
          "description": "Number to increase/decrease with the arrow key/button. Default: `1`.",
          "markdownDescription": "Number to increase/decrease with the arrow key/button. Default: `1`."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "Number field definition.",
      "markdownDescription": "Number field definition."
    },
    "ObjectField": {
      "type": "object",
      "properties": {
        "types": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/VariableFieldType"
          },
          "description": "Set of nested Object fields to be selected or added.",
          "markdownDescription": "Set of nested Object fields to be selected or added."
        },
        "typeKey": {
          "type": "string",
          "description": "Property name to store the type name in nested objects. Default: `type`.",
          "markdownDescription": "Property name to store the type name in nested objects. Default: `type`."
        },
        "widget": {
          "type": "string",
          "const": "object",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "object",
          "description": "Default values.",
          "markdownDescription": "Default values."
        },
        "collapsed": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "auto"
            }
          ],
          "description": "Whether to collapse the object by default. Default: `false`. If set to `auto`, the UI is collapsed if the object has any filled subfields and expanded if all the subfields are empty.",
          "markdownDescription": "Whether to collapse the object by default. Default: `false`. If set to `auto`, the UI is collapsed if the object has any filled subfields and expanded if all the subfields are empty."
        },
        "summary": {
          "type": "string",
          "description": "Template of a label to be displayed on a collapsed object.",
          "markdownDescription": "Template of a label to be displayed on a collapsed object."
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Field"
          },
          "description": "Set of fields to be included.",
          "markdownDescription": "Set of fields to be included."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "fields",
        "name",
        "widget"
      ],
      "description": "Object field definition.",
      "markdownDescription": "Object field definition."
    },
    "RelationField": {
      "type": "object",
      "properties": {
        "multiple": {
          "type": "boolean",
          "description": "Whether to accept multiple values. Default: `false`.",
          "markdownDescription": "Whether to accept multiple values. Default: `false`."
        },
        "min": {
          "type": "number",
          "description": "Minimum number of items that can be selected. Ignored if `multiple` is `false`. Default: `0`.",
          "markdownDescription": "Minimum number of items that can be selected. Ignored if `multiple` is `false`. Default: `0`."
        },
        "max": {
          "type": "number",
          "description": "Maximum number of items that can be selected. Ignored if `multiple` is `false`. Default: `Infinity`.",
          "markdownDescription": "Maximum number of items that can be selected. Ignored if `multiple` is `false`. Default: `Infinity`."
        },
        "dropdown_threshold": {
          "type": "number",
          "description": "Maximum number of options to be displayed as radio buttons (single-select) or checkboxes (multi-select) rather than a dropdown list. Default: `5`.",
          "markdownDescription": "Maximum number of options to be displayed as radio buttons (single-select) or checkboxes (multi-select) rather than a dropdown list. Default: `5`."
        },
        "widget": {
          "type": "string",
          "const": "relation",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "anyOf": [
            {},
            {
              "type": "array",
              "items": {}
            }
          ],
          "description": "Default value(s), which should match the options. When `multiple` is `false`, it should be a single value that matches the `value_field` option.",
          "markdownDescription": "Default value(s), which should match the options. When `multiple` is `false`, it should be a single value that matches the `value_field` option."
        },
        "collection": {
          "type": "string",
          "description": "Referenced collection name. Use `_singletons` for the singleton collection.",
          "markdownDescription": "Referenced collection name. Use `_singletons` for the singleton collection."
        },
        "file": {
          "type": "string",
          "description": "Referenced file identifier for a file/singleton collection. Required if the `collection` is defined.",
          "markdownDescription": "Referenced file identifier for a file/singleton collection. Required if the `collection` is defined."
        },
        "value_field": {
          "anyOf": [
            {
              "$ref": "#/definitions/FieldKeyPath"
            },
            {
              "type": "string"
            }
          ],
          "description": "Field name to be stored as the value, or `{{slug}}` (entry slug). It can contain a locale prefix like `{{locale}}/{{slug}}` if i18n is enabled. Default: `{{slug}}`.",
          "markdownDescription": "Field name to be stored as the value, or `{{slug}}` (entry slug). It can contain a locale prefix like `{{locale}}/{{slug}}` if i18n is enabled. Default: `{{slug}}`."
        },
        "display_fields": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/definitions/FieldKeyPath"
              },
              {
                "type": "string"
              }
            ]
          },
          "description": "Name of fields to be displayed. It can contain string templates. Default: `value_field` field value or the referenced collection’s `identifier_field`, which is `title` by default.",
          "markdownDescription": "Name of fields to be displayed. It can contain string templates. Default: `value_field` field value or the referenced collection’s `identifier_field`, which is `title` by default."
        },
        "search_fields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/FieldKeyPath"
          },
          "description": "Name of fields to be searched. Default: `display_fields` field value.",
          "markdownDescription": "Name of fields to be searched. Default: `display_fields` field value."
        },
        "filters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RelationFieldFilterOptions"
          },
          "description": "Entry filter options.",
          "markdownDescription": "Entry filter options."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "collection",
        "name",
        "widget"
      ],
      "description": "Relation field definition.",
      "markdownDescription": "Relation field definition."
    },
    "RelationFieldFilterOptions": {
      "type": "object",
      "properties": {
        "field": {
          "$ref": "#/definitions/FieldKeyPath",
          "description": "Field name.",
          "markdownDescription": "Field name."
        },
        "values": {
          "type": "array",
          "items": {},
          "description": "One or more values to be matched.",
          "markdownDescription": "One or more values to be matched."
        }
      },
      "required": [
        "field",
        "values"
      ],
      "additionalProperties": false,
      "description": "Entry filter options for a Relation field.",
      "markdownDescription": "Entry filter options for a Relation field."
    },
    "SelectField": {
      "type": "object",
      "properties": {
        "multiple": {
          "type": "boolean",
          "description": "Whether to accept multiple values. Default: `false`.",
          "markdownDescription": "Whether to accept multiple values. Default: `false`."
        },
        "min": {
          "type": "number",
          "description": "Minimum number of items that can be selected. Ignored if `multiple` is `false`. Default: `0`.",
          "markdownDescription": "Minimum number of items that can be selected. Ignored if `multiple` is `false`. Default: `0`."
        },
        "max": {
          "type": "number",
          "description": "Maximum number of items that can be selected. Ignored if `multiple` is `false`. Default: `Infinity`.",
          "markdownDescription": "Maximum number of items that can be selected. Ignored if `multiple` is `false`. Default: `Infinity`."
        },
        "dropdown_threshold": {
          "type": "number",
          "description": "Maximum number of options to be displayed as radio buttons (single-select) or checkboxes (multi-select) rather than a dropdown list. Default: `5`.",
          "markdownDescription": "Maximum number of options to be displayed as radio buttons (single-select) or checkboxes (multi-select) rather than a dropdown list. Default: `5`."
        },
        "widget": {
          "type": "string",
          "const": "select",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "anyOf": [
            {},
            {
              "type": "array",
              "items": {}
            }
          ],
          "description": "Default value(s), which should match the options. When `multiple` is `false`, it should be a single value that matches the `value` option.",
          "markdownDescription": "Default value(s), which should match the options. When `multiple` is `false`, it should be a single value that matches the `value` option."
        },
        "options": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                },
                "required": [
                  "label",
                  "value"
                ],
                "additionalProperties": false
              }
            }
          ],
          "description": "Options.",
          "markdownDescription": "Options."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "options",
        "widget"
      ],
      "description": "Select field definition.",
      "markdownDescription": "Select field definition."
    },
    "StringField": {
      "type": "object",
      "properties": {
        "minlength": {
          "type": "number",
          "description": "Minimum number of characters that can be entered in the input. Default: `0`.",
          "markdownDescription": "Minimum number of characters that can be entered in the input. Default: `0`."
        },
        "maxlength": {
          "type": "number",
          "description": "Maximum number of characters that can be entered in the input. Default: `Infinity`.",
          "markdownDescription": "Maximum number of characters that can be entered in the input. Default: `Infinity`."
        },
        "before_input": {
          "type": "string",
          "description": "An extra label to be displayed before the input UI. Markdown is supported. Default: empty string.",
          "markdownDescription": "An extra label to be displayed before the input UI. Markdown is supported. Default: empty string."
        },
        "after_input": {
          "type": "string",
          "description": "An extra label to be displayed after the input UI. Markdown is supported. Default: empty string.",
          "markdownDescription": "An extra label to be displayed after the input UI. Markdown is supported. Default: empty string."
        },
        "widget": {
          "type": "string",
          "const": "string",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "string",
          "description": "Default value.",
          "markdownDescription": "Default value."
        },
        "type": {
          "type": "string",
          "enum": [
            "text",
            "url",
            "email"
          ],
          "description": "Data type. It’s useful when the input value needs a validation. Default: `text`.",
          "markdownDescription": "Data type. It’s useful when the input value needs a validation. Default: `text`."
        },
        "prefix": {
          "type": "string",
          "description": "A string to be prepended to the value. Default: empty string.",
          "markdownDescription": "A string to be prepended to the value. Default: empty string."
        },
        "suffix": {
          "type": "string",
          "description": "A string to be appended to the value. Default: empty string.",
          "markdownDescription": "A string to be appended to the value. Default: empty string."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name"
      ],
      "description": "String field definition.",
      "markdownDescription": "String field definition."
    },
    "TextField": {
      "type": "object",
      "properties": {
        "minlength": {
          "type": "number",
          "description": "Minimum number of characters that can be entered in the input. Default: `0`.",
          "markdownDescription": "Minimum number of characters that can be entered in the input. Default: `0`."
        },
        "maxlength": {
          "type": "number",
          "description": "Maximum number of characters that can be entered in the input. Default: `Infinity`.",
          "markdownDescription": "Maximum number of characters that can be entered in the input. Default: `Infinity`."
        },
        "widget": {
          "type": "string",
          "const": "text",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "string",
          "description": "Default value.",
          "markdownDescription": "Default value."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "Text field definition.",
      "markdownDescription": "Text field definition."
    },
    "UuidField": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "const": "uuid",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "default": {
          "type": "string",
          "description": "Default value.",
          "markdownDescription": "Default value."
        },
        "prefix": {
          "type": "string",
          "description": "A string to be prepended to the value. Default: empty string.",
          "markdownDescription": "A string to be prepended to the value. Default: empty string."
        },
        "use_b32_encoding": {
          "type": "boolean",
          "description": "Whether to encode the value with Base32. Default: `false`.",
          "markdownDescription": "Whether to encode the value with Base32. Default: `false`."
        },
        "read_only": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `true`.",
          "markdownDescription": "Whether to make the field read-only. Default: `true`."
        },
        "required": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            }
          ],
          "description": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean.",
          "markdownDescription": "Whether to make data input on the field required. Default: `true`. This option also affects data output if the `omit_empty_optional_fields` global output option is `true`. If i18n is enabled and the field doesn’t require input in all locales, required locale codes can be passed as an array like `[en, fr]` instead of a boolean."
        },
        "readonly": {
          "type": "boolean",
          "description": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users.",
          "markdownDescription": "Whether to make the field read-only. Default: `false`. This is useful when a `default` value is provided and the field should not be editable by users."
        },
        "pattern": {
          "type": "array",
          "minItems": 2,
          "items": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "format": "regex"
                }
              ]
            },
            {
              "type": "string"
            }
          ],
          "maxItems": 2,
          "description": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields.",
          "markdownDescription": "Validation format. The first argument is a regular expression matching pattern for a valid input value, and the second argument is an error message. This option has no effect on a List or Object field with subfields."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "UUID field definition.",
      "markdownDescription": "UUID field definition."
    },
    "CustomField": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "description": "Widget name.",
          "markdownDescription": "Widget name."
        },
        "name": {
          "type": "string",
          "description": "Unique identifier for the field. It cannot include periods and spaces.",
          "markdownDescription": "Unique identifier for the field. It cannot include periods and spaces."
        },
        "label": {
          "type": "string",
          "description": "Label of the field to be displayed in the editor UI. Default: `name` field value.",
          "markdownDescription": "Label of the field to be displayed in the editor UI. Default: `name` field value."
        },
        "comment": {
          "type": "string",
          "description": "Short description of the field to be displayed in the editor UI.",
          "markdownDescription": "Short description of the field to be displayed in the editor UI."
        },
        "hint": {
          "type": "string",
          "description": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links.",
          "markdownDescription": "Help message to be displayed below the input UI. Limited Markdown formatting is supported: bold, italic, strikethrough and links."
        },
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview of the field. Default: `true`.",
          "markdownDescription": "Whether to show the preview of the field. Default: `true`."
        },
        "i18n": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string",
              "const": "duplicate"
            },
            {
              "type": "string",
              "const": "translate"
            },
            {
              "type": "string",
              "const": "none"
            }
          ],
          "description": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option.",
          "markdownDescription": "Whether to enable the editor UI in locales other than the default locale. Default: `false`. `duplicate` disables the UI in non-default like `false` but automatically copies the default locale’s value to other locales. `translate` and `none` are aliases of `true` and `false`, respectively. This option only works when i18n is set up with the global and collection-level `i18n` option."
        }
      },
      "required": [
        "name",
        "widget"
      ],
      "description": "Entry field using a custom widget.",
      "markdownDescription": "Entry field using a custom widget."
    },
    "FileFormat": {
      "anyOf": [
        {
          "type": "string",
          "const": "yml"
        },
        {
          "type": "string",
          "const": "yaml"
        },
        {
          "type": "string",
          "const": "toml"
        },
        {
          "type": "string",
          "const": "json"
        },
        {
          "type": "string",
          "const": "frontmatter"
        },
        {
          "$ref": "#/definitions/FrontMatterFormat"
        }
      ],
      "description": "Supported file format.",
      "markdownDescription": "Supported file format."
    },
    "FrontMatterFormat": {
      "type": "string",
      "enum": [
        "yaml-frontmatter",
        "toml-frontmatter",
        "json-frontmatter"
      ],
      "description": "Supported Markdown front matter format.",
      "markdownDescription": "Supported Markdown front matter format."
    },
    "I18nOptions": {
      "type": "object",
      "properties": {
        "structure": {
          "$ref": "#/definitions/I18nFileStructure",
          "description": "File structure for entry collections. File/singleton collection must define the structure using `{{locale}}` in the `file` option.",
          "markdownDescription": "File structure for entry collections. File/singleton collection must define the structure using `{{locale}}` in the `file` option."
        },
        "locales": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/LocaleCode"
          },
          "description": "List of all available locales.",
          "markdownDescription": "List of all available locales."
        },
        "default_locale": {
          "$ref": "#/definitions/LocaleCode",
          "description": "Default locale. Default: first locale in the `locales` option.",
          "markdownDescription": "Default locale. Default: first locale in the `locales` option."
        },
        "initial_locales": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "$ref": "#/definitions/LocaleCode"
              }
            },
            {
              "type": "string",
              "const": "all"
            },
            {
              "type": "string",
              "const": "default"
            }
          ],
          "description": "Locales to be enabled when creating a new entry draft. If this option is used, users will be able to disable the output of non-default locales through the UI. See our [README](https://github.com/sveltia/sveltia-cms#disabling-non-default-locale-content) for details.",
          "markdownDescription": "Locales to be enabled when creating a new entry draft. If this option is used, users will be able to disable the output of non-default locales through the UI. See our [README](https://github.com/sveltia/sveltia-cms#disabling-non-default-locale-content) for details."
        },
        "save_all_locales": {
          "type": "boolean",
          "description": "Whether to save collection entries in all the locales. If `false`, users will be able to disable the output of non-default locales through the UI. See our [README](https://github.com/sveltia/sveltia-cms#disabling-non-default-locale-content) for details.",
          "markdownDescription": "Whether to save collection entries in all the locales. If `false`, users will be able to disable the output of non-default locales through the UI. See our [README](https://github.com/sveltia/sveltia-cms#disabling-non-default-locale-content) for details."
        },
        "canonical_slug": {
          "type": "object",
          "properties": {
            "key": {
              "type": "string"
            },
            "value": {
              "type": "string"
            }
          },
          "additionalProperties": false,
          "description": "Property name and value template used to add a canonical slug to entry files, which helps Sveltia CMS and some frameworks to link localized files when entry slugs are localized. The default property name is `translationKey` used in Hugo’s multilingual support, and the default value is the default locale’s slug. See our [README](https://github.com/sveltia/sveltia-cms#localizing-entry-slugs) for details.",
          "markdownDescription": "Property name and value template used to add a canonical slug to entry files, which helps Sveltia CMS and some frameworks to link localized files when entry slugs are localized. The default property name is `translationKey` used in Hugo’s multilingual support, and the default value is the default locale’s slug. See our [README](https://github.com/sveltia/sveltia-cms#localizing-entry-slugs) for details."
        },
        "omit_default_locale_from_filename": {
          "type": "boolean",
          "description": "Whether to exclude the default locale from entry filenames. Default: `false`. This option applies to entry collections with the `multiple_files` i18n structure enabled, as well as to file/singleton collection items with the `file` path ending with `.{{locale}}.<extension>`, aiming to support [Zola’s multilingual sites](https://www.getzola.org/documentation/content/multilingual/).",
          "markdownDescription": "Whether to exclude the default locale from entry filenames. Default: `false`. This option applies to entry collections with the `multiple_files` i18n structure enabled, as well as to file/singleton collection items with the `file` path ending with `.{{locale}}.<extension>`, aiming to support [Zola’s multilingual sites](https://www.getzola.org/documentation/content/multilingual/)."
        }
      },
      "required": [
        "structure",
        "locales"
      ],
      "additionalProperties": false,
      "description": "Global, collection-level or collection file-level i18n options.",
      "markdownDescription": "Global, collection-level or collection file-level i18n options."
    },
    "I18nFileStructure": {
      "type": "string",
      "enum": [
        "single_file",
        "multiple_files",
        "multiple_folders",
        "multiple_folders_i18n_root"
      ],
      "description": "Internationalization (i18n) file structure type.",
      "markdownDescription": "Internationalization (i18n) file structure type."
    },
    "CollectionFilter": {
      "type": "object",
      "properties": {
        "field": {
          "$ref": "#/definitions/FieldKeyPath",
          "description": "Field name.",
          "markdownDescription": "Field name."
        },
        "value": {
          "anyOf": [
            {},
            {
              "type": "array",
              "items": {}
            }
          ],
          "description": "Field value. `null` can be used to match an undefined field. Multiple values can be defined with an array. This option or `pattern` is required.",
          "markdownDescription": "Field value. `null` can be used to match an undefined field. Multiple values can be defined with an array. This option or `pattern` is required."
        },
        "pattern": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "string",
              "format": "regex"
            }
          ],
          "description": "Regular expression matching pattern.",
          "markdownDescription": "Regular expression matching pattern."
        }
      },
      "required": [
        "field"
      ],
      "additionalProperties": false,
      "description": "Collection filter options.",
      "markdownDescription": "Collection filter options."
    },
    "FileExtension": {
      "type": "string",
      "description": "Supported file extension. Actually it can be any string.",
      "markdownDescription": "Supported file extension. Actually it can be any string."
    },
    "SortableFields": {
      "type": "object",
      "properties": {
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/FieldKeyPath"
          },
          "description": "A list of sortable field names.",
          "markdownDescription": "A list of sortable field names."
        },
        "default": {
          "$ref": "#/definitions/SortableFieldsDefaultOptions",
          "description": "Default sort settings. See our [README](https://github.com/sveltia/sveltia-cms#specifying-default-sort-field-and-direction) for details.",
          "markdownDescription": "Default sort settings. See our [README](https://github.com/sveltia/sveltia-cms#specifying-default-sort-field-and-direction) for details."
        }
      },
      "required": [
        "fields"
      ],
      "additionalProperties": false,
      "description": "A collection’s advanced sortable fields definition, which is compatible with Static CMS.",
      "markdownDescription": "A collection’s advanced sortable fields definition, which is compatible with Static CMS."
    },
    "SortableFieldsDefaultOptions": {
      "type": "object",
      "properties": {
        "field": {
          "$ref": "#/definitions/FieldKeyPath",
          "description": "A field name to be sorted by default.",
          "markdownDescription": "A field name to be sorted by default."
        },
        "direction": {
          "type": "string",
          "enum": [
            "ascending",
            "descending",
            "Ascending",
            "Descending",
            "None"
          ],
          "description": "Default sort direction. Title case values are supported for Static CMS compatibility. However, `None` is the same as `ascending`. Default: `ascending`.",
          "markdownDescription": "Default sort direction. Title case values are supported for Static CMS compatibility. However, `None` is the same as `ascending`. Default: `ascending`."
        }
      },
      "required": [
        "field"
      ],
      "additionalProperties": false,
      "description": "The default options for the sortable fields.",
      "markdownDescription": "The default options for the sortable fields."
    },
    "ViewFilter": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Unique identifier for the filter.",
          "markdownDescription": "Unique identifier for the filter."
        },
        "label": {
          "type": "string",
          "description": "Label.",
          "markdownDescription": "Label."
        },
        "field": {
          "$ref": "#/definitions/FieldKeyPath",
          "description": "Field name.",
          "markdownDescription": "Field name."
        },
        "pattern": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "string",
              "format": "regex"
            },
            {
              "type": "boolean"
            }
          ],
          "description": "Regular expression matching pattern or exact value.",
          "markdownDescription": "Regular expression matching pattern or exact value."
        }
      },
      "required": [
        "label",
        "field",
        "pattern"
      ],
      "additionalProperties": false,
      "description": "View filter.",
      "markdownDescription": "View filter."
    },
    "ViewFilters": {
      "type": "object",
      "properties": {
        "filters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ViewFilter"
          },
          "description": "A list of view filters.",
          "markdownDescription": "A list of view filters."
        },
        "default": {
          "type": "string",
          "description": "Default filter name.",
          "markdownDescription": "Default filter name."
        }
      },
      "required": [
        "filters"
      ],
      "additionalProperties": false,
      "description": "A collection’s advanced filter definition, which is compatible with Static CMS.",
      "markdownDescription": "A collection’s advanced filter definition, which is compatible with Static CMS."
    },
    "ViewGroup": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Unique identifier for the group.",
          "markdownDescription": "Unique identifier for the group."
        },
        "label": {
          "type": "string",
          "description": "Label.",
          "markdownDescription": "Label."
        },
        "field": {
          "$ref": "#/definitions/FieldKeyPath",
          "description": "Field name.",
          "markdownDescription": "Field name."
        },
        "pattern": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "string",
              "format": "regex"
            },
            {
              "type": "boolean"
            }
          ],
          "description": "Regular expression matching pattern or exact value.",
          "markdownDescription": "Regular expression matching pattern or exact value."
        }
      },
      "required": [
        "label",
        "field"
      ],
      "additionalProperties": false,
      "description": "View group.",
      "markdownDescription": "View group."
    },
    "ViewGroups": {
      "type": "object",
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ViewGroup"
          },
          "description": "A list of view groups.",
          "markdownDescription": "A list of view groups."
        },
        "default": {
          "type": "string",
          "description": "Default group name.",
          "markdownDescription": "Default group name."
        }
      },
      "required": [
        "groups"
      ],
      "additionalProperties": false,
      "description": "A collection’s advanced group definition, which is compatible with Static CMS.",
      "markdownDescription": "A collection’s advanced group definition, which is compatible with Static CMS."
    },
    "EditorOptions": {
      "type": "object",
      "properties": {
        "preview": {
          "type": "boolean",
          "description": "Whether to show the preview pane. Default: `true`.",
          "markdownDescription": "Whether to show the preview pane. Default: `true`."
        }
      },
      "required": [
        "preview"
      ],
      "additionalProperties": false,
      "description": "Editor options.",
      "markdownDescription": "Editor options."
    },
    "NestedCollectionOptions": {
      "type": "object",
      "properties": {
        "depth": {
          "type": "number",
          "description": "Maximum depth to show nested items in the collection tree. Default: `Infinity`.",
          "markdownDescription": "Maximum depth to show nested items in the collection tree. Default: `Infinity`."
        },
        "summary": {
          "type": "string",
          "description": "Summary template for a tree item. Default: `{{title}}`.",
          "markdownDescription": "Summary template for a tree item. Default: `{{title}}`."
        }
      },
      "additionalProperties": false,
      "description": "Nested collection options.",
      "markdownDescription": "Nested collection options."
    },
    "CollectionMetaData": {
      "type": "object",
      "properties": {
        "path": {
          "$ref": "#/definitions/CollectionMetaDataPath",
          "description": "Entry path options.",
          "markdownDescription": "Entry path options."
        }
      },
      "additionalProperties": false,
      "description": "Collection meta data.",
      "markdownDescription": "Collection meta data."
    },
    "CollectionMetaDataPath": {
      "type": "object",
      "properties": {
        "widget": {
          "type": "string",
          "const": "string",
          "description": "Widget for editing the path name.",
          "markdownDescription": "Widget for editing the path name."
        },
        "label": {
          "type": "string",
          "description": "Label for the path editor.",
          "markdownDescription": "Label for the path editor."
        },
        "index_file": {
          "type": "string",
          "description": "Index file name to be used.",
          "markdownDescription": "Index file name to be used."
        }
      },
      "additionalProperties": false,
      "description": "Collection meta data’s path options.",
      "markdownDescription": "Collection meta data’s path options."
    },
    "CollectionIndexFile": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Index file name without a locale or file extension. Default: `_index`, which is used for Hugo’s special index file.",
          "markdownDescription": "Index file name without a locale or file extension. Default: `_index`, which is used for Hugo’s special index file."
        },
        "label": {
          "type": "string",
          "description": "Label to be displayed in the editor UI. Default: Index File or its localized version.",
          "markdownDescription": "Label to be displayed in the editor UI. Default: Index File or its localized version."
        },
        "icon": {
          "type": "string",
          "description": "Name of a [Material Symbols icon](https://fonts.google.com/icons?icon.set=Material+Symbols) to be displayed in the editor UI. Default: `home`.",
          "markdownDescription": "Name of a [Material Symbols icon](https://fonts.google.com/icons?icon.set=Material+Symbols) to be displayed in the editor UI. Default: `home`."
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Field"
          },
          "description": "Set of fields for the index file. If omitted, the regular entry collection `fields` will be used instead.",
          "markdownDescription": "Set of fields for the index file. If omitted, the regular entry collection `fields` will be used instead."
        },
        "editor": {
          "$ref": "#/definitions/EditorOptions",
          "description": "Editor view options.",
          "markdownDescription": "Editor view options."
        }
      },
      "additionalProperties": false,
      "description": "Index file inclusion options. See our [README](https://github.com/sveltia/sveltia-cms#including-hugos-special-index-file-in-a-folder-collection) for details.",
      "markdownDescription": "Index file inclusion options. See our [README](https://github.com/sveltia/sveltia-cms#including-hugos-special-index-file-in-a-folder-collection) for details."
    },
    "CollectionDivider": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Unique identifier for the divider. Can be omitted, but it must be unique across all the collections and singletons. This property is included here because in the previous version of Sveltia CMS, a divider was defined as a collection with the `divider` option set to `true`, and the `name` option was required.",
          "markdownDescription": "Unique identifier for the divider. Can be omitted, but it must be unique across all the collections and singletons. This property is included here because in the previous version of Sveltia CMS, a divider was defined as a collection with the `divider` option set to `true`, and the `name` option was required."
        },
        "divider": {
          "type": "boolean",
          "description": "Whether to make this collection a divider UI in the collection list. It must be `true` to be used as a divider.",
          "markdownDescription": "Whether to make this collection a divider UI in the collection list. It must be `true` to be used as a divider."
        }
      },
      "required": [
        "divider"
      ],
      "additionalProperties": false,
      "description": "A divider in the collection list and singleton list. See our [README](https://github.com/sveltia/sveltia-cms#adding-dividers-to-the-collection-list) for details.",
      "markdownDescription": "A divider in the collection list and singleton list. See our [README](https://github.com/sveltia/sveltia-cms#adding-dividers-to-the-collection-list) for details."
    },
    "OutputOptions": {
      "type": "object",
      "properties": {
        "omit_empty_optional_fields": {
          "type": "boolean",
          "description": "Whether to prevent fields with `required: false` and an empty value from being included in entry data output. Default: `false`.",
          "markdownDescription": "Whether to prevent fields with `required: false` and an empty value from being included in entry data output. Default: `false`."
        },
        "encode_file_path": {
          "type": "boolean",
          "description": "Whether to encode the file path in File/Image fields. Default: `false`. This is useful when a file path contains special characters that need to be URL-encoded, such as spaces and parentheses. For example, `Hello World (1).webp` would be `Hello%20World%20%281%29.webp`. In general, File/Image fields should contain the original file path, and web-specific encoding should be done in the front-end code.",
          "markdownDescription": "Whether to encode the file path in File/Image fields. Default: `false`. This is useful when a file path contains special characters that need to be URL-encoded, such as spaces and parentheses. For example, `Hello World (1).webp` would be `Hello%20World%20%281%29.webp`. In general, File/Image fields should contain the original file path, and web-specific encoding should be done in the front-end code."
        },
        "json": {
          "$ref": "#/definitions/JsonFormatOptions",
          "description": "JSON format options.",
          "markdownDescription": "JSON format options."
        },
        "yaml": {
          "$ref": "#/definitions/YamlFormatOptions",
          "description": "YAML format options.",
          "markdownDescription": "YAML format options."
        }
      },
      "additionalProperties": false,
      "description": "Data output options.",
      "markdownDescription": "Data output options."
    },
    "JsonFormatOptions": {
      "type": "object",
      "properties": {
        "indent_style": {
          "type": "string",
          "enum": [
            "space",
            "tab"
          ],
          "description": "Indent style. Default: 'space'.",
          "markdownDescription": "Indent style. Default: 'space'."
        },
        "indent_size": {
          "type": "number",
          "description": "Indent size. Default: `2`.",
          "markdownDescription": "Indent size. Default: `2`."
        }
      },
      "additionalProperties": false,
      "description": "JSON format options.",
      "markdownDescription": "JSON format options."
    },
    "YamlFormatOptions": {
      "type": "object",
      "properties": {
        "indent_size": {
          "type": "number",
          "description": "Indent size. Default: `2`.",
          "markdownDescription": "Indent size. Default: `2`."
        },
        "quote": {
          "type": "string",
          "enum": [
            "none",
            "single",
            "double"
          ],
          "description": "String value’s default quote type. Default: 'none'.",
          "markdownDescription": "String value’s default quote type. Default: 'none'."
        }
      },
      "additionalProperties": false,
      "description": "YAML format options.",
      "markdownDescription": "YAML format options."
    }
  },
  "title": "Sveltia CMS Configuration",
  "description": "Sveltia CMS site configuration file"
}
