{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:Review",
  "title": "Review",
  "description": "A review of an item - for example, of a restaurant, movie, or store.",
  "type": "object",
  "allOf": [
    {
      "description": "The most generic kind of creative work, including books, movies, photographs, software programs, etc.",
      "$ref": "schema:CreativeWork"
    }
  ],
  "properties": {
    "associatedClaimReview": {
      "description": "An associated [[ClaimReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].",
      "oneOf": [
        { "$ref": "schema:Review" },
        { "type": "array", "items": { "$ref": "schema:Review" } }
      ]
    },
    "associatedMediaReview": {
      "description": "An associated [[MediaReview]], related by specific common content, topic or claim. The expectation is that this property would be most typically used in cases where a single activity is conducting both claim reviews and media reviews, in which case [[relatedMediaReview]] would commonly be used on a [[ClaimReview]], while [[relatedClaimReview]] would be used on [[MediaReview]].",
      "oneOf": [
        { "$ref": "schema:Review" },
        { "type": "array", "items": { "$ref": "schema:Review" } }
      ]
    },
    "associatedReview": {
      "description": "An associated [[Review]].",
      "oneOf": [
        { "$ref": "schema:Review" },
        { "type": "array", "items": { "$ref": "schema:Review" } }
      ]
    },
    "itemReviewed": {
      "description": "The item that is being reviewed/rated.",
      "$ref": "schema:Thing"
    },
    "negativeNotes": {
      "description": "Provides negative considerations regarding something, most typically in pro/con lists for reviews (alongside [[positiveNotes]]). For symmetry \n\nIn the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described. Since product descriptions \ntend to emphasise positive claims, it may be relatively unusual to find [[negativeNotes]] used in this way. Nevertheless for the sake of symmetry, [[negativeNotes]] can be used on [[Product]].\n\nThe property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most negative is at the beginning of the list).",
      "oneOf": [
        {
          "anyOf": [
            { "type": "string" },
            { "$ref": "schema:ItemList" },
            { "$ref": "schema:ListItem" },
            { "$ref": "schema:WebContent" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "string" },
              { "$ref": "schema:ItemList" },
              { "$ref": "schema:ListItem" },
              { "$ref": "schema:WebContent" }
            ]
          }
        }
      ]
    },
    "positiveNotes": {
      "description": "Provides positive considerations regarding something, for example product highlights or (alongside [[negativeNotes]]) pro/con lists for reviews.\n\nIn the case of a [[Review]], the property describes the [[itemReviewed]] from the perspective of the review; in the case of a [[Product]], the product itself is being described.\n\nThe property values can be expressed either as unstructured text (repeated as necessary), or if ordered, as a list (in which case the most positive is at the beginning of the list).",
      "oneOf": [
        {
          "anyOf": [
            { "type": "string" },
            { "$ref": "schema:ItemList" },
            { "$ref": "schema:ListItem" },
            { "$ref": "schema:WebContent" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "string" },
              { "$ref": "schema:ItemList" },
              { "$ref": "schema:ListItem" },
              { "$ref": "schema:WebContent" }
            ]
          }
        }
      ]
    },
    "reviewAspect": {
      "description": "This Review or Rating is relevant to this part or facet of the itemReviewed.",
      "oneOf": [
        { "type": "string" },
        { "type": "array", "items": { "type": "string" } }
      ]
    },
    "reviewBody": {
      "description": "The actual body of the review.",
      "type": "string"
    },
    "reviewRating": {
      "description": "The rating given in this review. Note that reviews can themselves be rated. The ```reviewRating``` applies to rating given by the review. The [[aggregateRating]] property applies to the review itself, as a creative work.",
      "$ref": "schema:Rating"
    }
  }
}
