{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "name": {
      "type": "string",
      "default": "John Doe",
      "description": "The name of the user"
    },
    "age": {
      "type": "integer",
      "default": 42,
      "description": "The age of the user"
    },
    "isAdmin": {
      "type": "boolean",
      "default": false,
      "description": "Is the user an admin?"
    },
    "kernelModules": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": ["nvme", "xhci_pci", "ahci"],
      "description": "A list of enabled kernel modules"
    },
    "userIds": {
      "type": "object",
      "default": {
        "horst": 1,
        "peter": 2,
        "albrecht": 3
      },
      "additionalProperties": {
        "type": "integer"
      },
      "description": "Some attributes"
    },
    "services": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "opt": {
          "type": "string",
          "default": "foo",
          "description": "A submodule option"
        }
      }
    },
    "destinations": {
      "additionalProperties": {
        "properties": {
          "name": {
            "default": "‹name›",
            "description": "the name of the backup job",
            "type": "string"
          },
          "repo": {
            "description": "the borgbackup repository to backup to",
            "type": "string"
          }
        },
        "required": ["repo"],
        "additionalProperties": false,
        "type": "object"
      },
      "default": {},
      "type": "object"
    }
  }
}
