원문 캡처 · sourcemeta.com
원문 캡처 · sourcemeta.com

Sourcemeta는 서로 다른 버전의 JSON Schema를 사용하는 도구에 맞춰 스키마를 변환하는 자동 업그레이드 기능을 제공한다. 개발자는 JSON Schema CLI로 필요한 버전을 직접 변환하거나 Sourcemeta One에 스키마 하나를 저장하고 각 소비자가 원하는 버전을 요청할 수 있다.

JSON Schema는 Draft 3부터 2020-12까지 여러 방언이 있으며, 버전이 바뀌면서 키워드 이름과 의미, 지원 범위도 달라졌다. OpenAPI는 버전별로 JSON Schema 방언을 제한하거나 자체 키워드를 더한다. MCP는 내장 스키마의 방언을 명시하지 않아 구현체마다 Draft 7과 2020-12를 사용하다가, 2025년 10월 SEP-1613에서 2020-12를 기본 방언으로 정했다.

이 차이는 도구가 스키마를 거부하거나, 알 수 없는 키워드를 오류 없이 무시해 의미를 잃는 문제로 이어진다. 원문은 GitHub 코드 검색, json-schema.org의 메타 스키마 요청량, SchemaStore 카탈로그 등을 근거로 Draft 4와 Draft 7의 사용이 여전히 많고, 2020-12가 신규 AI·데이터 제품을 중심으로 확산하고 있다고 설명한다. 다만 각 자료는 일부 사용자층만 보여주며 완전하거나 대표성 있는 집계는 아니라고 단서를 달았다.

Sourcemeta의 변환 기능은 JSON Schema CLI와 Sourcemeta One에서 쓸 수 있다. CLI에서는 jsonschema upgrade 명령에 대상 방언을 지정해 변환한다. Sourcemeta One에서는 스키마 URL에 as 매개변수를 붙여 소비자가 원하는 방언을 요청한다. 변환 결과에는 내부 참조도 함께 반영돼, 참조 대상이 이전 방언으로 남지 않도록 구성한다.

현재 자동 업그레이드는 공식 방언을 지원하지만 사용자 정의 메타 스키마는 지원하지 않는다. 변환은 현재 한 방향으로만 가능하며, 더 새로운 방언의 표현을 오래된 방언으로 옮기는 다운그레이드는 제공하지 않는다. Swagger 2.0도 지원 대상이 아니며, 수요가 충분하면 추가를 검토할 수 있다고 Sourcemeta는 밝혔다. Sourcemeta는 사용자 정의 메타 스키마를 위한 힌트도 살펴보고 있다.