{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "design-system-platform-record",
  "title": "Design System Platform Record",
  "description": "One record per design system or component library in the State of AI in Design Systems — July 2026 study. Every affordance, technique and capability carries the source URL of the file it was quoted from.",
  "type": "object",
  "required": [
    "id",
    "name",
    "logo",
    "summary",
    "adoption_by_design_systems",
    "capabilities",
    "sources"
  ],
  "additionalProperties": false,
  "properties": {
    "id": {
      "type": "string",
      "description": "kebab-case slug, e.g. 'zeroheight'"
    },
    "name": {
      "type": "string"
    },
    "logo": {
      "type": "object",
      "description": "Where this platform's mark comes from. The build resolves it to path geometry and stops if it cannot, so a platform whose logo does not resolve never ships. Unlike the rest of this file, it records a presentation choice rather than a sourced claim.",
      "required": [
        "source",
        "value"
      ],
      "additionalProperties": false,
      "properties": {
        "source": {
          "enum": [
            "simple-icons",
            "vendored"
          ],
          "description": "Which of the two places the build looks. simple-icons reads the package of that name; vendored reads assets/logos/, where the three platforms that package does not carry are kept."
        },
        "value": {
          "type": "string",
          "minLength": 1,
          "description": "The Simple Icons slug, or the file name under assets/logos/ including its extension."
        }
      }
    },
    "summary": {
      "type": "string",
      "description": "What the platform is, and what it does about AI consumption."
    },
    "adoption_by_design_systems": {
      "type": "string",
      "description": "Prose on who in the study actually uses it. Deliberately not a count: adoption is uneven and partially undocumented, and a number would imply a precision the sources do not support."
    },
    "capabilities": {
      "type": "array",
      "description": "Concrete AI-facing capabilities this platform ships. The platform equivalent of a system's affordances, but without `type` and `official`: a platform's capabilities are all first-party by definition, and they do not sort into the affordance taxonomy.",
      "items": {
        "type": "object",
        "required": [
          "title",
          "description",
          "audience",
          "url"
        ],
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "audience": {
            "enum": [
              "consumers",
              "builders",
              "both"
            ],
            "description": "Same vocabulary as a system affordance. consumers = people/agents building UIs with the platform; builders = the team maintaining a design system inside it"
          },
          "url": {
            "type": "string",
            "pattern": "^https?://",
            "description": "The page this capability was read from. Required: this is the basis on which the claim is checkable."
          },
          "snippet": {
            "type": "object",
            "required": [
              "language",
              "content",
              "source_url"
            ],
            "additionalProperties": false,
            "properties": {
              "language": {
                "enum": [
                  "json",
                  "markdown",
                  "shell",
                  "text",
                  "ts",
                  "tsx"
                ],
                "description": "Fence label. Extend the list rather than passing an unlabeled string, so the site can highlight consistently."
              },
              "content": {
                "type": "string",
                "description": "verbatim excerpt, <= 40 lines / 1500 chars"
              },
              "source_url": {
                "type": "string",
                "pattern": "^https?://"
              }
            }
          }
        }
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^https?://"
      },
      "description": "Every page consulted for this record, including ones no single capability cites."
    }
  }
}
