{
	"id": "Message.json",
	"title": "Message",
	"description": "A single message from a sender to one or more organizations or people.",
	"media": {"type": "application/json;profile=http://schema.org/Message"},
	"allOf": [{"$ref": "Thing.json"}, {"$ref": "CreativeWork.json"}],
	"type": "object",
	"properties": {
		"bccRecipient": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/bccRecipient"}
				},
				{"$ref": "#/definitions/bccRecipient"}
			]
		},
		"ccRecipient": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/ccRecipient"}
				},
				{"$ref": "#/definitions/ccRecipient"}
			]
		},
		"dateRead": {"$ref": "#/definitions/dateRead"},
		"dateReceived": {"$ref": "#/definitions/dateReceived"},
		"dateSent": {"$ref": "#/definitions/dateSent"},
		"messageAttachment": {"$ref": "CreativeWork.json#/definitions/possibleRefArray"},
		"recipient": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/recipient"}
				},
				{"$ref": "#/definitions/recipient"}
			]
		},
		"sender": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/sender"}
				},
				{"$ref": "#/definitions/sender"}
			]
		},
		"toRecipient": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/toRecipient"}
				},
				{"$ref": "#/definitions/toRecipient"}
			]
		}
	},
	"definitions": {
		"array": {
			"type": "array",
			"items": {"$ref": "#"}
		},
		"bccRecipient": {
			"title": "Bcc Recipient",
			"description": "A sub property of recipient. The recipient blind copied on a message.",
			"anyOf": [{"$ref": "ContactPoint.json#/definitions/possibleRef"}, {"$ref": "Organization.json#/definitions/possibleRef"}, {"$ref": "Person.json#/definitions/possibleRef"}]
		},
		"ccRecipient": {
			"title": "Cc Recipient",
			"description": "A sub property of recipient. The recipient copied on a message.",
			"anyOf": [{"$ref": "ContactPoint.json#/definitions/possibleRef"}, {"$ref": "Organization.json#/definitions/possibleRef"}, {"$ref": "Person.json#/definitions/possibleRef"}]
		},
		"dateRead": {
			"title": "Date Read",
			"description": "The date/time at which the message has been read by the recipient if a single recipient exists.",
			"anyOf": [
				{
					"type": "string",
					"format": "date"
				},
				{
					"type": "string",
					"format": "date-time"
				}
			]
		},
		"dateReceived": {
			"title": "Date Received",
			"description": "The date/time the message was received if a single recipient exists.",
			"type": "string",
			"format": "date-time"
		},
		"dateSent": {
			"title": "Date Sent",
			"description": "The date/time at which the message was sent.",
			"type": "string",
			"format": "date-time"
		},
		"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": "{+$}"
					}]
				}
			]
		},
		"recipient": {
			"title": "Recipient",
			"description": "A sub property of participant. The participant who is at the receiving end of the action.",
			"anyOf": [{"$ref": "Organization.json#/definitions/possibleRef"}, {"$ref": "Audience.json#/definitions/possibleRef"}, {"$ref": "ContactPoint.json#/definitions/possibleRef"}, {"$ref": "Person.json#/definitions/possibleRef"}]
		},
		"sender": {
			"title": "Sender",
			"description": "A sub property of participant. The participant who is at the sending end of the action.",
			"anyOf": [{"$ref": "Organization.json#/definitions/possibleRef"}, {"$ref": "Audience.json#/definitions/possibleRef"}, {"$ref": "Person.json#/definitions/possibleRef"}]
		},
		"toRecipient": {
			"title": "To Recipient",
			"description": "A sub property of recipient. The recipient who was directly sent the message.",
			"anyOf": [{"$ref": "Audience.json#/definitions/possibleRef"}, {"$ref": "ContactPoint.json#/definitions/possibleRef"}, {"$ref": "Organization.json#/definitions/possibleRef"}, {"$ref": "Person.json#/definitions/possibleRef"}]
		}
	}
}