{
	"id": "Course.json",
	"title": "Course",
	"description": "A description of an educational course which may be offered as distinct instances at which take place at different times or take place at different locations, or be offered through different media or modes of study. An educational course is a sequence of one or more educational events and/or creative works which aims to build knowledge, competence or ability of learners.",
	"media": {"type": "application/json;profile=http://schema.org/Course"},
	"allOf": [{"$ref": "Thing.json"}, {"$ref": "CreativeWork.json"}],
	"type": "object",
	"properties": {
		"courseCode": {"$ref": "#/definitions/courseCode"},
		"coursePrerequisites": {
			"oneOf": [
				{"$ref": "#/definitions/coursePrerequisites"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/coursePrerequisites"}
				}
			]
		},
		"educationalCredentialAwarded": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/educationalCredentialAwarded"}
				},
				{"$ref": "#/definitions/educationalCredentialAwarded"}
			]
		},
		"hasCourseInstance": {"$ref": "CourseInstance.json#/definitions/possibleRefArray"},
		"occupationalCredentialAwarded": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/occupationalCredentialAwarded"}
				},
				{"$ref": "#/definitions/occupationalCredentialAwarded"}
			]
		}
	},
	"definitions": {
		"array": {
			"type": "array",
			"items": {"$ref": "#"}
		},
		"possibleRef": {
			"oneOf": [
				{"$ref": "#"},
				{
					"type": "string",
					"format": "uri",
					"links": [{
						"rel": "full",
						"href": "{+$}"
					}]
				}
			]
		},
		"possibleRefArray": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/possibleRef"}
				},
				{
					"type": "string",
					"format": "uri",
					"links": [{
						"rel": "full",
						"href": "{+$}"
					}]
				}
			]
		},
		"courseCode": {
			"title": "Course Code",
			"description": "The identifier for the Course used by the course provider (e.g. CS101 or 6.001).",
			"type": "string"
		},
		"coursePrerequisites": {
			"title": "Course Prerequisites",
			"description": "Requirements for taking the Course. May be completion of another Course or a textual description like \"permission of instructor\". Requirements may be a pre-requisite competency, referenced using AlignmentObject.",
			"anyOf": [{"$ref": "AlignmentObject.json#/definitions/possibleRef"}, {"$ref": "Course.json#/definitions/possibleRef"}, {"type": "string"}]
		},
		"educationalCredentialAwarded": {
			"title": "Educational Credential Awarded",
			"description": "A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program.",
			"anyOf": [
				{
					"type": "string",
					"format": "uri"
				},
				{"type": "string"},
				{"$ref": "EducationalOccupationalCredential.json#/definitions/possibleRef"}
			]
		},
		"occupationalCredentialAwarded": {
			"title": "Occupational Credential Awarded",
			"description": "A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program.",
			"anyOf": [
				{
					"type": "string",
					"format": "uri"
				},
				{"type": "string"},
				{"$ref": "EducationalOccupationalCredential.json#/definitions/possibleRef"}
			]
		}
	}
}