{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:MediaSubscription",
  "title": "MediaSubscription",
  "description": "A subscription which allows a user to access media including audio, video, books, 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": {
    "authenticator": {
      "description": "The Organization responsible for authenticating the user's subscription. For example, many media apps require a cable/satellite provider to authenticate your subscription before playing media.",
      "$ref": "schema:Organization"
    },
    "expectsAcceptanceOf": {
      "description": "An Offer which must be accepted before the user can perform the Action. For example, the user may need to buy a movie before being able to watch it.",
      "oneOf": [
        { "$ref": "schema:Offer" },
        { "type": "array", "items": { "$ref": "schema:Offer" } }
      ]
    }
  }
}
