Глава 10: Спецификация Определения Schema

10.1 Обзор

Протокол предоставляет машиночитаемые спецификации через три формата файлов определения Schema, поддерживая автоматизированную валидацию и генерацию кода.

10.2 Результаты

ФайлФорматНазначение
schema.jsonJSON Schema Draft 2020-12Автоматизированная валидация, генерация кода
schema.tsОпределения типов TypeScriptПроверка типов при разработке, поддержка IDE
schema.mdxИнтерактивная документация MDXЧитаемая документация, интерактивные примеры

10.3 Спецификация JSON Schema

Базовая Структура

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://skill-sharing.org/schema/draft/schema.json",
  "title": "Skill Sharing Protocol Schema",
  "description": "Полное определение Schema для Skill Sharing Protocol",
  "$defs": {
    "CapabilityType": { ... },
    "AccessPolicy": { ... },
    "AuthType": { ... },
    "ParameterDefinition": { ... },
    "SkillDescriptor": { ... },
    "SkillIndex": { ... },
    "InvocationRequest": { ... },
    "InvocationResponse": { ... }
  }
}

Правила Соответствия TypeScript → JSON Schema

TypeScriptJSON Schema
string{ "type": "string" }
number{ "type": "number" }
boolean{ "type": "boolean" }
Union тип "a" | "b"{ "enum": ["a", "b"] }
interface{ "type": "object", "properties": {...} }
Необязательное поле field?Не в массиве required
Record<string, T>{ "type": "object", "additionalProperties": {...} }
unknown{} (без ограничений)

10.4 Определения Типов TypeScript

Файл определения типов (schema.ts) поддерживает семантическую согласованность с JSON Schema: все перечислимые типы, все интерфейсы, полный экспорт типов, описания в JSDoc-комментариях.

10.5 Интерактивная Документация MDX

Документ MDX (schema.mdx) включает: обзор Schema, таблицы описания полей, примеры валидных и невалидных Descriptors, сравнительную таблицу JSON Schema и типов TypeScript.

10.6 Версионированная Структура Директорий

schema/
├── draft/                    # Черновая версия в разработке
│   ├── schema.json
│   ├── schema.ts
│   └── schema.mdx
└── 2025-10-25/              # Опубликованная стабильная версия
    ├── schema.json
    ├── schema.ts
    └── schema.mdx

10.7 Schema Validator

Schema Validator выполняет валидацию соответствия на основе schema.json: использует библиотеку ajv, проверяет структурную целостность, проверяет области значений перечислимых полей, возвращает детальную информацию об ошибках, поддерживает парсинг и сериализацию.