{
	"id": "SoftwareApplication.json",
	"title": "Software Application",
	"description": "A software application.",
	"media": {"type": "application/json;profile=http://schema.org/SoftwareApplication"},
	"allOf": [{"$ref": "Thing.json"}, {"$ref": "CreativeWork.json"}],
	"type": "object",
	"properties": {
		"applicationCategory": {"$ref": "#/definitions/applicationCategory"},
		"applicationSubCategory": {"$ref": "#/definitions/applicationSubCategory"},
		"applicationSuite": {"$ref": "#/definitions/applicationSuite"},
		"availableOnDevice": {
			"oneOf": [
				{"$ref": "#/definitions/availableOnDevice"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/availableOnDevice"}
				}
			]
		},
		"countriesNotSupported": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/countriesNotSupported"}
				},
				{"$ref": "#/definitions/countriesNotSupported"}
			]
		},
		"countriesSupported": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/countriesSupported"}
				},
				{"$ref": "#/definitions/countriesSupported"}
			]
		},
		"downloadUrl": {
			"type": "string",
			"format": "uri"
		},
		"featureList": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/featureList"}
				},
				{"$ref": "#/definitions/featureList"}
			]
		},
		"fileSize": {"$ref": "#/definitions/fileSize"},
		"installUrl": {
			"type": "string",
			"format": "uri"
		},
		"memoryRequirements": {"$ref": "#/definitions/memoryRequirements"},
		"operatingSystem": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/operatingSystem"}
				},
				{"$ref": "#/definitions/operatingSystem"}
			]
		},
		"permissions": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/permissions"}
				},
				{"$ref": "#/definitions/permissions"}
			]
		},
		"processorRequirements": {"$ref": "#/definitions/processorRequirements"},
		"releaseNotes": {"$ref": "#/definitions/releaseNotes"},
		"screenshot": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/screenshot"}
				},
				{"$ref": "#/definitions/screenshot"}
			]
		},
		"softwareAddOn": {
			"oneOf": [
				{"$ref": "SoftwareApplication.json#/definitions/possibleRef"},
				{
					"type": "array",
					"items": {"$ref": "SoftwareApplication.json#/definitions/possibleRef"}
				}
			]
		},
		"softwareHelp": {
			"oneOf": [
				{"$ref": "CreativeWork.json#/definitions/possibleRef"},
				{
					"type": "array",
					"items": {"$ref": "CreativeWork.json#/definitions/possibleRef"}
				}
			]
		},
		"softwareRequirements": {
			"oneOf": [
				{"$ref": "#/definitions/softwareRequirements"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/softwareRequirements"}
				}
			]
		},
		"softwareVersion": {"$ref": "#/definitions/softwareVersion"},
		"storageRequirements": {"$ref": "#/definitions/storageRequirements"},
		"supportingData": {
			"oneOf": [
				{"$ref": "DataFeed.json#/definitions/possibleRef"},
				{
					"type": "array",
					"items": {"$ref": "DataFeed.json#/definitions/possibleRef"}
				}
			]
		}
	},
	"links": [
		{
			"rel": "http://schema.org/downloadUrl",
			"href": "{+downloadUrl}"
		},
		{
			"rel": "http://schema.org/installUrl",
			"href": "{+installUrl}"
		}
	],
	"definitions": {
		"applicationCategory": {
			"title": "Application Category",
			"description": "Type of software application, e.g. 'Game, Multimedia'.",
			"anyOf": [
				{"type": "string"},
				{
					"type": "string",
					"format": "uri"
				}
			]
		},
		"applicationSubCategory": {
			"title": "Application Sub Category",
			"description": "Subcategory of the application, e.g. 'Arcade Game'.",
			"anyOf": [
				{"type": "string"},
				{
					"type": "string",
					"format": "uri"
				}
			]
		},
		"applicationSuite": {
			"title": "Application Suite",
			"description": "The name of the application suite to which the application belongs (e.g. Excel belongs to Office).",
			"type": "string"
		},
		"array": {
			"type": "array",
			"items": {"$ref": "#"}
		},
		"availableOnDevice": {
			"title": "Available On Device",
			"description": "Device required to run the application. Used in cases where a specific make/model is required to run the application. Supersedes device.",
			"type": "string"
		},
		"countriesNotSupported": {
			"title": "Countries Not Supported",
			"description": "Countries for which the application is not supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.",
			"type": "string"
		},
		"countriesSupported": {
			"title": "Countries Supported",
			"description": "Countries for which the application is supported. You can also provide the two-letter ISO 3166-1 alpha-2 country code.",
			"type": "string"
		},
		"featureList": {
			"title": "Feature List",
			"description": "Features or modules provided by this application (and possibly required by other applications).",
			"anyOf": [
				{"type": "string"},
				{
					"type": "string",
					"format": "uri"
				}
			]
		},
		"fileSize": {
			"title": "File Size",
			"description": "Size of the application / package (e.g. 18MB). In the absence of a unit (MB, KB etc.), KB will be assumed.",
			"type": "string"
		},
		"memoryRequirements": {
			"title": "Memory Requirements",
			"description": "Minimum memory requirements.",
			"anyOf": [
				{"type": "string"},
				{
					"type": "string",
					"format": "uri"
				}
			]
		},
		"operatingSystem": {
			"title": "Operating System",
			"description": "Operating systems supported (Windows 7, OSX 10.6, Android 1.6).",
			"type": "string"
		},
		"permissions": {
			"title": "Permissions",
			"description": "Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi).",
			"type": "string"
		},
		"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": "{+$}"
					}]
				}
			]
		},
		"processorRequirements": {
			"title": "Processor Requirements",
			"description": "Processor architecture required to run the application (e.g. IA64).",
			"type": "string"
		},
		"releaseNotes": {
			"title": "Release Notes",
			"description": "Description of what changed in this version.",
			"anyOf": [
				{"type": "string"},
				{
					"type": "string",
					"format": "uri"
				}
			]
		},
		"screenshot": {
			"title": "Screenshot",
			"description": "A link to a screenshot image of the app.",
			"anyOf": [
				{"$ref": "ImageObject.json#/definitions/possibleRef"},
				{
					"type": "string",
					"format": "uri"
				}
			]
		},
		"softwareRequirements": {
			"title": "Software Requirements",
			"description": "Component dependency requirements for application. This includes runtime environments and shared libraries that are not included in the application distribution package, but required to run the application (Examples: DirectX, Java or .NET runtime). Supersedes requirements.",
			"anyOf": [
				{"type": "string"},
				{
					"type": "string",
					"format": "uri"
				}
			]
		},
		"softwareVersion": {
			"title": "Software Version",
			"description": "Version of the software instance.",
			"type": "string"
		},
		"storageRequirements": {
			"title": "Storage Requirements",
			"description": "Storage requirements (free space required).",
			"anyOf": [
				{"type": "string"},
				{
					"type": "string",
					"format": "uri"
				}
			]
		}
	}
}