{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://www.designtokens.org/schemas/2025.10/resolver.json",
  "title": "DTCG Resolver Schema",
  "description": "JSON Schema for the Design Tokens Community Group (DTCG) Resolver specification",
  "type": "object",
  "required": ["version", "resolutionOrder"],
  "properties": {
    "$schema": {
      "type": "string",
      "format": "uri-reference",
      "description": "URI reference to this JSON schema."
    },
    "name": {
      "title": "Name",
      "type": "string",
      "description": "A short, human-readable name for the document."
    },
    "version": {
      "title": "Version",
      "type": "string",
      "const": "2025.10",
      "description": "Version of the resolver specification. Must be '2025.10'."
    },
    "description": {
      "title": "Description",
      "type": "string",
      "description": "A human-readable description for this document."
    },
    "sets": {
      "title": "Token Sets",
      "type": "object",
      "description": "Definition of sets. A set is a collection of design tokens in DTCG format.",
      "patternProperties": {
        "^.+$": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/resolver/set.json"
        }
      }
    },
    "modifiers": {
      "title": "Modifiers",
      "type": "object",
      "description": "Definition of modifiers. A modifier allows for conditional inclusion of token values via contexts.",
      "patternProperties": {
        "^.+$": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/resolver/modifier.json"
        }
      }
    },
    "resolutionOrder": {
      "$ref": "https://www.designtokens.org/schemas/2025.10/resolver/resolutionOrder.json"
    },
    "$defs": {
      "title": "Definitions",
      "type": "object",
      "description": "Optional definitions that tools MAY support but MUST NOT throw an error when encountered."
    }
  },
  "additionalProperties": false,
  "definitions": {
    "https://www.designtokens.org/schemas/2025.10/resolver/set.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/resolver/set.json",
      "title": "Set",
      "description": "A set is a collection of design tokens in DTCG format. A set MUST contain a sources array with tokens declared directly, or a reference object pointing to a JSON file containing design tokens, or any combination of the two.",
      "type": "object",
      "required": ["sources"],
      "additionalProperties": false,
      "properties": {
        "description": {
          "title": "Description",
          "type": "string",
          "description": "A human-readable description of the purpose of the set."
        },
        "sources": {
          "$ref": "#/definitions/tokenSourcesForSets"
        },
        "$extensions": {
          "title": "Extensions",
          "type": "object",
          "description": "Vendor-specific extensions. Keys are vendor-specific namespaces."
        }
      },
      "definitions": {
        "referenceObjectForSets": {
          "title": "Reference Object (For Sets)",
          "type": "object",
          "required": ["$ref"],
          "properties": {
            "$ref": {
              "title": "JSON Reference",
              "type": "string",
              "format": "uri-reference",
              "description": "A JSON Pointer (RFC 6901) or URI reference. Sets MUST NOT reference modifiers (#/modifiers/...) or resolutionOrder items (#/resolutionOrder/...).",
              "not": {
                "anyOf": [
                  {
                    "pattern": "^#/modifiers/",
                    "$comment": "Sets cannot reference modifiers"
                  },
                  {
                    "pattern": "^#/resolutionOrder/",
                    "$comment": "Nothing can reference resolutionOrder items"
                  }
                ]
              }
            }
          },
          "description": "A reference object for use within sets. Cannot point to modifiers or resolutionOrder items."
        },
        "tokenSourcesForSets": {
          "title": "Token Sources (For Sets)",
          "type": "array",
          "description": "An array of token sources for sets - cannot reference modifiers or resolutionOrder items.",
          "items": {
            "oneOf": [
              {
                "$ref": "#/definitions/referenceObjectForSets"
              },
              {
                "$ref": "https://www.designtokens.org/schemas/2025.10/format.json"
              }
            ]
          }
        }
      }
    },
    "https://www.designtokens.org/schemas/2025.10/format.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format.json",
      "title": "DTCG Format Schema",
      "description": "JSON Schema for the Design Tokens Community Group (DTCG) Format specification.",
      "type": "object",
      "properties": {
        "$schema": {
          "type": "string",
          "format": "uri-reference",
          "description": "URI reference to this JSON schema.",
          "$comment": "$schema is not part of the official DTCG specification."
        },
        "$type": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/tokenType.json"
        },
        "$description": {
          "type": "string",
          "description": "A plain text description of the group"
        },
        "$extensions": {
          "type": "object",
          "description": "Vendor-specific extensions"
        },
        "$extends": {
          "oneOf": [
            {
              "$ref": "#/definitions/curlyBraceReference"
            },
            {
              "$ref": "#/definitions/jsonPointerReference"
            }
          ],
          "description": "Reference to another group to inherit tokens and properties from"
        },
        "$deprecated": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ],
          "description": "Whether this group is deprecated"
        },
        "$root": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/token.json"
        }
      },
      "patternProperties": {
        "^[^${}.][^{}.]*$": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json"
        }
      },
      "additionalProperties": false,
      "definitions": {
        "tokenOrGroupName": {
          "title": "Token or Group Name",
          "type": "string",
          "pattern": "^[^${}.][^{}.]*$",
          "description": "Valid token/group names: must not start with $ and must not contain {, }, or ."
        },
        "curlyBraceReference": {
          "title": "Curly Brace Reference",
          "type": "string",
          "pattern": "^\\{[^${}.][^{}.]*(\\.[^${}.][^{}.]*)*\\}$",
          "description": "Curly brace reference (e.g., '{tokenName}' or '{group.nested.token}')"
        },
        "jsonPointerReference": {
          "title": "JSON Pointer Reference",
          "type": "string",
          "pattern": "^#/",
          "format": "json-pointer-uri-fragment",
          "description": "JSON Pointer reference (RFC 6901) to a location in the document (e.g., '#/path/to/target')"
        },
        "jsonPointerReferenceObject": {
          "title": "JSON Pointer Reference Object",
          "type": "object",
          "properties": {
            "$ref": {
              "$ref": "#/definitions/jsonPointerReference"
            }
          },
          "required": ["$ref"],
          "additionalProperties": false,
          "description": "Object containing a JSON Pointer reference for property-level references"
        },
        "tokenValueReference": {
          "title": "Token Value Reference",
          "oneOf": [
            {
              "$ref": "#/definitions/curlyBraceReference"
            },
            {
              "$ref": "#/definitions/jsonPointerReferenceObject"
            }
          ],
          "description": "A reference to a token value using either curly brace syntax or JSON Pointer syntax"
        }
      }
    },
    "https://www.designtokens.org/schemas/2025.10/format/tokenType.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/tokenType.json",
      "title": "TokenType",
      "description": "A token type in the DTCG specification",
      "type": "string",
      "enum": [
        "color",
        "dimension",
        "fontFamily",
        "fontWeight",
        "duration",
        "cubicBezier",
        "number",
        "strokeStyle",
        "border",
        "transition",
        "shadow",
        "gradient",
        "typography"
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/token.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/token.json",
      "title": "Token",
      "description": "A token in the DTCG specification",
      "type": "object",
      "properties": {
        "$value": {
          "description": "The token's value - can be a direct value or a reference to another token using curly brace syntax (e.g., '{token.name}'). Mutually exclusive with $ref."
        },
        "$type": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/tokenType.json"
        },
        "$ref": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReference"
        },
        "$description": {
          "type": "string",
          "description": "A plain text description of the token"
        },
        "$extensions": {
          "type": "object",
          "description": "Vendor-specific extensions"
        },
        "$deprecated": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ],
          "description": "Whether this token is deprecated"
        }
      },
      "additionalProperties": false,
      "allOf": [
        {
          "description": "Tokens cannot define both $value and $ref; they must choose exactly one form of reference or direct value.",
          "if": {
            "required": ["$value"],
            "properties": {
              "$value": true
            }
          },
          "then": {
            "not": {
              "required": ["$ref"],
              "properties": {
                "$ref": true
              }
            }
          },
          "else": {
            "required": ["$ref"],
            "properties": {
              "$ref": true
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "color"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/color.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "dimension"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "fontFamily"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "fontWeight"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "duration"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/duration.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "cubicBezier"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "number"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/number.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "strokeStyle"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "border"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/border.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "transition"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/transition.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "shadow"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/shadow.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "gradient"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/gradient.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": ["$type"],
            "properties": {
              "$type": {
                "const": "typography"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/typography.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "allOf": [
              {
                "not": {
                  "required": ["$type"]
                }
              },
              {
                "required": ["$value"]
              },
              {
                "properties": {
                  "$value": {
                    "not": {
                      "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                    }
                  }
                }
              }
            ]
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/color.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/duration.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/border.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/transition.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/shadow.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/gradient.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/typography.json"
                  },
                  {
                    "anyOf": [
                      {
                        "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/number.json"
                      },
                      {
                        "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json"
                      }
                    ]
                  }
                ]
              }
            }
          }
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/color.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/color.json",
      "title": "Color Value",
      "description": "Value schema for color type tokens. Represents a color in a specific color space.",
      "type": "object",
      "properties": {
        "colorSpace": {
          "description": "The color space or color model used to represent the color",
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "srgb",
                "srgb-linear",
                "hsl",
                "hwb",
                "lab",
                "lch",
                "oklab",
                "oklch",
                "display-p3",
                "a98-rgb",
                "prophoto-rgb",
                "rec2020",
                "xyz-d65",
                "xyz-d50"
              ]
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "components": {
          "description": "Array of color components. The number and meaning of components depend on the color space. Each component can be a number or the 'none' keyword.",
          "oneOf": [
            {
              "type": "array"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "alpha": {
          "description": "The alpha (transparency) value of the color. 0 is fully transparent, 1 is fully opaque. If omitted, defaults to 1.",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "hex": {
          "description": "Optional fallback value in 6-digit CSS hex color notation (e.g., '#ff00ff'). Must be 6 digits to avoid conflicts with the alpha value.",
          "$comment": "Only JSON Pointer references (not curly brace references) are allowed for hex because no string token type exists in the specification that could be referenced with curly braces.",
          "oneOf": [
            {
              "type": "string",
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        }
      },
      "required": ["colorSpace", "components"],
      "additionalProperties": false,
      "definitions": {
        "zeroToOneComponent": {
          "title": "Zero to One Component",
          "description": "A color component normalized to the range [0-1] (e.g., RGB values, XYZ values)",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            {
              "type": "string",
              "const": "none"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "hueComponent": {
          "title": "Hue Component",
          "description": "Hue angle from 0 up to (but not including) 360 degrees",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0,
              "exclusiveMaximum": 360
            },
            {
              "type": "string",
              "const": "none"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "percentageComponent": {
          "title": "Percentage Component",
          "description": "Percentage value from 0 to 100",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            {
              "type": "string",
              "const": "none"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "chromaComponent": {
          "title": "Chroma Component",
          "description": "Chroma value from 0 to infinity",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0
            },
            {
              "type": "string",
              "const": "none"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "unboundedComponent": {
          "title": "Unbounded Component",
          "description": "A color component with no numeric bounds (e.g., A and B in LAB/OKLAB color spaces)",
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "const": "none"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "rgbComponents": {
          "title": "RGB Components",
          "description": "Array of RGB color components [Red, Green, Blue], each normalized to the range [0-1]",
          "type": "array",
          "minItems": 3,
          "maxItems": 3,
          "items": [
            {
              "$ref": "#/definitions/zeroToOneComponent"
            },
            {
              "$ref": "#/definitions/zeroToOneComponent"
            },
            {
              "$ref": "#/definitions/zeroToOneComponent"
            }
          ]
        },
        "xyzComponents": {
          "title": "XYZ Components",
          "description": "Array of XYZ color components [X, Y, Z], each normalized to the range [0-1]",
          "type": "array",
          "minItems": 3,
          "maxItems": 3,
          "items": [
            {
              "$ref": "#/definitions/zeroToOneComponent"
            },
            {
              "$ref": "#/definitions/zeroToOneComponent"
            },
            {
              "$ref": "#/definitions/zeroToOneComponent"
            }
          ]
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "srgb"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "srgb-linear"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "display-p3"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "a98-rgb"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "prophoto-rgb"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "rec2020"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "xyz-d65"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/xyzComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "xyz-d50"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/xyzComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "hsl"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/hueComponent"
                  },
                  {
                    "$ref": "#/definitions/percentageComponent"
                  },
                  {
                    "$ref": "#/definitions/percentageComponent"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "hwb"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/hueComponent"
                  },
                  {
                    "$ref": "#/definitions/percentageComponent"
                  },
                  {
                    "$ref": "#/definitions/percentageComponent"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "lab"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/percentageComponent"
                  },
                  {
                    "$ref": "#/definitions/unboundedComponent"
                  },
                  {
                    "$ref": "#/definitions/unboundedComponent"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "lch"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/percentageComponent"
                  },
                  {
                    "$ref": "#/definitions/chromaComponent"
                  },
                  {
                    "$ref": "#/definitions/hueComponent"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "oklab"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/zeroToOneComponent"
                  },
                  {
                    "$ref": "#/definitions/unboundedComponent"
                  },
                  {
                    "$ref": "#/definitions/unboundedComponent"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "oklch"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/zeroToOneComponent"
                  },
                  {
                    "$ref": "#/definitions/chromaComponent"
                  },
                  {
                    "$ref": "#/definitions/hueComponent"
                  }
                ]
              }
            }
          }
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json",
      "title": "Dimension Value",
      "description": "Value schema for dimension type tokens. Represents an amount of distance in a single dimension in the UI, such as a position, width, height, radius, or thickness.",
      "type": "object",
      "properties": {
        "value": {
          "description": "An integer or floating-point value representing the numeric value.",
          "oneOf": [
            {
              "type": "number"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "unit": {
          "description": "Unit of distance. Supported values: 'px' (idealized pixel, equivalent to dp on Android and pt on iOS), 'rem' (multiple of system's default font size).",
          "oneOf": [
            {
              "type": "string",
              "enum": ["px", "rem"]
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        }
      },
      "required": ["value", "unit"],
      "additionalProperties": false
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json",
      "title": "Font Family Value",
      "description": "Value schema for fontFamily type tokens. Represents a font name or an array of font names (ordered from most to least preferred).",
      "oneOf": [
        {
          "type": "string",
          "description": "A single font name",
          "not": {
            "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference"
          }
        },
        {
          "type": "array",
          "description": "An array of font names, ordered from most to least preferred",
          "items": {
            "oneOf": [
              {
                "type": "string",
                "not": {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference"
                }
              },
              {
                "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
              }
            ]
          },
          "minItems": 1
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json",
      "title": "Font Weight Value",
      "description": "Value schema for fontWeight type tokens. Represents a font weight as per the OpenType wght tag specification. Lower numbers represent lighter weights, higher numbers represent thicker weights.",
      "oneOf": [
        {
          "type": "number",
          "description": "Numeric font weight value",
          "minimum": 1,
          "maximum": 1000
        },
        {
          "type": "string",
          "description": "Pre-defined font weight string value",
          "enum": [
            "thin",
            "hairline",
            "extra-light",
            "ultra-light",
            "light",
            "normal",
            "regular",
            "book",
            "medium",
            "semi-bold",
            "demi-bold",
            "bold",
            "extra-bold",
            "ultra-bold",
            "black",
            "heavy",
            "extra-black",
            "ultra-black"
          ]
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/duration.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/duration.json",
      "title": "Duration Value",
      "description": "Value schema for duration type tokens. Represents the length of time in milliseconds an animation or animation cycle takes to complete.",
      "type": "object",
      "properties": {
        "value": {
          "description": "An integer or floating-point value representing the numeric value.",
          "oneOf": [
            {
              "type": "number"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "unit": {
          "description": "Unit of time. Supported values: 'ms' (millisecond), 's' (second).",
          "oneOf": [
            {
              "type": "string",
              "enum": ["ms", "s"]
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        }
      },
      "required": ["value", "unit"],
      "additionalProperties": false
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json",
      "title": "Cubic Bezier Value",
      "description": "Value schema for cubicBezier type tokens. Represents how the value of an animated property progresses towards completion over the duration of an animation, effectively creating visual effects such as acceleration, deceleration, and bounce.",
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/xCoordinate"
        },
        {
          "$ref": "#/definitions/yCoordinate"
        },
        {
          "$ref": "#/definitions/xCoordinate"
        },
        {
          "$ref": "#/definitions/yCoordinate"
        }
      ],
      "additionalItems": false,
      "minItems": 4,
      "maxItems": 4,
      "definitions": {
        "xCoordinate": {
          "title": "X Coordinate",
          "description": "X coordinate of control point (must be between 0 and 1)",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "yCoordinate": {
          "title": "Y Coordinate",
          "description": "Y coordinate of control point (can be any real number)",
          "oneOf": [
            {
              "type": "number"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        }
      }
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/number.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/number.json",
      "title": "Number Value",
      "description": "Value schema for number type tokens. Numbers can be positive, negative and have fractions. Example uses are gradient stop positions or unitless line heights.",
      "type": "number"
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json",
      "title": "Stroke Style Value",
      "description": "Value schema for strokeStyle type tokens. Represents the style applied to lines or borders.",
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "solid",
            "dashed",
            "dotted",
            "double",
            "groove",
            "ridge",
            "outset",
            "inset"
          ],
          "description": "Pre-defined stroke style values with the same meaning as CSS line style values"
        },
        {
          "type": "object",
          "properties": {
            "dashArray": {
              "description": "Array of dimension values specifying lengths of alternating dashes and gaps",
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                      },
                      {
                        "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                      }
                    ]
                  },
                  "minItems": 1
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
                }
              ]
            },
            "lineCap": {
              "description": "Line cap style, same meaning as SVG stroke-linecap attribute",
              "oneOf": [
                {
                  "type": "string",
                  "enum": ["round", "butt", "square"]
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
                }
              ]
            }
          },
          "required": ["dashArray", "lineCap"],
          "additionalProperties": false
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/border.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/border.json",
      "title": "Border Value",
      "description": "Value schema for border type tokens. Represents a border style.",
      "type": "object",
      "properties": {
        "color": {
          "description": "The color of the border",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/color.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "width": {
          "description": "The width or thickness of the border",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "style": {
          "description": "The border's style",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        }
      },
      "required": ["color", "width", "style"],
      "additionalProperties": false
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/transition.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/transition.json",
      "title": "Transition Value",
      "description": "Value schema for transition type tokens. Represents an animated transition between two states.",
      "type": "object",
      "properties": {
        "duration": {
          "description": "The duration of the transition",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/duration.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "delay": {
          "description": "The time to wait before the transition begins",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/duration.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "timingFunction": {
          "description": "The timing function of the transition",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        }
      },
      "required": ["duration", "delay", "timingFunction"],
      "additionalProperties": false
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/shadow.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/shadow.json",
      "title": "Shadow Value",
      "description": "Value schema for shadow type tokens. Represents a shadow style.",
      "oneOf": [
        {
          "$ref": "#/definitions/shadowObject"
        },
        {
          "type": "array",
          "description": "Array of shadow objects and/or references to shadow tokens",
          "items": {
            "oneOf": [
              {
                "$ref": "#/definitions/shadowObject"
              },
              {
                "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
              }
            ]
          },
          "minItems": 1
        }
      ],
      "definitions": {
        "shadowObject": {
          "title": "Shadow Object",
          "type": "object",
          "properties": {
            "color": {
              "description": "The color of the shadow",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/color.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "offsetX": {
              "description": "The horizontal offset that shadow has from the element it is applied to",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "offsetY": {
              "description": "The vertical offset that shadow has from the element it is applied to",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "blur": {
              "description": "The blur radius that is applied to the shadow",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "spread": {
              "description": "The amount by which to expand or contract the shadow",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "inset": {
              "description": "Whether this shadow is inside the containing shape (inner shadow) rather than a drop shadow (default: false)",
              "oneOf": [
                {
                  "type": "boolean"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
                }
              ]
            }
          },
          "required": ["color", "offsetX", "offsetY", "blur", "spread"],
          "additionalProperties": false
        }
      }
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/gradient.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/gradient.json",
      "title": "Gradient Value",
      "description": "Value schema for gradient type tokens. Represents a color gradient.",
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "#/definitions/gradientStop"
          },
          {
            "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
          }
        ]
      },
      "minItems": 1,
      "definitions": {
        "gradientStop": {
          "title": "Gradient Stop",
          "type": "object",
          "properties": {
            "color": {
              "description": "The color value at the stop's position on the gradient",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/color.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "position": {
              "description": "The position of the stop along the gradient's axis (range [0, 1]). Values outside this range are clamped.",
              "oneOf": [
                {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            }
          },
          "required": ["color", "position"],
          "additionalProperties": false
        }
      }
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/typography.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/typography.json",
      "title": "Typography Value",
      "description": "Value schema for typography type tokens. Represents a typographic style.",
      "type": "object",
      "properties": {
        "fontFamily": {
          "description": "The typography's font",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "fontSize": {
          "description": "The size of the typography",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "fontWeight": {
          "description": "The weight of the typography",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "letterSpacing": {
          "description": "The horizontal spacing between characters",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "lineHeight": {
          "description": "The vertical spacing between lines of typography (interpreted as a multiplier of fontSize)",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/number.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        }
      },
      "required": [
        "fontFamily",
        "fontSize",
        "fontWeight",
        "letterSpacing",
        "lineHeight"
      ],
      "additionalProperties": false
    },
    "https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json",
      "title": "Group or Token",
      "description": "A group or a token in the DTCG specification. A token is identified by the presence of a $value property, while a group is any object without a $value property.",
      "oneOf": [
        {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/group.json"
        },
        {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/token.json"
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/group.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/group.json",
      "title": "Group",
      "description": "A group in the DTCG specification",
      "type": "object",
      "properties": {
        "$type": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/tokenType.json"
        },
        "$description": {
          "type": "string",
          "description": "A plain text description of the group"
        },
        "$extensions": {
          "type": "object",
          "description": "Vendor-specific extensions"
        },
        "$extends": {
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReference"
            }
          ],
          "description": "Reference to another group to inherit tokens and properties from"
        },
        "$deprecated": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ],
          "description": "Whether this group is deprecated"
        },
        "$root": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/token.json"
        }
      },
      "patternProperties": {
        "^[^${}.][^{}.]*$": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json"
        }
      },
      "additionalProperties": false
    },
    "https://www.designtokens.org/schemas/2025.10/resolver/modifier.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/resolver/modifier.json",
      "title": "Modifier",
      "description": "A modifier is similar to a set, but allows for conditional inclusion via the contexts map. A modifier MUST declare a contexts map of string values to arrays of token sources.",
      "type": "object",
      "required": ["contexts"],
      "additionalProperties": false,
      "properties": {
        "description": {
          "title": "Description",
          "type": "string",
          "description": "A human-readable description of the purpose of the modifier."
        },
        "contexts": {
          "title": "Contexts",
          "type": "object",
          "description": "A map of context names to arrays of token sources. Each context represents a possible variant (e.g., 'light' vs 'dark' for theme, 'small' vs 'large' for size).",
          "minProperties": 2,
          "patternProperties": {
            "^.+$": {
              "$ref": "#/definitions/tokenSourcesForModifiers"
            }
          },
          "additionalProperties": false
        },
        "default": {
          "title": "Default Context",
          "type": "string",
          "description": "An optional default value that MUST match one of the keys in contexts. If provided, tools will use this context when no input is provided for this modifier.",
          "$comment": "JSON Schema cannot validate that this value matches a key in 'contexts'. This validation must be performed at runtime by the implementation."
        },
        "$extensions": {
          "title": "Extensions",
          "type": "object",
          "description": "Vendor-specific extensions. Keys are vendor-specific namespaces."
        }
      },
      "definitions": {
        "referenceObjectForModifiers": {
          "title": "Reference Object (For Modifiers)",
          "type": "object",
          "required": ["$ref"],
          "properties": {
            "$ref": {
              "title": "JSON Reference",
              "type": "string",
              "format": "uri-reference",
              "description": "A JSON Pointer (RFC 6901) or URI reference. Modifiers MUST NOT reference other modifiers (#/modifiers/...) or resolutionOrder items (#/resolutionOrder/...).",
              "not": {
                "anyOf": [
                  {
                    "pattern": "^#/modifiers/",
                    "$comment": "Modifiers cannot reference other modifiers"
                  },
                  {
                    "pattern": "^#/resolutionOrder/",
                    "$comment": "Nothing can reference resolutionOrder items"
                  }
                ]
              }
            }
          },
          "description": "A reference object for use within modifier contexts. Cannot point to other modifiers or resolutionOrder items."
        },
        "tokenSourcesForModifiers": {
          "title": "Token Sources (For Modifiers)",
          "type": "array",
          "description": "An array of token sources for modifier contexts - can reference sets but not other modifiers or resolutionOrder items.",
          "items": {
            "oneOf": [
              {
                "$ref": "#/definitions/referenceObjectForModifiers"
              },
              {
                "$ref": "https://www.designtokens.org/schemas/2025.10/format.json"
              }
            ]
          }
        }
      }
    },
    "https://www.designtokens.org/schemas/2025.10/resolver/resolutionOrder.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/resolver/resolutionOrder.json",
      "title": "Resolution Order",
      "description": "An ordered array of sets and modifiers that determines the final resolution of tokens. Order is significant - tokens later in the array override earlier ones in case of conflict.",
      "type": "array",
      "minItems": 1,
      "items": {
        "oneOf": [
          {
            "title": "Reference Object (For Resolution Order)",
            "type": "object",
            "required": ["$ref"],
            "properties": {
              "$ref": {
                "title": "JSON Reference",
                "type": "string",
                "format": "uri-reference",
                "description": "A JSON Pointer (RFC 6901) or URI reference. Must point to a set (#/sets/...) or modifier (#/modifiers/...), never to resolutionOrder items (#/resolutionOrder/...).",
                "not": {
                  "pattern": "^#/resolutionOrder/",
                  "$comment": "ResolutionOrder cannot reference items within itself"
                }
              }
            },
            "description": "A reference object for use within resolutionOrder. Can point to sets or modifiers but not other resolutionOrder items."
          },
          {
            "title": "Inline Set",
            "description": "A set defined inline in the resolutionOrder array. Must include 'name' and 'type' properties.",
            "type": "object",
            "required": ["sources", "name", "type"],
            "properties": {
              "description": {
                "title": "Description",
                "type": "string",
                "description": "A human-readable description of the purpose of the set."
              },
              "sources": {
                "$ref": "https://www.designtokens.org/schemas/2025.10/resolver/set.json#/definitions/tokenSourcesForSets"
              },
              "$extensions": {
                "title": "Extensions",
                "type": "object",
                "description": "Vendor-specific extensions. Keys are vendor-specific namespaces."
              },
              "name": {
                "title": "Name",
                "type": "string",
                "description": "A unique name that MUST NOT conflict with any other name in resolutionOrder.",
                "$comment": "Uniqueness must be validated at runtime as JSON Schema cannot validate uniqueness across array items."
              },
              "type": {
                "title": "Type",
                "type": "string",
                "const": "set",
                "description": "MUST be 'set' for inline set definitions."
              }
            },
            "additionalProperties": false
          },
          {
            "title": "Inline Modifier",
            "description": "A modifier defined inline in the resolutionOrder array. Must include 'name' and 'type' properties.",
            "type": "object",
            "required": ["contexts", "name", "type"],
            "properties": {
              "description": {
                "title": "Description",
                "type": "string",
                "description": "A human-readable description of the purpose of the modifier."
              },
              "contexts": {
                "title": "Contexts",
                "type": "object",
                "description": "A map of context names to arrays of token sources. Each context represents a possible variant (e.g., 'light' vs 'dark' for theme, 'small' vs 'large' for size).",
                "minProperties": 2,
                "patternProperties": {
                  "^.+$": {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/resolver/modifier.json#/definitions/tokenSourcesForModifiers"
                  }
                },
                "additionalProperties": false
              },
              "default": {
                "title": "Default Context",
                "type": "string",
                "description": "An optional default value that MUST match one of the keys in contexts. If provided, tools will use this context when no input is provided for this modifier.",
                "$comment": "JSON Schema cannot validate that this value matches a key in 'contexts'. This validation must be performed at runtime by the implementation."
              },
              "$extensions": {
                "title": "Extensions",
                "type": "object",
                "description": "Vendor-specific extensions. Keys are vendor-specific namespaces."
              },
              "name": {
                "title": "Name",
                "type": "string",
                "description": "A unique name that MUST NOT conflict with any other name in resolutionOrder.",
                "$comment": "Uniqueness must be validated at runtime as JSON Schema cannot validate uniqueness across array items."
              },
              "type": {
                "title": "Type",
                "type": "string",
                "const": "modifier",
                "description": "MUST be 'modifier' for inline modifier definitions."
              }
            },
            "additionalProperties": false
          }
        ]
      }
    }
  }
}
