{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "$anchor": "cdm.product.template",
  "type": "object",
  "title": "ContractualProduct",
  "description": " A class to specify the contractual products' economic terms, alongside their product identification and product taxonomy. The contractual product class is meant to be used across the pre-execution, execution and (as part of the Contract) post-execution lifecycle contexts.",
  "properties": {
    "productTaxonomy": {
      "description": "Specifies the product taxonomy, which is composed of a taxonomy value and a taxonomy source.",
      "type": "array",
      "items": {
        "$ref": "cdm-base-staticdata-asset-common-ProductTaxonomy.schema.json"
      },
      "minItems": 0
    },
    "productIdentifier": {
      "description": "Comprises an identifier and a source. The associated metadata key denotes the ability to associate a hash value to the ProductIdentifier instantiations for the purpose of model cross-referencing, in support of functionality such as the event effect and the lineage.",
      "type": "array",
      "items": {
        "$ref": "cdm-base-staticdata-asset-common-metafields-ReferenceWithMetaProductIdentifier.schema.json"
      },
      "minItems": 0
    },
    "economicTerms": {
      "description": "The economic terms associated with a contractual product, i.e. the set of features that are price-forming.",
      "$ref": "cdm-product-template-EconomicTerms.schema.json"
    }
  },
  "required": [
    "economicTerms"
  ]
}
