{
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",
  "id": "http://jsonschema.net",
  "$ref": "http://localhost/system/basicContent.schema",
  "properties": {
    "heroImage": {
      "type": "string",
      "title": "Preview image",
      "default": "",
      "inputType": "Asset:image",
      "validators": [],
      "editorOnly": true,
      "help": "The image that will be shown in the dashboard for this course"
    },
    "title": {
      "type": "string",
      "required": true,
      "default": "New Course Title",
      "inputType": "Text",
      "validators": [
        "required"
      ],
      "translatable": true
    },
    "displayTitle": {
      "type": "string",
      "required": false,
      "default": "New Course Title",
      "inputType": "DisplayTitle",
      "validators": [],
      "help": "This is the title that will be displayed on the course's main menu",
      "translatable": true
    },
    "description": {
      "type": "string",
      "required": false,
      "default": "",
      "inputType": "Text",
      "validators": [],
      "translatable": true,
      "help": "This will be added to the course's manifest file metadata. It is not (currently) displayed anywhere within the course."
    },
    "body": {
      "type": "string",
      "default": "",
      "inputType": "TextArea",
      "validators": [],
      "translatable": true
    },
    "_htmlClassName": {
      "type": "string",
      "required": false,
      "title": "HTML Classes",
      "default": "",
      "inputType": "Text",
      "validators": [],
      "help": "If set, this class will be applied to the <html> element when the top-level menu in the course is displayed. These are predefined in the theme or added in Custom CSS/Less code."
    },
    "_extensions": {
      "type": "object"
    },
    "_latestTrackingId": {
      "type": "number",
      "required": true,
      "default": 0
    },
    "_start": {
      "type": "object",
      "title": "Start settings",
      "help": "The start settings allow you to control which page is rendered when a course loads, potentially bypassing the menu.",
      "properties": {
        "_isEnabled": {
          "type": "boolean",
          "default": false,
          "editorOnly": true,
          "inputType": "Checkbox",
          "validators": [],
          "title": "Enabled?"
        },
        "_startIds": {
          "type": "array",
          "title": "Start List",
          "items": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "title": "ID",
                "inputType": "Text",
                "required": true
              },
              "_skipIfComplete": {
                "type": "boolean",
                "default": false,
                "editorOnly": true,
                "inputType": "Checkbox",
                "validators": [],
                "title": "Skip if complete?",
                "help": "If enabled, the page will not be selected as the first page if it has been already viewed/completed"
              },
              "_className": {
                "type": "string",
                "inputType": "Text",
                "required": true,
                "title": "Classes",
                "help": "Optional comma-separated list of class names which will be used to select this start page"
              }
            }
          }
        },
        "_force": {
          "type": "boolean",
          "default": false,
          "editorOnly": true,
          "inputType": "Checkbox",
          "validators": [],
          "title": "Force routing",
          "help": "If enabled, the routing will be forced to the appropriate start page, regardless of the URL"
        },
        "_isMenuDisabled": {
          "type": "boolean",
          "default": false,
          "editorOnly": true,
          "inputType": "Checkbox",
          "validators": [],
          "title": "Disable menu",
          "help": "Allows you to prevent the user from seeing - or navigating to - the main menu"
        }
      }
    },
    "_globals": {
      "type": "object",
      "properties": {
        "_accessibility": {
          "type": "object",
          "title": "Accessibility",
          "required": true,
          "properties": {
            "skipNavigationText": {
              "type": "string",
              "title": "Skip navigation label",
              "default": "Skip navigation",
              "inputType": "Text",
              "required": true,
              "validators": [
                "required"
              ],
              "translatable": true
            },
            "_ariaLabels": {
              "type": "object",
              "title": "ARIA labels",
              "properties": {
                "answeredIncorrectly": {
                  "type": "string",
                  "title": "",
                  "default": "You answered incorrectly",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "answeredCorrectly": {
                  "type": "string",
                  "title": "",
                  "default": "You answered correctly",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "selectedAnswer": {
                  "type": "string",
                  "title": "",
                  "default": "selected",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "unselectedAnswer": {
                  "type": "string",
                  "title": "",
                  "default": "not selected",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "skipNavigation": {
                  "type": "string",
                  "title": "Skip Navigation",
                  "default": "Skip Navigation",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "previous": {
                  "type": "string",
                  "title": "",
                  "default": "Back",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "navigationDrawer": {
                  "type": "string",
                  "title": "",
                  "default": "Open course resources.",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "close": {
                  "type": "string",
                  "title": "",
                  "default": "Close",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "closeDrawer": {
                  "type": "string",
                  "title": "",
                  "default": "Close Drawer",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "closeResources": {
                  "type": "string",
                  "title": "",
                  "default": "Close resources",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "drawer": {
                  "type": "string",
                  "title": "",
                  "default": "Top of side drawer",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "closePopup": {
                  "type": "string",
                  "title": "",
                  "default": "Close popup",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "next": {
                  "type": "string",
                  "title": "",
                  "default": "Next",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "done": {
                  "type": "string",
                  "title": "",
                  "default": "Done",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "complete": {
                  "type": "string",
                  "title": "",
                  "default": "Completed",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "incomplete": {
                  "type": "string",
                  "title": "",
                  "default": "Incomplete",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "incorrect": {
                  "type": "string",
                  "title": "",
                  "default": "Incorrect",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "correct": {
                  "type": "string",
                  "title": "",
                  "default": "Correct",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "locked": {
                  "type": "string",
                  "title": "",
                  "default": "Locked",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                },
                "visited": {
                  "type": "string",
                  "title": "",
                  "default": "Visited",
                  "inputType": "Text",
                  "required": true,
                  "translatable": true
                }
              }
            }
          }
        }
      }
    },
    "_buttons": {
      "type": "object",
      "default": "",
      "title": "",
      "isSetting": false,
      "properties": {
        "_submit": {
          "type": "object",
          "title": "Submit",
          "properties": {
            "buttonText": {
              "type": "string",
              "default": "Submit",
              "inputType": "Text",
              "required": true,
              "validators": [
                "required"
              ],
              "translatable": true
            },
            "ariaLabel": {
              "type": "string",
              "title": "ARIA label",
              "default": "Submit",
              "inputType": "Text",
              "required": true,
              "validators": [
                "required"
              ],
              "translatable": true
            }
          }
        },
        "_reset": {
          "type": "object",
          "title": "Reset",
          "properties": {
            "buttonText": {
              "type": "string",
              "default": "Reset",
              "inputType": "Text",
              "required": true,
              "validators": [
                "required"
              ],
              "translatable": true
            },
            "ariaLabel": {
              "type": "string",
              "title": "ARIA label",
              "default": "Reset",
              "inputType": "Text",
              "required": true,
              "validators": [
                "required"
              ],
              "translatable": true
            }
          }
        },
        "_showCorrectAnswer": {
          "type": "object",
          "title": "Show correct answer",
          "properties": {
            "buttonText": {
              "type": "string",
              "default": "Correct answer",
              "inputType": "Text",
              "required": true,
              "validators": [
                "required"
              ],
              "translatable": true
            },
            "ariaLabel": {
              "type": "string",
              "title": "ARIA label",
              "default": "Show correct answer",
              "inputType": "Text",
              "required": true,
              "validators": [
                "required"
              ],
              "translatable": true
            }
          }
        },
        "_hideCorrectAnswer": {
          "type": "object",
          "title": "Hide correct answer",
          "properties": {
            "buttonText": {
              "type": "string",
              "default": "My answer",
              "inputType": "Text",
              "required": true,
              "validators": [
                "required"
              ],
              "translatable": true
            },
            "ariaLabel": {
              "type": "string",
              "title": "ARIA label",
              "default": "Hide correct answer",
              "inputType": "Text",
              "required": true,
              "validators": [
                "required"
              ],
              "translatable": true
            }
          }
        },
        "_showFeedback": {
          "type": "object",
          "title": "Show feedback",
          "properties": {
            "buttonText": {
              "type": "string",
              "default": "Show feedback",
              "inputType": "Text",
              "required": true,
              "validators": [
                "required"
              ],
              "translatable": true
            },
            "ariaLabel": {
              "type": "string",
              "title": "ARIA label",
              "default": "Show feedback",
              "inputType": "Text",
              "required": true,
              "validators": [
                "required"
              ],
              "translatable": true
            }
          }
        },
        "remainingAttemptsText": {
          "type": "string",
          "title": "Remaining attempts label",
          "default": "attempts remaining",
          "inputType": "Text",
          "required": true,
          "validators": [
            "required"
          ],
          "translatable": true
        },
        "remainingAttemptText": {
          "type": "string",
          "title": "Final attempt label",
          "default": "final attempt",
          "inputType": "Text",
          "required": true,
          "validators": [
            "required"
          ],
          "translatable": true
        },
        "disabledAriaLabel": {
          "type": "string",
          "title": "Disabled ARIA label",
          "default": "This button is disabled at the moment",
          "inputType": "Text",
          "required": true,
          "validators": [
            "required"
          ],
          "translatable": true
        }
      }
    },
    "tags": {
      "type": "array",
      "inputType": "Tags",
      "items": {
        "type": "objectid",
        "inputType": "Text",
        "required": false,
        "editorOnly": true,
        "ref": "tag"
      },
      "title": "Tags",
      "help": "Add tags to your course by entering one or more words, separated with a comma (,)",
      "editorOnly": true
    },
    "_classes": {
      "type": "string",
      "default": "",
      "isSetting": true,
      "inputType": "Text",
      "validators": [],
      "title": "Menu Classes",
      "help": "Used to style or manipulate the look and feel of the top level Menu. These are predefined in the theme or added in Custom CSS/Less code."
    },
    "_isSelected": {
      "type": "boolean",
      "default": false,
      "editorOnly": true
    },
    "_hasPreview": {
      "type": "boolean",
      "default": false,
      "editorOnly": true
    },
    "_isShared": {
      "type": "boolean",
      "default": false,
      "editorOnly": true,
      "inputType": "Checkbox",
      "validators": [],
      "title": "Share with all users",
      "help": "Defines whether this course will be editable by all users"
    },
    "_shareWithUsers": {
      "type": "array",
      "inputType": "Users",
      "items": {
        "type": "objectid",
        "inputType": "Text",
        "required": false,
        "editorOnly": true,
        "ref": "user"
      },
      "title": "Share with specific users",
      "help": "Defines which individual users are able to edit this course"
    },
    "themeSettings": {
      "type": "object"
    },
    "themeVariables": {
      "type": "object"
    },
    "menuSettings": {
      "type": "object"
    },
    "_lockType": {
      "type": "string",
      "default": "",
      "inputType": {
        "type": "Select",
        "options": [
          "",
          "custom",
          "lockLast",
          "sequential",
          "unlockFirst"
        ]
      },
      "title": "Menu lock type",
      "help": "Defines which (if any) locking mechanism will be used for menu items",
      "validators": []
    },
    "customStyle": {
      "type": "string",
      "default": "",
      "inputType": "CodeEditor:less",
      "validators": [],
      "title": "Custom CSS/LESS code",
      "help": "Add any custom CSS or valid LESS code here"
    },
    "externalReferences": {
      "type" : "object"
    }
  }
}
