content: {
    "$defs": {
      "page": {
        "additionalProperties": false,
        "description": "Page metadata",
        "properties": {
          "forcedOverlay": {
            "default": false,
            "description": "Override overlay autodetection",
            "type": "boolean"
          },
          "hidden": {
            "default": false,
            "description": "Flag indicating the page should normally be skipped",
            "type": "boolean"
          },
          "idx": {
            "description": "0-based PDF page index",
            "minimum": 0,
            "type": "integer"
          },
          "label": {
            "description": "PDF page label",
            "type": "string"
          },
          "note": {
            "$comment": "The interpretation depends on disableMarkdown 1 level up",
            "description": "User notes, either in plain text or Markdown",
            "oneOf": [
              {
                "contentMediaType": "text/plain",
                "type": "string"
              },
              {
                "contentMediaType": "text/markdown",
                "type": "string"
              }
            ]
          },
          "overlay": {
            "description": "Overlay index having the same label, 0-based",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "idx",
          "label",
          "overlay"
        ],
        "type": "object"
      }
    },
    "$id": "https://pdfpc.github.io/schema/pdfpc/2",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "additionalProperties": false,
    "description": "Metadata about a presentation used by pdfpc",
    "properties": {
      "beamerNotePosition": {
        "default": "none",
        "description": "Position of Beamer notes",
        "enum": [
          "none",
          "top",
          "bottom",
          "right",
          "left"
        ],
        "type": "string"
      },
      "defaultTransition": {
        "$comment": "A proper regex pattern would be kilometer long...",
        "default": "replace",
        "description": "Default slide transition",
        "examples": [
          "push",
          "dissolve:1.5",
          "wipe:1:90",
          "split:1:0:vertical:outward"
        ],
        "type": "string"
      },
      "disableMarkdown": {
        "default": false,
        "description": "Interpret notes as plain text",
        "type": "boolean"
      },
      "duration": {
        "description": "Duration of the presentation, in minutes",
        "minimum": 1,
        "type": "integer"
      },
      "endSlide": {
        "description": "User-defined last slide, 0-based",
        "minimum": 0,
        "type": "integer"
      },
      "endTime": {
        "description": "Intended end time, in the HH:MM format",
        "pattern": "^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$",
        "type": "string"
      },
      "lastMinutes": {
        "default": 5,
        "description": "Number of last minutes when the timer color changes",
        "minimum": 1,
        "type": "integer"
      },
      "noteFontSize": {
        "default": 20,
        "description": "Font size used to display slide notes",
        "minimum": 1,
        "type": "integer"
      },
      "pages": {
        "description": "Array of pages; only user-modified ones need to be listed",
        "items": {
          "$ref": "#/$defs/page"
        },
        "minItems": 0,
        "type": "array",
        "uniqueItems": true
      },
      "pdfpcFormat": {
        "const": 2,
        "description": "Version number of this format, currently 2",
        "type": "integer"
      },
      "savedSlide": {
        "description": "Bookmarked slide, 0-based",
        "minimum": 0,
        "type": "integer"
      },
      "startTime": {
        "description": "Intended start time, in the HH:MM format",
        "pattern": "^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$",
        "type": "string"
      }
    },
    "required": [
      "pdfpcFormat"
    ],
    "title": "pdfpc",
    "type": "object"
  }