{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:CourseInstance",
  "title": "CourseInstance",
  "description": "An instance of a [[Course]] which is distinct from other instances because it is offered at a different time or location or through different media or modes of study or to a specific section of students.",
  "type": "object",
  "allOf": [
    {
      "description": "An event happening at a certain time and location, such as a concert, lecture, or festival. Ticketing information may be added via the [[offers]] property. Repeated events may be structured as separate Event objects.",
      "$ref": "schema:Event"
    }
  ],
  "properties": {
    "courseMode": {
      "description": "The medium or means of delivery of the course instance or the mode of study, either as a text label (e.g. \"online\", \"onsite\" or \"blended\"; \"synchronous\" or \"asynchronous\"; \"full-time\" or \"part-time\") or as a URL reference to a term from a controlled vocabulary (e.g. https://ceds.ed.gov/element/001311#Asynchronous).",
      "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }]
    },
    "courseSchedule": {
      "description": "Represents the length and pace of a course, expressed as a [[Schedule]].",
      "oneOf": [
        { "$ref": "schema:Schedule" },
        { "type": "array", "items": { "$ref": "schema:Schedule" } }
      ]
    },
    "courseWorkload": {
      "description": "The amount of work expected of students taking the course, often provided as a figure per week or per month, and may be broken down by type. For example, \"2 hours of lectures, 1 hour of lab work and 3 hours of independent study per week\".",
      "type": "string"
    },
    "instructor": {
      "description": "A person assigned to instruct or provide instructional assistance for the [[CourseInstance]].",
      "oneOf": [
        { "$ref": "schema:Person" },
        { "type": "array", "items": { "$ref": "schema:Person" } }
      ]
    }
  }
}
