{
"id": "org.designtxt.resolver",
"defs": {
"main": {
"key": "any",
"type": "record",
"record": {
"type": "object",
"required": [
"version",
"resolutionOrder"
],
"properties": {
"defs": {
"type": "object",
"description": "JSON Schema $defs for bundling inline token references. Maps to the DTCG $defs field. Tools may ignore this key."
},
"name": {
"type": "string",
"maxLength": 256,
"description": "Short human-readable name for this resolver document."
},
"sets": {
"type": "object",
"properties": {},
"description": "Named sets of design token sources. Keys are set names; values are set definitions with a 'sources' array and optional 'description' and 'extensions'."
},
"schema": {
"type": "string",
"maxLength": 2048,
"description": "Optional URL of a JSON Schema for this resolver document. Maps to the DTCG $schema field."
},
"version": {
"type": "string",
"const": "2025.10",
"maxLength": 16,
"description": "Resolver format version. Must be '2025.10' per DTCG Resolver spec."
},
"modifiers": {
"type": "object",
"properties": {},
"description": "Named modifiers for contextual token overrides. Keys are modifier names; values have a 'contexts' map (string to token sources array), optional 'description', optional 'default', and optional 'extensions'."
},
"extensions": {
"type": "object",
"description": "Vendor-specific extension data. Maps to the DTCG $extensions field. Keys should use reverse-domain notation."
},
"description": {
"type": "string",
"maxLength": 4096,
"description": "Human-readable description of this resolver's purpose."
},
"resolutionOrder": {
"type": "array",
"items": {
"type": "unknown"
},
"description": "Ordered list of sets and modifiers that determines the resolution cascade. Later items override earlier ones on conflict. Each entry is a reference object ({$ref: string}) or an inline definition ({name, type: 'set'|'modifier', ...})."
}
},
"description": "Root of a resolver document."
},
"description": "A resolver document that declares token sets and contextual modifiers, with a resolution order that determines how they compose. Given an input (e.g. {theme: 'dark', size: 'compact'}), a resolver produces a flat, contextually-appropriate token set."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1,
"description": "A resolver document for multi-context design tokens (theming, breakpoints, accessibility modes). Follows the DTCG Resolver 2025.10 specification. Describes how token sets and contextual modifiers combine to produce resolved token values for a given input."
}