{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/arb-json/latest.json",
  "title": "Product",
  "description": "A product in the catalog",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/google/app-resource-bundle/main/schema/arb.json",
    "sourceSha256": "f3f91a2e82b7084ffdd6ebb6391041c270fb045b4a143f9b27fb591b7802bc32",
    "fileMatch": [
      "arb.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "@@locale": {
      "description": "The locale for which messages/resources are stored in this file.",
      "type": "string"
    },
    "@@context": {
      "description": "It describes (in text) the context in which all these resources apply.",
      "type": "string"
    },
    "@@last_modified": {
      "description": "The last modified time of this ARB file/data. It is presented in ISO8601 complete form with hour and minutes. Example like: 2011-09-08T09:42-07:00.",
      "type": "string"
    },
    "@@author": {
      "description": "The author of these messages. In the case of localized ARB files it can contain the names/details of the translator.",
      "type": "string"
    },
    "@@comment": {
      "description": "A top-level comment for this file. This is not intended to be sent to translators.",
      "type": "string"
    }
  },
  "additionalProperties": false,
  "patternProperties": {
    "^@@x-.+$": {
      "type": [
        "string",
        "number",
        "integer",
        "boolean"
      ],
      "description": "A custom global attribute."
    },
    "^@(?!@).+$": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "text",
            "image",
            "css"
          ],
          "description": "The type of resource. Possible values are \"text\", \"image\", or \"css\". Program should not rely on this attribute in run time. It is mainly for the localization tools."
        },
        "context": {
          "type": "string",
          "description": "The context in which this resource applies. Context is organized in hierarchy, and level separated by \":\". Tools can use this information to restore the tree structure from ARB's flat layout. When this piece of information is missing, it defaults to global."
        },
        "placeholders": {
          "type": "object",
          "additionalProperties": false,
          "description": "A map from placeholder id to placeholder properties, including description and example. Placeholder can be specified using number (as in \"{0}\") or name (as in \"{num}\"). Number starts from 0 and the corresponding argument(s) are passed directly as function arguments. Named arguments are provided through an map object that maps each name to its value.",
          "patternProperties": {
            "^.+$": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "String"
                      ]
                    },
                    "example": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    }
                  },
                  "description": "A named placeholder of type String.",
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "required": [
                    "type"
                  ],
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "int",
                        "double",
                        "num"
                      ],
                      "description": "The type of the parameter, either String, Object, int, double, num, or DateTime."
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "compact",
                        "compactCurrency",
                        "compactSimpleCurrency",
                        "compactLong",
                        "currency",
                        "decimalPattern",
                        "decimalPatternDigits",
                        "decimalPercentPattern",
                        "percentPattern",
                        "scientificPattern",
                        "simpleCurrency"
                      ],
                      "description": ""
                    },
                    "example": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "optionalParameters": {
                      "type": "object"
                    }
                  },
                  "description": "A number placeholder.",
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "required": [
                    "type"
                  ],
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "DateTime"
                      ],
                      "description": "The type of the parameter, either String, Object, int, double, num, or DateTime."
                    },
                    "format": {
                      "type": "string",
                      "description": "The formatters are the ones provided by the DateFormat class in Dart's package:intl."
                    },
                    "isCustomDateFormat": {
                      "oneOf": [
                        {
                          "type": "string",
                          "enum": [
                            "true",
                            "false"
                          ]
                        },
                        {
                          "type": "boolean"
                        }
                      ]
                    },
                    "example": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "optionalParameters": {
                      "type": "object"
                    }
                  },
                  "description": "A Date placeholder.",
                  "anyOf": [
                    {
                      "required": [
                        "isCustomDateFormat"
                      ],
                      "properties": {
                        "isCustomDateFormat": {
                          "oneOf": [
                            {
                              "type": "string",
                              "const": "true"
                            },
                            {
                              "type": "boolean",
                              "const": true
                            }
                          ]
                        }
                      },
                      "type": "object"
                    },
                    {
                      "required": [
                        "format"
                      ],
                      "properties": {
                        "format": {
                          "type": "string",
                          "oneOf": [
                            {
                              "const": "d",
                              "examples": [],
                              "description": "DAY"
                            },
                            {
                              "const": "E",
                              "description": "ABBR_WEEKDAY"
                            },
                            {
                              "const": "EEEE",
                              "description": "WEEKDAY"
                            },
                            {
                              "const": "LLL",
                              "description": "ABBR_STANDALONE_MONTH"
                            },
                            {
                              "const": "LLLL",
                              "description": "STANDALONE_MONTH"
                            },
                            {
                              "const": "M",
                              "description": "NUM_MONTH"
                            },
                            {
                              "const": "Md",
                              "description": "NUM_MONTH_DAY"
                            },
                            {
                              "const": "MEd",
                              "description": "NUM_MONTH_WEEKDAY_DAY"
                            },
                            {
                              "const": "MMM",
                              "description": "ABBR_MONTH"
                            },
                            {
                              "const": "MMMd",
                              "description": "ABBR_MONTH_DAY"
                            },
                            {
                              "const": "MMMEd",
                              "description": "ABBR_MONTH_WEEKDAY_DAY"
                            },
                            {
                              "const": "MMMM",
                              "description": "MONTH"
                            },
                            {
                              "const": "MMMMd",
                              "description": "MONTH_DAY"
                            },
                            {
                              "const": "MMMMEEEEd",
                              "description": "MONTH_WEEKDAY_DAY"
                            },
                            {
                              "const": "QQQ",
                              "description": "ABBR_QUARTER"
                            },
                            {
                              "const": "QQQQ",
                              "description": "QUARTER"
                            },
                            {
                              "const": "y",
                              "description": "YEAR"
                            },
                            {
                              "const": "yM",
                              "description": "YEAR_NUM_MONTH"
                            },
                            {
                              "const": "yMd",
                              "description": "YEAR_NUM_MONTH_DAY"
                            },
                            {
                              "const": "yMEd",
                              "description": "YEAR_NUM_MONTH_WEEKDAY_DAY"
                            },
                            {
                              "const": "yMMM",
                              "description": "YEAR_ABBR_MONTH"
                            },
                            {
                              "const": "yMMMd",
                              "description": "YEAR_ABBR_MONTH_DAY"
                            },
                            {
                              "const": "yMMMEd",
                              "description": "YEAR_ABBR_MONTH_WEEKDAY_DAY"
                            },
                            {
                              "const": "yMMMM",
                              "description": "YEAR_MONTH"
                            },
                            {
                              "const": "yMMMMd",
                              "description": "YEAR_MONTH_DAY"
                            },
                            {
                              "const": "yMMMMEEEEd",
                              "description": "YEAR_MONTH_WEEKDAY_DAY"
                            },
                            {
                              "const": "yQQQ",
                              "description": "YEAR_ABBR_QUARTER"
                            },
                            {
                              "const": "yQQQQ",
                              "description": "YEAR_QUARTER"
                            },
                            {
                              "const": "H",
                              "description": "HOUR24"
                            },
                            {
                              "const": "Hm",
                              "description": "HOUR24_MINUTE"
                            },
                            {
                              "const": "Hms",
                              "description": "HOUR24_MINUTE_SECOND"
                            },
                            {
                              "const": "j",
                              "description": "HOUR"
                            },
                            {
                              "const": "jm",
                              "description": "HOUR_MINUTE"
                            },
                            {
                              "const": "jms",
                              "description": "HOUR_MINUTE_SECOND"
                            },
                            {
                              "const": "m",
                              "description": "MINUTE"
                            },
                            {
                              "const": "ms",
                              "description": "MINUTE_SECOND"
                            },
                            {
                              "const": "s",
                              "description": "SECOND"
                            }
                          ],
                          "description": "The formatters are the ones provided by the DateFormat class in Dart's package:intl."
                        }
                      },
                      "type": "object"
                    }
                  ],
                  "additionalProperties": false
                }
              ]
            }
          }
        },
        "description": {
          "type": "string",
          "description": "A short paragraph describing the resource and how it is being used by the app, and message that need to be passed to localization process and translators."
        },
        "comment": {
          "type": "string",
          "description": "A comment on this resource. This is not intended to be sent to translators."
        }
      },
      "description": "Metadata for a message.",
      "additionalProperties": false
    },
    "^(?!@@).+$": {
      "type": "string",
      "description": "The ID of a message"
    }
  },
  "required": [
    "@@locale"
  ]
}
