- name: project
  description: MISSING_DESCRIPTION
  schema:
    object:
      properties:
        type:
          enum: [website, book, site]
          completions: [website, book]
          description: "Project type (`default`, `website`, or `book`)"
        render:
          arrayOf: path
          description: "Files to render (defaults to all files)"
        execute-dir:
          enum: [file, project]
          description:
            short: "Working directory for computations"
            long: |
              Control the working directory for computations. 

              - `file`: Use the directory of the file that is currently executing.
              - `project`: Use the root directory of the project.
        output-dir:
          path:
            description: "Output directory"
        lib-dir:
          path:
            description: "HTML library (JS/CSS/etc.) directory"
        resources:
          maybeArrayOf:
            schema: path
            description: "Additional file resources to be copied to output directory"

- name: website
  description: MISSING_DESCRIPTION
  schema:
    ref: base-website

- name: book
  description: MISSING_DESCRIPTION
  schema:
    object:
      super:
        resolveRef: base-website
      properties:
        title:
          string:
            description: "Book title"
        subtitle:
          string:
            description: "Book subtitle"
        author:
          maybeArrayOf:
            schema: string
            description: "Author or authors of the book"
        date:
          string:
            description: "Book publication date"
        abstract:
          string:
            description: "Book abstract"
        description:
          string:
            description: "Description metadata for HTML version of book"
        chapters:
          ref: chapter-list
          description: "Book part and chapter files"
        references:
          path:
            description: "Book references file"
        appendices:
          arrayOf:
            ref: chapter-item
          description: "Book appendix files"
        output-file:
          path:
            description: "Base name for single-file output (e.g. PDF, ePub)"
        cover-image:
          path:
            description: "Cover image (used in HTML and ePub formats)"
        sharing:
          maybeArrayOf:
            enum: [twitter, facebook, linkedin]
            description: |
              Sharing buttons to include on navbar or sidebar
              (one or more of `twitter`, `facebook`, `linkedin`)
        downloads:
          maybeArrayOf:
            enum: [pdf, epub, docx]
            description: |
              Download buttons for other formats to include on navbar or sidebar
              (one or more of `pdf`, `epub`, and `docx)
        tools:
          arrayOf:
            schema:
              ref: navigation-item
            description: "Custom tools for navbar or sidebar"
