1{
2    "$schema": "http://json-schema.org/draft-04/schema#",
3    "id": "3.2.1-bodyTextDirectionValidated.json",
4    "assertionType": "must",
5    "expectedResult": "valid",
6    "onUnexpectedResult" : "failAndContinue",
7    "errorMessage": "ERROR: A body or body/source has multiple textDirection key values for a body or source, or a single textDirection key with a value that is not one of ltr, rtl, auto.",
8    "title": "If present as a body or body/source property, the **_textDirection_ key** has a **single value** which is **one of 'ltr', 'rtl', 'auto'** - [model 3.2.1](https://www.w3.org/TR/annotation-model/#external-web-resources)",
9    "description": "True when no body-level or body/source-level (SR body) textDirection key present or when all textDirection keys have a single value that is one of ltr, rtl, auto (Section 3.2.1)",
10    "type": "object",
11    "properties":
12    {
13      "body":
14       {
15          "oneOf":
16          [
17            { "$ref": "id.json#/definitions/arraySingleStringUri" },
18            { "allOf":
19               [
20                  { "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" },
21                  { "$ref": "specificResource.json#/definitions/sourceWithTextDirection" }
22               ]
23            },
24            {
25                "type": "array",
26                "minItems": 1,
27                "items":
28                {
29                    "oneOf":
30                    [
31                        { "$ref": "id.json#/definitions/arraySingleStringUri" },
32                        { "allOf":
33                           [
34                              { "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" },
35                              { "$ref": "specificResource.json#/definitions/sourceWithTextDirection" }
36                           ]
37                        }
38                    ]
39                }
40            }
41          ]
42       }
43   }
44}