1*912701f9SAndroid Build Coastguard Worker{ 2*912701f9SAndroid Build Coastguard Worker "$schema": "http://json-schema.org/draft-07/schema", 3*912701f9SAndroid Build Coastguard Worker "$id": "https://github.com/unicode-org/cldr/blob/maint/maint-45/common/dtd/messageFormat/message.json", 4*912701f9SAndroid Build Coastguard Worker 5*912701f9SAndroid Build Coastguard Worker "oneOf": [{ "$ref": "#/$defs/message" }, { "$ref": "#/$defs/select" }], 6*912701f9SAndroid Build Coastguard Worker 7*912701f9SAndroid Build Coastguard Worker "$defs": { 8*912701f9SAndroid Build Coastguard Worker "literal": { 9*912701f9SAndroid Build Coastguard Worker "type": "object", 10*912701f9SAndroid Build Coastguard Worker "properties": { 11*912701f9SAndroid Build Coastguard Worker "type": { "const": "literal" }, 12*912701f9SAndroid Build Coastguard Worker "value": { "type": "string" } 13*912701f9SAndroid Build Coastguard Worker }, 14*912701f9SAndroid Build Coastguard Worker "required": ["type", "value"] 15*912701f9SAndroid Build Coastguard Worker }, 16*912701f9SAndroid Build Coastguard Worker "variable": { 17*912701f9SAndroid Build Coastguard Worker "type": "object", 18*912701f9SAndroid Build Coastguard Worker "properties": { 19*912701f9SAndroid Build Coastguard Worker "type": { "const": "variable" }, 20*912701f9SAndroid Build Coastguard Worker "name": { "type": "string" } 21*912701f9SAndroid Build Coastguard Worker }, 22*912701f9SAndroid Build Coastguard Worker "required": ["type", "name"] 23*912701f9SAndroid Build Coastguard Worker }, 24*912701f9SAndroid Build Coastguard Worker "options": { 25*912701f9SAndroid Build Coastguard Worker "type": "array", 26*912701f9SAndroid Build Coastguard Worker "items": { 27*912701f9SAndroid Build Coastguard Worker "type": "object", 28*912701f9SAndroid Build Coastguard Worker "properties": { 29*912701f9SAndroid Build Coastguard Worker "name": { "type": "string" }, 30*912701f9SAndroid Build Coastguard Worker "value": { 31*912701f9SAndroid Build Coastguard Worker "oneOf": [ 32*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/literal" }, 33*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/variable" } 34*912701f9SAndroid Build Coastguard Worker ] 35*912701f9SAndroid Build Coastguard Worker } 36*912701f9SAndroid Build Coastguard Worker }, 37*912701f9SAndroid Build Coastguard Worker "required": ["name", "value"] 38*912701f9SAndroid Build Coastguard Worker } 39*912701f9SAndroid Build Coastguard Worker }, 40*912701f9SAndroid Build Coastguard Worker "attributes": { 41*912701f9SAndroid Build Coastguard Worker "type": "array", 42*912701f9SAndroid Build Coastguard Worker "items": { 43*912701f9SAndroid Build Coastguard Worker "type": "object", 44*912701f9SAndroid Build Coastguard Worker "properties": { 45*912701f9SAndroid Build Coastguard Worker "name": { "type": "string" }, 46*912701f9SAndroid Build Coastguard Worker "value": { 47*912701f9SAndroid Build Coastguard Worker "oneOf": [ 48*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/literal" }, 49*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/variable" } 50*912701f9SAndroid Build Coastguard Worker ] 51*912701f9SAndroid Build Coastguard Worker } 52*912701f9SAndroid Build Coastguard Worker }, 53*912701f9SAndroid Build Coastguard Worker "required": ["name"] 54*912701f9SAndroid Build Coastguard Worker } 55*912701f9SAndroid Build Coastguard Worker }, 56*912701f9SAndroid Build Coastguard Worker 57*912701f9SAndroid Build Coastguard Worker "function-annotation": { 58*912701f9SAndroid Build Coastguard Worker "type": "object", 59*912701f9SAndroid Build Coastguard Worker "properties": { 60*912701f9SAndroid Build Coastguard Worker "type": { "const": "function" }, 61*912701f9SAndroid Build Coastguard Worker "name": { "type": "string" }, 62*912701f9SAndroid Build Coastguard Worker "options": { "$ref": "#/$defs/options" } 63*912701f9SAndroid Build Coastguard Worker }, 64*912701f9SAndroid Build Coastguard Worker "required": ["type", "name"] 65*912701f9SAndroid Build Coastguard Worker }, 66*912701f9SAndroid Build Coastguard Worker "unsupported-annotation": { 67*912701f9SAndroid Build Coastguard Worker "type": "object", 68*912701f9SAndroid Build Coastguard Worker "properties": { 69*912701f9SAndroid Build Coastguard Worker "type": { "const": "unsupported-annotation" }, 70*912701f9SAndroid Build Coastguard Worker "source": { "type": "string" } 71*912701f9SAndroid Build Coastguard Worker }, 72*912701f9SAndroid Build Coastguard Worker "required": ["type", "source"] 73*912701f9SAndroid Build Coastguard Worker }, 74*912701f9SAndroid Build Coastguard Worker "annotation": { 75*912701f9SAndroid Build Coastguard Worker "oneOf": [ 76*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/function-annotation" }, 77*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/unsupported-annotation" } 78*912701f9SAndroid Build Coastguard Worker ] 79*912701f9SAndroid Build Coastguard Worker }, 80*912701f9SAndroid Build Coastguard Worker 81*912701f9SAndroid Build Coastguard Worker "literal-expression": { 82*912701f9SAndroid Build Coastguard Worker "type": "object", 83*912701f9SAndroid Build Coastguard Worker "properties": { 84*912701f9SAndroid Build Coastguard Worker "type": { "const": "expression" }, 85*912701f9SAndroid Build Coastguard Worker "arg": { "$ref": "#/$defs/literal" }, 86*912701f9SAndroid Build Coastguard Worker "annotation": { "$ref": "#/$defs/annotation" }, 87*912701f9SAndroid Build Coastguard Worker "attributes": { "$ref": "#/$defs/attributes" } 88*912701f9SAndroid Build Coastguard Worker }, 89*912701f9SAndroid Build Coastguard Worker "required": ["type", "arg"] 90*912701f9SAndroid Build Coastguard Worker }, 91*912701f9SAndroid Build Coastguard Worker "variable-expression": { 92*912701f9SAndroid Build Coastguard Worker "type": "object", 93*912701f9SAndroid Build Coastguard Worker "properties": { 94*912701f9SAndroid Build Coastguard Worker "type": { "const": "expression" }, 95*912701f9SAndroid Build Coastguard Worker "arg": { "$ref": "#/$defs/variable" }, 96*912701f9SAndroid Build Coastguard Worker "annotation": { "$ref": "#/$defs/annotation" }, 97*912701f9SAndroid Build Coastguard Worker "attributes": { "$ref": "#/$defs/attributes" } 98*912701f9SAndroid Build Coastguard Worker }, 99*912701f9SAndroid Build Coastguard Worker "required": ["type", "arg"] 100*912701f9SAndroid Build Coastguard Worker }, 101*912701f9SAndroid Build Coastguard Worker "function-expression": { 102*912701f9SAndroid Build Coastguard Worker "type": "object", 103*912701f9SAndroid Build Coastguard Worker "properties": { 104*912701f9SAndroid Build Coastguard Worker "type": { "const": "expression" }, 105*912701f9SAndroid Build Coastguard Worker "annotation": { "$ref": "#/$defs/function-annotation" }, 106*912701f9SAndroid Build Coastguard Worker "attributes": { "$ref": "#/$defs/attributes" } 107*912701f9SAndroid Build Coastguard Worker }, 108*912701f9SAndroid Build Coastguard Worker "required": ["type", "annotation"] 109*912701f9SAndroid Build Coastguard Worker }, 110*912701f9SAndroid Build Coastguard Worker "unsupported-expression": { 111*912701f9SAndroid Build Coastguard Worker "type": "object", 112*912701f9SAndroid Build Coastguard Worker "properties": { 113*912701f9SAndroid Build Coastguard Worker "type": { "const": "expression" }, 114*912701f9SAndroid Build Coastguard Worker "annotation": { "$ref": "#/$defs/unsupported-annotation" }, 115*912701f9SAndroid Build Coastguard Worker "attributes": { "$ref": "#/$defs/attributes" } 116*912701f9SAndroid Build Coastguard Worker }, 117*912701f9SAndroid Build Coastguard Worker "required": ["type", "annotation"] 118*912701f9SAndroid Build Coastguard Worker }, 119*912701f9SAndroid Build Coastguard Worker "expression": { 120*912701f9SAndroid Build Coastguard Worker "oneOf": [ 121*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/literal-expression" }, 122*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/variable-expression" }, 123*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/function-expression" }, 124*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/unsupported-expression" } 125*912701f9SAndroid Build Coastguard Worker ] 126*912701f9SAndroid Build Coastguard Worker }, 127*912701f9SAndroid Build Coastguard Worker 128*912701f9SAndroid Build Coastguard Worker "markup": { 129*912701f9SAndroid Build Coastguard Worker "type": "object", 130*912701f9SAndroid Build Coastguard Worker "properties": { 131*912701f9SAndroid Build Coastguard Worker "type": { "const": "markup" }, 132*912701f9SAndroid Build Coastguard Worker "kind": { "oneOf": [ "open", "standalone", "close" ] }, 133*912701f9SAndroid Build Coastguard Worker "name": { "type": "string" }, 134*912701f9SAndroid Build Coastguard Worker "options": { "$ref": "#/$defs/options" }, 135*912701f9SAndroid Build Coastguard Worker "attributes": { "$ref": "#/$defs/attributes" } 136*912701f9SAndroid Build Coastguard Worker }, 137*912701f9SAndroid Build Coastguard Worker "required": ["type", "kind", "name"] 138*912701f9SAndroid Build Coastguard Worker }, 139*912701f9SAndroid Build Coastguard Worker 140*912701f9SAndroid Build Coastguard Worker "pattern": { 141*912701f9SAndroid Build Coastguard Worker "type": "array", 142*912701f9SAndroid Build Coastguard Worker "items": { 143*912701f9SAndroid Build Coastguard Worker "oneOf": [ 144*912701f9SAndroid Build Coastguard Worker { "type": "string" }, 145*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/expression" }, 146*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/markup" } 147*912701f9SAndroid Build Coastguard Worker ] 148*912701f9SAndroid Build Coastguard Worker } 149*912701f9SAndroid Build Coastguard Worker }, 150*912701f9SAndroid Build Coastguard Worker 151*912701f9SAndroid Build Coastguard Worker "input-declaration": { 152*912701f9SAndroid Build Coastguard Worker "type": "object", 153*912701f9SAndroid Build Coastguard Worker "properties": { 154*912701f9SAndroid Build Coastguard Worker "type": { "const": "input" }, 155*912701f9SAndroid Build Coastguard Worker "name": { "type": "string" }, 156*912701f9SAndroid Build Coastguard Worker "value": { "$ref": "#/$defs/variable-expression" } 157*912701f9SAndroid Build Coastguard Worker }, 158*912701f9SAndroid Build Coastguard Worker "required": ["type", "name", "value"] 159*912701f9SAndroid Build Coastguard Worker }, 160*912701f9SAndroid Build Coastguard Worker "local-declaration": { 161*912701f9SAndroid Build Coastguard Worker "type": "object", 162*912701f9SAndroid Build Coastguard Worker "properties": { 163*912701f9SAndroid Build Coastguard Worker "type": { "const": "local" }, 164*912701f9SAndroid Build Coastguard Worker "name": { "type": "string" }, 165*912701f9SAndroid Build Coastguard Worker "value": { "$ref": "#/$defs/expression" } 166*912701f9SAndroid Build Coastguard Worker }, 167*912701f9SAndroid Build Coastguard Worker "required": ["type", "name", "value"] 168*912701f9SAndroid Build Coastguard Worker }, 169*912701f9SAndroid Build Coastguard Worker "unsupported-statement": { 170*912701f9SAndroid Build Coastguard Worker "type": "object", 171*912701f9SAndroid Build Coastguard Worker "properties": { 172*912701f9SAndroid Build Coastguard Worker "type": { "const": "unsupported-statement" }, 173*912701f9SAndroid Build Coastguard Worker "keyword": { "type": "string" }, 174*912701f9SAndroid Build Coastguard Worker "body": { "type": "string" }, 175*912701f9SAndroid Build Coastguard Worker "expressions": { 176*912701f9SAndroid Build Coastguard Worker "type": "array", 177*912701f9SAndroid Build Coastguard Worker "items": { "$ref": "#/$defs/expression" } 178*912701f9SAndroid Build Coastguard Worker } 179*912701f9SAndroid Build Coastguard Worker }, 180*912701f9SAndroid Build Coastguard Worker "required": ["type", "keyword", "expressions"] 181*912701f9SAndroid Build Coastguard Worker }, 182*912701f9SAndroid Build Coastguard Worker "declarations": { 183*912701f9SAndroid Build Coastguard Worker "type": "array", 184*912701f9SAndroid Build Coastguard Worker "items": { 185*912701f9SAndroid Build Coastguard Worker "oneOf": [ 186*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/input-declaration" }, 187*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/local-declaration" }, 188*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/unsupported-statement" } 189*912701f9SAndroid Build Coastguard Worker ] 190*912701f9SAndroid Build Coastguard Worker } 191*912701f9SAndroid Build Coastguard Worker }, 192*912701f9SAndroid Build Coastguard Worker 193*912701f9SAndroid Build Coastguard Worker "variant-key": { 194*912701f9SAndroid Build Coastguard Worker "oneOf": [ 195*912701f9SAndroid Build Coastguard Worker { "$ref": "#/$defs/literal" }, 196*912701f9SAndroid Build Coastguard Worker { 197*912701f9SAndroid Build Coastguard Worker "type": "object", 198*912701f9SAndroid Build Coastguard Worker "properties": { 199*912701f9SAndroid Build Coastguard Worker "type": { "const": "*" }, 200*912701f9SAndroid Build Coastguard Worker "value": { "type": "string" } 201*912701f9SAndroid Build Coastguard Worker }, 202*912701f9SAndroid Build Coastguard Worker "required": ["type"] 203*912701f9SAndroid Build Coastguard Worker } 204*912701f9SAndroid Build Coastguard Worker ] 205*912701f9SAndroid Build Coastguard Worker }, 206*912701f9SAndroid Build Coastguard Worker "message": { 207*912701f9SAndroid Build Coastguard Worker "type": "object", 208*912701f9SAndroid Build Coastguard Worker "properties": { 209*912701f9SAndroid Build Coastguard Worker "type": { "const": "message" }, 210*912701f9SAndroid Build Coastguard Worker "declarations": { "$ref": "#/$defs/declarations" }, 211*912701f9SAndroid Build Coastguard Worker "pattern": { "$ref": "#/$defs/pattern" } 212*912701f9SAndroid Build Coastguard Worker }, 213*912701f9SAndroid Build Coastguard Worker "required": ["type", "declarations", "pattern"] 214*912701f9SAndroid Build Coastguard Worker }, 215*912701f9SAndroid Build Coastguard Worker "select": { 216*912701f9SAndroid Build Coastguard Worker "type": "object", 217*912701f9SAndroid Build Coastguard Worker "properties": { 218*912701f9SAndroid Build Coastguard Worker "type": { "const": "select" }, 219*912701f9SAndroid Build Coastguard Worker "declarations": { "$ref": "#/$defs/declarations" }, 220*912701f9SAndroid Build Coastguard Worker "selectors": { 221*912701f9SAndroid Build Coastguard Worker "type": "array", 222*912701f9SAndroid Build Coastguard Worker "items": { "$ref": "#/$defs/expression" } 223*912701f9SAndroid Build Coastguard Worker }, 224*912701f9SAndroid Build Coastguard Worker "variants": { 225*912701f9SAndroid Build Coastguard Worker "type": "array", 226*912701f9SAndroid Build Coastguard Worker "items": { 227*912701f9SAndroid Build Coastguard Worker "type": "object", 228*912701f9SAndroid Build Coastguard Worker "properties": { 229*912701f9SAndroid Build Coastguard Worker "keys": { 230*912701f9SAndroid Build Coastguard Worker "type": "array", 231*912701f9SAndroid Build Coastguard Worker "items": { "$ref": "#/$defs/variant-key" } 232*912701f9SAndroid Build Coastguard Worker }, 233*912701f9SAndroid Build Coastguard Worker "value": { "$ref": "#/$defs/pattern" } 234*912701f9SAndroid Build Coastguard Worker }, 235*912701f9SAndroid Build Coastguard Worker "required": ["keys", "value"] 236*912701f9SAndroid Build Coastguard Worker } 237*912701f9SAndroid Build Coastguard Worker } 238*912701f9SAndroid Build Coastguard Worker }, 239*912701f9SAndroid Build Coastguard Worker "required": ["type", "declarations", "selectors", "variants"] 240*912701f9SAndroid Build Coastguard Worker } 241*912701f9SAndroid Build Coastguard Worker } 242*912701f9SAndroid Build Coastguard Worker} 243