{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/snapcraft/latest.json",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/canonical/snapcraft/main/schema/snapcraft.json",
    "sourceSha256": "f1e5f3ceb2545f3ce4c5ff83e6dda838904c06e7eaf35b5714d04c418b3fd0c3",
    "fileMatch": [
      ".snapcraft.yaml",
      "snapcraft.yaml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "$defs": {
    "App": {
      "type": "object",
      "description": "Snapcraft project app definition.",
      "properties": {
        "command": {
          "description": "The command to run inside the snap when the app is invoked.",
          "examples": [
            "bin/foo-app"
          ],
          "title": "Command",
          "type": "string"
        },
        "autostart": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The desktop file used to start an app when the desktop environment starts.",
          "examples": [
            "foo-app.desktop"
          ],
          "title": "Autostart"
        },
        "common-id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The identifier to a desktop ID within an external appstream file.",
          "examples": [
            "org.canonical.foo"
          ],
          "title": "Common-Id"
        },
        "bus-name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The bus name that the application or service exposes through D-Bus.",
          "examples": [
            "org.bluez"
          ],
          "title": "Bus-Name"
        },
        "desktop": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The desktop file used to start an app.",
          "examples": [
            "my-app.desktop"
          ],
          "title": "Desktop"
        },
        "completer": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The name of the bash completion script for the app.",
          "examples": [
            "bash-complete.sh"
          ],
          "title": "Completer"
        },
        "stop-command": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The command to run to stop the service.",
          "examples": [
            "bin/foo-app --halt"
          ],
          "title": "Stop-Command"
        },
        "post-stop-command": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The command to run after the service is stopped.",
          "examples": [
            "bin/logrotate --force"
          ],
          "title": "Post-Stop-Command"
        },
        "start-timeout": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The maximum amount of time to wait for the service to start.",
          "examples": [
            "10s",
            "2m"
          ],
          "title": "Start-Timeout"
        },
        "stop-timeout": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The maximum amount of time to wait for the service to stop.",
          "examples": [
            "10s",
            "2m"
          ],
          "title": "Stop-Timeout"
        },
        "watchdog-timeout": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The maximum amount of time the service can run without sending a heartbeat to the watchdog.",
          "examples": [
            "10s",
            "2m"
          ],
          "title": "Watchdog-Timeout"
        },
        "reload-command": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The command to run to restart the service.",
          "examples": [
            "bin/foo-app --restart"
          ],
          "title": "Reload-Command"
        },
        "restart-delay": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The time to wait between service restarts.",
          "examples": [
            "10s",
            "2m"
          ],
          "title": "Restart-Delay"
        },
        "timer": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The time or schedule to run a service.",
          "examples": [
            "23:00",
            "00:00-24:00/24",
            "mon,10:00,,fri,15:00"
          ],
          "title": "Timer"
        },
        "daemon": {
          "anyOf": [
            {
              "enum": [
                "simple",
                "forking",
                "oneshot",
                "notify",
                "dbus"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Configures the app as a service, and sets its runtime and notification behavior.",
          "examples": [
            "simple",
            "oneshot"
          ],
          "title": "Daemon"
        },
        "after": {
          "description": "The ordered list of apps that the service runs after it launches.",
          "examples": [
            "[foo-app, bar-app]"
          ],
          "items": {
            "type": "string"
          },
          "title": "After",
          "type": "array",
          "uniqueItems": true
        },
        "before": {
          "description": "The ordered list of apps that the service runs before it launches.",
          "examples": [
            "[baz-app, quz-app]"
          ],
          "items": {
            "type": "string"
          },
          "title": "Before",
          "type": "array",
          "uniqueItems": true
        },
        "refresh-mode": {
          "anyOf": [
            {
              "enum": [
                "endure",
                "restart",
                "ignore-running"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Determines how the service should restart when the snap refreshes.",
          "examples": [
            "restart"
          ],
          "title": "Refresh-Mode"
        },
        "stop-mode": {
          "anyOf": [
            {
              "enum": [
                "sigterm",
                "sigterm-all",
                "sighup",
                "sighup-all",
                "sigusr1",
                "sigusr1-all",
                "sigusr2",
                "sigusr2-all",
                "sigint",
                "sigint-all"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The signal to send when stopping the service.",
          "examples": [
            "sigterm"
          ],
          "title": "Stop-Mode"
        },
        "restart-condition": {
          "anyOf": [
            {
              "enum": [
                "on-success",
                "on-failure",
                "on-abnormal",
                "on-abort",
                "on-watchdog",
                "always",
                "never"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The conditions that cause the service to restart.",
          "examples": [
            "on-failure"
          ],
          "title": "Restart-Condition"
        },
        "success-exit-status": {
          "anyOf": [
            {
              "items": {
                "maximum": 255,
                "minimum": 1,
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The list of additional successful exit statuses that the service can return.",
          "examples": [
            "[42, 250]"
          ],
          "title": "Success-Exit-Status"
        },
        "install-mode": {
          "anyOf": [
            {
              "enum": [
                "enable",
                "disable"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether snapd can automatically start the service when the snap is installed.",
          "examples": [
            "enable"
          ],
          "title": "Install-Mode"
        },
        "slots": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The list of slots that the app provides.",
          "examples": [
            "[dbus-daemon]"
          ],
          "title": "Slots"
        },
        "plugs": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The interfaces that the app can connect to.",
          "examples": [
            "[home, removable-media]"
          ],
          "title": "Plugs"
        },
        "aliases": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The aliases that can be used to run the app.",
          "examples": [
            "[my-app]"
          ],
          "title": "Aliases"
        },
        "environment": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The runtime environment variables.",
          "examples": [
            "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages, DISABLE_WAYLAND: 1}"
          ],
          "title": "Environment"
        },
        "command-chain": {
          "description": "The ordered list of commands to run before the app's command runs.",
          "examples": [
            "[bin/alsa-launch, bin/desktop-launch]"
          ],
          "items": {
            "type": "string"
          },
          "title": "Command-Chain",
          "type": "array"
        },
        "sockets": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Socket"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The sockets used to activate an app.",
          "examples": [
            "{my-socket: {listen-stream: $SNAP_COMMON/lxd/unix.socket, socket-mode: 0660}}"
          ],
          "title": "Sockets"
        },
        "daemon-scope": {
          "anyOf": [
            {
              "enum": [
                "system",
                "user"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Determines whether the service is run on a system or user instance of systemd.",
          "examples": [
            "user"
          ],
          "title": "Daemon-Scope"
        },
        "activates-on": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The slots exposed by the snap to activate the service with D-Bus.",
          "examples": [
            "gnome-shell-dbus"
          ],
          "title": "Activates-On"
        },
        "passthrough": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The attributes to pass to the snap's metadata file for the app.",
          "examples": [
            "{daemon: complex}"
          ],
          "title": "Passthrough"
        },
        "extensions": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The extensions to add to the project.",
          "examples": [
            [
              "gnome"
            ],
            [
              "ros2-humble"
            ]
          ],
          "title": "Extensions"
        }
      },
      "required": [
        "command"
      ],
      "title": "App",
      "additionalProperties": false
    },
    "Architecture": {
      "type": "object",
      "description": "Snapcraft project architecture definition.",
      "properties": {
        "build-on": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            }
          ],
          "description": "The architectures to build the snap on.",
          "examples": [
            "arm64",
            "[amd64, riscv64]"
          ],
          "title": "Build-On"
        },
        "build-for": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The target architecture for the build.",
          "examples": [
            "amd64",
            "[riscv64]"
          ],
          "title": "Build-For"
        }
      },
      "required": [
        "build-on"
      ],
      "title": "Architecture",
      "additionalProperties": false
    },
    "BareCore22Project": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The identifying name of the snap.",
          "examples": [
            "my-app",
            "powershell",
            "jupyterlab-desktop"
          ],
          "maxLength": 40,
          "title": "Name",
          "type": "string"
        },
        "title": {
          "anyOf": [
            {
              "description": "A human-readable title.",
              "examples": [
                "Ubuntu Linux",
                "Jupyter Lab Desktop",
                "LXD",
                "DigiKam",
                "Apache Kafka",
                "MySQL Router K8s charm"
              ],
              "maxLength": 40,
              "minLength": 2,
              "title": "Title",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "version": {
          "anyOf": [
            {
              "description": "The version of the project, enclosed in quotation marks.",
              "examples": [
                "\"0.1\"",
                "\"1.0.0\"",
                "\"v1.0.0\"",
                "\"24.04\""
              ],
              "maxLength": 32,
              "title": "version string",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The version of the snap.",
          "examples": [
            "1.2.3"
          ],
          "title": "Version"
        },
        "summary": {
          "anyOf": [
            {
              "description": "A short description of the project. Maximum length 78 characters.",
              "examples": [
                "Linux for Human Beings",
                "The cross-platform desktop application for JupyterLab",
                "Container and VM manager",
                "Photo Management Program",
                "Charm for routing MySQL databases in Kubernetes",
                "An open-source event streaming platform for high-performance data pipelines"
              ],
              "maxLength": 78,
              "title": "Summary",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The full description of the project.",
          "title": "Description"
        },
        "base": {
          "const": "bare",
          "title": "Base",
          "type": "string"
        },
        "build-base": {
          "const": "core22",
          "title": "Build-Base",
          "type": "string"
        },
        "contact": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap author's contact links and email addresses.",
          "examples": [
            "[contact@example.com, https://example.com/contact]"
          ],
          "title": "Contact"
        },
        "issues": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links and email addresses for submitting issues, bugs, and feature requests.",
          "examples": [
            "[issues@email.com, https://example.com/issues]"
          ],
          "title": "Issues"
        },
        "source-code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the source code of the snap or the original project.",
          "examples": [
            "[https://example.com/source-code]"
          ],
          "title": "Source-Code"
        },
        "license": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's license as an SPDX expression",
          "examples": [
            "GPL-3.0+",
            "Apache-2.0"
          ],
          "title": "License"
        },
        "adopt-info": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Selects a part to inherit metadata from and reuse for the snap's metadata.\n\nRequired if one of ``version``, ``summary``, or ``description`` isn't set.",
          "examples": [
            "foo-part"
          ],
          "title": "Adopt-Info"
        },
        "parts": {
          "type": "object",
          "description": "The self-contained software pieces needed to create the final artifact.",
          "examples": [
            "{cloud-init:                 {plugin: python,                 source-type: git,                 source: https://git.launchpad.net/cloud-init}}"
          ],
          "title": "Parts",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "package-repositories": {
          "anyOf": [
            {
              "items": {
                "type": "object",
                "additionalProperties": true
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package repositories to use for build and stage packages.",
          "examples": [
            "[{type: apt,                components: [main],                suites: [xenial],                key-id: 78E1918602959B9C59103100F1831DDAFC42E99D,                url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
          ],
          "title": "Package-Repositories"
        },
        "compression": {
          "default": "xz",
          "description": "Specifies the algorithm that compresses the snap.",
          "enum": [
            "lzo",
            "xz"
          ],
          "examples": [
            "xz",
            "lzo"
          ],
          "title": "Compression",
          "type": "string"
        },
        "donation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's donation links.",
          "examples": [
            "[donate@example.com, https://example.com/donate]"
          ],
          "title": "Donation"
        },
        "website": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the original software's web pages.",
          "examples": [
            "[https://example.com]"
          ],
          "title": "Website"
        },
        "type": {
          "default": null,
          "enum": [
            "app",
            "gadget",
            null
          ],
          "title": "Type"
        },
        "icon": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The path to the snap's icon.",
          "examples": [
            "snap/gui/icon.svg"
          ],
          "title": "Icon"
        },
        "confinement": {
          "description": "The amount of isolation the snap has from the host system.",
          "enum": [
            "classic",
            "devmode",
            "strict"
          ],
          "examples": [
            "strict",
            "classic",
            "devmode"
          ],
          "title": "Confinement",
          "type": "string"
        },
        "layout": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "maxProperties": 1,
                "minProperties": 1,
                "propertyNames": {
                  "enum": [
                    "symlink",
                    "bind",
                    "bind-file",
                    "type"
                  ]
                },
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The file layouts in the execution environment.",
          "examples": [
            "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
          ],
          "title": "Layout"
        },
        "grade": {
          "anyOf": [
            {
              "enum": [
                "stable",
                "devel"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The quality grade of the snap.",
          "examples": [
            "stable",
            "devel"
          ],
          "title": "Grade"
        },
        "architectures": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/Architecture"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The architectures that the snap builds and runs on.",
          "examples": [
            "[amd64, riscv64]",
            "[{build-on: [amd64], build-for: [amd64]}]",
            "[{build-on: [amd64, riscv64], build-for: [riscv64]}]"
          ],
          "title": "Architectures"
        },
        "assumes": {
          "description": "The minimum version of snapd and its features that the snap requires from the host.",
          "examples": [
            "[snapd2.66, common-data-dir]"
          ],
          "items": {
            "type": "string"
          },
          "title": "Assumes",
          "type": "array",
          "uniqueItems": true
        },
        "hooks": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Hook"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Configures the snap's hooks.",
          "examples": [
            "{configure: {plugs: [home]}}"
          ],
          "title": "Hooks"
        },
        "passthrough": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The attributes to pass to the snap's metadata file.",
          "examples": [
            "{daemon: complex}"
          ],
          "title": "Passthrough"
        },
        "apps": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/App"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The individual programs and services that the snap runs.",
          "examples": [
            "{app-1: {command: bin/app-1}}"
          ],
          "title": "Apps"
        },
        "plugs": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ContentPlug"
                  },
                  {}
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's plugs.",
          "examples": [
            "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
          ],
          "title": "Plugs"
        },
        "slots": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's slots.",
          "examples": [
            "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
          ],
          "title": "Slots"
        },
        "lint": {
          "anyOf": [
            {
              "$ref": "#/$defs/Lint"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The linter configuration settings.",
          "examples": [
            "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
          ]
        },
        "epoch": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The epoch associated with this version of the snap.",
          "examples": [
            "1",
            "2*"
          ],
          "title": "Epoch"
        },
        "system-usernames": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The system usernames the snap can use to run daemons and services.",
          "examples": [
            "{snap-daemon: shared}"
          ],
          "title": "System-Usernames"
        },
        "environment": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's runtime environment variables.",
          "examples": [
            "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
          ],
          "title": "Environment"
        },
        "build-packages": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The list of packages to install when building a snap.",
          "examples": [
            "[libssl-dev, libyaml-dev]"
          ],
          "title": "Build-Packages"
        },
        "build-snaps": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snaps to install when building a snap.",
          "examples": [
            "[go/1.22/stable, yq]"
          ],
          "title": "Build-Snaps"
        },
        "ua-services": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.",
          "examples": [
            "[esm-apps]"
          ],
          "title": "Ua-Services"
        },
        "provenance": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The primary-key header for snaps signed by third parties.",
          "examples": [
            "test-provenance"
          ],
          "title": "Provenance"
        },
        "components": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "maxLength": 40
              },
              "additionalProperties": {
                "$ref": "#/$defs/Component"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the components to build in conjunction with the snap.",
          "examples": [
            "{foo-component: {type: standard}}"
          ],
          "title": "Components"
        }
      },
      "required": [
        "name",
        "base",
        "build-base",
        "parts",
        "confinement"
      ],
      "title": "BareCore22Project",
      "additionalProperties": false
    },
    "BareCore24Project": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The identifying name of the snap.",
          "examples": [
            "my-app",
            "powershell",
            "jupyterlab-desktop"
          ],
          "maxLength": 40,
          "title": "Name",
          "type": "string"
        },
        "title": {
          "anyOf": [
            {
              "description": "A human-readable title.",
              "examples": [
                "Ubuntu Linux",
                "Jupyter Lab Desktop",
                "LXD",
                "DigiKam",
                "Apache Kafka",
                "MySQL Router K8s charm"
              ],
              "maxLength": 40,
              "minLength": 2,
              "title": "Title",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "version": {
          "anyOf": [
            {
              "description": "The version of the project, enclosed in quotation marks.",
              "examples": [
                "\"0.1\"",
                "\"1.0.0\"",
                "\"v1.0.0\"",
                "\"24.04\""
              ],
              "maxLength": 32,
              "title": "version string",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The version of the snap.",
          "examples": [
            "1.2.3"
          ],
          "title": "Version"
        },
        "summary": {
          "anyOf": [
            {
              "description": "A short description of the project. Maximum length 78 characters.",
              "examples": [
                "Linux for Human Beings",
                "The cross-platform desktop application for JupyterLab",
                "Container and VM manager",
                "Photo Management Program",
                "Charm for routing MySQL databases in Kubernetes",
                "An open-source event streaming platform for high-performance data pipelines"
              ],
              "maxLength": 78,
              "title": "Summary",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The full description of the project.",
          "title": "Description"
        },
        "base": {
          "const": "bare",
          "title": "Base",
          "type": "string"
        },
        "build-base": {
          "const": "core24",
          "title": "Build-Base",
          "type": "string"
        },
        "platforms": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Platform"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The platforms where the snap can be built and where the resulting snap can run.",
          "examples": [
            "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
          ],
          "title": "Platforms"
        },
        "contact": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap author's contact links and email addresses.",
          "examples": [
            "[contact@example.com, https://example.com/contact]"
          ],
          "title": "Contact"
        },
        "issues": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links and email addresses for submitting issues, bugs, and feature requests.",
          "examples": [
            "[issues@email.com, https://example.com/issues]"
          ],
          "title": "Issues"
        },
        "source-code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the source code of the snap or the original project.",
          "examples": [
            "[https://example.com/source-code]"
          ],
          "title": "Source-Code"
        },
        "license": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's license as an SPDX expression",
          "examples": [
            "GPL-3.0+",
            "Apache-2.0"
          ],
          "title": "License"
        },
        "adopt-info": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Selects a part to inherit metadata from and reuse for the snap's metadata.\n\nRequired if one of ``version``, ``summary``, or ``description`` isn't set.",
          "examples": [
            "foo-part"
          ],
          "title": "Adopt-Info"
        },
        "parts": {
          "type": "object",
          "description": "The self-contained software pieces needed to create the final artifact.",
          "examples": [
            "{cloud-init:                 {plugin: python,                 source-type: git,                 source: https://git.launchpad.net/cloud-init}}"
          ],
          "title": "Parts",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "package-repositories": {
          "anyOf": [
            {
              "items": {
                "type": "object",
                "additionalProperties": true
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package repositories to use for build and stage packages.",
          "examples": [
            "[{type: apt,                components: [main],                suites: [xenial],                key-id: 78E1918602959B9C59103100F1831DDAFC42E99D,                url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
          ],
          "title": "Package-Repositories"
        },
        "compression": {
          "default": "xz",
          "description": "Specifies the algorithm that compresses the snap.",
          "enum": [
            "lzo",
            "xz"
          ],
          "examples": [
            "xz",
            "lzo"
          ],
          "title": "Compression",
          "type": "string"
        },
        "donation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's donation links.",
          "examples": [
            "[donate@example.com, https://example.com/donate]"
          ],
          "title": "Donation"
        },
        "website": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the original software's web pages.",
          "examples": [
            "[https://example.com]"
          ],
          "title": "Website"
        },
        "type": {
          "default": null,
          "enum": [
            "app",
            "gadget",
            null
          ],
          "title": "Type"
        },
        "icon": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The path to the snap's icon.",
          "examples": [
            "snap/gui/icon.svg"
          ],
          "title": "Icon"
        },
        "confinement": {
          "description": "The amount of isolation the snap has from the host system.",
          "enum": [
            "classic",
            "devmode",
            "strict"
          ],
          "examples": [
            "strict",
            "classic",
            "devmode"
          ],
          "title": "Confinement",
          "type": "string"
        },
        "layout": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "maxProperties": 1,
                "minProperties": 1,
                "propertyNames": {
                  "enum": [
                    "symlink",
                    "bind",
                    "bind-file",
                    "type"
                  ]
                },
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The file layouts in the execution environment.",
          "examples": [
            "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
          ],
          "title": "Layout"
        },
        "grade": {
          "anyOf": [
            {
              "enum": [
                "stable",
                "devel"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The quality grade of the snap.",
          "examples": [
            "stable",
            "devel"
          ],
          "title": "Grade"
        },
        "assumes": {
          "description": "The minimum version of snapd and its features that the snap requires from the host.",
          "examples": [
            "[snapd2.66, common-data-dir]"
          ],
          "items": {
            "type": "string"
          },
          "title": "Assumes",
          "type": "array",
          "uniqueItems": true
        },
        "hooks": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Hook"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Configures the snap's hooks.",
          "examples": [
            "{configure: {plugs: [home]}}"
          ],
          "title": "Hooks"
        },
        "passthrough": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The attributes to pass to the snap's metadata file.",
          "examples": [
            "{daemon: complex}"
          ],
          "title": "Passthrough"
        },
        "apps": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/App"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The individual programs and services that the snap runs.",
          "examples": [
            "{app-1: {command: bin/app-1}}"
          ],
          "title": "Apps"
        },
        "plugs": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ContentPlug"
                  },
                  {}
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's plugs.",
          "examples": [
            "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
          ],
          "title": "Plugs"
        },
        "slots": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's slots.",
          "examples": [
            "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
          ],
          "title": "Slots"
        },
        "lint": {
          "anyOf": [
            {
              "$ref": "#/$defs/Lint"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The linter configuration settings.",
          "examples": [
            "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
          ]
        },
        "epoch": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The epoch associated with this version of the snap.",
          "examples": [
            "1",
            "2*"
          ],
          "title": "Epoch"
        },
        "system-usernames": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The system usernames the snap can use to run daemons and services.",
          "examples": [
            "{snap-daemon: shared}"
          ],
          "title": "System-Usernames"
        },
        "environment": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's runtime environment variables.",
          "examples": [
            "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
          ],
          "title": "Environment"
        },
        "build-packages": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The list of packages to install when building a snap.",
          "examples": [
            "[libssl-dev, libyaml-dev]"
          ],
          "title": "Build-Packages"
        },
        "build-snaps": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snaps to install when building a snap.",
          "examples": [
            "[go/1.22/stable, yq]"
          ],
          "title": "Build-Snaps"
        },
        "ua-services": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.",
          "examples": [
            "[esm-apps]"
          ],
          "title": "Ua-Services"
        },
        "provenance": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The primary-key header for snaps signed by third parties.",
          "examples": [
            "test-provenance"
          ],
          "title": "Provenance"
        },
        "components": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "maxLength": 40
              },
              "additionalProperties": {
                "$ref": "#/$defs/Component"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the components to build in conjunction with the snap.",
          "examples": [
            "{foo-component: {type: standard}}"
          ],
          "title": "Components"
        }
      },
      "required": [
        "name",
        "base",
        "build-base",
        "parts",
        "confinement"
      ],
      "title": "BareCore24Project",
      "additionalProperties": false
    },
    "BareCore26Project": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The identifying name of the snap.",
          "examples": [
            "my-app",
            "powershell",
            "jupyterlab-desktop"
          ],
          "maxLength": 40,
          "title": "Name",
          "type": "string"
        },
        "title": {
          "anyOf": [
            {
              "description": "A human-readable title.",
              "examples": [
                "Ubuntu Linux",
                "Jupyter Lab Desktop",
                "LXD",
                "DigiKam",
                "Apache Kafka",
                "MySQL Router K8s charm"
              ],
              "maxLength": 40,
              "minLength": 2,
              "title": "Title",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "version": {
          "anyOf": [
            {
              "description": "The version of the project, enclosed in quotation marks.",
              "examples": [
                "\"0.1\"",
                "\"1.0.0\"",
                "\"v1.0.0\"",
                "\"24.04\""
              ],
              "maxLength": 32,
              "title": "version string",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The version of the snap.",
          "examples": [
            "1.2.3"
          ],
          "title": "Version"
        },
        "summary": {
          "anyOf": [
            {
              "description": "A short description of the project. Maximum length 78 characters.",
              "examples": [
                "Linux for Human Beings",
                "The cross-platform desktop application for JupyterLab",
                "Container and VM manager",
                "Photo Management Program",
                "Charm for routing MySQL databases in Kubernetes",
                "An open-source event streaming platform for high-performance data pipelines"
              ],
              "maxLength": 78,
              "title": "Summary",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The full description of the project.",
          "title": "Description"
        },
        "base": {
          "const": "bare",
          "title": "Base",
          "type": "string"
        },
        "build-base": {
          "const": "devel",
          "title": "Build-Base",
          "type": "string"
        },
        "platforms": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Platform"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The platforms where the snap can be built and where the resulting snap can run.",
          "examples": [
            "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
          ],
          "title": "Platforms"
        },
        "contact": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap author's contact links and email addresses.",
          "examples": [
            "[contact@example.com, https://example.com/contact]"
          ],
          "title": "Contact"
        },
        "issues": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links and email addresses for submitting issues, bugs, and feature requests.",
          "examples": [
            "[issues@email.com, https://example.com/issues]"
          ],
          "title": "Issues"
        },
        "source-code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the source code of the snap or the original project.",
          "examples": [
            "[https://example.com/source-code]"
          ],
          "title": "Source-Code"
        },
        "license": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's license as an SPDX expression",
          "examples": [
            "GPL-3.0+",
            "Apache-2.0"
          ],
          "title": "License"
        },
        "adopt-info": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Selects a part to inherit metadata from and reuse for the snap's metadata.\n\nRequired if one of ``version``, ``summary``, or ``description`` isn't set.",
          "examples": [
            "foo-part"
          ],
          "title": "Adopt-Info"
        },
        "parts": {
          "type": "object",
          "description": "The self-contained software pieces needed to create the final artifact.",
          "examples": [
            "{cloud-init:                 {plugin: python,                 source-type: git,                 source: https://git.launchpad.net/cloud-init}}"
          ],
          "title": "Parts",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "package-repositories": {
          "anyOf": [
            {
              "items": {
                "type": "object",
                "additionalProperties": true
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package repositories to use for build and stage packages.",
          "examples": [
            "[{type: apt,                components: [main],                suites: [xenial],                key-id: 78E1918602959B9C59103100F1831DDAFC42E99D,                url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
          ],
          "title": "Package-Repositories"
        },
        "compression": {
          "default": "xz",
          "description": "Specifies the algorithm that compresses the snap.",
          "enum": [
            "lzo",
            "xz"
          ],
          "examples": [
            "xz",
            "lzo"
          ],
          "title": "Compression",
          "type": "string"
        },
        "donation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's donation links.",
          "examples": [
            "[donate@example.com, https://example.com/donate]"
          ],
          "title": "Donation"
        },
        "website": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the original software's web pages.",
          "examples": [
            "[https://example.com]"
          ],
          "title": "Website"
        },
        "type": {
          "default": null,
          "enum": [
            "app",
            "gadget",
            null
          ],
          "title": "Type"
        },
        "icon": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The path to the snap's icon.",
          "examples": [
            "snap/gui/icon.svg"
          ],
          "title": "Icon"
        },
        "confinement": {
          "description": "The amount of isolation the snap has from the host system.",
          "enum": [
            "classic",
            "devmode",
            "strict"
          ],
          "examples": [
            "strict",
            "classic",
            "devmode"
          ],
          "title": "Confinement",
          "type": "string"
        },
        "layout": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "maxProperties": 1,
                "minProperties": 1,
                "propertyNames": {
                  "enum": [
                    "symlink",
                    "bind",
                    "bind-file",
                    "type"
                  ]
                },
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The file layouts in the execution environment.",
          "examples": [
            "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
          ],
          "title": "Layout"
        },
        "grade": {
          "const": "devel",
          "title": "Grade",
          "type": "string"
        },
        "assumes": {
          "description": "The minimum version of snapd and its features that the snap requires from the host.",
          "examples": [
            "[snapd2.66, common-data-dir]"
          ],
          "items": {
            "type": "string"
          },
          "title": "Assumes",
          "type": "array",
          "uniqueItems": true
        },
        "hooks": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Hook"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Configures the snap's hooks.",
          "examples": [
            "{configure: {plugs: [home]}}"
          ],
          "title": "Hooks"
        },
        "passthrough": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The attributes to pass to the snap's metadata file.",
          "examples": [
            "{daemon: complex}"
          ],
          "title": "Passthrough"
        },
        "apps": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/App"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The individual programs and services that the snap runs.",
          "examples": [
            "{app-1: {command: bin/app-1}}"
          ],
          "title": "Apps"
        },
        "plugs": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ContentPlug"
                  },
                  {}
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's plugs.",
          "examples": [
            "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
          ],
          "title": "Plugs"
        },
        "slots": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's slots.",
          "examples": [
            "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
          ],
          "title": "Slots"
        },
        "lint": {
          "anyOf": [
            {
              "$ref": "#/$defs/Lint"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The linter configuration settings.",
          "examples": [
            "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
          ]
        },
        "epoch": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The epoch associated with this version of the snap.",
          "examples": [
            "1",
            "2*"
          ],
          "title": "Epoch"
        },
        "system-usernames": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The system usernames the snap can use to run daemons and services.",
          "examples": [
            "{snap-daemon: shared}"
          ],
          "title": "System-Usernames"
        },
        "environment": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's runtime environment variables.",
          "examples": [
            "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
          ],
          "title": "Environment"
        },
        "build-packages": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The list of packages to install when building a snap.",
          "examples": [
            "[libssl-dev, libyaml-dev]"
          ],
          "title": "Build-Packages"
        },
        "build-snaps": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snaps to install when building a snap.",
          "examples": [
            "[go/1.22/stable, yq]"
          ],
          "title": "Build-Snaps"
        },
        "ua-services": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.",
          "examples": [
            "[esm-apps]"
          ],
          "title": "Ua-Services"
        },
        "provenance": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The primary-key header for snaps signed by third parties.",
          "examples": [
            "test-provenance"
          ],
          "title": "Provenance"
        },
        "components": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "maxLength": 40
              },
              "additionalProperties": {
                "$ref": "#/$defs/Component"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the components to build in conjunction with the snap.",
          "examples": [
            "{foo-component: {type: standard}}"
          ],
          "title": "Components"
        }
      },
      "required": [
        "name",
        "base",
        "build-base",
        "parts",
        "confinement",
        "grade"
      ],
      "title": "BareCore26Project",
      "additionalProperties": false
    },
    "Component": {
      "type": "object",
      "description": "Snapcraft component definition.",
      "properties": {
        "summary": {
          "description": "The summary of the component.",
          "examples": [
            "Language translations for the app"
          ],
          "maxLength": 78,
          "title": "Summary",
          "type": "string"
        },
        "description": {
          "description": "The full description of the component.",
          "examples": [
            "Contains optional translation packs to allow the user to change the language."
          ],
          "title": "Description",
          "type": "string"
        },
        "type": {
          "description": "The type of the component.",
          "enum": [
            "test",
            "kernel-modules",
            "standard"
          ],
          "examples": [
            "standard"
          ],
          "title": "Type",
          "type": "string"
        },
        "version": {
          "anyOf": [
            {
              "description": "The version of the project, enclosed in quotation marks.",
              "examples": [
                "\"0.1\"",
                "\"1.0.0\"",
                "\"v1.0.0\"",
                "\"24.04\""
              ],
              "maxLength": 32,
              "title": "version string",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The version of the component.",
          "examples": [
            "1.2.3"
          ],
          "title": "Version"
        },
        "hooks": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Hook"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The configuration for the component's hooks.",
          "examples": [
            "{configure: {plugs: [home]}}"
          ],
          "title": "Hooks"
        },
        "adopt-info": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Selects a part to inherit metadata from and reuse for the component's\nmetadata.\n\nOnly the component's version can be set.\n",
          "examples": [
            "foo-part"
          ],
          "title": "Adopt-Info"
        }
      },
      "required": [
        "summary",
        "description",
        "type"
      ],
      "title": "Component",
      "additionalProperties": false
    },
    "ContentPlug": {
      "type": "object",
      "description": "Snapcraft project content plug definition.",
      "properties": {
        "content": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The name for the content type.",
          "examples": [
            "themes"
          ],
          "title": "Content"
        },
        "interface": {
          "description": "The name of the interface.",
          "examples": [
            "network"
          ],
          "title": "Interface",
          "type": "string"
        },
        "target": {
          "description": "The path to where the producer's files will be available in the snap.",
          "examples": [
            "$SNAP/data-dir/themes"
          ],
          "title": "Target",
          "type": "string"
        },
        "default-provider": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The name of the producer snap..",
          "examples": [
            "gtk-common-themes"
          ],
          "title": "Default-Provider"
        }
      },
      "required": [
        "interface",
        "target"
      ],
      "title": "ContentPlug",
      "additionalProperties": false
    },
    "Core22Project": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The identifying name of the snap.",
          "examples": [
            "my-app",
            "powershell",
            "jupyterlab-desktop"
          ],
          "maxLength": 40,
          "title": "Name",
          "type": "string"
        },
        "title": {
          "anyOf": [
            {
              "description": "A human-readable title.",
              "examples": [
                "Ubuntu Linux",
                "Jupyter Lab Desktop",
                "LXD",
                "DigiKam",
                "Apache Kafka",
                "MySQL Router K8s charm"
              ],
              "maxLength": 40,
              "minLength": 2,
              "title": "Title",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "version": {
          "anyOf": [
            {
              "description": "The version of the project, enclosed in quotation marks.",
              "examples": [
                "\"0.1\"",
                "\"1.0.0\"",
                "\"v1.0.0\"",
                "\"24.04\""
              ],
              "maxLength": 32,
              "title": "version string",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The version of the snap.",
          "examples": [
            "1.2.3"
          ],
          "title": "Version"
        },
        "summary": {
          "anyOf": [
            {
              "description": "A short description of the project. Maximum length 78 characters.",
              "examples": [
                "Linux for Human Beings",
                "The cross-platform desktop application for JupyterLab",
                "Container and VM manager",
                "Photo Management Program",
                "Charm for routing MySQL databases in Kubernetes",
                "An open-source event streaming platform for high-performance data pipelines"
              ],
              "maxLength": 78,
              "title": "Summary",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The full description of the project.",
          "title": "Description"
        },
        "base": {
          "const": "core22",
          "title": "Base",
          "type": "string"
        },
        "build-base": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The baseline system that the snap is built in.",
          "examples": [
            "core22",
            "core24",
            "core26",
            "devel"
          ],
          "title": "Build-Base"
        },
        "contact": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap author's contact links and email addresses.",
          "examples": [
            "[contact@example.com, https://example.com/contact]"
          ],
          "title": "Contact"
        },
        "issues": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links and email addresses for submitting issues, bugs, and feature requests.",
          "examples": [
            "[issues@email.com, https://example.com/issues]"
          ],
          "title": "Issues"
        },
        "source-code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the source code of the snap or the original project.",
          "examples": [
            "[https://example.com/source-code]"
          ],
          "title": "Source-Code"
        },
        "license": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's license as an SPDX expression",
          "examples": [
            "GPL-3.0+",
            "Apache-2.0"
          ],
          "title": "License"
        },
        "adopt-info": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Selects a part to inherit metadata from and reuse for the snap's metadata.\n\nRequired if one of ``version``, ``summary``, or ``description`` isn't set.",
          "examples": [
            "foo-part"
          ],
          "title": "Adopt-Info"
        },
        "parts": {
          "type": "object",
          "description": "The self-contained software pieces needed to create the final artifact.",
          "examples": [
            "{cloud-init:                 {plugin: python,                 source-type: git,                 source: https://git.launchpad.net/cloud-init}}"
          ],
          "title": "Parts",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "package-repositories": {
          "anyOf": [
            {
              "items": {
                "type": "object",
                "additionalProperties": true
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package repositories to use for build and stage packages.",
          "examples": [
            "[{type: apt,                components: [main],                suites: [xenial],                key-id: 78E1918602959B9C59103100F1831DDAFC42E99D,                url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
          ],
          "title": "Package-Repositories"
        },
        "compression": {
          "default": "xz",
          "description": "Specifies the algorithm that compresses the snap.",
          "enum": [
            "lzo",
            "xz"
          ],
          "examples": [
            "xz",
            "lzo"
          ],
          "title": "Compression",
          "type": "string"
        },
        "donation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's donation links.",
          "examples": [
            "[donate@example.com, https://example.com/donate]"
          ],
          "title": "Donation"
        },
        "website": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the original software's web pages.",
          "examples": [
            "[https://example.com]"
          ],
          "title": "Website"
        },
        "type": {
          "default": null,
          "enum": [
            "app",
            "gadget",
            null
          ],
          "title": "Type"
        },
        "icon": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The path to the snap's icon.",
          "examples": [
            "snap/gui/icon.svg"
          ],
          "title": "Icon"
        },
        "confinement": {
          "description": "The amount of isolation the snap has from the host system.",
          "enum": [
            "classic",
            "devmode",
            "strict"
          ],
          "examples": [
            "strict",
            "classic",
            "devmode"
          ],
          "title": "Confinement",
          "type": "string"
        },
        "layout": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "maxProperties": 1,
                "minProperties": 1,
                "propertyNames": {
                  "enum": [
                    "symlink",
                    "bind",
                    "bind-file",
                    "type"
                  ]
                },
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The file layouts in the execution environment.",
          "examples": [
            "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
          ],
          "title": "Layout"
        },
        "grade": {
          "anyOf": [
            {
              "enum": [
                "stable",
                "devel"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The quality grade of the snap.",
          "examples": [
            "stable",
            "devel"
          ],
          "title": "Grade"
        },
        "architectures": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/Architecture"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The architectures that the snap builds and runs on.",
          "examples": [
            "[amd64, riscv64]",
            "[{build-on: [amd64], build-for: [amd64]}]",
            "[{build-on: [amd64, riscv64], build-for: [riscv64]}]"
          ],
          "title": "Architectures"
        },
        "assumes": {
          "description": "The minimum version of snapd and its features that the snap requires from the host.",
          "examples": [
            "[snapd2.66, common-data-dir]"
          ],
          "items": {
            "type": "string"
          },
          "title": "Assumes",
          "type": "array",
          "uniqueItems": true
        },
        "hooks": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Hook"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Configures the snap's hooks.",
          "examples": [
            "{configure: {plugs: [home]}}"
          ],
          "title": "Hooks"
        },
        "passthrough": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The attributes to pass to the snap's metadata file.",
          "examples": [
            "{daemon: complex}"
          ],
          "title": "Passthrough"
        },
        "apps": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/App"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The individual programs and services that the snap runs.",
          "examples": [
            "{app-1: {command: bin/app-1}}"
          ],
          "title": "Apps"
        },
        "plugs": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ContentPlug"
                  },
                  {}
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's plugs.",
          "examples": [
            "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
          ],
          "title": "Plugs"
        },
        "slots": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's slots.",
          "examples": [
            "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
          ],
          "title": "Slots"
        },
        "lint": {
          "anyOf": [
            {
              "$ref": "#/$defs/Lint"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The linter configuration settings.",
          "examples": [
            "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
          ]
        },
        "epoch": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The epoch associated with this version of the snap.",
          "examples": [
            "1",
            "2*"
          ],
          "title": "Epoch"
        },
        "system-usernames": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The system usernames the snap can use to run daemons and services.",
          "examples": [
            "{snap-daemon: shared}"
          ],
          "title": "System-Usernames"
        },
        "environment": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's runtime environment variables.",
          "examples": [
            "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
          ],
          "title": "Environment"
        },
        "build-packages": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The list of packages to install when building a snap.",
          "examples": [
            "[libssl-dev, libyaml-dev]"
          ],
          "title": "Build-Packages"
        },
        "build-snaps": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snaps to install when building a snap.",
          "examples": [
            "[go/1.22/stable, yq]"
          ],
          "title": "Build-Snaps"
        },
        "ua-services": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.",
          "examples": [
            "[esm-apps]"
          ],
          "title": "Ua-Services"
        },
        "provenance": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The primary-key header for snaps signed by third parties.",
          "examples": [
            "test-provenance"
          ],
          "title": "Provenance"
        },
        "components": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "maxLength": 40
              },
              "additionalProperties": {
                "$ref": "#/$defs/Component"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the components to build in conjunction with the snap.",
          "examples": [
            "{foo-component: {type: standard}}"
          ],
          "title": "Components"
        }
      },
      "required": [
        "name",
        "base",
        "parts",
        "confinement"
      ],
      "title": "Core22Project",
      "additionalProperties": false
    },
    "Core24Project": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The identifying name of the snap.",
          "examples": [
            "my-app",
            "powershell",
            "jupyterlab-desktop"
          ],
          "maxLength": 40,
          "title": "Name",
          "type": "string"
        },
        "title": {
          "anyOf": [
            {
              "description": "A human-readable title.",
              "examples": [
                "Ubuntu Linux",
                "Jupyter Lab Desktop",
                "LXD",
                "DigiKam",
                "Apache Kafka",
                "MySQL Router K8s charm"
              ],
              "maxLength": 40,
              "minLength": 2,
              "title": "Title",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "version": {
          "anyOf": [
            {
              "description": "The version of the project, enclosed in quotation marks.",
              "examples": [
                "\"0.1\"",
                "\"1.0.0\"",
                "\"v1.0.0\"",
                "\"24.04\""
              ],
              "maxLength": 32,
              "title": "version string",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The version of the snap.",
          "examples": [
            "1.2.3"
          ],
          "title": "Version"
        },
        "summary": {
          "anyOf": [
            {
              "description": "A short description of the project. Maximum length 78 characters.",
              "examples": [
                "Linux for Human Beings",
                "The cross-platform desktop application for JupyterLab",
                "Container and VM manager",
                "Photo Management Program",
                "Charm for routing MySQL databases in Kubernetes",
                "An open-source event streaming platform for high-performance data pipelines"
              ],
              "maxLength": 78,
              "title": "Summary",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The full description of the project.",
          "title": "Description"
        },
        "base": {
          "const": "core24",
          "title": "Base",
          "type": "string"
        },
        "build-base": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The baseline system that the snap is built in.",
          "examples": [
            "core22",
            "core24",
            "core26",
            "devel"
          ],
          "title": "Build-Base"
        },
        "platforms": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Platform"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The platforms where the snap can be built and where the resulting snap can run.",
          "examples": [
            "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
          ],
          "title": "Platforms"
        },
        "contact": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap author's contact links and email addresses.",
          "examples": [
            "[contact@example.com, https://example.com/contact]"
          ],
          "title": "Contact"
        },
        "issues": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links and email addresses for submitting issues, bugs, and feature requests.",
          "examples": [
            "[issues@email.com, https://example.com/issues]"
          ],
          "title": "Issues"
        },
        "source-code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the source code of the snap or the original project.",
          "examples": [
            "[https://example.com/source-code]"
          ],
          "title": "Source-Code"
        },
        "license": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's license as an SPDX expression",
          "examples": [
            "GPL-3.0+",
            "Apache-2.0"
          ],
          "title": "License"
        },
        "adopt-info": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Selects a part to inherit metadata from and reuse for the snap's metadata.\n\nRequired if one of ``version``, ``summary``, or ``description`` isn't set.",
          "examples": [
            "foo-part"
          ],
          "title": "Adopt-Info"
        },
        "parts": {
          "type": "object",
          "description": "The self-contained software pieces needed to create the final artifact.",
          "examples": [
            "{cloud-init:                 {plugin: python,                 source-type: git,                 source: https://git.launchpad.net/cloud-init}}"
          ],
          "title": "Parts",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "package-repositories": {
          "anyOf": [
            {
              "items": {
                "type": "object",
                "additionalProperties": true
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package repositories to use for build and stage packages.",
          "examples": [
            "[{type: apt,                components: [main],                suites: [xenial],                key-id: 78E1918602959B9C59103100F1831DDAFC42E99D,                url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
          ],
          "title": "Package-Repositories"
        },
        "compression": {
          "default": "xz",
          "description": "Specifies the algorithm that compresses the snap.",
          "enum": [
            "lzo",
            "xz"
          ],
          "examples": [
            "xz",
            "lzo"
          ],
          "title": "Compression",
          "type": "string"
        },
        "donation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's donation links.",
          "examples": [
            "[donate@example.com, https://example.com/donate]"
          ],
          "title": "Donation"
        },
        "website": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the original software's web pages.",
          "examples": [
            "[https://example.com]"
          ],
          "title": "Website"
        },
        "type": {
          "default": null,
          "enum": [
            "app",
            "gadget",
            null
          ],
          "title": "Type"
        },
        "icon": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The path to the snap's icon.",
          "examples": [
            "snap/gui/icon.svg"
          ],
          "title": "Icon"
        },
        "confinement": {
          "description": "The amount of isolation the snap has from the host system.",
          "enum": [
            "classic",
            "devmode",
            "strict"
          ],
          "examples": [
            "strict",
            "classic",
            "devmode"
          ],
          "title": "Confinement",
          "type": "string"
        },
        "layout": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "maxProperties": 1,
                "minProperties": 1,
                "propertyNames": {
                  "enum": [
                    "symlink",
                    "bind",
                    "bind-file",
                    "type"
                  ]
                },
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The file layouts in the execution environment.",
          "examples": [
            "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
          ],
          "title": "Layout"
        },
        "grade": {
          "anyOf": [
            {
              "enum": [
                "stable",
                "devel"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The quality grade of the snap.",
          "examples": [
            "stable",
            "devel"
          ],
          "title": "Grade"
        },
        "assumes": {
          "description": "The minimum version of snapd and its features that the snap requires from the host.",
          "examples": [
            "[snapd2.66, common-data-dir]"
          ],
          "items": {
            "type": "string"
          },
          "title": "Assumes",
          "type": "array",
          "uniqueItems": true
        },
        "hooks": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Hook"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Configures the snap's hooks.",
          "examples": [
            "{configure: {plugs: [home]}}"
          ],
          "title": "Hooks"
        },
        "passthrough": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The attributes to pass to the snap's metadata file.",
          "examples": [
            "{daemon: complex}"
          ],
          "title": "Passthrough"
        },
        "apps": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/App"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The individual programs and services that the snap runs.",
          "examples": [
            "{app-1: {command: bin/app-1}}"
          ],
          "title": "Apps"
        },
        "plugs": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ContentPlug"
                  },
                  {}
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's plugs.",
          "examples": [
            "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
          ],
          "title": "Plugs"
        },
        "slots": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's slots.",
          "examples": [
            "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
          ],
          "title": "Slots"
        },
        "lint": {
          "anyOf": [
            {
              "$ref": "#/$defs/Lint"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The linter configuration settings.",
          "examples": [
            "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
          ]
        },
        "epoch": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The epoch associated with this version of the snap.",
          "examples": [
            "1",
            "2*"
          ],
          "title": "Epoch"
        },
        "system-usernames": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The system usernames the snap can use to run daemons and services.",
          "examples": [
            "{snap-daemon: shared}"
          ],
          "title": "System-Usernames"
        },
        "environment": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's runtime environment variables.",
          "examples": [
            "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
          ],
          "title": "Environment"
        },
        "build-packages": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The list of packages to install when building a snap.",
          "examples": [
            "[libssl-dev, libyaml-dev]"
          ],
          "title": "Build-Packages"
        },
        "build-snaps": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snaps to install when building a snap.",
          "examples": [
            "[go/1.22/stable, yq]"
          ],
          "title": "Build-Snaps"
        },
        "ua-services": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.",
          "examples": [
            "[esm-apps]"
          ],
          "title": "Ua-Services"
        },
        "provenance": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The primary-key header for snaps signed by third parties.",
          "examples": [
            "test-provenance"
          ],
          "title": "Provenance"
        },
        "components": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "maxLength": 40
              },
              "additionalProperties": {
                "$ref": "#/$defs/Component"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the components to build in conjunction with the snap.",
          "examples": [
            "{foo-component: {type: standard}}"
          ],
          "title": "Components"
        }
      },
      "required": [
        "name",
        "base",
        "parts",
        "confinement"
      ],
      "title": "Core24Project",
      "additionalProperties": false
    },
    "Core26Project": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The identifying name of the snap.",
          "examples": [
            "my-app",
            "powershell",
            "jupyterlab-desktop"
          ],
          "maxLength": 40,
          "title": "Name",
          "type": "string"
        },
        "title": {
          "anyOf": [
            {
              "description": "A human-readable title.",
              "examples": [
                "Ubuntu Linux",
                "Jupyter Lab Desktop",
                "LXD",
                "DigiKam",
                "Apache Kafka",
                "MySQL Router K8s charm"
              ],
              "maxLength": 40,
              "minLength": 2,
              "title": "Title",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "version": {
          "anyOf": [
            {
              "description": "The version of the project, enclosed in quotation marks.",
              "examples": [
                "\"0.1\"",
                "\"1.0.0\"",
                "\"v1.0.0\"",
                "\"24.04\""
              ],
              "maxLength": 32,
              "title": "version string",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The version of the snap.",
          "examples": [
            "1.2.3"
          ],
          "title": "Version"
        },
        "summary": {
          "anyOf": [
            {
              "description": "A short description of the project. Maximum length 78 characters.",
              "examples": [
                "Linux for Human Beings",
                "The cross-platform desktop application for JupyterLab",
                "Container and VM manager",
                "Photo Management Program",
                "Charm for routing MySQL databases in Kubernetes",
                "An open-source event streaming platform for high-performance data pipelines"
              ],
              "maxLength": 78,
              "title": "Summary",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The full description of the project.",
          "title": "Description"
        },
        "base": {
          "enum": [
            "core26",
            "devel"
          ],
          "title": "Base",
          "type": "string"
        },
        "build-base": {
          "const": "devel",
          "title": "Build-Base",
          "type": "string"
        },
        "platforms": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Platform"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The platforms where the snap can be built and where the resulting snap can run.",
          "examples": [
            "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
          ],
          "title": "Platforms"
        },
        "contact": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap author's contact links and email addresses.",
          "examples": [
            "[contact@example.com, https://example.com/contact]"
          ],
          "title": "Contact"
        },
        "issues": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links and email addresses for submitting issues, bugs, and feature requests.",
          "examples": [
            "[issues@email.com, https://example.com/issues]"
          ],
          "title": "Issues"
        },
        "source-code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the source code of the snap or the original project.",
          "examples": [
            "[https://example.com/source-code]"
          ],
          "title": "Source-Code"
        },
        "license": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's license as an SPDX expression",
          "examples": [
            "GPL-3.0+",
            "Apache-2.0"
          ],
          "title": "License"
        },
        "adopt-info": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Selects a part to inherit metadata from and reuse for the snap's metadata.\n\nRequired if one of ``version``, ``summary``, or ``description`` isn't set.",
          "examples": [
            "foo-part"
          ],
          "title": "Adopt-Info"
        },
        "parts": {
          "type": "object",
          "description": "The self-contained software pieces needed to create the final artifact.",
          "examples": [
            "{cloud-init:                 {plugin: python,                 source-type: git,                 source: https://git.launchpad.net/cloud-init}}"
          ],
          "title": "Parts",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "package-repositories": {
          "anyOf": [
            {
              "items": {
                "type": "object",
                "additionalProperties": true
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package repositories to use for build and stage packages.",
          "examples": [
            "[{type: apt,                components: [main],                suites: [xenial],                key-id: 78E1918602959B9C59103100F1831DDAFC42E99D,                url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
          ],
          "title": "Package-Repositories"
        },
        "compression": {
          "default": "xz",
          "description": "Specifies the algorithm that compresses the snap.",
          "enum": [
            "lzo",
            "xz"
          ],
          "examples": [
            "xz",
            "lzo"
          ],
          "title": "Compression",
          "type": "string"
        },
        "donation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's donation links.",
          "examples": [
            "[donate@example.com, https://example.com/donate]"
          ],
          "title": "Donation"
        },
        "website": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the original software's web pages.",
          "examples": [
            "[https://example.com]"
          ],
          "title": "Website"
        },
        "type": {
          "default": null,
          "enum": [
            "app",
            "gadget",
            null
          ],
          "title": "Type"
        },
        "icon": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The path to the snap's icon.",
          "examples": [
            "snap/gui/icon.svg"
          ],
          "title": "Icon"
        },
        "confinement": {
          "description": "The amount of isolation the snap has from the host system.",
          "enum": [
            "classic",
            "devmode",
            "strict"
          ],
          "examples": [
            "strict",
            "classic",
            "devmode"
          ],
          "title": "Confinement",
          "type": "string"
        },
        "layout": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "maxProperties": 1,
                "minProperties": 1,
                "propertyNames": {
                  "enum": [
                    "symlink",
                    "bind",
                    "bind-file",
                    "type"
                  ]
                },
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The file layouts in the execution environment.",
          "examples": [
            "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
          ],
          "title": "Layout"
        },
        "grade": {
          "const": "devel",
          "title": "Grade",
          "type": "string"
        },
        "assumes": {
          "description": "The minimum version of snapd and its features that the snap requires from the host.",
          "examples": [
            "[snapd2.66, common-data-dir]"
          ],
          "items": {
            "type": "string"
          },
          "title": "Assumes",
          "type": "array",
          "uniqueItems": true
        },
        "hooks": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Hook"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Configures the snap's hooks.",
          "examples": [
            "{configure: {plugs: [home]}}"
          ],
          "title": "Hooks"
        },
        "passthrough": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The attributes to pass to the snap's metadata file.",
          "examples": [
            "{daemon: complex}"
          ],
          "title": "Passthrough"
        },
        "apps": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/App"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The individual programs and services that the snap runs.",
          "examples": [
            "{app-1: {command: bin/app-1}}"
          ],
          "title": "Apps"
        },
        "plugs": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ContentPlug"
                  },
                  {}
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's plugs.",
          "examples": [
            "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
          ],
          "title": "Plugs"
        },
        "slots": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's slots.",
          "examples": [
            "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
          ],
          "title": "Slots"
        },
        "lint": {
          "anyOf": [
            {
              "$ref": "#/$defs/Lint"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The linter configuration settings.",
          "examples": [
            "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
          ]
        },
        "epoch": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The epoch associated with this version of the snap.",
          "examples": [
            "1",
            "2*"
          ],
          "title": "Epoch"
        },
        "system-usernames": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The system usernames the snap can use to run daemons and services.",
          "examples": [
            "{snap-daemon: shared}"
          ],
          "title": "System-Usernames"
        },
        "environment": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's runtime environment variables.",
          "examples": [
            "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
          ],
          "title": "Environment"
        },
        "build-packages": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The list of packages to install when building a snap.",
          "examples": [
            "[libssl-dev, libyaml-dev]"
          ],
          "title": "Build-Packages"
        },
        "build-snaps": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snaps to install when building a snap.",
          "examples": [
            "[go/1.22/stable, yq]"
          ],
          "title": "Build-Snaps"
        },
        "ua-services": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.",
          "examples": [
            "[esm-apps]"
          ],
          "title": "Ua-Services"
        },
        "provenance": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The primary-key header for snaps signed by third parties.",
          "examples": [
            "test-provenance"
          ],
          "title": "Provenance"
        },
        "components": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "maxLength": 40
              },
              "additionalProperties": {
                "$ref": "#/$defs/Component"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the components to build in conjunction with the snap.",
          "examples": [
            "{foo-component: {type: standard}}"
          ],
          "title": "Components"
        }
      },
      "required": [
        "name",
        "base",
        "build-base",
        "parts",
        "confinement",
        "grade"
      ],
      "title": "Core26Project",
      "additionalProperties": false
    },
    "Hook": {
      "type": "object",
      "description": "Snapcraft project hook definition.",
      "properties": {
        "command-chain": {
          "description": "The ordered list of commands to run before the hook runs.",
          "examples": [
            "[bin/alsa-launch, bin/desktop-launch]"
          ],
          "items": {
            "type": "string"
          },
          "title": "Command-Chain",
          "type": "array"
        },
        "environment": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The environment variables for the hook.",
          "examples": [
            "{PYTHONPATH: /custom/path/:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
          ],
          "title": "Environment"
        },
        "plugs": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The list of interfaces that the hook can connect to.",
          "examples": [
            "[home, removable-media]"
          ],
          "title": "Plugs"
        },
        "passthrough": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The attributes to pass to the snap's metadata file for the hook.",
          "examples": [
            "{daemon: complex}"
          ],
          "title": "Passthrough"
        }
      },
      "title": "Hook",
      "additionalProperties": false
    },
    "Lint": {
      "type": "object",
      "description": "Linter configuration.\n\n:ivar ignore: A list describing which files should have issues ignored for given linters.\n    The items in the list can be either:\n    - a string, which must be the name of one of the known linters (see below). All issues\n      from this linter will be ignored.\n    - a dict containing exactly one key, which must be the name of one of the known linters.\n        The value is then a list of strings corresponding to the filenames/patterns that\n        should be ignored for that linter.\n    The \"known\" linter names are the keys in :ref:`LINTERS`",
      "properties": {
        "ignore": {
          "description": "Linters or files to skip when linting.",
          "examples": [
            "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
          ],
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "additionalProperties": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              }
            ]
          },
          "title": "Ignore",
          "type": "array"
        }
      },
      "required": [
        "ignore"
      ],
      "title": "Lint",
      "additionalProperties": false
    },
    "Platform": {
      "type": "object",
      "description": "Snapcraft project platform definition.",
      "properties": {
        "build-on": {
          "anyOf": [
            {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "uniqueItems": true
                }
              ],
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "description": "The architectures to build the snap on.",
          "examples": [
            "arm64",
            "[amd64, riscv64]"
          ],
          "title": "Build-On"
        },
        "build-for": {
          "anyOf": [
            {
              "items": {},
              "maxItems": 1,
              "minItems": 1,
              "type": "array"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The target architecture for the build.",
          "examples": [
            "amd64",
            "[riscv64]"
          ],
          "title": "Build-For"
        }
      },
      "required": [
        "build-on"
      ],
      "title": "Platform",
      "additionalProperties": false
    },
    "Socket": {
      "type": "object",
      "description": "Snapcraft app socket definition.",
      "properties": {
        "listen-stream": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ],
          "description": "The socket's abstract name or socket path.",
          "examples": [
            "$SNAP_COMMON/lxd/unix.socket",
            "80"
          ],
          "title": "Listen-Stream"
        },
        "socket-mode": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The mode or permissions of the socket in octal.",
          "examples": [
            "0660"
          ],
          "title": "Socket-Mode"
        }
      },
      "required": [
        "listen-stream"
      ],
      "title": "Socket",
      "additionalProperties": false
    },
    "_BaselessCore22Project": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The identifying name of the snap.",
          "examples": [
            "my-app",
            "powershell",
            "jupyterlab-desktop"
          ],
          "maxLength": 40,
          "title": "Name",
          "type": "string"
        },
        "title": {
          "anyOf": [
            {
              "description": "A human-readable title.",
              "examples": [
                "Ubuntu Linux",
                "Jupyter Lab Desktop",
                "LXD",
                "DigiKam",
                "Apache Kafka",
                "MySQL Router K8s charm"
              ],
              "maxLength": 40,
              "minLength": 2,
              "title": "Title",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "version": {
          "anyOf": [
            {
              "description": "The version of the project, enclosed in quotation marks.",
              "examples": [
                "\"0.1\"",
                "\"1.0.0\"",
                "\"v1.0.0\"",
                "\"24.04\""
              ],
              "maxLength": 32,
              "title": "version string",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The version of the snap.",
          "examples": [
            "1.2.3"
          ],
          "title": "Version"
        },
        "summary": {
          "anyOf": [
            {
              "description": "A short description of the project. Maximum length 78 characters.",
              "examples": [
                "Linux for Human Beings",
                "The cross-platform desktop application for JupyterLab",
                "Container and VM manager",
                "Photo Management Program",
                "Charm for routing MySQL databases in Kubernetes",
                "An open-source event streaming platform for high-performance data pipelines"
              ],
              "maxLength": 78,
              "title": "Summary",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The full description of the project.",
          "title": "Description"
        },
        "build-base": {
          "const": "core22",
          "description": "The baseline system that the snap is built in.",
          "title": "Build-Base",
          "type": "string"
        },
        "platforms": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Platform"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The architectures that the snap builds and runs on.",
          "examples": [
            "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
          ],
          "title": "Platforms"
        },
        "contact": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap author's contact links and email addresses.",
          "examples": [
            "[contact@example.com, https://example.com/contact]"
          ],
          "title": "Contact"
        },
        "issues": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links and email addresses for submitting issues, bugs, and feature requests.",
          "examples": [
            "[issues@email.com, https://example.com/issues]"
          ],
          "title": "Issues"
        },
        "source-code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the source code of the snap or the original project.",
          "examples": [
            "[https://example.com/source-code]"
          ],
          "title": "Source-Code"
        },
        "license": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's license as an SPDX expression",
          "examples": [
            "GPL-3.0+",
            "Apache-2.0"
          ],
          "title": "License"
        },
        "adopt-info": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Selects a part to inherit metadata from and reuse for the snap's metadata.\n\nRequired if one of ``version``, ``summary``, or ``description`` isn't set.",
          "examples": [
            "foo-part"
          ],
          "title": "Adopt-Info"
        },
        "parts": {
          "type": "object",
          "description": "The self-contained software pieces needed to create the final artifact.",
          "examples": [
            "{cloud-init:                 {plugin: python,                 source-type: git,                 source: https://git.launchpad.net/cloud-init}}"
          ],
          "title": "Parts",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "package-repositories": {
          "anyOf": [
            {
              "items": {
                "type": "object",
                "additionalProperties": true
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package repositories to use for build and stage packages.",
          "examples": [
            "[{type: apt,                components: [main],                suites: [xenial],                key-id: 78E1918602959B9C59103100F1831DDAFC42E99D,                url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
          ],
          "title": "Package-Repositories"
        },
        "compression": {
          "default": "xz",
          "description": "Specifies the algorithm that compresses the snap.",
          "enum": [
            "lzo",
            "xz"
          ],
          "examples": [
            "xz",
            "lzo"
          ],
          "title": "Compression",
          "type": "string"
        },
        "donation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's donation links.",
          "examples": [
            "[donate@example.com, https://example.com/donate]"
          ],
          "title": "Donation"
        },
        "website": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the original software's web pages.",
          "examples": [
            "[https://example.com]"
          ],
          "title": "Website"
        },
        "type": {
          "enum": [
            "base",
            "kernel",
            "snapd"
          ],
          "title": "Type",
          "type": "string"
        },
        "icon": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The path to the snap's icon.",
          "examples": [
            "snap/gui/icon.svg"
          ],
          "title": "Icon"
        },
        "confinement": {
          "description": "The amount of isolation the snap has from the host system.",
          "enum": [
            "classic",
            "devmode",
            "strict"
          ],
          "examples": [
            "strict",
            "classic",
            "devmode"
          ],
          "title": "Confinement",
          "type": "string"
        },
        "layout": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "maxProperties": 1,
                "minProperties": 1,
                "propertyNames": {
                  "enum": [
                    "symlink",
                    "bind",
                    "bind-file",
                    "type"
                  ]
                },
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The file layouts in the execution environment.",
          "examples": [
            "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
          ],
          "title": "Layout"
        },
        "grade": {
          "anyOf": [
            {
              "enum": [
                "stable",
                "devel"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The quality grade of the snap.",
          "examples": [
            "stable",
            "devel"
          ],
          "title": "Grade"
        },
        "architectures": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/Architecture"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The architectures that the snap builds and runs on.",
          "examples": [
            "[amd64, riscv64]",
            "[{build-on: [amd64], build-for: [amd64]}]",
            "[{build-on: [amd64, riscv64], build-for: [riscv64]}]"
          ],
          "title": "Architectures"
        },
        "assumes": {
          "description": "The minimum version of snapd and its features that the snap requires from the host.",
          "examples": [
            "[snapd2.66, common-data-dir]"
          ],
          "items": {
            "type": "string"
          },
          "title": "Assumes",
          "type": "array",
          "uniqueItems": true
        },
        "hooks": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Hook"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Configures the snap's hooks.",
          "examples": [
            "{configure: {plugs: [home]}}"
          ],
          "title": "Hooks"
        },
        "passthrough": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The attributes to pass to the snap's metadata file.",
          "examples": [
            "{daemon: complex}"
          ],
          "title": "Passthrough"
        },
        "apps": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/App"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The individual programs and services that the snap runs.",
          "examples": [
            "{app-1: {command: bin/app-1}}"
          ],
          "title": "Apps"
        },
        "plugs": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ContentPlug"
                  },
                  {}
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's plugs.",
          "examples": [
            "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
          ],
          "title": "Plugs"
        },
        "slots": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's slots.",
          "examples": [
            "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
          ],
          "title": "Slots"
        },
        "lint": {
          "anyOf": [
            {
              "$ref": "#/$defs/Lint"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The linter configuration settings.",
          "examples": [
            "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
          ]
        },
        "epoch": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The epoch associated with this version of the snap.",
          "examples": [
            "1",
            "2*"
          ],
          "title": "Epoch"
        },
        "system-usernames": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The system usernames the snap can use to run daemons and services.",
          "examples": [
            "{snap-daemon: shared}"
          ],
          "title": "System-Usernames"
        },
        "environment": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's runtime environment variables.",
          "examples": [
            "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
          ],
          "title": "Environment"
        },
        "build-packages": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The list of packages to install when building a snap.",
          "examples": [
            "[libssl-dev, libyaml-dev]"
          ],
          "title": "Build-Packages"
        },
        "build-snaps": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snaps to install when building a snap.",
          "examples": [
            "[go/1.22/stable, yq]"
          ],
          "title": "Build-Snaps"
        },
        "ua-services": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.",
          "examples": [
            "[esm-apps]"
          ],
          "title": "Ua-Services"
        },
        "provenance": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The primary-key header for snaps signed by third parties.",
          "examples": [
            "test-provenance"
          ],
          "title": "Provenance"
        },
        "components": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "maxLength": 40
              },
              "additionalProperties": {
                "$ref": "#/$defs/Component"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the components to build in conjunction with the snap.",
          "examples": [
            "{foo-component: {type: standard}}"
          ],
          "title": "Components"
        }
      },
      "required": [
        "name",
        "build-base",
        "parts",
        "type",
        "confinement"
      ],
      "title": "_BaselessCore22Project",
      "additionalProperties": false
    },
    "_BaselessProject": {
      "type": "object",
      "description": "Project types that do not require a base.",
      "properties": {
        "name": {
          "description": "The identifying name of the snap.",
          "examples": [
            "my-app",
            "powershell",
            "jupyterlab-desktop"
          ],
          "maxLength": 40,
          "title": "Name",
          "type": "string"
        },
        "title": {
          "anyOf": [
            {
              "description": "A human-readable title.",
              "examples": [
                "Ubuntu Linux",
                "Jupyter Lab Desktop",
                "LXD",
                "DigiKam",
                "Apache Kafka",
                "MySQL Router K8s charm"
              ],
              "maxLength": 40,
              "minLength": 2,
              "title": "Title",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Title"
        },
        "version": {
          "anyOf": [
            {
              "description": "The version of the project, enclosed in quotation marks.",
              "examples": [
                "\"0.1\"",
                "\"1.0.0\"",
                "\"v1.0.0\"",
                "\"24.04\""
              ],
              "maxLength": 32,
              "title": "version string",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The version of the snap.",
          "examples": [
            "1.2.3"
          ],
          "title": "Version"
        },
        "summary": {
          "anyOf": [
            {
              "description": "A short description of the project. Maximum length 78 characters.",
              "examples": [
                "Linux for Human Beings",
                "The cross-platform desktop application for JupyterLab",
                "Container and VM manager",
                "Photo Management Program",
                "Charm for routing MySQL databases in Kubernetes",
                "An open-source event streaming platform for high-performance data pipelines"
              ],
              "maxLength": 78,
              "title": "Summary",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Summary"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The full description of the project.",
          "title": "Description"
        },
        "build-base": {
          "description": "The baseline system that the snap is built in.",
          "enum": [
            "core24",
            "core26",
            "devel"
          ],
          "title": "Build-Base",
          "type": "string"
        },
        "platforms": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Platform"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The architectures that the snap builds and runs on.",
          "examples": [
            "{amd64: {build-on: [amd64], build-for: [amd64]}, arm64: {build-on: [amd64, arm64], build-for: [arm64]}}"
          ],
          "title": "Platforms"
        },
        "contact": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap author's contact links and email addresses.",
          "examples": [
            "[contact@example.com, https://example.com/contact]"
          ],
          "title": "Contact"
        },
        "issues": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links and email addresses for submitting issues, bugs, and feature requests.",
          "examples": [
            "[issues@email.com, https://example.com/issues]"
          ],
          "title": "Issues"
        },
        "source-code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the source code of the snap or the original project.",
          "examples": [
            "[https://example.com/source-code]"
          ],
          "title": "Source-Code"
        },
        "license": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's license as an SPDX expression",
          "examples": [
            "GPL-3.0+",
            "Apache-2.0"
          ],
          "title": "License"
        },
        "adopt-info": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Selects a part to inherit metadata from and reuse for the snap's metadata.\n\nRequired if one of ``version``, ``summary``, or ``description`` isn't set.",
          "examples": [
            "foo-part"
          ],
          "title": "Adopt-Info"
        },
        "parts": {
          "type": "object",
          "description": "The self-contained software pieces needed to create the final artifact.",
          "examples": [
            "{cloud-init:                 {plugin: python,                 source-type: git,                 source: https://git.launchpad.net/cloud-init}}"
          ],
          "title": "Parts",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "package-repositories": {
          "anyOf": [
            {
              "items": {
                "type": "object",
                "additionalProperties": true
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The package repositories to use for build and stage packages.",
          "examples": [
            "[{type: apt,                components: [main],                suites: [xenial],                key-id: 78E1918602959B9C59103100F1831DDAFC42E99D,                url: http://ppa.launchpad.net/snappy-dev/snapcraft-daily/ubuntu}]"
          ],
          "title": "Package-Repositories"
        },
        "compression": {
          "default": "xz",
          "description": "Specifies the algorithm that compresses the snap.",
          "enum": [
            "lzo",
            "xz"
          ],
          "examples": [
            "xz",
            "lzo"
          ],
          "title": "Compression",
          "type": "string"
        },
        "donation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's donation links.",
          "examples": [
            "[donate@example.com, https://example.com/donate]"
          ],
          "title": "Donation"
        },
        "website": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The links to the original software's web pages.",
          "examples": [
            "[https://example.com]"
          ],
          "title": "Website"
        },
        "type": {
          "enum": [
            "base",
            "kernel",
            "snapd"
          ],
          "title": "Type",
          "type": "string"
        },
        "icon": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The path to the snap's icon.",
          "examples": [
            "snap/gui/icon.svg"
          ],
          "title": "Icon"
        },
        "confinement": {
          "description": "The amount of isolation the snap has from the host system.",
          "enum": [
            "classic",
            "devmode",
            "strict"
          ],
          "examples": [
            "strict",
            "classic",
            "devmode"
          ],
          "title": "Confinement",
          "type": "string"
        },
        "layout": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "type": "object",
                "maxProperties": 1,
                "minProperties": 1,
                "propertyNames": {
                  "enum": [
                    "symlink",
                    "bind",
                    "bind-file",
                    "type"
                  ]
                },
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The file layouts in the execution environment.",
          "examples": [
            "{/var/lib/foo: {bind: $SNAP_DATA/var/lib/foo}}"
          ],
          "title": "Layout"
        },
        "grade": {
          "anyOf": [
            {
              "enum": [
                "stable",
                "devel"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The quality grade of the snap.",
          "examples": [
            "stable",
            "devel"
          ],
          "title": "Grade"
        },
        "architectures": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/Architecture"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The architectures that the snap builds and runs on.",
          "examples": [
            "[amd64, riscv64]",
            "[{build-on: [amd64], build-for: [amd64]}]",
            "[{build-on: [amd64, riscv64], build-for: [riscv64]}]"
          ],
          "title": "Architectures"
        },
        "assumes": {
          "description": "The minimum version of snapd and its features that the snap requires from the host.",
          "examples": [
            "[snapd2.66, common-data-dir]"
          ],
          "items": {
            "type": "string"
          },
          "title": "Assumes",
          "type": "array",
          "uniqueItems": true
        },
        "hooks": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/Hook"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Configures the snap's hooks.",
          "examples": [
            "{configure: {plugs: [home]}}"
          ],
          "title": "Hooks"
        },
        "passthrough": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The attributes to pass to the snap's metadata file.",
          "examples": [
            "{daemon: complex}"
          ],
          "title": "Passthrough"
        },
        "apps": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/App"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The individual programs and services that the snap runs.",
          "examples": [
            "{app-1: {command: bin/app-1}}"
          ],
          "title": "Apps"
        },
        "plugs": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/ContentPlug"
                  },
                  {}
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's plugs.",
          "examples": [
            "{dot-gitconfig: {interface: personal-files, read: [$HOME/.gitconfig]}}"
          ],
          "title": "Plugs"
        },
        "slots": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the snap's slots.",
          "examples": [
            "{slot-1: {interface: content, content: my-binaries, source: {read: [$SNAP/bin]}}}"
          ],
          "title": "Slots"
        },
        "lint": {
          "anyOf": [
            {
              "$ref": "#/$defs/Lint"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The linter configuration settings.",
          "examples": [
            "{ignore: [classic, library: [usr/lib/**/libfoo.so*]]}"
          ]
        },
        "epoch": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The epoch associated with this version of the snap.",
          "examples": [
            "1",
            "2*"
          ],
          "title": "Epoch"
        },
        "system-usernames": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The system usernames the snap can use to run daemons and services.",
          "examples": [
            "{snap-daemon: shared}"
          ],
          "title": "System-Usernames"
        },
        "environment": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snap's runtime environment variables.",
          "examples": [
            "{PYTHONPATH: $SNAP/usr/lib/python3/dist-packages:$PYTHON_PATH, DISABLE_WAYLAND: 1}"
          ],
          "title": "Environment"
        },
        "build-packages": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The list of packages to install when building a snap.",
          "examples": [
            "[libssl-dev, libyaml-dev]"
          ],
          "title": "Build-Packages"
        },
        "build-snaps": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The snaps to install when building a snap.",
          "examples": [
            "[go/1.22/stable, yq]"
          ],
          "title": "Build-Snaps"
        },
        "ua-services": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array",
              "uniqueItems": true
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Ubuntu Pro (formerly Ubuntu Advantage) services to enable when building the snap.",
          "examples": [
            "[esm-apps]"
          ],
          "title": "Ua-Services"
        },
        "provenance": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The primary-key header for snaps signed by third parties.",
          "examples": [
            "test-provenance"
          ],
          "title": "Provenance"
        },
        "components": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "maxLength": 40
              },
              "additionalProperties": {
                "$ref": "#/$defs/Component"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Declares the components to build in conjunction with the snap.",
          "examples": [
            "{foo-component: {type: standard}}"
          ],
          "title": "Components"
        }
      },
      "required": [
        "name",
        "build-base",
        "parts",
        "type",
        "confinement"
      ],
      "title": "_BaselessProject",
      "additionalProperties": false
    }
  },
  "oneOf": [
    {
      "discriminator": {
        "mapping": {
          "bare": {
            "discriminator": {
              "mapping": {
                "core22": "#/$defs/BareCore22Project",
                "core24": "#/$defs/BareCore24Project",
                "devel": "#/$defs/BareCore26Project"
              },
              "propertyName": "build-base"
            },
            "oneOf": [
              {
                "$ref": "#/$defs/BareCore22Project"
              },
              {
                "$ref": "#/$defs/BareCore24Project"
              },
              {
                "$ref": "#/$defs/BareCore26Project"
              }
            ]
          },
          "core22": "#/$defs/Core22Project",
          "core24": "#/$defs/Core24Project",
          "core26": "#/$defs/Core26Project",
          "devel": "#/$defs/Core26Project"
        },
        "propertyName": "base"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/Core22Project"
        },
        {
          "$ref": "#/$defs/Core24Project"
        },
        {
          "$ref": "#/$defs/Core26Project"
        },
        {
          "discriminator": {
            "mapping": {
              "core22": "#/$defs/BareCore22Project",
              "core24": "#/$defs/BareCore24Project",
              "devel": "#/$defs/BareCore26Project"
            },
            "propertyName": "build-base"
          },
          "oneOf": [
            {
              "$ref": "#/$defs/BareCore22Project"
            },
            {
              "$ref": "#/$defs/BareCore24Project"
            },
            {
              "$ref": "#/$defs/BareCore26Project"
            }
          ]
        }
      ]
    },
    {
      "discriminator": {
        "mapping": {
          "core22": "#/$defs/_BaselessCore22Project",
          "core24": "#/$defs/_BaselessProject",
          "core26": "#/$defs/_BaselessProject",
          "devel": "#/$defs/_BaselessProject"
        },
        "propertyName": "build-base"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/_BaselessCore22Project"
        },
        {
          "$ref": "#/$defs/_BaselessProject"
        }
      ]
    }
  ]
}
