{
	"id": "Product.json",
	"title": "Product",
	"description": "Any offered product or service. For example: a pair of shoes; a concert ticket; the rental of a car; a haircut; or an episode of a TV show streamed online.",
	"media": {"type": "application/json;profile=http://schema.org/Product"},
	"allOf": [{"$ref": "Thing.json"}],
	"type": "object",
	"properties": {
		"additionalProperty": {"$ref": "PropertyValue.json#/definitions/possibleRefArray"},
		"aggregateRating": {"$ref": "AggregateRating.json#/definitions/possibleRef"},
		"audience": {"$ref": "Audience.json#/definitions/possibleRef"},
		"award": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/award"}
				},
				{"$ref": "#/definitions/award"}
			]
		},
		"brand": {"$ref": "#/definitions/brand"},
		"category": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/category"}
				},
				{"$ref": "#/definitions/category"}
			]
		},
		"color": {"$ref": "#/definitions/color"},
		"depth": {"$ref": "#/definitions/depth"},
		"gtin": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/gtin"}
				},
				{"$ref": "#/definitions/gtin"}
			]
		},
		"gtin12": {"$ref": "#/definitions/gtin12"},
		"gtin13": {"$ref": "#/definitions/gtin13"},
		"gtin14": {"$ref": "#/definitions/gtin14"},
		"gtin8": {"$ref": "#/definitions/gtin8"},
		"hasProductReturnPolicy": {
			"oneOf": [
				{"$ref": "ProductReturnPolicy.json#/definitions/possibleRef"},
				{
					"type": "array",
					"items": {"$ref": "ProductReturnPolicy.json#/definitions/possibleRef"}
				}
			]
		},
		"height": {"$ref": "#/definitions/height"},
		"isAccessoryOrSparePartFor": {"$ref": "Product.json#/definitions/possibleRefArray"},
		"isConsumableFor": {"$ref": "Product.json#/definitions/possibleRefArray"},
		"isRelatedTo": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/isRelatedTo"}
				},
				{"$ref": "#/definitions/isRelatedTo"}
			]
		},
		"isSimilarTo": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/isSimilarTo"}
				},
				{"$ref": "#/definitions/isSimilarTo"}
			]
		},
		"itemCondition": {"$ref": "OfferItemCondition.json#/definitions/possibleRefArray"},
		"logo": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/logo"}
				},
				{"$ref": "#/definitions/logo"}
			]
		},
		"manufacturer": {"$ref": "Organization.json#/definitions/possibleRef"},
		"material": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/material"}
				},
				{"$ref": "#/definitions/material"}
			]
		},
		"model": {"$ref": "#/definitions/model"},
		"mpn": {"$ref": "#/definitions/mpn"},
		"nsn": {
			"oneOf": [
				{"$ref": "#/definitions/nsn"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/nsn"}
				}
			]
		},
		"offers": {"$ref": "Offer.json#/definitions/possibleRefArray"},
		"productID": {"$ref": "#/definitions/productID"},
		"productionDate": {"$ref": "#/definitions/productionDate"},
		"purchaseDate": {"$ref": "#/definitions/purchaseDate"},
		"releaseDate": {"$ref": "#/definitions/releaseDate"},
		"review": {"$ref": "Review.json#/definitions/possibleRefArray"},
		"sku": {"$ref": "#/definitions/sku"},
		"slogan": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/slogan"}
				},
				{"$ref": "#/definitions/slogan"}
			]
		},
		"weight": {"$ref": "QuantitativeValue.json#/definitions/possibleRef"},
		"width": {"$ref": "#/definitions/width"}
	},
	"definitions": {
		"array": {
			"type": "array",
			"items": {"$ref": "#"}
		},
		"award": {
			"title": "Award",
			"description": "An award won by or for this item. Supersedes awards.",
			"type": "string"
		},
		"brand": {
			"title": "Brand",
			"description": "The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.",
			"anyOf": [{"$ref": "Organization.json#/definitions/possibleRef"}, {"$ref": "Brand.json#/definitions/possibleRef"}]
		},
		"category": {
			"title": "Category",
			"description": "A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.",
			"anyOf": [{"type": "string"}, {"$ref": "PhysicalActivityCategory.json#/definitions/possibleRef"}, {"$ref": "Thing.json#/definitions/possibleRef"}]
		},
		"color": {
			"title": "Color",
			"description": "The color of the product.",
			"type": "string"
		},
		"depth": {
			"title": "Depth",
			"description": "The depth of the item.",
			"anyOf": [{"$ref": "Distance.json#/definitions/possibleRef"}, {"$ref": "QuantitativeValue.json#/definitions/possibleRef"}]
		},
		"gtin": {
			"title": "Gtin",
			"description": "A Global Trade Item Number (GTIN). GTINs identify trade items, including products and services, using numeric identification codes. The gtin property generalizes the earlier gtin8, gtin12, gtin13, and gtin14 properties. The GS1 digital link specifications express GTINs as URLs. A correct gtin value should be a valid GTIN, which means that it should be an all-numeric string of either 8, 12, 13 or 14 digits, or a \"GS1 Digital Link\" URL based on such a string. The numeric component should also have a valid GS1 check digit and meet the other rules for valid GTINs. See also GS1's GTIN Summary and Wikipedia for more details. Left-padding of the gtin values is not required or encouraged.",
			"type": "string"
		},
		"gtin12": {
			"title": "Gtin12",
			"description": "The GTIN-12 code of the product, or the product to which the offer refers. The GTIN-12 is the 12-digit GS1 Identification Key composed of a U.P.C. Company Prefix, Item Reference, and Check Digit used to identify trade items. See GS1 GTIN Summary for more details.",
			"type": "string"
		},
		"gtin13": {
			"title": "Gtin13",
			"description": "The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceeding zero. See GS1 GTIN Summary for more details.",
			"type": "string"
		},
		"gtin14": {
			"title": "Gtin14",
			"description": "The GTIN-14 code of the product, or the product to which the offer refers. See GS1 GTIN Summary for more details.",
			"type": "string"
		},
		"gtin8": {
			"title": "Gtin8",
			"description": "The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. See GS1 GTIN Summary for more details.",
			"type": "string"
		},
		"height": {
			"title": "Height",
			"description": "The height of the item.",
			"anyOf": [{"$ref": "Distance.json#/definitions/possibleRef"}, {"$ref": "QuantitativeValue.json#/definitions/possibleRef"}]
		},
		"isRelatedTo": {
			"title": "Is Related to",
			"description": "A pointer to another, somehow related product (or multiple products).",
			"anyOf": [{"$ref": "Product.json#/definitions/possibleRef"}, {"$ref": "Service.json#/definitions/possibleRef"}]
		},
		"isSimilarTo": {
			"title": "Is Similar to",
			"description": "A pointer to another, functionally similar product (or multiple products).",
			"anyOf": [{"$ref": "Product.json#/definitions/possibleRef"}, {"$ref": "Service.json#/definitions/possibleRef"}]
		},
		"logo": {
			"title": "Logo",
			"description": "An associated logo.",
			"anyOf": [
				{
					"type": "string",
					"format": "uri"
				},
				{"$ref": "ImageObject.json#/definitions/possibleRef"}
			]
		},
		"material": {
			"title": "Material",
			"description": "A material that something is made from, e.g. leather, wool, cotton, paper.",
			"anyOf": [
				{
					"type": "string",
					"format": "uri"
				},
				{"type": "string"},
				{"$ref": "Product.json#/definitions/possibleRef"}
			]
		},
		"model": {
			"title": "Model",
			"description": "The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.",
			"anyOf": [{"$ref": "ProductModel.json#/definitions/possibleRef"}, {"type": "string"}]
		},
		"mpn": {
			"title": "Mpn",
			"description": "The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers.",
			"type": "string"
		},
		"nsn": {
			"title": "Nsn",
			"description": "Indicates the NATO stock number (nsn) of a Product.",
			"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": "{+$}"
					}]
				}
			]
		},
		"productID": {
			"title": "Product ID",
			"description": "The product identifier, such as ISBN. For example: meta itemprop=\"productID\" content=\"isbn:123-456-789\".",
			"type": "string"
		},
		"productionDate": {
			"title": "Production Date",
			"description": "The date of production of the item, e.g. vehicle.",
			"type": "string",
			"format": "date"
		},
		"purchaseDate": {
			"title": "Purchase Date",
			"description": "The date the item e.g. vehicle was purchased by the current owner.",
			"type": "string",
			"format": "date"
		},
		"releaseDate": {
			"title": "Release Date",
			"description": "The release date of a product or product model. This can be used to distinguish the exact variant of a product.",
			"type": "string",
			"format": "date"
		},
		"sku": {
			"title": "Sku",
			"description": "The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service, or the product to which the offer refers.",
			"type": "string"
		},
		"slogan": {
			"title": "Slogan",
			"description": "A slogan or motto associated with the item.",
			"type": "string"
		},
		"width": {
			"title": "Width",
			"description": "The width of the item.",
			"anyOf": [{"$ref": "Distance.json#/definitions/possibleRef"}, {"$ref": "QuantitativeValue.json#/definitions/possibleRef"}]
		}
	}
}