{
  "$ref": "#/definitions/WebFeaturesData",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "BrowserData": {
      "additionalProperties": false,
      "description": "Browser information",
      "properties": {
        "name": {
          "description": "The name of the browser, as in \"Edge\" or \"Safari on iOS\"",
          "type": "string"
        },
        "releases": {
          "description": "The browser's releases",
          "items": {
            "$ref": "#/definitions/Release"
          },
          "type": "array"
        }
      },
      "required": [
        "name",
        "releases"
      ],
      "type": "object"
    },
    "FeatureData": {
      "additionalProperties": false,
      "properties": {
        "caniuse": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "minItems": 2,
              "type": "array"
            }
          ],
          "description": "caniuse.com identifier(s)"
        },
        "compat_features": {
          "description": "Sources of support data for this feature",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "Short description of the feature, as a plain text string",
          "type": "string"
        },
        "description_html": {
          "description": "Short description of the feature, as an HTML string",
          "type": "string"
        },
        "discouraged": {
          "additionalProperties": false,
          "description": "Whether developers are formally discouraged from using this feature",
          "properties": {
            "according_to": {
              "description": "Links to a formal discouragement notice, such as specification text, intent-to-unship, etc.",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "alternatives": {
              "description": "IDs for features that substitute some or all of this feature's utility",
              "items": {},
              "type": "array"
            }
          },
          "required": [
            "according_to"
          ],
          "type": "object"
        },
        "group": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "minItems": 2,
              "type": "array"
            }
          ],
          "description": "Group identifier(s)"
        },
        "name": {
          "description": "Short name",
          "type": "string"
        },
        "snapshot": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "minItems": 2,
              "type": "array"
            }
          ],
          "description": "Snapshot identifier(s)"
        },
        "spec": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "type": "string"
              },
              "minItems": 2,
              "type": "array"
            }
          ],
          "description": "Specification URL(s)"
        },
        "status": {
          "additionalProperties": false,
          "description": "Whether a feature is considered a \"baseline\" web platform feature and when it achieved that status",
          "properties": {
            "baseline": {
              "description": "Whether the feature is Baseline (low substatus), Baseline (high substatus), or not (false)",
              "enum": [
                "high",
                "low",
                false
              ],
              "type": [
                "string",
                "boolean"
              ]
            },
            "baseline_high_date": {
              "description": "Date the feature achieved Baseline high status",
              "type": "string"
            },
            "baseline_low_date": {
              "description": "Date the feature achieved Baseline low status",
              "type": "string"
            },
            "by_compat_key": {
              "additionalProperties": {
                "additionalProperties": false,
                "properties": {
                  "baseline": {
                    "description": "Whether the feature is Baseline (low substatus), Baseline (high substatus), or not (false)",
                    "enum": [
                      "high",
                      "low",
                      false
                    ],
                    "type": [
                      "string",
                      "boolean"
                    ]
                  },
                  "baseline_high_date": {
                    "description": "Date the feature achieved Baseline high status",
                    "type": "string"
                  },
                  "baseline_low_date": {
                    "description": "Date the feature achieved Baseline low status",
                    "type": "string"
                  },
                  "support": {
                    "additionalProperties": false,
                    "description": "Browser versions that most-recently introduced the feature",
                    "properties": {
                      "chrome": {
                        "type": "string"
                      },
                      "chrome_android": {
                        "type": "string"
                      },
                      "edge": {
                        "type": "string"
                      },
                      "firefox": {
                        "type": "string"
                      },
                      "firefox_android": {
                        "type": "string"
                      },
                      "safari": {
                        "type": "string"
                      },
                      "safari_ios": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "baseline",
                  "support"
                ],
                "type": "object"
              },
              "description": "Statuses for each key in the feature's compat_features list, if applicable. Not available to the npm release of web-features.",
              "type": "object"
            },
            "support": {
              "additionalProperties": false,
              "description": "Browser versions that most-recently introduced the feature",
              "properties": {
                "chrome": {
                  "type": "string"
                },
                "chrome_android": {
                  "type": "string"
                },
                "edge": {
                  "type": "string"
                },
                "firefox": {
                  "type": "string"
                },
                "firefox_android": {
                  "type": "string"
                },
                "safari": {
                  "type": "string"
                },
                "safari_ios": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "baseline",
            "support"
          ],
          "type": "object"
        }
      },
      "required": [
        "name",
        "description",
        "description_html",
        "spec",
        "status"
      ],
      "type": "object"
    },
    "GroupData": {
      "additionalProperties": false,
      "properties": {
        "name": {
          "description": "Short name",
          "type": "string"
        },
        "parent": {
          "description": "Identifier of parent group",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "Release": {
      "additionalProperties": false,
      "description": "Browser release information",
      "properties": {
        "date": {
          "description": "The release date, as in \"2023-12-11\"",
          "type": "string"
        },
        "version": {
          "description": "The version string, as in \"10\" or \"17.1\"",
          "type": "string"
        }
      },
      "required": [
        "version",
        "date"
      ],
      "type": "object"
    },
    "SnapshotData": {
      "additionalProperties": false,
      "properties": {
        "name": {
          "description": "Short name",
          "type": "string"
        },
        "spec": {
          "description": "Specification",
          "type": "string"
        }
      },
      "required": [
        "name",
        "spec"
      ],
      "type": "object"
    },
    "WebFeaturesData": {
      "additionalProperties": false,
      "properties": {
        "browsers": {
          "additionalProperties": false,
          "description": "Browsers and browser release data",
          "properties": {
            "chrome": {
              "$ref": "#/definitions/BrowserData"
            },
            "chrome_android": {
              "$ref": "#/definitions/BrowserData"
            },
            "edge": {
              "$ref": "#/definitions/BrowserData"
            },
            "firefox": {
              "$ref": "#/definitions/BrowserData"
            },
            "firefox_android": {
              "$ref": "#/definitions/BrowserData"
            },
            "safari": {
              "$ref": "#/definitions/BrowserData"
            },
            "safari_ios": {
              "$ref": "#/definitions/BrowserData"
            }
          },
          "required": [
            "chrome",
            "chrome_android",
            "edge",
            "firefox",
            "firefox_android",
            "safari",
            "safari_ios"
          ],
          "type": "object"
        },
        "features": {
          "additionalProperties": {
            "$ref": "#/definitions/FeatureData"
          },
          "description": "Feature identifiers and data",
          "type": "object"
        },
        "groups": {
          "additionalProperties": {
            "$ref": "#/definitions/GroupData"
          },
          "description": "Group identifiers and data",
          "type": "object"
        },
        "snapshots": {
          "additionalProperties": {
            "$ref": "#/definitions/SnapshotData"
          },
          "description": "Snapshot identifiers and data",
          "type": "object"
        }
      },
      "required": [
        "browsers",
        "features",
        "groups",
        "snapshots"
      ],
      "type": "object"
    }
  }
}