{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "4.3.3-refinedBy.json",
    "assertionType": "may",
    "expectedResult": "valid",
    "onUnexpectedResult" : "passAndContinue",
    "errorMessage": "The description of a Specific Resource selector or state may include refinedBy key with one or more values.",
    "title": "Implements **Specific Resource _refinedBy_ key** [model 4.2.9](https://www.w3.org/TR/annotation-model/#refinement-of-selection), [model 4.3.3](https://www.w3.org/TR/annotation-model/#refinement-of-state)",
    "description": "True when Annotation includes one or more Specific Resource selectors or states, one or more of which include refinedBy key with value(s). (Section 4.3.3)",
    "type": "object",
    "anyOf":
     [
      { "properties":
         { "body":
            { "oneOf":
               [
                 { "type": "object",
                   "oneOf":
                    [
                      { "$ref": "specificResource.json#/definitions/refinedByDetected" },
                      { "$ref": "#/definitions/itemSchema" }
                    ]
                 },
                 { "type": "array",
                   "minItems": 1,
                   "not":
                    { "items":
                       { "not":
                          { "oneOf":
                             [
                               { "$ref": "specificResource.json#/definitions/refinedByDetected" },
                               { "$ref": "#/definitions/itemSchema" }
                             ]
                          }
                       }
                    }
                 }
               ]
            }
         },
         "required": [ "body" ]
      },
      { "properties":
         { "target":
            { "oneOf":
               [
                 { "type": "object",
                   "oneOf":
                    [
                      { "$ref": "specificResource.json#/definitions/refinedByDetected" },
                      { "$ref": "#/definitions/itemSchema" }
                    ]
                 },
                 { "type": "array",
                   "minItems": 1,
                   "not":
                    { "items":
                        { "not":
                           { "oneOf":
                              [
                                { "$ref": "specificResource.json#/definitions/refinedByDetected" },
                                { "$ref": "#/definitions/itemSchema" }
                              ]
                           }
                        }
                    }
                 }
               ]
            }
         },
     "required": [ "target" ]
       }
     ],
     "definitions":
      {
        "itemSchema":
         { "type": "object",
           "properties":
            { "items":
               { "type": "array",
                 "minItems": 1,
                 "not":
                  { "items":
                      { "not": { "$ref": "specificResource.json#/definitions/refinedByDetected" } }
                  }
               }
            },
            "required": [ "items" ]
         }
      }
}