Lesson Format

The following is used to format lessons:

Lesson Information JSON —> lessonSchema.json

{
    "subject": "CLASS SUBJECT ie: TRANSFIGURATION",
    "year": [1-7],
    "numberOfLessons": [1 -> Integer.MAX_VALUE],
    "professor": { NPC-DATA-OBJECT } //Not including NPC-DATA-OBJECT in documentation.
}

Lesson File

{
    "information": { INFORMATION-OBJECT },
    "sections": [ { LESSON-SECTIONS-OBJECT } ],
    "homework": { HOMEWORK-OBJECT }

}

INFORMATION-OBJECT

{
    "title": "CLASS TITLE",
    "type": "LECTURE",
    "subject": "CLASS SUBJECT ie: TRANSFIGURATION",
    "year": [1-7],
    "examQuestionCount":
}

HOMEWORK-OBJECT

{
    "type": "WRITTEN",
    "description": "WORDS ABOUT HOMEWORK REQUIREMENTS"
}

LESSON-SECTIONS-OBJECT

{
    "lecture": [{LECTURE-OBJECT}],
    "spellsLearning": [{SPELLS-OBJECT}],
    "spellsQuiz": [{SPELLS-OBJECT}],
    "potionIngredientsLearning": [{POTION-INGREDIENTS-OBJECT}],
    "potionIngredientsTest": [{POTION-INGREDIENTS-OBJECT}],
    "potionsLearning": [{POTION-OBJECT}],
    "potionsQuiz": [{POTION-OBJECT}],
    "questions": [{QUESTION-OBJECT}]
}

LECTURE-OBJECT

{
    "words": ["words", "that", "exist"],
    "speed": 250,
    "speaker": "Acool Name"
}

SPELLS-OBJECT

{
    "intro": "optional string",
    "spellname": "UPPER_UNDERSCORE_SPELL_NAME",
    "description: "A cool description",
    "reward": 1,
    "delay": [1-INTEGER.MAX_VALUE], //Used for spell quiz delay in seconds.
    "speed": 250,
    "amount": 1 //Amount required to cast to move on.
}

POTION-INGREDIENTS-OBJECT

{
    "outcome": "potion in potions cookbook to make"
}

POTION-OBJECT

{
    "outcome": "potion in potions cookbook to make",
    "time": [1->Integer.MAX_VALUE], //Used for potion quiz time, in minutes.
    "reward": 3,
    "speed": 250
}

QUESTION-OBJECT

{
    "question": "A really awesome question?",
    "options": [{OPTION-OBJECT}],
    "answers": ["This", "Is", "for", "Single-answer"],
    "type": "SINGLE_ANSWER or MULTIPLE",
    "pause": integer in seconds,
    "points" integer points reward,
    "showAnswer": true/false
}

OPTION-OBJECT

{
    "choice": "The choice",
    "answer": true/false
}