{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:Ticket",
  "title": "Ticket",
  "description": "Used to describe a ticket to an event, a flight, a bus ride, etc.",
  "type": "object",
  "allOf": [
    {
      "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.",
      "$ref": "schema:Intangible"
    }
  ],
  "properties": {
    "dateIssued": {
      "description": "The date the ticket was issued.",
      "anyOf": [
        { "type": "string", "format": "date" },
        { "type": "string", "format": "date-time" }
      ]
    },
    "issuedBy": {
      "description": "The organization issuing the item, for example a [[Permit]], [[Ticket]], or [[Certification]].",
      "$ref": "schema:Organization"
    },
    "priceCurrency": {
      "description": "The currency of the price, or a price component when attached to [[PriceSpecification]] and its subtypes.\\n\\nUse standard formats: [ISO 4217 currency format](http://en.wikipedia.org/wiki/ISO_4217), e.g. \"USD\"; [Ticker symbol](https://en.wikipedia.org/wiki/List_of_cryptocurrencies) for cryptocurrencies, e.g. \"BTC\"; well known names for [Local Exchange Trading Systems](https://en.wikipedia.org/wiki/Local_exchange_trading_system) (LETS) and other currency types, e.g. \"Ithaca HOUR\".",
      "type": "string"
    },
    "ticketNumber": {
      "description": "The unique identifier for the ticket.",
      "type": "string"
    },
    "ticketToken": {
      "description": "Reference to an asset (e.g., Barcode, QR code image or PDF) usable for entrance.",
      "oneOf": [
        {
          "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "string", "format": "uri" },
              { "type": "string" }
            ]
          }
        }
      ]
    },
    "ticketedSeat": {
      "description": "The seat associated with the ticket.",
      "$ref": "schema:Seat"
    },
    "totalPrice": {
      "description": "The total price for the reservation or ticket, including applicable taxes, shipping, etc.\\n\\nUsage guidelines:\\n\\n* Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similar Unicode symbols.\\n* Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator.",
      "anyOf": [
        { "type": "number" },
        { "type": "string" },
        { "$ref": "schema:PriceSpecification" }
      ]
    },
    "underName": {
      "description": "The person or organization the reservation or ticket is for.",
      "anyOf": [{ "$ref": "schema:Organization" }, { "$ref": "schema:Person" }]
    }
  }
}
