{
	"$schema": "http://json-schema.org/draft-07/schema#",
	"$id": "https://fdc3.finos.org/schemas/next/context/product.schema.json",
	"type": "object",
	"title": "Product",
	"description": "@experimental context type representing a tradable product. To be used with OMS and EMS systems.\n\nThis type is currently only loosely defined as an extensible context object, with an optional instrument field.\n\nThe Product schema does not explicitly include identifiers in the id section, as there is not a common standard for such identifiers. Applications can, however, populate this part of the contract with custom identifiers if so desired.",
	"allOf": [
		{
			"type": "object",
			"properties": {
				"type": {
					"const": "fdc3.product"
				},
				"id": {
					"type": "object",
					"additionalProperties": {
						"type": "string"
					},
					"title": "Product Identifiers",
					"description": "One or more identifiers that refer to the product. Specific key names for systems are expected to be standardized in future."
				},
				"name": {
					"type": "string",
					"title": "Product Name",
					"description": "A human-readable summary of the product."
				},
				"instrument": {
					"$ref": "instrument.schema.json",
					"title": "Product Instrument",
					"description": "A financial instrument that relates to the definition of this product"
				},
				"notes": {
					"type": "string",
					"title": "Product Notes",
					"description": "Additional notes or comments about the product."
				}
			},
			"required": [
				"type",
				"id"
			],
			"additionalProperties": true
		},
		{ "$ref": "context.schema.json#/definitions/BaseContext" }
	],
	"examples": [
		{
			"type": "fdc3.product",
			"notes": "...",
			"id": {
				"productId": "ABC123"
			},
			"instrument": {
				"type": "fdc3.instrument",
				"id": {
					"ticker": "MSFT"
				}
			}
		}
	]
}