## 1. Project Overview & Quickstart (pubkey/ionic)

# ionic

Open-source repository pubkey/ionic

### Repository Details
- **Repository:** [pubkey/ionic](https://github.com/pubkey/ionic)
- **Primary Language:** Code

*Note: High-volume repository documentation is actively indexed and synchronized by YakaAI.*

## 2. Official Technical Reference & Guides (pubkey/website)

## File: README.md

[](https://json-schema.org)



    <a href="https://github.com/json-schema-org/website/graphs/contributors" alt="JSON Schema GitHub website contributors">
      
    </a>
    <a href="https://github.com/json-schema-org/website/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22" alt="Good First JSON Schema issue">
      
    </a>
    <a href="https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md" alt="Contributor Covenant">
      
    </a> 
    <a href="https://www.repostatus.org/#active" alt="Repo status">
      
    </a> 
    <a href="https://json-schema.org/slack" alt="JSON Schema Slack">
      
    </a>   


# 👋 Welcome to the JSON Schema website
This repository contains the source code of the JSON Schema website:

* Powered by Next.js,
* Uses the Tailwind CSS framework,
* Built and deployed with Netlify.

## Setting up the Project

Please refer to [INSTALLATION.md](./INSTALLATION.md) for instructions on how to set up the project for local development.

## Project structure

This repository has the following structure:



```text
  ├── .github                     # Definitions of GitHub workflows, pull request, and issue templates
  ├── components                  # Various generic components such as "Button", "Figure", etc.
  ├── data                        # JSON Schema implementations
  ├── styles                      # Various CSS files
  ├── lib                         # Various JS code for preparing static data to render on pages
  ├── pages                       # Website's pages source, including raw markdown files and React page templates
  │    ├── overview               # JSON Schema initiative docs
  │    ├── blog                   # Blog posts
  │    ├── learn                  # JSON Schema docs
  │    └── implementations        # Various pages to describe tools
  ├── public                      # Data for site metadata and static assets such as images
  ├── next.config.js              # Next.js configuration file

```

## Contribute
Here are some areas where you can contribute to the website:

- Blog posts
- Case studies
- Design
- Documentation improvements
- Website enhancements
- Add a new JSON Schema implementation
- JSON Schema Landscape

To identify good first issues to work on, join our Slack workspace and visit the `#contribute` channel. This channel is specifically designed for onboarding and supporting new contributors.

You should also check out our [Contributing guidelines](./CONTRIBUTING.md).

### Contributors

Thanks to these wonderful people who contributed to this website:

<a href="https://github.com/json-schema-org/website/graphs/contributors">
  
</a>

<sub>Made with [contributors-img](https://contrib.rocks).</sub>

### Sponsors

[](https://opencollective.com/json-schema/sponsors.svg?avatarHeight=90)

### Backers

**Thank you to all our backers!**

[](https://opencollective.com/json-schema/backers.svg?avatarHeight=90)

## Connect with the JSON Schema Community


  [](https://json-schema.org/slack)
  [](https://twitter.com/jsonschema)
  [](https://www.linkedin.com/company/jsonschema)
  [](https://www.youtube.com/@JSONSchemaOrgOfficial)


## Inspired by
This document was inspired by [AsyncAPI website README.md](https://github.com/asyncapi/website/blob/master/README.md).

## License
The contents of this repository are licensed under either the BSD 3-clause license *or* the Academic Free License v3.0. See [LICENSE](./LICENSE).

---

## File: CONTRIBUTING-docs.md

# Docs Contributing Guide

This guide describes the workflow to contribute to the JSON Schema technical documentation. If you would like to contribute to other aspects of the JSON Schema website, like writing blog articles or publishing a case study, please read the website's [Contributing Guide](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING.md) for more details. 

## Welcome
Thank you for helping us improve our documentation.

This guide is intended for use by documentation contributors and will help you get started with the basics of our working processes.

## Before you start
To contribute to the JSON Schema documentation you will need to complete the following steps:

1. [Create a GitHub account](https://docs.github.com/en/get-started/start-your-journey/creating-an-account-on-github), if you don't have one already.
2. Read our [Code of Conduct](https://json-schema.org/overview/code-of-conduct).
3. [Install the JSON Schema website](https://github.com/json-schema-org/website/blob/main/INSTALLATION.md) on your computer.
4. Read our [style guide](https://json-schema.org/md-style-guide). 

## Community engagement
To stay updated with news about the JSON Schema project and its documentation, engage with our team, ask questions, and discuss ideas, please join our [Slack workspace](https://json-schema.org/slack). We particularly recommend the following channels:

- `#documentation`: Discussions related to the JSON Schema documentation.

- `#website`: Discussions related to our website.

- `#introductions`: Self-introductions and connecting with other members of the community.

- `#community-announcements`: Events and updates related to the JSON Schema project.

- `#anouncements`: Important announcement from the JSON Schema organization.

- `#stack-overflow`: Stack overflow questions tagged with JSON Schema.
  
## Best practices

This is a list of best practices the JSON Schema project strives for and resources we recommend for additional information:

1. File and branching naming conventions: We use dashes instead of spaces, and lowercase letters to name .md files and branches. For example: `implementers-guide.md`, `web-feat-diataxis`.
2. Commit messages: To learn how to write good commit messages, see [Step-by-step guide on how to write good commit messages on Git](https://www.freecodecamp.org/news/how-to-write-better-git-commit-messages/).

## Contribution workflow 

Here we describe three ways you can help us improve our documentation:


1. Review pull requests
2. Work on an existing issue 
3. Propose changes 

### Review pull requests

Are you new to the JSON Schema community? Help us review pull requests. Reviewing pull requests helps you familiarize yourself with our workflows, learn how others contribute, and understand the project's needs and goals. It's a great way to start contributing and you'll be better prepared to make your own contributions.  

### Work on an existing issue

To work on an existing issue, go to the [JSON Schema docs board](https://github.com/orgs/json-schema-org/projects/16) and check all the open issues.  

If the issue you select has no assignees, you can claim the issue by assigning it to yourself and tag @json-schema-org/docs-team in the comments to let us know you'll be working on it. 

If the issue you select has already an assignee, write a comment expressing your interest in collaborating with them. The JSON Schema respects the order in which people claim issues, therefore, you will have to check if the assignee is accepting collaborations.

After you have been assigned to an issue, fork the [json-schema-org/website](https://github.com/json-schema-org/website) repository and create a new branch from `main` to work on the changes. 

### Propose changes

To propose modifications to our documentation that do not have an issue in the [documentation board](https://github.com/orgs/json-schema-org/projects/16), you can [create a GitHub issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-an-issue#creating-an-issue-from-a-repository) and use the *Documentation* template to describe the changes. After that, you can decide whether you want to work on the changes yourself or let someone else claim the issue. If you decide to work on the issue, assign it to yourself and commit the changes to a new branch. 

## Add metadata to newly created markdown files
Metadata helps organize content and maintain consistency across all pages in the documentation. It also provides key information about the file, such as its title, author, and the last updated date.

When contributing to the documentation, it is essential to include metadata in every new markdown file. Metadata is critical for successfully building and rendering the file locally. Without it, the file may fail to render correctly or cause errors in the documentation system.

### Example of metadata in a new markdown file
Every new `.md` file should start with a YAML front matter block. Here's an example:
---
    title: "Your Page Title"
    section: "docs"  # Can be used to categorize the content
    date: "YYYY-MM-DD"  # Optional: Date when the page was created or last updated
    author: "Your Name"  # Optional: Your name if you're the author
    tags: ["tag1", "tag2"]  # Optional: Tags to categorize the page
---
To add the front matter metadata, copy and paste the example above at the top of your .md file and replace the details with the information of your document.

## Create a Pull Request

To submit your work to review by the community, open a draft pull request to the `main` upstream branch, and add the issue your pull request solves. Add @json-schema-org/docs-team as a reviewer of your pull request, and let us know in the #documentation Slack channel your pull request is ready for review. 

The reviewers might ask for additional changes. When they approve your pull request, you can merge your changes into `main` and your contribution to the project will be complete!



We created this guide based on templates from [The Good Docs Project](https://www.thegooddocsproject.dev/).

---

## File: CONTRIBUTING.md

# Contributing to JSON Schema Website

First off, thanks for taking the time to contribute! 🫶

All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it much easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉

If you don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation:
- Star the project on Github
- Post on X or Linkedin about JSON Schema `#jsonschema

## Table of Contents

- 🌱 [Code of Conduct](#-code-of-conduct)
- 💬 [I Have a Question](#-i-have-a-question)
- 🍻 [I Want To Contribute](#-i-want-to-contribute)
  - 🐞 [Reporting Bugs](#-reporting-bugs)
  - 💡 [Issues and feature requests](#-issues-and-feature-requests)
  - 🛠️ [Add a new implementation](#%EF%B8%8F-add-a-new-implementation)
  - ✍️ [Publish a blog post](#%EF%B8%8F-publish-a-blog-post)
  - 📈 [Publish a case study](#-publish-a-case-study)
  - 📋 [Improving the Documentation](#-improving-the-documentation)
  - 🌐 [Improving the website](#-improving-the-website)
  - 🎨 [Improving the Design](#-improving-the-design)
  - 🚀 [Contributing to CI/CD Pipeline](#-contributing-to-cicd-pipeline)
  - 🧪 [Contributing to Testing](#-contributing-to-testing)
- ⌨️ [Pull requests](#%EF%B8%8F-pull-requests)
- 🏛 [License](#-license)


## 🌱 Code of Conduct

Before making your first contribution, please ensure you are familiar with our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md).

## 💬 I have a question

If you need clarification after reading this document, we encourage you to join the `#contribute` channel in our [Slack workspace](https://json-schema.org/slack).

## 🍻 I want to contribute

### 🐞 Reporting bugs

Please use our issues templates that provide hints on what information we need to help you.

### 💡 Issues and feature requests

[Open an issue](https://github.com/json-schema-org/website/issues/new) **only** to report a bug or a feature. Don't open issues for questions or support, instead join our [Slack workspace](https://www.json-schema.org/slack) and ask there. Remember to follow our [Code of Conduct](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md) while interacting with community members! It's more likely you'll get help, and much faster!

### 🛠️ Add a new Implementation

To add a new implementation, please open a PR, adding the details of your implementation to `\pages\implementations\main.md` file. We also invite you to join the discussion in `#implementers` channel in our  [Slack workspace](https://json-schema.org/slack).

### ✍️ Publish a blog post

Before publishing your first blog post, please ensure you are familiar with our [blog guidelines](https://github.com/json-schema-org/community/blob/main/docs/blog-guidelines.md).

To publish a blog post, please open a PR, adding your post in Markdown format into the `\pages\blog\posts` folder using any existing posts as reference e.g.: [json-schema-in-5-minutes.md](https://github.com/json-schema-org/website/blob/main/pages/blog/posts/json-schema-in-5-minutes.md?plain=1). Remember to add all the images into the `\public\img` folder.

### 📈 Publish a Case Study

To publish a case study, we encourage you to join `#adopters` channel in our [Slack workspace](https://json-schema.org/slack) and introduce your use case.

### 📋 Improving the Documentation

Want to help us improve the JSON Schema documentation? Check out our [docs Contributing guide](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING-docs.md) for docs and Style guide. These documents will give you the basics of our processes to get you started and text-formatting guidelines to create consistent documentation for JSON Schema. 

### 🌐 Improving the Website

If you would like to join the efforts to improve the JSON Schema Website, we encourage you to check our [website contribution board](https://github.com/orgs/json-schema-org/projects/11) to get a sense of the pending issues and bugs and who is doing what. We also invite you to join the discussion in `#website` channel in our  [Slack workspace](https://json-schema.org/slack).

### 🎨 Improving the Design

If you would like to contribute with designs, we encourage you to join `#design` channel in our [Slack workspace](https://json-schema.org/slack) and read the [contributing guidelines](https://github.com/json-schema-org/brand/blob/master/CONTRIBUTING.md) in the [Brand](https://github.com/json-schema-org/brand) repository.

### 🚀 Contributing to CI/CD Pipeline

If you would like to contribute to our CI/CD pipeline, we encourage you to review our current setup in the [workflows README](https://github.com/json-schema-org/website/blob/main/.github/workflows/README.md).

### 🧪 Contributing to Testing

We value contributions to our testing efforts. Here are ways you can help improve our test coverage and quality:

1. **Writing Tests**: If you're adding new features or fixing bugs, please include relevant tests. We use Cypress for both end-to-end (E2E) and component testing.

   - For new components, add component tests in the `cypress/components` directory.
   - For new features or bug fixes affecting user interactions, add E2E tests in the `cypress/e2e` directory.

2. **Improving Existing Tests**: Review and enhance our existing test suite. Look for areas where test coverage could be improved or where tests could be made more robust.

3. **Test Documentation**: Help improve our testing documentation, making it easier for new contributors to understand and write tests.

4. **Running Tests**: Before submitting a pull request, ensure all tests pass by running:
   ```
   yarn cypress:run:all
   ```

5. **Reporting Test Issues**: If you find inconsistencies or problems with our tests, please open an issue describing the problem and how to reproduce it.

For more details on our testing setup and how to run tests, please refer to the Testing section in our [INSTALLATION.md](./INSTALLATION.md#testing) file.


### ⌨️ Pull requests

We welcome pull requests for editorial suggestions and resolving open issues.

If your pull request addresses a specific issue, please reference this issue in your pull request description using a [supported descriptor](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword). This helps automatically link and close the issue when the pull request is merged.

We strongly encourage linking every pull request to an existing issue. If no corresponding issue exists, please create one first. This allows the community to discuss the required changes. If you are addressing an existing issue, ensure the scope is clear and consider the following:

- If the issue is several years old, verify its relevance by asking in the comments.
- Ensure the discussion within the issue has led to a clear, actionable decision.

Generally, pull requests should be made to the `main` branch.

Most PRs, will be left open for a minimum of 14 days.  Minor fixes may be merged more quickly once approved by a project member.

### Markdown Style Guide

Contributors to our Docs or our Blog can have a look at the [custom markdown style guide](https://json-schema.org/md-style-guide) with a list of useful markdown tags providing tools to easily create cool content that provides a better user experience.

## Triage

Please check the [triage process](https://github.com/json-schema-org/.github/blob/main/TRIAGE.md) to learn how we review and label incoming issues . 

## Feedback

Feedback on this process can be made informally through our [Slack server](https://json-schema.org/slack) and formally using our [Community Discussions](https://github.com/json-schema-org/community/discussions).

## References 

This document was adapted from [https://contributing.md](https://contributing.md/)!

---

## File: INSTALLATION.md

# JSON Schema Website: Installation and Development Guide

This guide provides step-by-step instructions for installing the JSON Schema Website on your local machine. Follow each section in order without skipping any steps.

## Table of Contents

1. [Setting Up the Project](#setting-up-project)
   - [Requirements](#requirements)
   - [Cloning the Repository](#cloning-the-repository)
   - [Setting Up Environment Variables](#setting-up-environment-variables)
2. [Corepack Configuration](#corepack-configuration)
   - [What is Corepack?](#what-is-corepack)
   - [Installing Corepack](#installing-corepack)
   - [Using Corepack with This Project](#using-corepack-with-this-project)
   - [Updating Yarn Version](#updating-yarn-version)
   - [Troubleshooting](#troubleshooting)
3. [Post-Configuration Steps](#post-configuration-steps)
   - [Installing Dependencies](#installing-dependencies)
   - [Running the Development Server](#running-the-development-server)
   - [Building Static Files](#building-static-files)
4. [Testing](#testing)
   - [Running Tests](#running-tests)
   - [Test Coverage](#test-coverage)
   - [Writing Tests](#writing-tests)
5. [Code Quality](#code-quality)
   - [Formatting](#formatting)
   - [Linting](#linting)
   - [Husky for Git Hooks](#husky-for-git-hooks)
6. [Run locally using Docker](#docker-deployment)
   - [Prerequisites](#prerequisites)
   - [Steps](#steps)


## Setting up Project

## Configuration

### Requirements
Use the following tools to set up the project:

Node.js v20.9.0+

### Cloning the repository
This project uses git submodules, so you will need to run the following commands to fully clone the repo.
```
git submodule init
git submodule update
```

### Setting Up Environment Variables

This step is optional. Environment variables are not required to run the website on your local development server.

1. Create a new `.env` file by copying the contents of the `.env.example` into `.env` file. Use this command:
```
cp .env.example .env
```
2. Open .env and fill in your actual values for each variable.

3. Save the file.

4. Ensure .env is in your .gitignore.

### Corepack Configuration

This project uses modern Yarn (yarn@4.4.0), which requires Corepack for proper setup and management of package managers. Corepack is a tool that comes with Node.js 14.19.0 and later, allowing for consistent package manager versions across your project.

#### What is Corepack?

Corepack is an experimental tool to help with managing versions of your package managers. It exposes binary proxies for each supported package manager that, when called, will identify whatever package manager is configured for the current project, download it if needed, and finally run it.


#### Installing Corepack

If you're using Node.js version 14.19.0 or later, Corepack is included but might need to be enabled. For Node.js 16.10 or later, Corepack is available by default but might still need to be enabled.

To enable Corepack, run:

```bash
corepack enable
```

If you're using an older version of Node.js or if the above command doesn't work, you can install Corepack globally using npm:

```bash
npm install -g corepack
```

#### Using Corepack with This Project

Once Corepack is enabled or installed, it will automatically use the correct version of Yarn specified in the project's `package.json` file. You don't need to manually install Yarn.

To use Yarn commands, simply run them as usual:

```bash
yarn install
yarn run build
yarn run dev
```

Corepack will ensure that the correct version of Yarn is used for these commands.

#### Updating Yarn Version

If you need to update the Yarn version used in the project:

1. Update the `packageManager` field in `package.json`:
   ```json
   {
     "packageManager": "yarn@x.y.z"
   }
   ```
2. Run `yarn set version x.y.z` to update the local Yarn version.

#### Troubleshooting

If you encounter any issues with Yarn commands, try running:

```bash
corepack prepare
```

This will ensure that the correct version of Yarn is downloaded and prepared for use.

For more information about Corepack, refer to the [official Node.js documentation](https://nodejs.org/api/corepack.html).

## Post-Configuration Steps

### Installing Dependencies

Install dependencies
```
yarn
```

### Running the Development Server

Run the development server on http://localhost:3000
```
yarn dev
```

### Building Static Files

Build static files on `/out` folder
```
yarn build
```
## Testing

We use Cypress for both end-to-end (E2E) testing and component testing. This document will guide you through the process of running tests and generating coverage reports.

### Running Tests


#### Opening Cypress Test Runner

To open the Cypress Test Runner, which allows you to run tests interactively, use:

```
yarn cypress:open
```

This command will open a GUI where you can select and run specific tests.

#### Running All Tests Headlessly

To run all tests in headless mode (useful for CI/CD pipelines), use:

```
yarn cypress:run:all
```

### Test Coverage

We use NYC (Istanbul) for code coverage reporting. Here's how to generate coverage reports:

#### E2E Test Coverage

To run E2E tests with coverage:

```
yarn test:coverage:e2e
```

#### Component Test Coverage

To run component tests with coverage:

```
yarn test:coverage:component
```

#### Full Test Coverage

To run all tests and generate a combined coverage report:

```
yarn test:coverage:all
```

This command will:
1. Run E2E tests with coverage
2. Run component tests with coverage
3. Merge the coverage results
4. Generate an HTML and text report

You can find the HTML report in the `coverage` directory after running this command.

### Writing Tests

When contributing new features or fixing bugs, please consider adding or updating tests:

- For new components, add component tests in the relevant `cypress/components` directory.
- For new features or bug fixes affecting user interactions, add E2E tests in the `cypress/e2e` directory.

## Code Quality

We use ESLint for linting and Prettier for code formatting. This section will guide you through the process of checking and fixing code quality issues.

### Formatting

you can check code formatting using the following command:

```
yarn run format:check
```

you can format the code using the following command:

```
yarn run format:fix
```

### Linting

you can check linting issues using the following command:

```
yarn run lint
```

you can fix linting issues using the following command:

```
yarn run lint:fix
```

### Husky for git hooks

This project uses Husky to run checks for the formatting, linting, typecheck and build commands before committing the code.

#### pre-commit hook
pre-commit hook will run the following commands:

```
yarn run lint
yarn run typecheck
yarn run build
```

If you don't want these pre-commit checks running on each commit, you can manually opt out of it using the `--no-verify` flag with your commit message as shown:-
```
git commit -m "commit message" --no-verify
```

### Run locally using Docker

If you are a Docker lover, you have the option to use it following these instructions.

#### Prerequisites:

- [Install Docker](https://docs.docker.com/get-docker/)

After cloning repository to your local, perform the following steps from the root of the repository.

#### Steps:
1. Build the Docker image:
    ```bash
      make install
    ```

2. Start the container:
    ```bash
      make run
    ```

Now you're running JSON Schema website in a development mode. Container is mapped with your local copy of the website. Whenever you make changes to the code, the website will refresh and changes visible in `http://localhost:3000`.

---

## File: package.json

{
  "name": "json-schema",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "dev-c": "rm -rf .next && rm -rf node_modules && yarn && yarn dev",
    "build": "next build",
    "postbuild": "next-sitemap --config next-sitemap.config.js",
    "start": "serve out",
    "export": "next export",
    "lint": "eslint . --ext .tsx --ext .ts --max-warnings 0",
    "lint:fix": "eslint . --ext .tsx --ext .ts --fix --max-warnings 0",
    "ts": "tsc --noEmit",
    "typecheck": "tsc --pretty --noEmit",
    "format:fix": "prettier --write \"**/*.{ts,tsx,json,scss,css}\"",
    "format:check": "prettier --check \"**/*.{ts,tsx,scss,css}\"",
    "prepare": "husky",
    "cypress:open": "cypress open",
    "cypress:run:all": "cypress run && cypress run --component",
    "test:coverage:e2e": "cypress run --env coverage=true",
    "test:coverage:component": "cypress run --component --env coverage=true",
    "test:coverage:all": "yarn test:coverage:e2e && yarn test:coverage:component && nyc merge .nyc_output coverage.json && nyc report --reporter=html --reporter=text"
  },
  "engines": {
    "node": "^20.0.0"
  },
  "dependencies": {
    "@docsearch/react": "3.8.0",
    "@types/jsonpath": "^0.2.4",
    "axios": "1.7.7",
    "babel-loader": "^9.2.1",
    "classnames": "^2.5.1",
    "feed": "^4.2.2",
    "file-saver": "^2.0.5",
    "fuse.js": "^7.0.0",
    "gray-matter": "^4.0.3",
    "js-yaml": "^4.1.0",
    "jsonpath": "^1.1.1",
    "jszip": "^3.10.1",
    "markdown-to-jsx": "^7.7.3",
    "moment": "2.30.1",
    "next": "14.2.14",
    "next-sitemap": "^4.2.3",
    "next-themes": "^0.3.0",
    "node-ical": "0.20.1",
    "react": "18.3.1",
    "react-dom": "18.3.1",
    "react-syntax-highlighter": "^15.6.1",
    "react-text-truncate": "^0.19.0",
    "reading-time": "^1.5.0",
    "slate": "^0.112.0",
    "slate-react": "^0.108.0",
    "slugify": "^1.6.5",
    "yarn": "1.22.22",
    "zero-fill": "^2.2.4",
    "zustand": "^5.0.0"
  },
  "devDependencies": {
    "@babel/core": "^7.26.0",
    "@babel/preset-env": "^7.26.0",
    "@cypress/code-coverage": "^3.13.6",
    "@next/eslint-plugin-next": "^14.0.1",
    "@svgr/webpack": "^8.1.0",
    "@types/babel__core": "^7",
    "@types/babel__preset-env": "^7",
    "@types/file-saver": "^2.0.7",
    "@types/js-yaml": "^4.0.5",
    "@types/node": "^22.4.2",
    "@types/react": "18.3.5",
    "@types/react-syntax-highlighter": "^15.5.13",
    "@types/react-text-truncate": "^0.19.0",
    "@typescript-eslint/eslint-plugin": "^6.21.0",
    "@typescript-eslint/parser": "^6.21.0",
    "autoprefixer": "^10.4.20",
    "babel-plugin-istanbul": "^7.0.0",
    "cypress": "^13.13.1",
    "eslint": "8.57.0",
    "eslint-config-next": "14.2.3",
    "eslint-config-prettier": "^9.1.0",
    "eslint-config-standard": "^17.1.0",
    "eslint-plugin-cypress": "^3.4.0",
    "eslint-plugin-import": "^2.29.0",
    "eslint-plugin-n": "^16.6.2",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-prettier": "^5.2.1",
    "eslint-plugin-promise": "^6.0.0",
    "eslint-plugin-react": "^7.35.0",
    "eslint-plugin-react-hooks": "^4.4.0",
    "husky": "^9.1.6",
    "nyc": "^17.1.0",
    "postcss": "^8.4.41",
    "prettier": "3.3.3",
    "tailwindcss": "^3.3.5",
    "typescript": "5.7.2",
    "webpack": "^5.94.0"
  },
  "babel": {
    "presets": [
      "next/babel"
    ],
    "plugins": [
      "istanbul"
    ]
  },
  "packageManager": "yarn@4.4.0+sha512.91d93b445d9284e7ed52931369bc89a663414e5582d00eea45c67ddc459a2582919eece27c412d6ffd1bd0793ff35399381cb229326b961798ce4f4cc60ddfdb"
}

---

## File: tsconfig.json

{
  "compilerOptions": {
    "target": "ES2018",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve",
    "incremental": true,
    "baseUrl": ".",
    "paths": {
      "react": ["./node_modules/@types/react"],
      "~/*": ["./*"],
      "@public/*": ["./public/*"]
    }
  },
  "include": ["next-env.d.ts", "svgr.d.ts", "**/*.ts", "**/*.tsx"],
  "exclude": ["node_modules"]
}

---

## File: .yarnrc.yml

nodeLinker: node-modules

---

## File: data/ambassadors-contributions.json

{
  "contents": [
    {
      "title": "Written content",
      "details": "Write guides, step-by-step tutorials, community documentation, JSON Schema blog posts, and beyond.",
      "icon": "/img/ambassadors/illustrations/content.png"
    },
    {
      "title": "Podcasts and Videos",
      "details": "Produce educational videos, podcasts or livestreams speaking about JSON Schema.",
      "icon": "/img/ambassadors/illustrations/video.png"
    },
    {
      "title": "Give talks",
      "details": "Speak at meetups and conferences; we'll help with slides, abstract submissions, and travel budget.",
      "icon": "/img/ambassadors/illustrations/speaker.png"
    },
    {
      "title": "JSON Schema Contributions",
      "details": "Collaborate with the JSON Schema community via diverse contributions and improvements.",
      "icon": "/img/ambassadors/illustrations/contributing.png"
    },
    {
      "title": "Ecosystem Impact",
      "details": "Promote JSON Schema adoption in other ecosystems.",
      "icon": "/img/ambassadors/illustrations/ecosystem.png"
    },
    {
      "title": "Gather Case Studies",
      "details": "Collaborate in the production of case-studies.",
      "icon": "/img/ambassadors/illustrations/case-studies.png"
    }
  ],
  "tokens": [
    {
      "emoji": "🗺️",
      "title": "Travel",
      "details": "Ambassadors are provided free entry to JSON conferences."
    },
    {
      "emoji": "🌟",
      "title": "Recognition",
      "details": "Ambassadors receive community-wide recognition."
    },
    {
      "emoji": "🎁",
      "title": "Special Swags",
      "details": "Community members recognize you by gifting you exclusive JSON Ambassador swag."
    },
    {
      "emoji": "🧰",
      "title": "Workshop Swags",
      "details": "Ambassadors are gifted swag from JSON conferences and workshops."
    }
  ]
}

---

## File: data/case-studies.json

[
  {
    "title": "How RxDB embraces JSON Schema to build its NoSQL Database",
    "summary": "RxDB embraces JSON Schema for flexible data modeling, type safety, and advanced features like compression, all in an offline-first database.",
    "logo": "/img/logos/rxdb-logo.svg",
    "links": {
      "lang": "URL1",
      "url": "/blog/posts/rxdb-case-study"
    }
  },
  {
    "title": "How JSON Schema Was an Obvious Choice at GitHub",
    "summary": "At GitHub's Docs Engineering team, while shipping releases to production 20 times per day or more, JSON Schema is critical in increasing confidence in changes to data, content and APIs.",
    "logo": "/img/logos/github-logo.svg",
    "links": {
      "lang": "URL1",
      "url": "/blog/posts/github-case-study"
    }
  },
  {
    "title": "How 6 River Systems saves time and boosts collaboration with JSON Schema",
    "summary": "Explore the powerful impact of JSON Schema on 6 River Systems' fulfillment operations. Discover how they enabled enhanced collaboration, time savings, and data quality assurance, propelling their successful scaling journey.",
    "logo": "/img/logos/6river-logo.svg",
    "links": {
      "lang": "URL1",
      "url": "/blog/posts/6-river-systems-case-study"
    }
  },
  {
    "title": "Transforming the technical recruiting industry with JSON Schema",
    "summary": "Learn how Manfred used JSON Schema to transform the technical recruiting industry.",
    "logo": "/img/logos/manfred-color.svg",
    "links": {
      "lang": "URL1",
      "url": "/blog/posts/manfred-case-study"
    }
  },
  {
    "title": "How Postman uses JSON Schema",
    "summary": "Learn how JSON Schema continues to be a crucial component of the Postman API Platform and the API ecosystem.",
    "logo": "/img/logos/sponsors/postman_logo-orange.svg",
    "links": {
      "lang": "URL1",
      "url": "/blog/posts/postman-case-study"
    }
  },
  {
    "title": "Using JSON Schema at Remote to scale forms and data validations",
    "summary": "Using JSON Schema at Remote was the first step to solving data validation and form generation problems across all levels at Remote.",
    "logo": "/img/logos/remote-logo.png",
    "links": {
      "lang": "URL1",
      "url": "/blog/posts/remote-case-study"
    }
  },
  {
    "title": "How Tyler Technologies reduced its client feedback loop with JSON Schema",
    "summary": "Using JSON Schema at Tyler Technologies meant showing added value to clients could take minutes rather than days or in some cases weeks.",
    "logo": "/img/logos/tyler-tech-logo.svg",
    "links": {
      "lang": "URL1",
      "url": "/blog/posts/tyler-technologies-case-study"
    }
  },
  {
    "title": "How the W3C Web of Things brings JSON Schema to the Internet of Things",
    "summary": "Using JSON Schema at the W3C Web of Things to create an interoperability layer so that different IoT platforms, protocols and standards can operate together.",
    "logo": "/img/logos/wot-logo.png",
    "links": {
      "lang": "URL1",
      "url": "/blog/posts/w3c-wot-case-study"
    }
  },
  {
    "title": "JSON Schema deduplicated complex logic and validation at Cookpad",
    "summary": "Learn how Cookpad used JSON Schema to reduce incomplete input of newly registered items from 10% to 0%.",
    "logo": "/img/logos/cookpad-logo.png",
    "links": {
      "lang": "URL1",
      "url": "/blog/posts/cookpad-case-study-en"
    }
  }
]

---

## File: data/community-users.json

[
  {
    "login": "benjagm",
    "id": 40007659,
    "avatar_url": "https://avatars.githubusercontent.com/u/40007659?v=4",
    "html_url": "https://github.com/benjagm"
  },
  {
    "login": "musemind",
    "id": 11320794,
    "avatar_url": "https://avatars.githubusercontent.com/u/11320794?v=4",
    "html_url": "https://github.com/musemind"
  },
  {
    "login": "dependabot[bot]",
    "id": 49699333,
    "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4",
    "html_url": "https://github.com/apps/dependabot"
  },
  {
    "login": "aku1310",
    "id": 72210364,
    "avatar_url": "https://avatars.githubusercontent.com/u/72210364?v=4",
    "html_url": "https://github.com/aku1310"
  },
  {
    "login": "OlliesWorld",
    "id": 51091185,
    "avatar_url": "https://avatars.githubusercontent.com/u/51091185?v=4",
    "html_url": "https://github.com/OlliesWorld"
  },
  {
    "login": "Relequestual",
    "id": 731158,
    "avatar_url": "https://avatars.githubusercontent.com/u/731158?v=4",
    "html_url": "https://github.com/Relequestual"
  },
  {
    "login": "jviotti",
    "id": 2192773,
    "avatar_url": "https://avatars.githubusercontent.com/u/2192773?v=4",
    "html_url": "https://github.com/jviotti"
  },
  {
    "login": "DhairyaMajmudar",
    "id": 124715224,
    "avatar_url": "https://avatars.githubusercontent.com/u/124715224?v=4",
    "html_url": "https://github.com/DhairyaMajmudar"
  },
  {
    "login": "DarhkVoyd",
    "id": 77478658,
    "avatar_url": "https://avatars.githubusercontent.com/u/77478658?v=4",
    "html_url": "https://github.com/DarhkVoyd"
  },
  {
    "login": "jdesrosiers",
    "id": 716571,
    "avatar_url": "https://avatars.githubusercontent.com/u/716571?v=4",
    "html_url": "https://github.com/jdesrosiers"
  },
  {
    "login": "gregsdennis",
    "id": 2676804,
    "avatar_url": "https://avatars.githubusercontent.com/u/2676804?v=4",
    "html_url": "https://github.com/gregsdennis"
  },
  {
    "login": "Julian",
    "id": 329822,
    "avatar_url": "https://avatars.githubusercontent.com/u/329822?v=4",
    "html_url": "https://github.com/Julian"
  },
  {
    "login": "aialok",
    "id": 66772290,
    "avatar_url": "https://avatars.githubusercontent.com/u/66772290?v=4",
    "html_url": "https://github.com/aialok"
  },
  {
    "login": "JeelRajodiya",
    "id": 63534268,
    "avatar_url": "https://avatars.githubusercontent.com/u/63534268?v=4",
    "html_url": "https://github.com/JeelRajodiya"
  },
  {
    "login": "PaulWaller",
    "id": 2253876,
    "avatar_url": "https://avatars.githubusercontent.com/u/2253876?v=4",
    "html_url": "https://github.com/PaulWaller"
  },
  {
    "login": "the-json-schema-bot[bot]",
    "id": 171232837,
    "avatar_url": "https://avatars.githubusercontent.com/in/909251?v=4",
    "html_url": "https://github.com/apps/the-json-schema-bot"
  },
  {
    "login": "TamannaVerma99",
    "id": 96949249,
    "avatar_url": "https://avatars.githubusercontent.com/u/96949249?v=4",
    "html_url": "https://github.com/TamannaVerma99"
  },
  {
    "login": "starlightknown",
    "id": 74637789,
    "avatar_url": "https://avatars.githubusercontent.com/u/74637789?v=4",
    "html_url": "https://github.com/starlightknown"
  },
  {
    "login": "VivekJaiswal18",
    "id": 96608169,
    "avatar_url": "https://avatars.githubusercontent.com/u/96608169?v=4",
    "html_url": "https://github.com/VivekJaiswal18"
  },
  {
    "login": "spacether",
    "id": 1912028,
    "avatar_url": "https://avatars.githubusercontent.com/u/1912028?v=4",
    "html_url": "https://github.com/spacether"
  },
  {
    "login": "officeneerajsaini",
    "id": 118799941,
    "avatar_url": "https://avatars.githubusercontent.com/u/118799941?v=4",
    "html_url": "https://github.com/officeneerajsaini"
  },
  {
    "login": "divyaxdv",
    "id": 95571773,
    "avatar_url": "https://avatars.githubusercontent.com/u/95571773?v=4",
    "html_url": "https://github.com/divyaxdv"
  },
  {
    "login": "Sahil-Shadwal",
    "id": 119167601,
    "avatar_url": "https://avatars.githubusercontent.com/u/119167601?v=4",
    "html_url": "https://github.com/Sahil-Shadwal"
  },
  {
    "login": "iamAyushChamoli",
    "id": 75367725,
    "avatar_url": "https://avatars.githubusercontent.com/u/75367725?v=4",
    "html_url": "https://github.com/iamAyushChamoli"
  },
  {
    "login": "Adity20",
    "id": 119804372,
    "avatar_url": "https://avatars.githubusercontent.com/u/119804372?v=4",
    "html_url": "https://github.com/Adity20"
  },
  {
    "login": "Gmin2",
    "id": 127925465,
    "avatar_url": "https://avatars.githubusercontent.com/u/127925465?v=4",
    "html_url": "https://github.com/Gmin2"
  },
  {
    "login": "Dule-martins",
    "id": 33032530,
    "avatar_url": "https://avatars.githubusercontent.com/u/33032530?v=4",
    "html_url": "https://github.com/Dule-martins"
  },
  {
    "login": "ayushtiwari110",
    "id": 84335414,
    "avatar_url": "https://avatars.githubusercontent.com/u/84335414?v=4",
    "html_url": "https://github.com/ayushtiwari110"
  },
  {
    "login": "JulianCataldo",
    "id": 603498,
    "avatar_url": "https://avatars.githubusercontent.com/u/603498?v=4",
    "html_url": "https://github.com/JulianCataldo"
  },
  {
    "login": "lateapexearlyspeed",
    "id": 72254037,
    "avatar_url": "https://avatars.githubusercontent.com/u/72254037?v=4",
    "html_url": "https://github.com/lateapexearlyspeed"
  },
  {
    "login": "Sanket-0510",
    "id": 104385297,
    "avatar_url": "https://avatars.githubusercontent.com/u/104385297?v=4",
    "html_url": "https://github.com/Sanket-0510"
  },
  {
    "login": "harrel56",
    "id": 26698228,
    "avatar_url": "https://avatars.githubusercontent.com/u/26698228?v=4",
    "html_url": "https://github.com/harrel56"
  },
  {
    "login": "maverox",
    "id": 29498864,
    "avatar_url": "https://avatars.githubusercontent.com/u/29498864?v=4",
    "html_url": "https://github.com/maverox"
  },
  {
    "login": "swaparup36",
    "id": 82692857,
    "avatar_url": "https://avatars.githubusercontent.com/u/82692857?v=4",
    "html_url": "https://github.com/swaparup36"
  },
  {
    "login": "srini047",
    "id": 81156510,
    "avatar_url": "https://avatars.githubusercontent.com/u/81156510?v=4",
    "html_url": "https://github.com/srini047"
  },
  {
    "login": "Codesmith28",
    "id": 117557273,
    "avatar_url": "https://avatars.githubusercontent.com/u/117557273?v=4",
    "html_url": "https://github.com/Codesmith28"
  },
  {
    "login": "sandrina-p",
    "id": 14869087,
    "avatar_url": "https://avatars.githubusercontent.com/u/14869087?v=4",
    "html_url": "https://github.com/sandrina-p"
  },
  {
    "login": "vinfinity7",
    "id": 122719607,
    "avatar_url": "https://avatars.githubusercontent.com/u/122719607?v=4",
    "html_url": "https://github.com/vinfinity7"
  },
  {
    "login": "satyam-x10",
    "id": 106728045,
    "avatar_url": "https://avatars.githubusercontent.com/u/106728045?v=4",
    "html_url": "https://github.com/satyam-x10"
  },
  {
    "login": "micshar92",
    "id": 112581105,
    "avatar_url": "https://avatars.githubusercontent.com/u/112581105?v=4",
    "html_url": "https://github.com/micshar92"
  },
  {
    "login": "lalitkumawat1m",
    "id": 91591901,
    "avatar_url": "https://avatars.githubusercontent.com/u/91591901?v=4",
    "html_url": "https://github.com/lalitkumawat1m"
  },
  {
    "login": "JamesNK",
    "id": 303201,
    "avatar_url": "https://avatars.githubusercontent.com/u/303201?v=4",
    "html_url": "https://github.com/JamesNK"
  },
  {
    "login": "GabenGar",
    "id": 87906913,
    "avatar_url": "https://avatars.githubusercontent.com/u/87906913?v=4",
    "html_url": "https://github.com/GabenGar"
  },
  {
    "login": "Ali7040",
    "id": 81979505,
    "avatar_url": "https://avatars.githubusercontent.com/u/81979505?v=4",
    "html_url": "https://github.com/Ali7040"
  },
  {
    "login": "smoya",
    "id": 1083296,
    "avatar_url": "https://avatars.githubusercontent.com/u/1083296?v=4",
    "html_url": "https://github.com/smoya"
  },
  {
    "login": "Saumya40-codes",
    "id": 115284013,
    "avatar_url": "https://avatars.githubusercontent.com/u/115284013?v=4",
    "html_url": "https://github.com/Saumya40-codes"
  },
  {
    "login": "prajjwalyd",
    "id": 111794524,
    "avatar_url": "https://avatars.githubusercontent.com/u/111794524?v=4",
    "html_url": "https://github.com/prajjwalyd"
  },
  {
    "login": "praveen-rikhari",
    "id": 84331681,
    "avatar_url": "https://avatars.githubusercontent.com/u/84331681?v=4",
    "html_url": "https://github.com/praveen-rikhari"
  },
  {
    "login": "vickywane",
    "id": 29664439,
    "avatar_url": "https://avatars.githubusercontent.com/u/29664439?v=4",
    "html_url": "https://github.com/vickywane"
  },
  {
    "login": "nikhilkalburgi",
    "id": 70331875,
    "avatar_url": "https://avatars.githubusercontent.com/u/70331875?v=4",
    "html_url": "https://github.com/nikhilkalburgi"
  },
  {
    "login": "Michael-Obele",
    "id": 70345027,
    "avatar_url": "https://avatars.githubusercontent.com/u/70345027?v=4",
    "html_url": "https://github.com/Michael-Obele"
  },
  {
    "login": "michaelmior",
    "id": 82501,
    "avatar_url": "https://avatars.githubusercontent.com/u/82501?v=4",
    "html_url": "https://github.com/michaelmior"
  },
  {
    "login": "Maykkkk",
    "id": 91688667,
    "avatar_url": "https://avatars.githubusercontent.com/u/91688667?v=4",
    "html_url": "https://github.com/Maykkkk"
  },
  {
    "login": "outofrange",
    "id": 4445747,
    "avatar_url": "https://avatars.githubusercontent.com/u/4445747?v=4",
    "html_url": "https://github.com/outofrange"
  },
  {
    "login": "dauinh",
    "id": 62679553,
    "avatar_url": "https://avatars.githubusercontent.com/u/62679553?v=4",
    "html_url": "https://github.com/dauinh"
  },
  {
    "login": "kurtmckee",
    "id": 39996,
    "avatar_url": "https://avatars.githubusercontent.com/u/39996?v=4",
    "html_url": "https://github.com/kurtmckee"
  },
  {
    "login": "SimonDMC",
    "id": 46278840,
    "avatar_url": "https://avatars.githubusercontent.com/u/46278840?v=4",
    "html_url": "https://github.com/SimonDMC"
  },
  {
    "login": "heysujal",
    "id": 55016909,
    "avatar_url": "https://avatars.githubusercontent.com/u/55016909?v=4",
    "html_url": "https://github.com/heysujal"
  },
  {
    "login": "ThomasAribart",
    "id": 38014240,
    "avatar_url": "https://avatars.githubusercontent.com/u/38014240?v=4",
    "html_url": "https://github.com/ThomasAribart"
  },
  {
    "login": "Viicos",
    "id": 65306057,
    "avatar_url": "https://avatars.githubusercontent.com/u/65306057?v=4",
    "html_url": "https://github.com/Viicos"
  },
  {
    "login": "MeastroZI",
    "id": 106718914,
    "avatar_url": "https://avatars.githubusercontent.com/u/106718914?v=4",
    "html_url": "https://github.com/MeastroZI"
  },
  {
    "login": "Mvishal123",
    "id": 113995907,
    "avatar_url": "https://avatars.githubusercontent.com/u/113995907?v=4",
    "html_url": "https://github.com/Mvishal123"
  },
  {
    "login": "Vishv0407",
    "id": 126045993,
    "avatar_url": "https://avatars.githubusercontent.com/u/126045993?v=4",
    "html_url": "https://github.com/Vishv0407"
  },
  {
    "login": "ota-meshi",
    "id": 16508807,
    "avatar_url": "https://avatars.githubusercontent.com/u/16508807?v=4",
    "html_url": "https://github.com/ota-meshi"
  },
  {
    "login": "albinstman",
    "id": 24735159,
    "avatar_url": "https://avatars.githubusercontent.com/u/24735159?v=4",
    "html_url": "https://github.com/albinstman"
  },
  {
    "login": "chris48s",
    "id": 6025893,
    "avatar_url": "https://avatars.githubusercontent.com/u/6025893?v=4",
    "html_url": "https://github.com/chris48s"
  },
  {
    "login": "fevrin",
    "id": 5051062,
    "avatar_url": "https://avatars.githubusercontent.com/u/5051062?v=4",
    "html_url": "https://github.com/fevrin"
  },
  {
    "login": "its-VinayKumar",
    "id": 129538020,
    "avatar_url": "https://avatars.githubusercontent.com/u/129538020?v=4",
    "html_url": "https://github.com/its-VinayKumar"
  },
  {
    "login": "kaptinlin",
    "id": 999331,
    "avatar_url": "https://avatars.githubusercontent.com/u/999331?v=4",
    "html_url": "https://github.com/kaptinlin"
  },
  {
    "login": "abhishek-403",
    "id": 131962113,
    "avatar_url": "https://avatars.githubusercontent.com/u/131962113?v=4",
    "html_url": "https://github.com/abhishek-403"
  },
  {
    "login": "AdityaSingh-02",
    "id": 94185167,
    "avatar_url": "https://avatars.githubusercontent.com/u/94185167?v=4",
    "html_url": "https://github.com/AdityaSingh-02"
  },
  {
    "login": "Akshaybagai52",
    "id": 100753870,
    "avatar_url": "https://avatars.githubusercontent.com/u/100753870?v=4",
    "html_url": "https://github.com/Akshaybagai52"
  },
  {
    "login": "unguul",
    "id": 7005614,
    "avatar_url": "https://avatars.githubusercontent.com/u/7005614?v=4",
    "html_url": "https://github.com/unguul"
  },
  {
    "login": "AymarN",
    "id": 35435075,
    "avatar_url": "https://avatars.githubusercontent.com/u/35435075?v=4",
    "html_url": "https://github.com/AymarN"
  },
  {
    "login": "erosb",
    "id": 273158,
    "avatar_url": "https://avatars.githubusercontent.com/u/273158?v=4",
    "html_url": "https://github.com/erosb"
  },
  {
    "login": "bhavukkalra",
    "id": 41142068,
    "avatar_url": "https://avatars.githubusercontent.com/u/41142068?v=4",
    "html_url": "https://github.com/bhavukkalra"
  },
  {
    "login": "big-andy-coates",
    "id": 8012398,
    "avatar_url": "https://avatars.githubusercontent.com/u/8012398?v=4",
    "html_url": "https://github.com/big-andy-coates"
  },
  {
    "login": "kwennB",
    "id": 60541622,
    "avatar_url": "https://avatars.githubusercontent.com/u/60541622?v=4",
    "html_url": "https://github.com/kwennB"
  },
  {
    "login": "bcherny",
    "id": 1761758,
    "avatar_url": "https://avatars.githubusercontent.com/u/1761758?v=4",
    "html_url": "https://github.com/bcherny"
  },
  {
    "login": "CarstenWickner",
    "id": 11309681,
    "avatar_url": "https://avatars.githubusercontent.com/u/11309681?v=4",
    "html_url": "https://github.com/CarstenWickner"
  },
  {
    "login": "AdrianGonz97",
    "id": 31664583,
    "avatar_url": "https://avatars.githubusercontent.com/u/31664583?v=4",
    "html_url": "https://github.com/AdrianGonz97"
  },
  {
    "login": "kx412764776",
    "id": 117196993,
    "avatar_url": "https://avatars.githubusercontent.com/u/117196993?v=4",
    "html_url": "https://github.com/kx412764776"
  },
  {
    "login": "rotu",
    "id": 119948,
    "avatar_url": "https://avatars.githubusercontent.com/u/119948?v=4",
    "html_url": "https://github.com/rotu"
  },
  {
    "login": "danielaparker",
    "id": 4381912,
    "avatar_url": "https://avatars.githubusercontent.com/u/4381912?v=4",
    "html_url": "https://github.com/danielaparker"
  },
  {
    "login": "theory",
    "id": 46604,
    "avatar_url": "https://avatars.githubusercontent.com/u/46604?v=4",
    "html_url": "https://github.com/theory"
  },
  {
    "login": "vm-001",
    "id": 20838671,
    "avatar_url": "https://avatars.githubusercontent.com/u/20838671?v=4",
    "html_url": "https://github.com/vm-001"
  },
  {
    "login": "eddyashton",
    "id": 6000239,
    "avatar_url": "https://avatars.githubusercontent.com/u/6000239?v=4",
    "html_url": "https://github.com/eddyashton"
  },
  {
    "login": "elisiariocouto",
    "id": 818914,
    "avatar_url": "https://avatars.githubusercontent.com/u/818914?v=4",
    "html_url": "https://github.com/elisiariocouto"
  },
  {
    "login": "1p22geo",
    "id": 113300767,
    "avatar_url": "https://avatars.githubusercontent.com/u/113300767?v=4",
    "html_url": "https://github.com/1p22geo"
  },
  {
    "login": "joostholslag",
    "id": 13568972,
    "avatar_url": "https://avatars.githubusercontent.com/u/13568972?v=4",
    "html_url": "https://github.com/joostholslag"
  },
  {
    "login": "Nickyshe",
    "id": 110067624,
    "avatar_url": "https://avatars.githubusercontent.com/u/110067624?v=4",
    "html_url": "https://github.com/Nickyshe"
  },
  {
    "login": "justin-tay",
    "id": 49700559,
    "avatar_url": "https://avatars.githubusercontent.com/u/49700559?v=4",
    "html_url": "https://github.com/justin-tay"
  },
  {
    "login": "KaranDasA1",
    "id": 141057770,
    "avatar_url": "https://avatars.githubusercontent.com/u/141057770?v=4",
    "html_url": "https://github.com/KaranDasA1"
  },
  {
    "login": "Kalevins",
    "id": 51754037,
    "avatar_url": "https://avatars.githubusercontent.com/u/51754037?v=4",
    "html_url": "https://github.com/Kalevins"
  },
  {
    "login": "kalivtrope",
    "id": 30574738,
    "avatar_url": "https://avatars.githubusercontent.com/u/30574738?v=4",
    "html_url": "https://github.com/kalivtrope"
  }
]

---

## File: data/community.json

[
  {
    "id": "item",
    "img": "./img/avatars/benhutton.webp",
    "alt": "benhutton"
  },
  {
    "id": "item",
    "img": "./img/avatars/benjagm.webp",
    "alt": "benjagm"
  },
  {
    "id": "item",
    "img": "./img/avatars/gregsdennis.webp",
    "alt": "gregs"
  },
  {
    "id": "item",
    "img": "./img/avatars/jasondesrosiers.jpeg",
    "alt": "jason"
  },
  {
    "id": "item",
    "img": "./img/avatars/julian.webp",
    "alt": "julian"
  },
  {
    "id": "item",
    "img": "./img/contributers/melinda.png",
    "alt": "melinda"
  },
  {
    "id": "item",
    "img": "./img/avatars/jviotti.webp",
    "alt": "jviotti"
  },
  {
    "id": "item",
    "img": "./img/contributers/musemind.png",
    "alt": "musemind"
  },
  {
    "id": "item-2",
    "img": "./img/contributers/akanksha-kushwaha.jpeg",
    "alt": "aku1310"
  },
  {
    "id": "item-2",
    "img": "./img/contributers/OlliesWorld.jpeg",
    "alt": "roni"
  },
  {
    "id": "item-2",
    "img": "./img/contributers/darhkvoyd.jpeg",
    "alt": "DV"
  },
  {
    "id": "item-2",
    "img": "./img/contributers/dhairya.jpeg",
    "alt": "dhairya"
  },
  {
    "id": "item-2",
    "img": "./img/contributers/paul-waller.jpeg",
    "alt": "paul-waller"
  },
  {
    "id": "item-2",
    "img": "./img/contributers/officeneerajsaini.jpeg",
    "alt": "neeraj"
  },
  {
    "id": "item-2",
    "img": "./img/contributers/jeel-rajodiya.jpeg",
    "alt": "jeel"
  },
  {
    "id": "item-2",
    "img": "./img/contributers/tamanna-verma.jpeg",
    "alt": "tamana"
  },
  {
    "id": "item-3",
    "img": "./img/contributers/mintu-gogoi.jpeg",
    "alt": "mintu"
  },
  {
    "id": "item-3",
    "img": "./img/contributers/aditya-sharma.jpeg",
    "alt": "aditya"
  },
  {
    "id": "item-3",
    "img": "./img/contributers/satyam-kumar.jpeg",
    "alt": "satyam"
  },
  {
    "id": "item-3",
    "img": "./img/contributers/ayush_tiwari.jpeg",
    "alt": "ayush"
  },
  {
    "id": "item-3",
    "img": "./img/contributers/sahil_shadwal.jpeg",
    "alt": "sahil"
  },
  {
    "id": "item-3",
    "img": "./img/contributers/julian-cataldo.jpeg",
    "alt": "julian"
  },
  {
    "id": "item-3",
    "img": "./img/contributers/sandrina.jpeg",
    "alt": "sandrina"
  },
  {
    "id": "item-3",
    "img": "./img/contributers/lateapexe.jpeg",
    "alt": "late"
  },
  {
    "id": "item-4",
    "img": "./img/contributers/alok-gupta.jpeg",
    "alt": "alok"
  },
  {
    "id": "item-4",
    "img": "./img/contributers/michael-sharber.jpeg",
    "alt": "michael"
  },
  {
    "id": "item-4",
    "img": "./img/contributers/gabengar.png",
    "alt": "gabengar"
  },
  {
    "id": "item-4",
    "img": "./img/contributers/ali_haider.jpeg",
    "alt": "ali"
  },
  {
    "id": "item-4",
    "img": "./img/contributers/saksham_mishra.jpeg",
    "alt": "saksham"
  },
  {
    "id": "item-4",
    "img": "./img/contributers/sarthak.jpeg",
    "alt": "sarthak"
  },
  {
    "id": "item-4",
    "img": "./img/contributers/jayprakash.jpeg",
    "alt": "jayprakash"
  },
  {
    "id": "item-4",
    "img": "./img/contributers/vinitpandit.jpeg",
    "alt": "vinit"
  },
  {
    "id": "item-5",
    "img": "./img/contributers/dauinh.jpeg",
    "alt": "linh"
  },
  {
    "id": "item-5",
    "img": "./img/contributers/kalivtrope.jpeg",
    "alt": "kalivtrope"
  },
  {
    "id": "item-5",
    "img": "./img/contributers/adityasingh.jpeg",
    "alt": "aditya"
  },
  {
    "id": "item-5",
    "img": "./img/contributers/Maykkkk.jpeg",
    "alt": "maykkkk"
  },
  {
    "id": "item-5",
    "img": "./img/contributers/bcherny.jpeg",
    "alt": "boris"
  },
  {
    "id": "item-5",
    "img": "./img/contributers/Saumya40-codes.jpeg",
    "alt": "saumya"
  },
  {
    "id": "item-5",
    "img": "./img/contributers/prajjwalyd.jpeg",
    "alt": "prajjwal"
  },
  {
    "id": "item-5",
    "img": "./img/contributers/abhishek-403.png",
    "alt": "abhishek"
  },
  {
    "id": "item-6",
    "img": "./img/contributers/CarstenWickner.jpeg",
    "alt": "Carsten"
  },
  {
    "id": "item-6",
    "img": "./img/contributers/kx412764776.jpeg",
    "alt": "kx412764776"
  },
  {
    "id": "item-6",
    "img": "./img/contributers/unguul.jpeg",
    "alt": "unguul"
  },
  {
    "id": "item-6",
    "img": "./img/contributers/Akshaybagai52.jpeg",
    "alt": "akshay"
  },
  {
    "id": "item-6",
    "img": "./img/contributers/Michael-Obele.jpeg",
    "alt": "michael"
  },
  {
    "id": "item-6",
    "img": "./img/contributers/karenetheridge.jpeg",
    "alt": "karene"
  },
  {
    "id": "item-6",
    "img": "./img/contributers/eddyashton.jpeg",
    "alt": "eddy"
  },
  {
    "id": "item-6",
    "img": "./img/contributers/lalitkumawat1m.png",
    "alt": "lalit"
  },
  {
    "id": "item-7",
    "img": "./img/contributers/justin-tay.png",
    "alt": "justin"
  },
  {
    "id": "item-7",
    "img": "./img/contributers/ThomasAribart.jpeg",
    "alt": "thomas"
  },
  {
    "id": "item-7",
    "img": "./img/contributers/Viicos.jpeg",
    "alt": "viicos"
  },
  {
    "id": "item-7",
    "img": "./img/contributers/vm-001.png",
    "alt": "vm-001"
  },
  {
    "id": "item-7",
    "img": "./img/contributers/big-andy-coates.png",
    "alt": "big-andy-coates"
  },
  {
    "id": "item-7",
    "img": "./img/contributers/smoya.jpeg",
    "alt": "smoya"
  },
  {
    "id": "item-7",
    "img": "./img/contributers/ota-meshi.jpeg",
    "alt": "ota-meshi"
  },
  {
    "id": "item-7",
    "img": "./img/contributers/michaelmior.jpeg",
    "alt": "michaelmior"
  },
  {
    "id": "item-8",
    "img": "./img/contributers/maverox.jpeg",
    "alt": "maverox"
  },
  {
    "id": "item-8",
    "img": "./img/contributers/kurtmckee.png",
    "alt": "kurtmckee"
  },
  {
    "id": "item-8",
    "img": "./img/contributers/Mvishal123.jpeg",
    "alt": "vishal"
  },
  {
    "id": "item-8",
    "img": "./img/contributers/SimonDMC.png",
    "alt": "simon"
  }
]

---

## File: data/faq.json

[
  {
    "id": 1,
    "question": "What is JSON Schema?",
    "answer": "JSON Schema is a specification for defining the structure of JSON data. It provides a standardized way to annotate, describe, and validate JSON data. JSON Schema defines content, structure, data types, and other expected constraints within a JSON document.",
    "category": "general"
  },
  {
    "id": 2,
    "question": "How do I create a simple JSON Schema?",
    "answer": "You can create a simple JSON Schema using a JSON object with properties like 'type', 'properties', and 'required'. These define the data type, properties, and mandatory fields of your JSON document.",
    "category": "general"
  },
  {
    "id": 3,
    "question": "What is the purpose of 'type' in JSON Schema?",
    "answer": "The 'type' keyword defines the data type of the schema and guarantees that the validated data complies with the specified type. JSON Schema defines these types; 'string', 'number', 'integer', 'object', 'array', 'boolean', and 'null'. The type keyword primarily functions for data validation, compatibility across systems, and restriction of JSON documents.",
    "category": "general"
  },
  {
    "id": 4,
    "question": "How can I define default values in a JSON Schema?",
    "answer": "You can use the 'default' keyword to set a default value for a property in your JSON Schema. It provides a fallback value if the property is not present in the JSON document.",
    "category": "general"
  },
  {
    "id": 5,
    "question": "What is the significance of 'required' in JSON Schema?",
    "answer": "The 'required' keyword ensures that specific properties must be present in the JSON data being validated. It specifies which properties are mandatory, avoids errors or incomplete processing by guaranteeing the provision of necessary data, and works for form validation, configuration files, schema evolution, etc.",
    "category": "general"
  },
  {
    "id": 6,
    "question": "How can I validate a JSON document against a JSON Schema?",
    "answer": "You can use various tools and libraries, such as AJV (Another JSON Schema Validator), to validate a JSON document against a JSON Schema. It ensures the JSON data adheres to the expected format and constraints defined in the schema.",
    "category": "general"
  },
  {
    "id": 7,
    "question": "What is the difference between 'object' and 'array' types in JSON Schema?",
    "answer": "The object type in JSON Schema represents a collection of key-value pairs, ideal for modeling entities with named properties, like a person with attributes such as name and age. In contrast, the array type represents ordered collections of items suited for sequences of similar elements, such as lists of strings or objects. Understanding these differences helps to describe and validate JSON data structures.",
    "category": "general"
  },
  {
    "id": 8,
    "question": "Can I use JSON Schema to describe nested structures?",
    "answer": "JSON Schema allows for describing nested structures to represent complex, hierarchical data. You can define properties with their own JSON Schema, objects within objects, and arrays within objects or arrays, providing a flexible way to model various data relationships.",
    "category": "general"
  }
]

---

## File: data/keywords.yml

- name: $anchor
  vocabulary: [core]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/core/anchor'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/structuring#anchor'
      title: Structuring a complex schema ($anchor)
    - url: 'https://json-schema.org/learn/json-schema-examples#ecommerce-system'
      title: Ecommerce system example
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#anchor'
      title: Draft 2020-12
- name: $comment
  vocabulary: [core]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/core/comment'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/comments#comments'
      title: Generic Keywords ($comment)
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-comments-with-comment'
      title: Draft 2020-12
- name: $defs
  vocabulary: [core]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/core/defs'
  links:
    - url: 'https://json-schema.org/learn/miscellaneous-examples'
      title: Miscellaneous examples
    - url: 'https://json-schema.org/understanding-json-schema/structuring#defs'
      title: Structuring a complex schema ($defs)
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-schema-re-use-with-defs'
      title: Draft 2020-12
- name: $dynamicAnchor
  vocabulary: [core]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/core/dynamicanchor'
  links:
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-example-of-recursive-schema'
      title: Draft 2020-12
- name: $dynamicRef
  vocabulary: [core]
  learnjsonschemalink: 'https://json-schema.org/draft/2020-12/json-schema-core#dynamic-ref'
  links:
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-example-of-recursive-schema'
      title: Draft 2020-12
- name: $id
  vocabulary: [core]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/core/id'
  links:
    - url: 'https://json-schema.org/learn/getting-started-step-by-step#create-a-schema-definition'
      title: Create a schema definition
    - url: 'https://json-schema.org/understanding-json-schema/basics#declaring-a-unique-identifier'
      title: Declaring a unique identifier
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-the-id-keyword'
      title: Draft 2020-12
- name: $ref
  vocabulary: [core]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/core/ref'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/basics#declaring-a-json-schema'
      title: Declaring a JSON Schema
    - url: 'https://json-schema.org/learn/getting-started-step-by-step#create-a-schema-definition'
      title: Create a schema definition
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#unevaluateditems'
      title: Unevaluated Items
    - url: 'https://json-schema.org/understanding-json-schema/structuring#dollarref'
      title: Structuring a complex schema ($ref)
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#ref'
      title: Draft 2020-12
- name: $schema
  vocabulary: [core]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/core/schema'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/schema'
      title: Declaring a dialect ($schema)
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-the-schema-keyword'
      title: Draft 2020-12
- name: $vocabulary
  vocabulary: [core]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/core/vocabulary'
  links:
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-the-vocabulary-keyword'
      title: Draft 2020-12
- name: additionalProperties
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/additionalproperties'
  links:
    - url: 'https://json-schema.org/learn/file-system#modeling-a-file-system-with-json-schema'
      title: Modeling a file system with JSON Schema
    - url: 'https://json-schema.org/understanding-json-schema/reference/object#additionalproperties'
      title: Additional Properties
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-additionalproperties'
      title: Draft 2020-12
- name: allOf
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/allof'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#unevaluateditems'
      title: Unevaluated Items
    - url: 'https://json-schema.org/understanding-json-schema/reference/combining#schema-composition'
      title: Schema Composition
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-allof'
      title: Draft 2020-12
- name: anyOf
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/anyof'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#unevaluateditems'
      title: Unevaluated Items
    - url: 'https://json-schema.org/understanding-json-schema/reference/combining#schema-composition'
      title: Schema Composition
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-anyof'
      title: Draft 2020-12
- name: contains
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/contains'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#contains'
      title: Contains
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-contains'
      title: Draft 2020-12
- name: else
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/else'
  links:
    - url: 'https://json-schema.org/learn/miscellaneous-examples'
      title: Miscellaneous Examples
    - url: 'https://json-schema.org/understanding-json-schema/reference/conditionals#ifthenelse'
      title: If-Then-Else
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-else'
      title: Draft 2020-12
- name: if
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/if'
  links:
    - url: 'https://json-schema.org/learn/miscellaneous-examples'
      title: Miscellaneous Examples
    - url: 'https://json-schema.org/understanding-json-schema/reference/conditionals#ifthenelse'
      title: If-Then-Else
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-if'
      title: Draft 2020-12
- name: items
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/items'
  links:
    - url: 'https://json-schema.org/learn/file-system#modeling-a-file-system-with-json-schema'
      title: Modeling a file system with JSON Schema
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#items'
      title: Items
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-items'
      title: Draft 2020-12
- name: not
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/not'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/combining#schema-composition'
      title: Schema Composition
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-not'
      title: Draft 2020-12
- name: oneOf
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/oneof'
  links:
    - url: 'https://json-schema.org/learn/file-system#modeling-a-file-system-with-json-schema'
      title: Modeling a file system with JSON Schema
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#unevaluateditems'
      title: Unevaluated Items
    - url: 'https://json-schema.org/understanding-json-schema/reference/combining#schema-composition'
      title: Schema Composition
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-oneof'
      title: Draft 2020-12
- name: patternProperties
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/patternproperties'
  links:
    - url: 'https://json-schema.org/learn/file-system#modeling-a-file-system-with-json-schema'
      title: Modeling a file system with JSON Schema
    - url: 'https://json-schema.org/understanding-json-schema/reference/object#patternProperties'
      title: Pattern Properties
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-patternproperties'
      title: Draft 2020-12
- name: prefixItems
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/prefixitems'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#tupleValidation'
      title: Tuple Validation
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-prefixitems'
      title: Draft 2020-12
- name: properties
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/properties'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/object#properties'
      title: Properties
    - url: 'https://json-schema.org/learn/getting-started-step-by-step#create-a-schema-definition'
      title: Schema Definition
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-properties'
      title: Draft 2020-12
- name: propertyNames
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/propertynames'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/object#propertyNames'
      title: Property names
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-propertynames'
      title: Draft 2020-12
- name: then
  vocabulary: [Applicator]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/then'
  links:
    - url: 'https://json-schema.org/learn/miscellaneous-examples'
      title: Miscellaneous Examples
    - url: 'https://json-schema.org/understanding-json-schema/reference/conditionals#ifthenelse'
      title: If-Then-Else
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-then'
      title: Draft 2020-12
- name: const
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/const'
  links:
    - url: 'https://json-schema.org/learn/miscellaneous-examples'
      title: Miscellaneous Examples
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-const'
      title: Draft 2020-12
- name: dependentRequired
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/dependentrequired'
  links:
    - url: 'https://json-schema.org/learn/miscellaneous-examples'
      title: Miscellaneous Examples
    - url: 'https://json-schema.org/understanding-json-schema/reference/conditionals#applying-subschemas-conditionally'
      title: Applying Subschemas Conditionally
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-dependentrequired'
      title: Draft 2020-12
- name: dependentSchemas
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/applicator/dependentschemas'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/conditionals#dependentSchemas'
      title: Dependent Schemas
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-dependentschemas'
      title: Draft 2020-12
- name: enum
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/enum'
  links:
    - url: 'https://json-schema.org/learn/miscellaneous-examples'
      title: Miscellaneous Examples
    - url: 'https://json-schema.org/understanding-json-schema/reference/enum#enumerated-values'
      title: Enumerated Values
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-enum'
      title: Draft 2020-12
- name: exclusiveMaximum
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/exclusivemaximum'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/numeric#range'
      title: Range
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-exclusivemaximum'
      title: Draft 2020-12
- name: exclusiveMinimum
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/exclusiveminimum'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/numeric#range'
      title: Range
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-exclusiveminimum'
      title: Draft 2020-12
- name: maxContains
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/maxcontains'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#mincontains-maxcontains'
      title: Mincontains / Maxcontains
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-maxcontains'
      title: Draft 2020-12
- name: maximum
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/maximum'
  links:
    - url: 'https://json-schema.org/learn/file-system#modeling-a-file-system-with-json-schema'
      title: Modeling a file system with JSON Schema
    - url: 'https://json-schema.org/understanding-json-schema/reference/numeric#range'
      title: Range
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-maximum'
      title: Draft 2020-12
- name: maxItems
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/maxitems/'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#length'
      title: Length
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-maxitems'
      title: Draft 2020-12
- name: maxLength
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/maxlength'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/string#length'
      title: Length
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-maxlength'
      title: Draft 2020-12
- name: maxProperties
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/maxproperties'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/object#size'
      title: Size
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-maxproperties'
      title: maxProperties
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-maxproperties'
      title: Draft 2020-12
- name: minContains
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/mincontains'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#mincontains-maxcontains'
      title: Mincontains / Maxcontains
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-mincontains'
      title: Draft 2020-12
- name: minimum
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/minimum'
  links:
    - url: 'https://json-schema.org/learn/file-system#modeling-a-file-system-with-json-schema'
      title: Modeling a file system with JSON Schema
    - url: 'https://json-schema.org/understanding-json-schema/reference/numeric#range'
      title: Range
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-minimum'
      title: Draft 2020-12
- name: minItems
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/minitems'
  links:
    - url: 'https://json-schema.org/learn/file-system#modeling-a-file-system-with-json-schema'
      title: Modeling a file system with JSON Schema
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#length'
      title: Length
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-minitems'
      title: Draft 2020-12
- name: minLength
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/minlength/'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/string#length'
      title: Length
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-minlength'
      title: Draft 2020-12
- name: minProperties
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/minproperties'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/object#size'
      title: Size
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-minproperties'
      title: minProperties
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-minproperties'
      title: Draft 2020-12
- name: multipleOf
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/multipleof'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/numeric#multiples'
      title: Multiples
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-multipleof'
      title: Draft 2020-12
- name: pattern
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/pattern'
  links:
    - url: 'https://json-schema.org/learn/miscellaneous-examples'
      title: Miscellaneous Examples
    - url: 'https://json-schema.org/understanding-json-schema/reference/string#regexp'
      title: Regular Expressions
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-pattern'
      title: Draft 2020-12
- name: required
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/required'
  links:
    - url: 'https://json-schema.org/learn/file-system#modeling-a-file-system-with-json-schema'
      title: Modeling a file system with JSON Schema
    - url: 'https://json-schema.org/understanding-json-schema/reference/object#extending'
      title: Extending Closed Schemas
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-required'
      title: Draft 2020-12
- name: type
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/type'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/type'
      title: Type-specific keywords
    - url: 'https://json-schema.org/understanding-json-schema/basics#the-type-keyword'
      title: The type keyword
    - url: 'https://json-schema.org/learn/getting-started-step-by-step#create-a-schema-definition'
      title: Create a Schema Definition
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-type'
      title: Draft 2020-12
- name: uniqueItems
  vocabulary: [Validation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/validation/uniqueitems'
  links:
    - url: 'https://json-schema.org/learn/file-system#modeling-a-file-system-with-json-schema'
      title: Modeling a file system with JSON Schema
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#uniqueItems'
      title: Uniqueness
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-uniqueitems'
      title: Draft 2020-12
- name: format
  vocabulary: [Format Annotation]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/format-annotation/format/'
  links:
    - url: 'https://json-schema.org/draft/2020-12/draft-bhutton-json-schema-validation-00#rfc.section.7.2.1'
      title: Draft 2020-12
    - url: 'https://www.learnjsonschema.com/2020-12/format-annotation/'
      title: Format Annotation
- name: contentEncoding
  vocabulary: [Content]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/content/contentencoding'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/non_json_data#contentencoding'
      title: contentEncoding
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-contentencoding'
      title: Draft 2020-12
- name: contentMediaType
  vocabulary: [Content]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/content/contentmediatype'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/non_json_data#contentmediatype'
      title: contentMediaType
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-contentmediatype'
      title: Draft 2020-12
- name: contentSchema
  vocabulary: [Content]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/content/contentschema'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/non_json_data#contentschema'
      title: contentschema
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-contentschema'
      title: Draft 2020-12
- name: default
  vocabulary: [Meta Data]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/meta-data/default'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/annotations'
      title: Annotations
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-default'
      title: Draft 2020-12
- name: deprecated
  vocabulary: [Meta Data]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/meta-data/deprecated'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/annotations'
      title: Annotations
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-deprecated'
      title: Draft 2020-12
- name: description
  vocabulary: [Meta Data]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/meta-data/description'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/annotations'
      title: Annotations
    - url: 'https://json-schema.org/learn/getting-started-step-by-step#create-a-schema-definition'
      title: Create a schema definition
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-title-and-description'
      title: Draft 2020-12
- name: examples
  vocabulary: [Meta Data]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/meta-data/examples'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/annotations'
      title: Annotations
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-examples'
      title: Draft 2020-12
- name: readOnly
  vocabulary: [Meta Data]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/meta-data/readonly'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/annotations'
      title: Annotations
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-readonly-and-writeonly'
      title: Draft 2020-12
- name: title
  vocabulary: [Meta Data]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/meta-data/title'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/annotations'
      title: Annotations
    - url: 'https://json-schema.org/learn/getting-started-step-by-step#create-a-schema-definition'
      title: Create a schema definition
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-title-and-description'
      title: Draft 2020-12
- name: writeOnly
  vocabulary: [Meta Data]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/meta-data/writeonly'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/annotations'
      title: Annotations
    - url: 'https://json-schema.org/draft/2020-12/json-schema-validation#name-readonly-and-writeonly'
      title: Draft 2020-12
- name: unevaluatedItems
  vocabulary: [Unevaluated]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/unevaluated/unevaluateditems'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/array#unevaluateditems'
      title: Unevaluated Items
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-unevaluateditems'
      title: Draft 2020-12
- name: unevaluatedProperties
  vocabulary: [Unevaluated]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/unevaluated/unevaluatedproperties'
  links:
    - url: 'https://json-schema.org/understanding-json-schema/reference/object#unevaluatedproperties'
      title: Unevaluated Properties
    - url: 'https://json-schema.org/draft/2020-12/json-schema-core#name-unevaluatedproperties'
      title: Draft 2020-12
- name: format
  vocabulary: [Format Assertion]
  learnjsonschemalink: 'https://www.learnjsonschema.com/2020-12/format-assertion/format/'
  links:
    - url: 'https://json-schema.org/draft/2020-12/draft-bhutton-json-schema-validation-00#rfc.section.7.2.2'
      title: Draft 2020-12
    - url: 'https://www.learnjsonschema.com/2020-12/format-assertion/'
      title: Format Assertion

---

## File: data/roadmap.json

[
  {
    "id": "PVTI_lADOAMaoXc4ARJVmzgHJWGE",
    "fieldValues": {
      "nodes": [
        {},
        {},
        {},
        {
          "text": "Strategy for engaging implementers",
          "field": {
            "name": "Title"
          }
        },
        {
          "name": "Ecosystem",
          "field": {
            "name": "Category"
          }
        },
        {
          "name": "Medium",
          "field": {
            "name": "Effort"
          }
        },
        {
          "name": "High",
          "field": {
            "name": "Impact"
          }
        },
        {
          "name": "In Progress",
          "field": {
            "name": "Status"
          }
        }
      ]
    },
    "content": {
      "title": "Strategy for engaging implementers",
      "assignees": {
        "nodes": [
          {
            "login": "Relequestual"
          },
          {
            "login": "benjagm"
          }
        ]
      }
    }
  },
  {
    "id": "PVTI_lADOAMaoXc4ARJVmzgHJWH0",
    "fieldValues": {
      "nodes": [
        {},
        {},
        {},
        {
          "text": "Complete the new version of the Spec",
          "field": {
            "name": "Title"
          }
        },
        {
          "name": "Specification",
          "field": {
            "name": "Category"
          }
        },
        {
          "name": "High",
          "field": {
            "name": "Effort"
          }
        },
        {
          "name": "High",
          "field": {
            "name": "Impact"
          }
        },
        {
          "name": "In Progress",
          "field": {
            "name": "Status"
          }
        }
      ]
    },
    "content": {
      "title": "Complete the new version of the Spec",
      "assignees": {
        "nodes": [
          {
            "login": "jdesrosiers"
          },
          {
            "login": "Relequestual"
          },
          {
            "login": "gregsdennis"
          },
          {
            "login": "benjagm"
          }
        ]
      }
    }
  },
  {
    "id": "PVTI_lADOAMaoXc4ARJVmzgHWFHc",
    "fieldValues": {
      "nodes": [
        {},
        {},
        {},
        {
          "text": "Complete OpenJSF onboard",
          "field": {
            "name": "Title"
          }
        },
        {
          "name": "Medium",
          "field": {
            "name": "Effort"
          }
        },
        {
          "name": "Medium-high",
          "field": {
            "name": "Impact"
          }
        },
        {
          "name": "Paused",
          "field": {
            "name": "Status"
          }
        },
        {
          "name": "Operations",
          "field": {
            "name": "Category"
          }
        }
      ]
    },
    "content": {
      "title": "Complete OpenJSF onboard",
      "assignees": {
        "nodes": [
          {
            "login": "Relequestual"
          }
        ]
      }
    }
  },
  {
    "id": "PVTI_lADOAMaoXc4ARJVmzgHJWPU",
    "fieldValues": {
      "nodes": [
        {},
        {},
        {},
        {
          "text": "Research of existing implementations by language",
          "field": {
            "name": "Title"
          }
        },
        {
          "name": "Ecosystem",
          "field": {
            "name": "Category"
          }
        },
        {
          "name": "Low",
          "field": {
            "name": "Effort"
          }
        },
        {
          "name": "High",
          "field": {
            "name": "Impact"
          }
        },
        {
          "name": "In Progress",
          "field": {
            "name": "Status"
          }
        }
      ]
    },
    "content": {
      "title": "Research of existing implementations by language",
      "assignees": {
        "nodes": [
          {
            "login": "Julian"
          },
          {
            "login": "benjagm"
          }
        ]
      }
    }
  },
  {
    "id": "PVTI_lADOAMaoXc4ARJVmzgHJWSI",
    "fieldValues": {
      "nodes": [
        {},
        {},
        {},
        {
          "text": "Report on projects financial sustainability requirements",
          "field": {
            "name": "Title"
          }
        },
        {
          "name": "Operations",
          "field": {
            "name": "Category"
          }
        },
        {
          "name": "Low-medium",
          "field": {
            "name": "Effort"
          }
        },
        {
          "name": "Low-medium",
          "field": {
            "name": "Impact"
          }
        },
        {
          "name": "Planned",
          "field": {
            "name": "Status"
          }
        }
      ]
    },
    "content": {
      "title": "Report on projects financial sustainability requirements",
      "assignees": {
        "nodes": [
          {
            "login": "Julian"
          }
        ]
      }
    }
  },
  {
    "id": "PVTI_lADOAMaoXc4ARJVmzgHJZP0",
    "fieldValues": {
      "nodes": [
        {},
        {},
        {},
        {
          "text": "Implement and scale the new governance model",
          "field": {
            "name": "Title"
          }
        },
        {
          "name": "Low",
          "field": {
            "name": "Effort"
          }
        },
        {
          "name": "Medium",
          "field": {
            "name": "Impact"
          }
        },
        {
          "name": "In Progress",
          "field": {
            "name": "Status"
          }
        },
        {
          "name": "Operations",
          "field": {
            "name": "Category"
          }
        }
      ]
    },
    "content": {
      "title": "Implement and scale the new governance model",
      "assignees": {
        "nodes": [
          {
            "login": "Relequestual"
          }
        ]
      }
    }
  },
  {
    "id": "PVTI_lADOAMaoXc4ARJVmzgHJZUk",
    "fieldValues": {
      "nodes": [
        {},
        {},
        {},
        {
          "text": "Enhance public communications strategy",
          "field": {
            "name": "Title"
          }
        },
        {
          "name": "Low",
          "field": {
            "name": "Effort"
          }
        },
        {
          "name": "Medium",
          "field": {
            "name": "Impact"
          }
        },
        {
          "name": "Deferred",
          "field": {
            "name": "Status"
          }
        },
        {
          "name": "Communications",
          "field": {
            "name": "Category"
          }
        }
      ]
    },
    "content": {
      "title": "Enhance public communications strategy",
      "assignees": {
        "nodes": [
          {
            "login": "Relequestual"
          },
          {
            "login": "benjagm"
          }
        ]
      }
    }
  },
  {
    "id": "PVTI_lADOAMaoXc4ARJVmzgHJV10",
    "fieldValues": {
      "nodes": [
        {},
        {},
        {},
        {
          "text": "Identify a list of critical interfaces that implementations should have and empower implementers with better resources",
          "field": {
            "name": "Title"
          }
        },
        {
          "name": "Ecosystem",
          "field": {
            "name": "Category"
          }
        },
        {
          "name": "Low",
          "field": {
            "name": "Effort"
          }
        },
        {
          "name": "High",
          "field": {
            "name": "Impact"
          }
        },
        {
          "name": "Done",
          "field": {
            "name": "Status"
          }
        }
      ]
    },
    "content": {
      "title": "Identify a list of critical interfaces that implementations should have and empower implementers with better resources",
      "assignees": {
        "nodes": [
          {
            "login": "Julian"
          },
          {
            "login": "gregsdennis"
          }
        ]
      }
    }
  },
  {
    "id": "PVTI_lADOAMaoXc4ARJVmzgHdNFs",
    "fieldValues": {
      "nodes": [
        {},
        {},
        {},
        {
          "text": "Complete and publish the new website",
          "field": {
            "name": "Title"
          }
        },
        {
          "name": "Low",
          "field": {
            "name": "Effort"
          }
        },
        {
          "name": "High",
          "field": {
            "name": "Impact"
          }
        },
        {
          "name": "Done",
          "field": {
            "name": "Status"
          }
        },
        {
          "name": "User Experience",
          "field": {
            "name": "Category"
          }
        }
      ]
    },
    "content": {
      "title": "Complete and publish the new website",
      "assignees": {
        "nodes": [
          {
            "login": "benjagm"
          }
        ]
      }
    }
  },
  {
    "id": "PVTI_lADOAMaoXc4ARJVmzgK4C9o",
    "fieldValues": {
      "nodes": [
        {},
        {},
        {},
        {
          "text": "Define the JSON Schema Documentation Strategy",
          "field": {
            "name": "Title"
          }
        },
        {
          "name": "High",
          "field": {
            "name": "Effort"
          }
        },
        {
          "name": "Medium",
          "field": {
            "name": "Impact"
          }
        },
        {
          "name": "Done",
          "field": {
            "name": "Status"
          }
        },
        {
          "name": "User Experience",
          "field": {
            "name": "Category"
          }
        }
      ]
    },
    "content": {
      "title": "Define the JSON Schema Documentation Strategy",
      "assignees": {
        "nodes": [
          {
            "login": "benjagm"
          }
        ]
      }
    }
  },
  {
    "id": "PVTI_lADOAMaoXc4ARJVmzgHJWDE",
    "fieldValues": {
      "nodes": [
        {},
        {},
        {},
        {
          "text": "Refine the contributor journey",
          "field": {
            "name": "Title"
          }
        },
        {
          "name": "User Experience",
          "field": {
            "name": "Category"
          }
        },
        {
          "name": "High",
          "field": {
            "name": "Effort"
          }
        },
        {
          "name": "Medium-high",
          "field": {
            "name": "Impact"
          }
        },
        {
          "name": "Done",
          "field": {
            "name": "Status"
          }
        }
      ]
    },
    "content": {
      "title": "Refine the contributor journey",
      "assignees": {
        "nodes": [
          {
            "login": "benjagm"
          }
        ]
      }
    }
  }
]

---

## File: data/tooling-data.schema.json

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "JSON Schema Tooling Data Document",
  "description": "This is a schema which represents the JSON Schema Tooling Data Document",
  "$defs": {
    "persons": {
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "description": "The persons name, should they wish to provide it",
            "type": "string"
          },
          "email": {
            "description": ""
          },
          "username": {
            "description": "The persons username on the platform where the user exists",
            "type": "string"
          },
          "platform": {
            "type": "string",
            "anyOf": [
              {
                "enum": ["github", "gitlab", "bitbucket"]
              },
              {
                "description": "A string value not yet included in the list of platforms"
              }
            ]
          },
          "additionalProperties": false
        },
        "additionalProperties": false
      }
    }
  },
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "name": {
        "description": "The name of the project",
        "type": "string"
      },
      "description": {
        "description": "A brief description of the project",
        "$comment": "If this is omitted and description is already defined on GitHub or GitLab for the repository, we will use that information.",
        "type": "string"
      },
      "toolingTypes": {
        "description": "The categories of tooling for the project",
        "type": "array",
        "uniqueItems": true,
        "items": {
          "description": "One of the categories of tooling of the project",
          "type": "string",
          "enum": [
            "validator",
            "annotations",
            "bundler",
            "hyper-schema",
            "benchmarks",
            "documentation",
            "LDO-utility",
            "code-to-schema",
            "data-to-schema",
            "model-to-schema",
            "schema-to-types",
            "schema-to-code",
            "schema-to-web-UI",
            "schema-to-data",
            "util-general-processing",
            "util-schema-to-schema",
            "util-draft-migration",
            "util-format-conversion",
            "util-testing",
            "editor",
            "editor-plugins",
            "schema-repository",
            "linter",
            "linter-plugins"
          ]
        }
      },
      "languages": {
        "description": "The language or languages a tool is built in. In the case of a validator, this will likely be the language it is written in. In the case of a conversion or transformation tool, these are the languages that are supported in some capacity.",
        "type": "array",
        "items": {
          "description": "Individual language name, from the list unless not included.",
          "type": "string",
          "anyOf": [
            {
              "enum": [
                [
                  "Common Lisp",
                  "Rust",
                  "Elm",
                  ".NET",
                  "PHP",
                  "Clojure",
                  "Helm",
                  "Python",
                  "XSD",
                  "Scala",
                  "Orderly",
                  "Kotlin",
                  "Elixir",
                  "RAML",
                  "Erlang",
                  "Java",
                  "Lua/LuaJIT",
                  "OpenAPI",
                  "Perl",
                  "TypeScript",
                  "Ruby",
                  "Objective-C",
                  "Swift",
                  "C#",
                  "Go",
                  "C++",
                  "JavaScript",
                  "Julia"
                ]
              ]
            },
            {
              "description": "A string value not yet included in the list of languages"
            }
          ]
        }
      },
      "environments": {
        "description": "The platforms or environments in which the tool or library is designed to operate. This field is optional and should be included when the tool or library is specific to a certain platform or environment.",
        "type": "array",
        "items": {
          "type": "string",
          "anyOf": [
            {
              "enum": [
                "Web (Online)",
                "GitHub Actions",
                "Command Line",
                "COM/ActiveX"
              ]
            },
            {
              "description": "A string value not yet included in the list of environments"
            }
          ]
        }
      },
      "dependsOnValidators": {
        "description": "Documents if the tool is the primary validator provider or depends on another tool",
        "type": "array",
        "items": {
          "description": "One of the tools that this tool depends upon",
          "$comment": "This should be the source URL. The source URL should already be known to the ecosystem repository in some way.",
          "type": "string",
          "format": "uri"
        }
      },
      "creators": {
        "description": "The creators or authors of the project",
        "$ref": "#/$defs/persons"
      },
      "maintainers": {
        "description": "The maintainers of the project",
        "$ref": "#/$defs/persons"
      },
      "license": {
        "description": "The license under which the project is distributed. SPDX expressions or a URL.",
        "$comment": "Schemastore package.json schema uses enum to assist in auto complete. Could be worth doing the same.",
        "type": "string"
      },
      "source": {
        "description": "The URL of the project's repository",
        "type": "string",
        "format": "uri"
      },
      "homepage": {
        "description": "The URL of the project's homepage",
        "type": "string",
        "format": "uri"
      },
      "documentation": {
        "$comment": "This is reserved for future use",
        "type": "object"
      },
      "supportedDialects": {
        "description": "The declared supported dialects of JSON Schema. This includes draft version identifiers.",
        "type": "object",
        "properties": {
          "draft": {
            "description": "An array of dialects of JSON Schema.",
            "type": "array",
            "items": {
              "enum": [
                "0",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "2019-09",
                "2020-12"
              ]
            }
          },
          "additional": {
            "description": "Additional Dialects that are supported beyond the ones defined by the JSON Schema project, such as the OpenAPI Dialect.",
            "type": "array",
            "items": {
              "description": "Individual JSON Schema Dialect items",
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "homepage": {
                  "type": "string",
                  "format": "uri"
                },
                "source": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "required": ["name", "source"],
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      },
      "toolingListingNotes": {
        "description": "Notes about the tooling which will appear in the tooling listing on the website.",
        "type": "string"
      },
      "compliance": {
        "description": "Details on what must be done to make the implementation the most compliant that it can be. This is displayed on the website with the tooling details",
        "type": "object",
        "properties": {
          "config": {
            "type": "object",
            "properties": {
              "docs": {
                "description": "A URL which links to the documentation which explains how to follow the given instructions.",
                "type": "string"
              },
              "instructions": {
                "description": "Instructions on how to make the implementation the most compliant.",
                "type": "string"
              }
            }
          }
        }
      },
      "landscape": {
        "description": "Additional information that should be used when generating the JSON Schema landscape diagram - https://github.com/json-schema-org/landscape",
        "type": "object",
        "properties": {
          "logo": {
            "description": "The filename of the logo to use for the JSON Schema landscape diagram - Must be included in the landscape repo under the logos directory, and in SVG format.",
            "type": "string"
          },
          "optOut": {
            "description": "Set this value to a boolean `true` value if you do not wish to be included in the JSON Schema Landscape. If you do, we would like to hear why.",
            "type": "boolean",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "lastUpdated": {
        "description": "The date when the tool was most recently updated. The date should be in the format YYYY-MM-DD, representing the year, month, and day of the update.",
        "type": "string",
        "format": "date"
      },
      "status": {
        "description": "Current status of the project, indicating its phase of development or maintenance.",
        "type": "string",
        "enum": ["active", "obsolete"]
      }
    },
    "required": ["name", "toolingTypes"],
    "additionalProperties": false
  }
}

---

## File: data/tooling-data.yaml

- name: JsonSchema.Net
  toolingTypes:
    ['validator', 'code-to-schema', 'schema-to-data', 'annotations', 'bundler']
  languages: ['.NET']
  maintainers:
    - name: 'Greg Dennis'
      username: 'gregsdennis'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/gregsdennis/json-everything'
  homepage: 'https://json-everything.net'
  supportedDialects:
    draft: ['6', '7', '2019-09', '2020-12']
  lastUpdated: '2022-08-31'

- name: Json.NET Schema
  toolingTypes: ['validator', 'code-to-schema']
  languages: ['.NET']
  maintainers:
    - name: 'James Newton-King'
      username: 'JamesNK'
      platform: 'github'
  license: 'AGPL-3.0-only'
  source: 'https://github.com/JamesNK/Newtonsoft.Json.Schema'
  homepage: 'https://www.newtonsoft.com/jsonschema'
  supportedDialects:
    draft: ['3', '4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2024-06-08'

- name: Corvus.JsonSchema
  toolingTypes: ['validator']
  languages: ['.NET']
  maintainers:
    - name: 'Matthew Adams'
      username: 'mwadams'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/corvus-dotnet/corvus.jsonschema'
  supportedDialects:
    draft: ['6', '7', '2019-09', '2020-12']
  lastUpdated: '2023-02-14'

- name: LateApexEarlySpeed.Json.Schema
  toolingTypes: ['validator', 'code-to-schema']
  languages: ['.NET']
  maintainers:
    - name: 'LateApexEarlySpeed'
      username: 'lateapexearlyspeed'
      platform: 'github'
  license: 'BSD-3-Clause'
  source: 'https://github.com/lateapexearlyspeed/Lateapexearlyspeed.JsonSchema'
  homepage: 'https://www.nuget.org/packages/Lateapexearlyspeed.Json.Schema'
  supportedDialects:
    draft: ['2020-12']
  lastUpdated: '2023-12-13'

- name: f5-json-schema
  toolingTypes: ['validator']
  languages: ['C++']
  maintainers:
    - name: 'Kirit Sælensminde'
      username: 'KayEss'
      platform: 'github'
  license: 'BSL-1.0'
  source: 'https://github.com/hotkit/json-schema'
  supportedDialects:
    draft: ['7']
  lastUpdated: '2022-08-31'

- name: JSON schema validation for JSON for Modern C++
  toolingTypes: ['validator']
  languages: ['C++']
  maintainers:
    - name: 'Patrick Boettcher'
      username: 'pboettch'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/pboettch/json-schema-validator'
  supportedDialects:
    draft: ['7']
  lastUpdated: '2022-08-31'

- name: Valijson
  toolingTypes: ['validator']
  languages: ['C++']
  maintainers:
    - name: 'Tristan Penman'
      username: 'tristanpenman'
      platform: 'github'
  license: 'BSD-2-Clause'
  source: 'https://github.com/tristanpenman/valijson'
  supportedDialects:
    draft: ['7']
  lastUpdated: '2022-08-31'

- name: jsoncons
  toolingTypes: ['validator']
  languages: ['C++']
  maintainers:
    - name: 'Daniel Parker'
      username: 'danielaparker'
      platform: 'github'
  license: 'BSL-1.0'
  source: 'https://github.com/danielaparker/jsoncons'
  homepage: 'https://danielaparker.github.io/jsoncons'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'Header-only library'
  lastUpdated: '2024-04-22'

- name: jinx
  toolingTypes: ['validator']
  languages: ['Clojure']
  maintainers:
    - name: 'Malcolm Sparks'
      username: 'malcolmsparks'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/juxt/jinx'
  supportedDialects:
    draft: ['7']
  lastUpdated: '2022-08-31'

- name: luposlip/json-schema
  toolingTypes: ['validator', 'data-to-schema']
  languages: ['Clojure']
  maintainers:
    - name: 'Henrik Mohr'
      username: 'luposlip'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/luposlip/json-schema'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: JSON Essentials for COM/ActiveX
  toolingTypes: ['validator']
  environments: ['COM/ActiveX']
  maintainers:
    - name: 'Alexander Stoyan'
  license: 'Proprietary'
  homepage: 'https://pinery.systems/json-essentials-com/index.html'
  supportedDialects:
    draft: ['7']
  toolingListingNotes: 'Language independent, includes JSON DOM parser, REST ready, 4 licensing options for free and business uses. For Windows platform only.'
  lastUpdated: '2022-08-31'

- name: json-schema (fisxoj)
  toolingTypes: ['validator']
  languages: ['Common Lisp']
  maintainers:
    - name: 'Matt Novenstern'
      username: 'fisxoj'
      platform: 'github'
  license: 'LGPL-2.1-only'
  source: 'https://github.com/fisxoj/json-schema'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09']
  compliance:
    config:
      docs: 'https://github.com/fisxoj/json-schema/blob/master/README.rst'
      instructions: |
        set `resolve-remote-references` to `nil`
  lastUpdated: '2022-08-31'

- name: Exonerate
  toolingTypes: ['validator']
  languages: ['Elixir']
  maintainers:
    - name: 'Isaac Yonemoto'
      username: 'ityonemo'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/E-xyza/Exonerate'
  homepage: 'https://hexdocs.pm/exonerate/Exonerate.html'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2023-04-04'

- name: JsonXema
  toolingTypes: ['validator']
  languages: ['Elixir']
  maintainers:
    - name: 'Marcus Kruse'
      username: 'NickNeck'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/hrzndhrn/json_xema'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: JeSSE
  toolingTypes: ['validator']
  languages: ['Erlang']
  maintainers:
    - name: 'Sergey Prokhorov'
      username: 'seriyps'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/for-GET/jesse'
  supportedDialects:
    draft: ['3', '4', '6']
  lastUpdated: '2022-08-31'

- name: santhosh-tekuri/jsonschema
  toolingTypes: ['validator']
  languages: ['Go']
  maintainers:
    - name: 'Santhosh Kumar Tekuri'
      username: 'santhosh-tekuri'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/santhosh-tekuri/jsonschema'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'Includes custom keywords, output formats'
  lastUpdated: '2022-08-31'

- name: jsonschema
  toolingTypes: ['validator']
  languages: ['Go']
  maintainers:
    - name: 'kaptinlin'
      username: 'kaptinlin'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/kaptinlin/jsonschema'
  supportedDialects:
    draft: ['2020-12']
  toolingListingNotes: 'Supports output formats, multilingual output'
  lastUpdated: '2024-05-07'

- name: qri-io/jsonschema
  toolingTypes: ['validator']
  languages: ['Go']
  maintainers:
    - name: "Brendan O'Brien"
      username: 'b5'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/qri-io/jsonschema'
  supportedDialects:
    draft: ['7', '2019-09']
  toolingListingNotes: 'Includes custom validator support, rich error returns'
  lastUpdated: '2022-08-31'

- name: gojsonschema
  toolingTypes: ['validator']
  languages: ['Go']
  maintainers:
    - name: 'xeipuuv'
      username: 'xeipuuv'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/xeipuuv/gojsonschema'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: Vert.x Json Schema
  toolingTypes: ['validator']
  languages: ['Java']
  maintainers:
    - name: 'Julien Viet'
      username: 'vietj'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/eclipse-vertx/vertx-json-schema'
  supportedDialects:
    draft: ['4', '7', '2019-09', '2020-12']
  toolingListingNotes: |
    Validator for Eclipse Vert.x project JSON types.
    Includes custom keywords support, custom dialect support, asynchronous validation
  lastUpdated: '2022-08-31'

- name: jsonschemafriend
  toolingTypes: ['validator']
  languages: ['Java']
  maintainers:
    - name: 'Andy Coates'
      username: 'big-andy-coates'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/jimblackler/jsonschemafriend'
  supportedDialects:
    draft: ['3', '4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2022-08-31'

- name: networknet/json-schema-validator
  toolingTypes: ['validator']
  languages: ['Java']
  maintainers:
    - name: 'Justin Tay'
      username: 'justin-tay'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/networknt/json-schema-validator'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'Support OpenAPI 3.0 with Jackson parser'
  compliance:
    config:
      docs: https://github.com/networknt/json-schema-validator/blob/master/doc/config.md
      instructions: 'set `handleNullableField` to `false`'
  lastUpdated: '2024-02-05'

- name: erosb/json-sKema
  toolingTypes: ['validator']
  languages: ['Java']
  maintainers:
    - name: 'Bence Eros'
      username: 'erosb'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/erosb/json-sKema'
  supportedDialects:
    draft: ['2020-12']
  toolingListingNotes: 'Successor of the everit-org/json-schema library'
  lastUpdated: '2024-09-21'

- name: Snow
  toolingTypes: ['validator']
  languages: ['Java']
  maintainers:
    - name: 'Shawn Silverman'
      username: 'ssilverman'
      platform: 'github'
  license: 'AGPL-3.0-only'
  source: 'https://github.com/ssilverman/snowy-json'
  supportedDialects:
    draft: ['6', '7', '2019-09']
  toolingListingNotes: 'Uses Maven for the project and Gson under the hood.'
  lastUpdated: '2022-08-31'

- name: everit-org/json-schema
  toolingTypes: ['validator']
  languages: ['Java']
  maintainers:
    - name: 'Bence Eros'
      username: 'erosb'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/everit-org/json-schema'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: Justify
  toolingTypes: ['validator']
  languages: ['Java']
  maintainers:
    - name: 'leadpony'
      username: 'leadpony'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/leadpony/justify'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: json-schema (dev.harrel)
  toolingTypes: ['validator']
  languages: ['Java']
  maintainers:
    - name: 'harrel56'
      username: 'harrel56'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/harrel56/json-schema'
  homepage: 'https://harrel.dev/json-schema'
  supportedDialects:
    draft: ['7', '2019-09', '2020-12']
  lastUpdated: '2024-08-14'

- name: Zuunr JSON
  toolingTypes: ['validator']
  languages: ['Java']
  maintainers:
    - name: 'Niklas Eldberger'
      username: 'niklas_eldberger'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://bitbucket.org/zuunr/json'
  supportedDialects:
    draft: ['2020-12']
  toolingListingNotes: 'Immutable JSON representation in Java + validation and filtering based on JSON Schema'
  lastUpdated: '2023-09-04'

- name: OpenAPI JSON Schema Generator
  toolingTypes:
    ['validator', 'code-to-schema', 'documentation', 'schema-to-code']
  languages: ['Java', 'Kotlin', 'Python']
  maintainers:
    - name: 'Justin Black'
      username: 'spacether'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/openapi-json-schema-tools/openapi-json-schema-generator'
  supportedDialects:
    draft: ['5', '2020-12']
  toolingListingNotes: 'Allows auto-generation of API client libraries (SDK generation) given an OpenAPI document. JSON schema validation run when validating schemas.'
  lastUpdated: '2024-05-20'

- name: '@hyperjump/json-schema'
  toolingTypes:
    ['validator', 'annotations', 'bundler', 'util-general-processing']
  languages: ['JavaScript']
  maintainers:
    - name: 'Jason Desrosiers'
      username: 'jdesrosiers'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/hyperjump-io/json-schema'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'Built for Node.js and browsers. Includes support for custom vocabularies.'
  lastUpdated: '2024-09-04'

- name: '@exodus/schemasafe'
  toolingTypes: ['validator']
  languages: ['JavaScript']
  maintainers:
    - name: 'Nikita Skovoroda'
      username: 'ChALkeR'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/ExodusMovement/schemasafe'
  homepage: 'https://npmjs.com/@exodus/schemasafe'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes:
    'For Node.js and browsers, with security and speed being the main focus. Pre-compiles schemas to JS functions.
    [Supports OpenAPI `discriminator`](https://github.com/ExodusMovement/schemasafe/blob/master/doc/Discriminator-support.md).
    Default behavior is hardened with additional schema coherence validation.'
  lastUpdated: '2023-08-29'

- name: ajv
  toolingTypes: ['validator']
  languages: ['JavaScript']
  maintainers:
    - name: 'Evgeny Poberezkin'
      username: 'epoberezkin'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/ajv-validator/ajv'
  homepage: 'https://ajv.js.org/'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'for Node.js and browsers - supports [user-defined keywords](https://github.com/ajv-validator/ajv/blob/master/docs/keywords.md) and [$data reference](https://github.com/json-schema-org/json-schema-spec/issues/51)'
  compliance:
    config:
      docs: https://ajv.js.org/strict-mode.html
      instructions: 'set option `strict: false`'
  lastUpdated: '2022-08-31'

- name: '@cfworker/json-schema'
  toolingTypes: ['validator']
  languages: ['JavaScript']
  maintainers:
    - name: 'Jeremy Danyow'
      username: 'jdanyow'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/cfworker/cfworker/blob/master/packages/json-schema/README.md'
  homepage: 'https://cfworker.dev'
  supportedDialects:
    draft: ['7', '4', '2019-09', '2020-12']
  toolingListingNotes: 'Built for Cloudflare workers, browsers, and Node.js'
  lastUpdated: '2023-02-28'

- name: JSON Schema Library
  toolingTypes: ['validator']
  languages: ['JavaScript']
  maintainers:
    - name: 'Sascha Goldhofer'
      username: 'sagold'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/sagold/json-schema-library'
  supportedDialects:
    draft: ['7', '6', '4', '2019-09']
  toolingListingNotes: 'Built for Node.js and browsers. Customizable json-validator and json-schema utilities for traversal, data generation and validation'
  lastUpdated: '2022-08-31'

- name: djv
  toolingTypes: ['validator']
  languages: ['JavaScript']
  maintainers:
    - name: 'Alex Korzhikov'
      username: 'korzio'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/korzio/djv'
  homepage: 'https://www.npmjs.com/package/djv'
  supportedDialects:
    draft: ['6', '4']
  toolingListingNotes: 'for Node.js and browsers'
  lastUpdated: '2022-08-31'

- name: vue-vuelidate-jsonschema
  toolingTypes: ['validator']
  languages: ['JavaScript']
  maintainers:
    - name: 'Martin Hansen'
      username: 'mokkabonna'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/mokkabonna/vue-vuelidate-jsonschema'
  supportedDialects:
    draft: ['6']
  lastUpdated: '2022-08-31'

- name: jema.js
  toolingTypes: ['validator']
  languages: ['JavaScript']
  maintainers:
    - name: 'Tobias Buschor'
      username: 'nuxodin'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/nuxodin/jema.js'
  supportedDialects:
    draft: ['2020-12']
  lastUpdated: '2023-03-28'

- name: Medeia-validator
  toolingTypes: ['validator']
  languages: ['Kotlin', 'Java']
  maintainers:
    - name: 'Erwin Bolwidt'
      username: 'ebolwidt'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/worldturner/medeia-validator'
  supportedDialects:
    draft: ['4', '6', '7']
  toolingListingNotes: 'Streaming validator for Kotlin and Java clients; works with Jackson and Gson'
  lastUpdated: '2022-08-31'

- name: json-kotlin-schema
  toolingTypes: ['validator']
  languages: ['Kotlin']
  maintainers:
    - name: 'Peter Wall'
      username: 'pwall567'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/pwall567/json-kotlin-schema'
  supportedDialects:
    draft: ['7', '2019-09']
  toolingListingNotes: |
    Kotlin implementation of JSON Schema.
    (Currently supports most of Draft 7; see the README for details.
    Full compliance with Draft 7 and later drafts in progress.)
  lastUpdated: '2022-08-31'

- name: json-schema-validator
  toolingTypes: ['validator']
  languages: ['Kotlin']
  maintainers:
    - name: 'Oleg Smirnov'
      username: 'OptimumCode'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/OptimumCode/json-schema-validator'
  homepage: 'https://github.com/Kotlin/kotlinx.serialization'
  supportedDialects:
    draft: ['7']
  toolingListingNotes: |
    Kotlin Muliplatform implementation of JSON schema to validate the JsonElement from kotlinx.serialization-json.
    The library is 'work in progress' and new features/drafts will be added in the future.
  lastUpdated: '2023-08-01'

- name: JSON::Schema::Modern
  toolingTypes: ['validator']
  languages: ['Perl']
  maintainers:
    - name: 'Karen Etheridge'
      username: 'karenetheridge'
      platform: 'github'
  license: 'GPL-1.0+ OR Artistic-1.0'
  source: 'https://github.com/karenetheridge/JSON-Schema-Modern'
  homepage: 'https://metacpan.org/dist/JSON-Schema-Modern'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2024-11-08'

- name: JSON::Schema::Tiny
  toolingTypes: ['validator']
  languages: ['Perl']
  maintainers:
    - name: 'Karen Etheridge'
      username: 'karenetheridge'
      platform: 'github'
  license: 'GPL-1.0+ OR Artistic-1.0'
  source: 'https://github.com/karenetheridge/JSON-Schema-Tiny'
  homepage: 'https://metacpan.org/dist/JSON-Schema-Tiny'
  supportedDialects:
    draft: ['7', '2019-09', '2020-12']
  lastUpdated: '2022-08-31'

- name: JSON::Validator
  toolingTypes: ['validator']
  languages: ['Perl']
  maintainers:
    - name: 'Jan Henning Thorsen'
      username: 'jhthorsen'
      platform: 'github'
  license: 'Artistic-2.0'
  source: 'https://github.com/mojolicious/json-validator'
  homepage: 'https://metacpan.org/dist/JSON-Validator'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09']
  lastUpdated: '2022-08-31'

- name: JSONSchema::Validator
  toolingTypes: ['validator']
  languages: ['Perl']
  maintainers:
    - name: 'Alexey Stavrov'
      username: 'Logioniz'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/skbkontur/perl-jsonschema-validator'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: Opis Json Schema
  toolingTypes: ['validator']
  languages: ['PHP']
  maintainers:
    - name: 'Sorin Sarca'
      username: 'sorinsarca'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/opis/json-schema'
  homepage: 'https://github.com/opis/json-schema'
  supportedDialects:
    draft: ['6', '7', '2019-09', '2020-12']
  compliance:
    config:
      docs: https://opis.io/json-schema/2.x/php-loader.html#parser-options
      instructions: 'set several options to their "vanilla" values'
  lastUpdated: '2022-08-31'

- name: Swaggest Json Schema
  toolingTypes: ['validator']
  languages: ['PHP']
  maintainers:
    - name: 'Viacheslav Poturaev'
      username: 'vearutop'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/swaggest/php-json-schema'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: jschon
  toolingTypes: ['validator']
  languages: ['Python']
  maintainers:
    - name: 'Mark Joseph'
      username: 'marksparkza'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/marksparkza/jschon'
  homepage: 'https://jschon.readthedocs.io/'
  supportedDialects:
    draft: ['2019-09', '2020-12']
  lastUpdated: '2022-08-31'

- name: jsonschema
  toolingTypes: ['validator']
  languages: ['Python']
  maintainers:
    - name: 'Julian Berman'
      username: 'Julian'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/python-jsonschema/jsonschema'
  homepage: 'https://python-jsonschema.readthedocs.io/'
  supportedDialects:
    draft: ['3', '4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2022-11-09'

- name: fastjsonschema
  toolingTypes: ['validator']
  languages: ['Python']
  maintainers:
    - name: 'Michal Hořejšek'
      username: 'horejsek'
      platform: 'github'
  license: 'BSD-3-Clause'
  source: 'https://github.com/horejsek/python-fastjsonschema'
  homepage: 'https://horejsek.github.io/python-fastjsonschema/'
  supportedDialects:
    draft: ['4', '6', '7']
  toolingListingNotes: 'Great performance thanks to code generation.'
  lastUpdated: '2022-08-31'

- name: jsonschema-rs (Python)
  toolingTypes: ['validator']
  languages: ['Python']
  dependsOnValidators: ['https://github.com/Stranger6667/jsonschema-rs']
  maintainers:
    - name: 'Dmitry Dygalo'
      username: 'Stranger6667'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/Stranger6667/jsonschema-rs/tree/master/bindings/python'
  supportedDialects:
    draft: ['4', '6', '7']
  toolingListingNotes: "Python bindings to Rust's jsonschema crate"
  lastUpdated: '2022-08-31'

- name: jsonschema-rs
  toolingTypes: ['validator']
  languages: ['Rust']
  maintainers:
    - name: 'Dmitry Dygalo'
      username: 'Stranger6667'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/Stranger6667/jsonschema-rs'
  homepage: 'https://docs.rs/jsonschema'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'Fast due to compiling schema into a validation tree; 2019-09 and 2020-12 are partially supported'
  lastUpdated: '2022-08-31'

- name: JSONSchemer
  toolingTypes: ['validator']
  languages: ['Ruby']
  maintainers:
    - name: 'David Harsha'
      username: 'davishmcclurg'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/davishmcclurg/json_schemer'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2023-08-20'

- name: JSI
  toolingTypes: ['validator']
  languages: ['Ruby']
  maintainers:
    - name: 'Ethan'
      username: 'notEthan'
      platform: 'github'
  license: 'AGPL-3.0-only'
  source: 'https://github.com/notEthan/jsi/'
  homepage: 'https://rubydoc.info/gems/jsi'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: boon
  toolingTypes: ['validator']
  languages: ['Rust']
  maintainers:
    - name: 'Santhosh Tekuri'
      username: 'santhosh-tekuri'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/santhosh-tekuri/boon'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2023-02-22'

- name: Reactive Core Circe JSON Validator
  toolingTypes: ['validator']
  languages: ['Scala']
  maintainers:
    - name: 'Norbert Schultz'
      username: 'nob13'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/reactivecore/rc-circe-json-schema'
  supportedDialects:
    draft: ['2019-09', '2020-12']
  toolingListingNotes: 'Based on Circe-Library -Early state and API may not be stable. Not yet produciton ready.'
  lastUpdated: '2022-08-31'

- name: DSJSONSchemaValidation
  toolingTypes: ['validator']
  languages: ['Objective-C']
  maintainers:
    - name: 'Andrei Podkovyrin'
      username: 'podkovyrin'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/dashevo/JSONSchemaValidation'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: lua-resty-jsonschema
  toolingTypes: ['validator']
  languages: ['Lua/LuaJIT']
  maintainers:
    - name: 'YuanSheng Wang'
      username: 'membphis'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/iresty/lua-resty-jsonschema'
  homepage: 'https://www.apiseven.com/'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: json-schema.hyperjump.io
  toolingTypes: ['validator']
  environments: ['Web (Online)']
  dependsOnValidators: ['https://github.com/hyperjump-io/json-schema']
  maintainers:
    - name: 'Jason Desrosiers'
      username: 'jdesrosiers'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/hyperjump-io/json-schema.hyperjump.io'
  homepage: 'https://json-schema.hyperjump.io'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'Supports multiple schemas and multiple instances; client-side validation'
  lastUpdated: '2022-08-31'

- name: json-everything
  toolingTypes: ['validator']
  environments: ['Web (Online)']
  dependsOnValidators: ['https://github.com/gregsdennis/json-everything']
  maintainers:
    - name: 'Greg Dennis'
      username: 'gregsdennis'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/gregsdennis/json-everything'
  homepage: 'https://json-everything.net/json-schema'
  supportedDialects:
    draft: ['6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'Powered by JsonSchema.Net in Blazor WASM for client-side validation'
  landscape:
    logo: 'json-everything.svg'
  lastUpdated: '2022-08-31'

- name: jschon.dev
  toolingTypes: ['validator']
  environments: ['Web (Online)']
  dependsOnValidators: ['https://github.com/marksparkza/jschon']
  maintainers:
    - name: 'Mark Joseph'
      username: 'marksparkza'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/marksparkza/jschon.dev'
  homepage: 'https://jschon.dev/'
  supportedDialects:
    draft: ['2019-09', '2020-12']
  lastUpdated: '2022-08-31'

- name: JSON Schema Validator
  toolingTypes: ['validator']
  environments: ['Web (Online)']
  dependsOnValidators: ['https://github.com/JamesNK/Newtonsoft.Json.Schema']
  maintainers:
    - name: 'James Newton-King'
      username: 'JamesNK'
      platform: 'github'
  license: 'AGPL-3.0-only'
  source: 'https://github.com/JamesNK/Newtonsoft.Json.Schema?tab=License-1-ov-file'
  homepage: 'https://www.jsonschemavalidator.net/'
  supportedDialects:
    draft: ['3', '4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'Server-side validation'
  lastUpdated: '2024-05-29'

- name: jsonschema.dev
  toolingTypes: ['validator']
  environments: ['Web (Online)']
  dependsOnValidators: ['https://github.com/ajv-validator/ajv']
  maintainers:
    - name: 'Ben Hutton'
      username: 'Relequestual'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/Relequestual/json-schema-dev'
  homepage: 'https://jsonschema.dev'
  supportedDialects:
    draft: ['7']
  toolingListingNotes: 'Client-side validation'
  lastUpdated: '2022-08-31'

- name: JSON Schema Lint
  toolingTypes: ['validator']
  environments: ['Web (Online)']
  dependsOnValidators: ['https://github.com/ajv-validator/ajv']
  maintainers:
    - name: 'Nick Maynard'
      username: 'nickcmaynard'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/nickcmaynard/jsonschemalint'
  homepage: 'http://jsonschemalint.com/'
  supportedDialects:
    draft: ['1', '2', '3', '4', '6', '7']
  toolingListingNotes: 'Uses JSV for draft-03 and earlier'
  lastUpdated: '2022-08-31'

- name: ExtendsClass's JSON Schema Validator
  toolingTypes: ['validator']
  environments: ['Web (Online)']
  dependsOnValidators: ['https://github.com/ajv-validator/ajv']
  maintainers:
    - name: 'Cyril'
      username: 'cyrilbois'
      platform: 'github'
  license: 'Proprietary'
  homepage: 'https://extendsclass.com/json-schema-validator.html'
  supportedDialects:
    draft: ['7']
  lastUpdated: '2022-08-31'

- name: valbuddy
  toolingTypes: ['validator']
  environments: ['Command Line']
  maintainers:
    - name: 'Clemens Uhlenhut'
      username: 'Clemens-U'
      platform: 'github'
  license: 'Proprietary'
  source: 'https://github.com/Clemens-U/jsonbuddy'
  homepage: 'https://www.json-buddy.com/json-validator-command-line-tool.htm'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: ajv-cli
  toolingTypes: ['validator']
  environments: ['Command Line']
  dependsOnValidators: ['https://github.com/ajv-validator/ajv']
  maintainers:
    - name: 'Evgeny Poberezkin'
      username: 'epoberezkin'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/ajv-validator/ajv-cli'
  homepage: 'https://www.npmjs.com/package/ajv-cli'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  compliance:
    config:
      docs: https://github.com/ajv-validator/ajv-cli#ajv-options
      instructions: 'pass `--strict=false`'
  lastUpdated: '2022-08-31'

- name: yajsv
  toolingTypes: ['validator']
  environments: ['Command Line']
  dependsOnValidators: ['https://github.com/xeipuuv/gojsonschema']
  maintainers:
    - name: 'Neil Pankey'
      username: 'neilpa'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/neilpa/yajsv'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2022-08-31'

- name: Polyglottal JSON Schema Validator
  toolingTypes: ['validator']
  environments: ['Command Line']
  dependsOnValidators: ['https://github.com/ajv-validator/ajv']
  maintainers:
    - name: 'Adam Voss'
      username: 'adamvoss'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/json-schema-everywhere/pajv'
  homepage: 'https://www.npmjs.com/package/pajv'
  supportedDialects:
    draft: ['4', '6']
  toolingListingNotes: 'can be used with YAML and many other formats besides JSON'
  lastUpdated: '2022-08-31'

- name: Sourcemeta JSON Schema CLI
  toolingTypes:
    [
      'validator',
      'util-general-processing',
      'util-testing',
      'linter',
      'bundler',
    ]
  environments: ['Command Line']
  dependsOnValidators: ['https://github.com/sourcemeta/blaze']
  maintainers:
    - name: 'Juan Cruz Viotti'
      username: 'jviotti'
      platform: 'github'
  license: 'AGPL-3.0'
  source: 'https://github.com/sourcemeta/jsonschema'
  supportedDialects:
    draft: ['0', '1', '2', '3', '4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'Supports formatting, linting, bundling, testing, validating, and more. As an exception, validation is not supported on Draft 3 and older'
  lastUpdated: '2024-08-08'

- name: Validate JSON Action
  toolingTypes: ['validator']
  environments: ['Github Actions']
  dependsOnValidators: ['https://github.com/ajv-validator/ajv']
  maintainers:
    - name: 'Or Rosenblatt'
      username: 'OrRosenblatt'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/OrRosenblatt/validate-json-action'
  supportedDialects:
    draft: ['2019-09', '2020-12']
  lastUpdated: '2020-04-12'

- name: json-schema-benchmark
  toolingTypes: ['benchmarks']
  languages: ['JavaScript']
  maintainers:
    - name: 'Allan Ebdrup'
      username: 'ebdrup'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/ebdrup/json-schema-benchmark'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2020-11-30'
  status: 'obsolete'

- name: php-json-schema-bench
  toolingTypes: ['benchmarks']
  languages: ['PHP']
  maintainers:
    - name: 'Viacheslav Poturaev'
      username: 'vearutop'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/swaggest/php-json-schema-bench'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2020-01-19'

- name: json-schema-validation-comparison
  toolingTypes: ['benchmarks']
  languages: ['Java', 'Kotlin', 'Scala']
  maintainers:
    - name: 'Andy Coates'
      username: 'big-andy-coates'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/creek-service/json-schema-validation-comparison'
  homepage: 'https://www.creekservice.org/json-schema-validation-comparison/'
  supportedDialects:
    draft: ['3', '4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2024-03-18'

- name: '@cloudflare/doca'
  toolingTypes: ['documentation']
  languages: ['JavaScript']
  maintainers:
    - name: 'Henry Andrews'
      username: 'handrews'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/doca'
  supportedDialects:
    draft: ['4', '6', '7']
  toolingListingNotes: 'UI forthcoming'
  lastUpdated: '2018-09-24'

- name: '@adobe/jsonschema2md'
  toolingTypes: ['documentation']
  languages: ['JavaScript']
  maintainers:
    - name: 'Tobias Bocanegra'
      username: 'tripodsan'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/adobe/jsonschema2md'
  supportedDialects:
    draft: ['2019-09']
  toolingListingNotes: 'Partial support for JSON Schema 2019-09'
  lastUpdated: '2024-06-04'

- name: FastAPI
  toolingTypes: ['documentation']
  languages: ['Python']
  maintainers:
    - name: 'Sebastián Ramírez'
      username: 'tiangolo'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/tiangolo/fastapi'
  homepage: 'https://fastapi.tiangolo.com/'
  lastUpdated: '2024-06-06'

- name: '@cloudflare/json-hyper-schema'
  toolingTypes: ['LDO-utility']
  languages: ['JavaScript']
  maintainers:
    - name: 'Henry Andrews'
      username: 'handrews'
      platform: 'github'
  license: 'BSD-3-Clause'
  source: 'https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-hyper-schema'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2018-09-24'

- name: NJsonSchema
  toolingTypes: ['code-to-schema']
  languages: ['.NET']
  maintainers:
    - name: 'Rico Suter'
      username: 'RicoSuter'
      platform: 'github'
  license: 'Ms-PL'
  source: 'https://github.com/RSuter/NJsonSchema/'
  homepage: 'http://njsonschema.org/'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2024-03-28'

- name: jsonschema
  toolingTypes: ['code-to-schema']
  languages: ['Go']
  maintainers:
    - name: 'Sam Lown'
      username: 'samlown'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/invopop/jsonschema'
  supportedDialects:
    draft: ['2020-12']
  lastUpdated: '2024-02-19'

- name: Liform
  toolingTypes: ['code-to-schema']
  languages: ['PHP']
  maintainers:
    - name: 'Tac Tacelosky'
      username: 'tacman'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/Limenius/liform'
  lastUpdated: '2024-05-23'

- name: typescript-json-schema
  toolingTypes: ['code-to-schema']
  languages: ['TypeScript']
  maintainers:
    - name: 'Yousef'
      username: 'YousefED'
      platform: 'github'
  license: 'BSD-3-Clause'
  source: 'https://github.com/YousefED/typescript-json-schema'
  lastUpdated: '2024-05-30'

- name: Pydantic
  toolingTypes: ['code-to-schema']
  languages: ['Python']
  maintainers:
    - name: 'Samuel Colvin'
      username: 'samuelcolvin'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/pydantic/pydantic'
  homepage: 'https://pydantic-docs.helpmanual.io/'
  lastUpdated: '2020-06-05'

- name: msgspec
  toolingTypes: ['code-to-schema']
  languages: ['Python']
  maintainers:
    - name: 'Jim Crist-Harif'
      username: 'jcrist'
      platform: 'github'
  license: 'BSD-3-Clause'
  source: 'https://github.com/jcrist/msgspec'
  homepage: 'https://jcristharif.com/msgspec/'
  lastUpdated: '2024-05-28'

- name: mashumaro
  toolingTypes: ['code-to-schema']
  languages: ['Python']
  maintainers:
    - name: 'Alexander Tikhonov'
      username: 'Fatal1ty'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/Fatal1ty/mashumaro'
  lastUpdated: '2024-04-30'

- name: drf-jsonschema-serializer
  toolingTypes: ['code-to-schema']
  languages: ['Python']
  maintainers:
    - name: 'Sergei Maertens'
      username: 'sergei-maertens'
      platform: 'github'
  license: 'BSD-3-Clause'
  source: 'https://github.com/maykinmedia/drf-jsonschema-serializer'
  lastUpdated: '2024-02-21'

- name: jsonschema-generator
  toolingTypes: ['code-to-schema']
  languages: ['Java']
  maintainers:
    - name: 'Carsten Wickner'
      username: 'CarstenWickner'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/victools/jsonschema-generator'
  homepage: 'https://victools.github.io/jsonschema-generator'
  supportedDialects:
    draft: ['6', '7', '2019-09', '2020-12']
  lastUpdated: '2024-03-29'

- name: scala-jsonschema
  toolingTypes: ['code-to-schema']
  languages: ['Scala']
  maintainers:
    - name: 'Andriy Onyshchuk'
      username: 'andyglow'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/andyglow/scala-jsonschema'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2024-04-05'

- name: Shale
  toolingTypes: ['code-to-schema', 'schema-to-code']
  languages: ['Ruby']
  maintainers:
    - name: 'Kamil Giszczak'
      username: 'kgiszczak'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/kgiszczak/shale'
  homepage: 'https://shalerb.org/'
  supportedDialects:
    draft: ['2020-12']
  lastUpdated: '2024-05-17'

- name: Schemars
  toolingTypes: ['code-to-schema']
  languages: ['Rust']
  maintainers:
    - name: 'Graham Esau'
      username: 'GREsau'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/GREsau/schemars'
  homepage: 'https://graham.cool/schemars/'
  supportedDialects:
    draft: ['7']
  lastUpdated: '2024-06-05'

- name: json-schema-inferrer
  toolingTypes: ['data-to-schema']
  languages: ['Java']
  maintainers:
    - name: 'slisaasquatch'
      username: 'slisaasquatch'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/saasquatch/json-schema-inferrer'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2024-01-05'

- name: Schema Guru
  toolingTypes: ['data-to-schema']
  languages: ['Scala']
  maintainers:
    - name: 'Anton Parkhomenko'
      username: 'chuwy'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/snowplow/schema-guru'
  homepage: 'http://snowplowanalytics.com/'
  supportedDialects:
    draft: ['6', '7', '2019-09', '2020-12']
  lastUpdated: '2016-05-14'

- name: JSONoid
  toolingTypes: ['data-to-schema']
  languages: ['Scala']
  maintainers:
    - name: 'Michael Mior'
      username: 'michaelmior'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/michaelmior/jsonoid-discovery/'
  homepage: 'https://dataunitylab.github.io/jsonoid-discovery/'
  supportedDialects:
    draft: ['2020-12']
  lastUpdated: '2024-05-20'

- name: jsonschema.net
  toolingTypes: ['data-to-schema']
  environments: ['Web (Online)']
  maintainers:
    - name: 'Jack Wootton'
      username: 'jackwootton'
      platform: 'github'
  license: 'Proprietary'
  source: 'https://github.com/jsonsystems/public'
  homepage: 'https://www.jsonschema.net/'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09']
  lastUpdated: '2022-04-25'

- name: Liquid Online Tools
  toolingTypes: ['data-to-schema']
  environments: ['Web (Online)']
  license: 'Proprietary'
  homepage: 'https://www.liquid-technologies.com/online-json-to-schema-converter'
  supportedDialects:
    draft: ['4']

- name: quicktype.io
  toolingTypes: ['data-to-schema', 'schema-to-code']
  languages: ['TypeScript', 'C++', 'Go', 'Java', 'C#', 'Swift', 'JavaScript']
  environments: ['Web (Online)']
  maintainers:
    - name: 'Sean'
      username: 'inferrinizzard'
      platform: 'github'
  license: 'Proprietary'
  source: 'https://github.com/glideapps/quicktype'
  homepage: 'https://app.quicktype.io/#l=schema'
  supportedDialects:
    draft: ['6']
  lastUpdated: '2024-05-31'

- name: JSON Toolkit
  toolingTypes: ['util-general-processing']
  languages: ['C++']
  maintainers:
    - name: 'Juan Cruz Viotti'
      username: 'jviotti'
      platform: 'github'
  license: 'AGPL-3.0 and Commercial'
  source: 'https://github.com/sourcemeta/jsontoolkit'
  supportedDialects:
    draft: ['0', '1', '2', '3', '4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'Comes with its own JSON parser'
  lastUpdated: '2024-10-15'

- name: Blaze
  toolingTypes: ['validator']
  languages: ['C++']
  maintainers:
    - name: 'Juan Cruz Viotti'
      username: 'jviotti'
      platform: 'github'
  license: 'AGPL-3.0 and Commercial'
  source: 'https://github.com/sourcemeta/blaze'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2024-10-15'

- name: cypress-ajv-schema-validator
  toolingTypes: ['validator', 'util-testing']
  languages: ['Javascript']
  maintainers:
    - name: 'Sebastian Clavijo Suero'
      username: 'sclavijosuero'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/sclavijosuero/cypress-ajv-schema-validator'
  homepage: 'https://github.com/sclavijosuero/cypress-ajv-schema-validator/blob/main/README.md'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  toolingListingNotes: 'It uses the Ajv JSON Schema Validator as its core engine.'
  lastUpdated: '2024-07-03'
  dependsOnValidators: ['https://github.com/ajv-validator/ajv']

- name: Dataspecer
  toolingTypes: ['model-to-schema']
  environments: ['Web (Online)']
  maintainers:
    - name: 'anastasiaakhv'
      username: 'anastasiaakhv'
      platform: 'github'
  license: 'Proprietary'
  source: 'https://github.com/mff-uk/dataspecer'
  homepage: 'https://dataspecer.com'
  supportedDialects:
    draft: ['2020-12']
  lastUpdated: '2024-06-02'

- name: json-schema-to-ts
  toolingTypes: ['schema-to-types']
  languages: ['TypeScript']
  maintainers:
    - name: 'Thomas Aribart'
      username: 'ThomasAribart'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/ThomasAribart/json-schema-to-ts'

- name: json-schema-to-typescript
  toolingTypes: ['schema-to-types']
  languages: ['TypeScript']
  maintainers:
    - name: 'Boris Cherny'
      username: 'bcherny'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/bcherny/json-schema-to-typescript'

- name: Corvus.JsonSchema
  toolingTypes: ['schema-to-code']
  languages: ['.NET']
  license: 'Apache-2.0'
  homepage: 'https://www.nuget.org/packages/Corvus.Json.JsonSchema.TypeGeneratorTool/'
  supportedDialects:
    draft: ['6', '7', '2019-09', '2020-12']

- name: json-schema-to-elm
  toolingTypes: ['schema-to-code']
  languages: ['Elm']
  license: 'MIT'
  source: 'https://github.com/dragonwasrobot/json-schema-to-elm'
  supportedDialects:
    draft: ['7']

- name: go-jsonschema
  toolingTypes: ['schema-to-code']
  languages: ['Go']
  maintainers:
    - name: 'Simon Ser'
      username: 'emersion'
      platform: 'github'
  license: 'MIT'
  source: 'https://git.sr.ht/~emersion/go-jsonschema'
  supportedDialects:
    draft: ['2020-12']

- name: protoc-gen-jsonschema
  toolingTypes: ['schema-to-code']
  languages: ['Go']
  maintainers:
    - name: 'chrusty'
      username: 'chrusty'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/chrusty/protoc-gen-jsonschema'

- name: jsonCodeGen
  toolingTypes: ['schema-to-code']
  languages: ['Java']
  license: 'MIT'
  source: 'https://github.com/schlothauer-wauer/jsoncodegen'

- name: jsonschema2pojo
  toolingTypes: ['schema-to-code']
  languages: ['Java']
  maintainers:
    - name: 'Joe Littlejohn'
      username: 'joelittlejohn'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/joelittlejohn/jsonschema2pojo'
  supportedDialects:
    draft: ['7']

- name: jsonschematypes
  toolingTypes: ['schema-to-code']
  languages: ['Java', 'TypeScript']
  maintainers:
    - name: 'Jim Blackler'
      username: 'jimblackler'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/jimblackler/jsonschematypes'
  supportedDialects:
    draft: ['3', '4', '6', '7', '2019-09']

- name: json-kotlin-schema-codegen
  toolingTypes: ['schema-to-code']
  languages: ['Kotlin']
  maintainers:
    - name: 'Peter Wall'
      username: 'pwall567'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/pwall567/json-kotlin-schema-codegen'

- name: php-code-builder
  toolingTypes: ['schema-to-code']
  languages: ['PHP']
  license: 'MIT'
  source: 'https://github.com/swaggest/php-code-builder'
  supportedDialects:
    draft: ['7']

- name: yacg
  toolingTypes: ['schema-to-code']
  languages: ['Python']
  license: 'MIT'
  source: 'https://github.com/OkieOth/yacg'

- name: statham
  toolingTypes: ['schema-to-code']
  languages: ['Python']
  maintainers:
    - name: 'Jack Smith'
      username: 'jacksmith15'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/jacksmith15/statham-schema'

- name: schemafy
  toolingTypes: ['schema-to-code']
  languages: ['Rust']
  maintainers:
    - name: 'Markus Westerlind'
      username: 'Marwes'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/Marwes/schemafy'
  supportedDialects:
    draft: ['4']

- name: json-schema-to-case-class
  toolingTypes: ['schema-to-code']
  languages: ['Scala']
  maintainers:
    - name: 'Chaitanya Chandurkar'
      username: 'cchandurkar'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/cchandurkar/json-schema-to-case-class'
  homepage: 'https://cchandurkar.github.io/json-schema-to-case-class'
  supportedDialects:
    draft: ['3', '4', '6', '7', '2019-09']

- name: Alpaca Forms
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Michael Whitman'
      username: 'mibewh'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/gitana/alpaca'
  homepage: 'http://www.alpacajs.org/'
  lastUpdated: '2023-11-29'

- name: Angular Schema Form
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Marcel J Bennett'
      username: 'Anthropic'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/json-schema-form/angular-schema-form'
  homepage: 'https://json-schema-form.github.io/angular-schema-form'
  lastUpdated: '2018-01-24'

- name: Ngx Schema Form
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Eric BREHAULT'
      username: 'ebrehault'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/makinacorpus/angular2-schema-form'
  lastUpdated: '2024-05-23'

- name: AJSF (Angular JSON Schema Form)
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Hamza Hamidi'
      username: 'hamzahamidi'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/hamzahamidi/ajsf'
  homepage: 'https://hamzahamidi.github.io/ajsf'
  lastUpdated: '2022-08-27'

- name: Stoplight JSON Schema Tree
  toolingTypes: ['schema-to-web-UI']
  languages: ['Typescript']
  maintainers:
    - name: 'Stoplight'
      username: 'stoplightio'
      platform: 'github'
  license: 'Apache-2.0'
  supportedDialects:
    draft: ['4']
  source: 'https://github.com/stoplightio/json-schema-tree'
  lastUpdated: '2024-01-23'

- name: Stoplight JSON Schema Viewer
  toolingTypes: ['schema-to-web-UI']
  languages: ['Typescript']
  maintainers:
    - name: 'Stoplight'
      username: 'stoplightio'
      platform: 'github'
  license: 'Apache-2.0'
  supportedDialects:
    draft: ['4']
  source: 'https://github.com/stoplightio/json-schema-viewer'
  lastUpdated: '2024-06-17'

- name: Dashjoin JSON Schema Form
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Andreas Eberhart'
      username: 'aeberhart'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/dashjoin/json-schema-form'
  homepage: 'https://dashjoin.github.io/'
  supportedDialects:
    draft: ['6']
  lastUpdated: '2024-05-14'

- name: JSON Editor
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'gbisurgi'
      username: 'gbisurgi'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/json-editor/json-editor'
  supportedDialects:
    draft: ['3', '4']
  lastUpdated: '2024-05-17'

- name: JSON Form (joshfire)
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Cyril Chapellier'
      username: 'tchapi'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/jsonform/jsonform'
  lastUpdated: '2024-05-17'

- name: Json Forms (brutusin)
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Ignacio del Valle Alles'
      username: 'idelvall'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/brutusin/json-forms'
  lastUpdated: '2018-11-05'

- name: json-schema-form (Remote.com)
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Sandrina Pereira'
      username: 'sandrina-p'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/remoteoss/json-schema-form'
  homepage: 'https://json-schema-form.vercel.app/'
  lastUpdated: '2024-03-26'

- name: JSON Schema Form Element
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Julian Cataldo'
      username: 'JulianCataldo'
      platform: 'github'
  license: 'ISC'
  source: 'https://github.com/json-schema-form-element/jsfe'
  homepage: 'https://jsfe.js.org'
  lastUpdated: '2023-12-07'

- name: JSONForms (jsonforms.io)
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Lucas Koehler'
      username: 'lucas-koehler'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/eclipsesource/jsonforms'
  homepage: 'https://jsonforms.io/'
  lastUpdated: '2024-05-28'

- name: Liform-React
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Nacho Martín'
      username: 'nacmartin'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/Limenius/liform-react'
  homepage: 'https://limenius.github.io/liform-react/'
  lastUpdated: '2020-11-10'

- name: React JSON Schema Form (RJSF-Team)
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Heath C'
      username: 'heath-freenome'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/rjsf-team/react-jsonschema-form'
  homepage: 'https://rjsf-team.github.io/react-jsonschema-form/'
  lastUpdated: '2024-05-24'

- name: React Json Schema Form (Mui)
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Vipin Tanna'
      username: 'vip-git'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/vip-git/react-jsonschema-form-material-ui'
  homepage: 'https://react-jsonschema-form-material-ui.github56.now.sh/'
  lastUpdated: '2023-08-17'

- name: React Schema Form (networknt)
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Steve Hu'
      username: 'stevehu'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/networknt/react-schema-form'
  lastUpdated: '2022-01-22'

- name: Restspace Schema Form
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'jamesej'
      username: 'jamesej'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/restspace/schema-form'
  homepage: 'https://restspace.io/react/schema-form'
  lastUpdated: '2022-07-29'

- name: vazco/uniforms
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Piotr Pośpiech'
      username: 'piotrpospiech'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/vazco/uniforms'
  homepage: 'https://uniforms.tools/'
  lastUpdated: '2024-06-06'

- name: UI Schema for React
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  maintainers:
    - name: 'Michael Becker'
      username: 'elbakerino'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/ui-schema/ui-schema'
  homepage: 'https://ui-schema.bemit.codes/'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09']
  lastUpdated: '2023-02-03'

- name: hypothesis-jsonschema
  toolingTypes: ['schema-to-data', 'util-testing']
  languages: ['Python']
  maintainers:
    - name: 'Zac Hatfield-Dodds'
      username: 'Zac-HD'
      platform: 'github'
  license: 'MPL-2.0'
  source: 'https://github.com/Zac-HD/hypothesis-jsonschema'
  homepage: 'https://pypi.org/project/hypothesis-jsonschema/'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2024-03-03'

- name: jsongenerator
  toolingTypes: ['schema-to-data']
  languages: ['Java']
  maintainers:
    - name: 'Jim Blackler'
      username: 'jimblackler'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/jimblackler/jsongenerator'
  supportedDialects:
    draft: ['3', '4', '6', '7', '2019-09']
  lastUpdated: '2023-10-05'

- name: json-schema-ref-parser
  toolingTypes: ['util-general-processing']
  languages: ['JavaScript']
  maintainers:
    - username: 'BigstickCarpet'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/BigstickCarpet/json-schema-ref-parser'

- name: json-schema-library
  toolingTypes: ['util-general-processing']
  languages: ['JavaScript']
  maintainers:
    - name: 'Sascha Goldhofer'
      username: 'sagold'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/sagold/json-schema-library'

- name: '@cloudflare/json-schema-walker'
  toolingTypes: ['util-general-processing']
  languages: ['JavaScript']
  license: 'BSD-3-Clause'
  source: 'https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-walker'
  supportedDialects:
    draft: ['4', '6', '7']

- name: '@cloudflare/json-schema-transform'
  toolingTypes: ['util-schema-to-schema']
  languages: ['JavaScript']
  license: 'BSD-3-Clause'
  source: 'https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-transform'

- name: json-schema-merge-allof
  toolingTypes: ['util-schema-to-schema']
  languages: ['JavaScript']
  maintainers:
    - username: 'mokkabonna'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/mokkabonna/json-schema-merge-allof'

- name: json-schema-compare
  toolingTypes: ['util-schema-to-schema']
  languages: ['JavaScript']
  maintainers:
    - username: 'mokkabonna'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/mokkabonna/json-schema-compare'

- name: json-schema-resolve-allof
  toolingTypes: ['util-schema-to-schema']
  languages: ['JavaScript']
  maintainers:
    - name: 'Logan Volkers'
      username: 'loganvolkers'
      platform: 'github'
  source: 'https://www.npmjs.com/package/json-schema-resolve-allof'

- name: JSON-Schema-Instantiator
  toolingTypes: ['util-schema-to-schema']
  languages: ['JavaScript']
  maintainers:
    - name: 'Tom Arad'
      username: 'tomarad'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/tomarad/JSON-Schema-Instantiator'

- name: AlterSchema
  toolingTypes: ['util-draft-migration']
  languages: ['JavaScript']
  license: 'Apache-2.0'
  source: 'https://github.com/sourcemeta/alterschema'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']

- name: JSON Schema to OpenAPI Schema
  toolingTypes: ['util-format-conversion']
  languages: ['OpenAPI']
  license: 'MIT'
  source: 'https://github.com/wework/json-schema-to-openapi-schema'
  supportedDialects:
    draft: ['4', '6', '7']

- name: OpenAPI specification to JSON Schema
  toolingTypes: ['util-format-conversion']
  languages: ['OpenAPI']
  license: 'MIT'
  source: 'https://github.com/instrumenta/openapi2jsonschema'
  supportedDialects:
    draft: ['7']

- name: Orderly
  toolingTypes: ['util-format-conversion']
  languages: ['Orderly']
  maintainers:
    - name: 'Lloyd Hilaiel'
      username: 'lloyd'
      platform: 'github'
  license: 'BSD-3-Clause'
  source: 'https://github.com/lloyd/orderly'

- name: ramldt2jsonschema
  toolingTypes: ['util-format-conversion']
  languages: ['RAML']
  license: 'Apache-2.0'
  source: 'https://github.com/raml-org/ramldt2jsonschema'
  supportedDialects:
    draft: ['4', '6']

- name: '@cloudflare/json-schema-ref-loader'
  toolingTypes: ['util-format-conversion']
  languages: ['JavaScript']
  license: 'BSD-3-Clause'
  source: 'https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-ref-loader'
  homepage: 'https://github.com/cloudflare/json-schema-tools'

- name: '@cloudflare/json-schema-apidoc-loader'
  toolingTypes: ['util-format-conversion']
  languages: ['JavaScript']
  license: 'BSD-3-Clause'
  source: 'https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-apidoc-loader'
  supportedDialects:
    draft: ['4', '6', '7']

- name: Oxygen XSL JSON Tools
  toolingTypes: ['util-format-conversion', 'documentation']
  languages: ['XSD']
  homepage: 'https://www.oxygenxml.com/json_converter.html'

- name: XSD to JSON Schema IntelliJ Plugin
  toolingTypes: ['util-format-conversion']
  languages: ['XSD']
  homepage: 'https://plugins.jetbrains.com/plugin/19024-xsd-to-json-schema'

- name: Altova XMLSpy 2019r3
  toolingTypes: ['editor']
  homepage: 'https://www.altova.com/xmlspy-xml-editor#json_schema'
  supportedDialects:
    draft: ['6', '7']

- name: Dashjoin JSON Schema editor
  toolingTypes: ['editor']
  homepage: 'https://dashjoin.github.io/#/schema'
  supportedDialects:
    draft: ['6']

- name: Hackolade Studio
  toolingTypes: ['editor']
  homepage: 'https://hackolade.com/help/JSONSchemaEditor.html'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']

- name: JSONBuddy
  toolingTypes: ['editor']
  homepage: 'https://www.json-buddy.com/'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']

- name: JSONEditor Online
  toolingTypes: ['editor']
  homepage: 'https://jsoneditoronline.org/'
  supportedDialects:
    draft: ['4', '6', '7']

- name: Liquid JSON Schema Editor
  toolingTypes: ['editor']
  homepage: 'https://www.liquid-technologies.com/json-schema-editor'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09']

- name: Oxygen JSON Schema Editor
  toolingTypes: ['editor']
  homepage: 'https://www.oxygenxml.com/xml_developer/json_schema_editor.html'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']

- name: Perseid Modeler
  toolingTypes: ['editor']
  source: 'https://www.datensen.com/data-modeling/perseid-modeler-for-json-schema.html'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']

- name: Stoplight Studio
  toolingTypes: ['editor']
  homepage: 'https://stoplight.io/'
  supportedDialects:
    draft: ['4', '6', '7']

- name: Visual Studio Code
  toolingTypes: ['editor']
  homepage: 'https://code.visualstudio.com/'

- name: WebStorm, IntelliJ IDEA, and other JetBrains IDEs
  toolingTypes: ['editor']
  homepage: 'https://www.jetbrains.com/products.html?fromMenu#type=ide'
  supportedDialects:
    draft: ['4', '6', '7']

- name: Eclipse IDE
  toolingTypes: ['editor']
  homepage: 'https://www.eclipse.org/downloads/eclipse-packages'

- name: docusaurus-json-schema-plugin
  toolingTypes: ['documentation']
  maintainers:
    - name: 'Jacques Yakoub'
      username: 'jy95'
      platform: 'github'
  license: 'AGPL-3.0-only'
  source: 'https://github.com/jy95/docusaurus-json-schema-plugin'
  supportedDialects:
    draft: ['7', '2019-09', '2020-12']

- name: json-schema-static-docs
  toolingTypes: ['documentation']
  maintainers:
    - name: 'Tom Collins'
      username: 'tomcollins'
      platform: 'github'
  license: 'GPL-3.0-only'
  source: 'https://github.com/tomcollins/json-schema-static-docs'
  homepage: 'https://tomcollins.github.io/json-schema-static-docs/'
  supportedDialects:
    draft: ['7']

- name: jsonschematic
  toolingTypes: ['documentation']
  maintainers:
    - name: 'Yanick Champoux'
      username: 'yanick'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/yanick/jsonschematic/'
  homepage: 'https://yanick.github.io/jsonschematic/'
  supportedDialects:
    draft: ['7']

- name: docson
  toolingTypes: ['documentation']
  maintainers:
    - name: 'Laurent Bovet'
      username: 'lbovet'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/lbovet/docson'
  supportedDialects:
    draft: ['4']

- name: json-schema-for-humans
  toolingTypes: ['documentation']
  languages: ['Python']
  maintainers:
    - name: 'Denis Blanchette'
      username: 'dblanchette'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/coveooss/json-schema-for-humans'
  homepage: 'https://pypi.org/project/json-schema-for-humans/'
  supportedDialects:
    draft: ['7']

- name: wetzel
  toolingTypes: ['documentation']
  maintainers:
    - name: 'Gabby Getz'
      username: 'ggetz'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/CesiumGS/wetzel'
  supportedDialects:
    draft: ['3', '4', '7', '2020-12']
  toolingListingNotes: 'With some limitations, supports draft-3, draft-4, draft-7, and 2020-12.'

- name: jsonschema-markdown
  toolingTypes: ['documentation']
  maintainers:
    - name: 'Elisiário Couto'
      username: 'elisiariocouto'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/elisiariocouto/jsonschema-markdown'
  toolingListingNotes: 'Can be used as a CLI or as a Python library.'

- name: SchemaStore.org
  toolingTypes: ['schema-repository']
  maintainers:
    - name: 'Mads Kristensen'
      username: 'madskristensen'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/schemastore/schemastore/'
  homepage: 'https://schemastore.org/json/'

- name: json-schema-linter
  toolingTypes: ['linter']
  homepage: 'https://www.json-schema-linter.com/'
  supportedDialects:
    draft: ['4', '6', '7']

- name: Stoplight Spectral
  toolingTypes: ['linter']
  license: 'Apache-2.0'
  source: 'https://github.com/stoplightio/spectral'
  homepage: 'https://stoplight.io/open-source/spectral'
  supportedDialects:
    draft: ['4', '6', '7']

- name: remark-lint-frontmatter-schema
  toolingTypes: ['linter-plugins']
  maintainers:
    - name: 'Julian Cataldo'
      username: 'JulianCataldo'
      platform: 'github'
  license: 'ISC'
  source: 'https://github.com/JulianCataldo/remark-lint-frontmatter-schema'

- name: eslint-plugin-json-schema-validator
  toolingTypes: ['linter-plugins']
  maintainers:
    - name: 'Yosuke Ota'
      username: 'ota-meshi'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/ota-meshi/eslint-plugin-json-schema-validator'
  homepage: 'https://ota-meshi.github.io/eslint-plugin-json-schema-validator/'

- name: Core API Hyper-Schema codec
  toolingTypes: ['hyper-schema']
  languages: ['Python']
  maintainers:
    - name: 'Tom Christie'
      username: 'tomchristie'
      platform: 'github'
  license: 'BSD-2-Clause'
  source: 'https://github.com/core-api/python-jsonhyperschema-codec'
  supportedDialects:
    draft: ['4']

- name: mokkabonna/json-hyper-schema
  toolingTypes: ['hyper-schema']
  languages: ['JavaScript']
  maintainers:
    - name: 'Martin Hansen'
      username: 'mokkabonna'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/mokkabonna/json-hyper-schema'
  supportedDialects:
    draft: ['7']
  lastUpdated: '2022-08-31'

- name: dadav/helm-schema
  toolingTypes: ['data-to-schema']
  languages: ['Helm']
  maintainers:
    - name: 'Daniel'
      username: 'dadav'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/dadav/helm-schema'
  supportedDialects:
    draft: ['7']
  lastUpdated: '2024-09-03'

- name: v8r
  toolingTypes: ['validator']
  environments: ['Command Line']
  dependsOnValidators: ['https://github.com/ajv-validator/ajv']
  maintainers:
    - name: 'Chris'
      username: 'chris48s'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/chris48s/v8r'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2024-09-03'

- name: justinrainbow/json-schema
  toolingTypes: ['validator']
  languages: ['PHP']
  toolingListingNotes: 'PHP >= 7.2'
  maintainers:
    - name: 'Erayd'
      username: 'erayd'
      platform: 'github'
    - name: 'David Porter'
      username: 'bighappyface'
      platform: 'github'
    - name: 'Jordi Boggiano'
      username: 'Seldaek'
      platform: 'github'
    - name: 'Danny van der Sluijs'
      username: 'DannyvdSluijs'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/jsonrainbow/json-schema'
  homepage: 'https://github.com/jsonrainbow/json-schema'
  supportedDialects:
    draft: ['3', '4']
  landscape:
    logo: 'justinrainbow-json-schema.png'
  lastUpdated: '2024-10-01'

- name: JSONSchema.jl
  toolingTypes: ['validator']
  languages: ['Julia']
  maintainers:
    - name: 'Frédéric Testard'
      username: 'fredo-dedup'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/fredo-dedup/JSONSchema.jl'
  homepage: 'https://github.com/fredo-dedup/JSONSchema.jl'
  supportedDialects:
    draft: ['4', '6', '7']
  lastUpdated: '2024-08-23'

- name: Svelte JSON Schema Form
  toolingTypes: ['schema-to-web-UI']
  languages: ['TypeScript']
  maintainers:
    - name: 'Roman Krasilnikov'
      username: 'x0k'
      platform: 'github'
  license: '(MIT AND Apache-2.0)'
  source: 'https://github.com/x0k/svelte-jsonschema-form'
  homepage: 'https://x0k.github.io/svelte-jsonschema-form/'
  supportedDialects:
    draft: ['7']
  lastUpdated: '2024-10-24'

- name: Jsonary
  toolingTypes: ['hyper-schema']
  languages: ['Javascript']
  license: 'MIT'
  source: 'https://github.com/jsonary-js/jsonary'
  supportedDialects:
    draft: ['4']
  status: 'obsolete'
  lastUpdated: '2015-05-08'

- name: Core API Hyper-Schema codec
  toolingTypes: ['hyper-schema']
  languages: ['Python']
  maintainers:
    - name: 'Tom Christie'
      username: 'tomchristie'
      platform: 'github'
  license: 'BSD-2-Clause'
  source: 'https://github.com/core-api/python-jsonhyperschema-codec'
  supportedDialects:
    draft: ['4']
  status: 'obsolete'
  lastUpdated: '2018-02-27'

- name: NJsonSchema
  toolingTypes: [validator]
  languages: ['.NET']
  license: 'Ms-PL'
  source: http://NJsonSchema.org
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: Manatee.Json
  toolingTypes: ['validator']
  languages: ['.NET']
  license: MIT
  source: https://github.com/gregsdennis/Manatee.Json
  supportedDialects:
    draft: ['4', '6', '7']
  status: 'obsolete'

- name: WJElement
  toolingTypes: ['validator']
  languages: ['C']
  license: 'AGPL-3.0'
  source: https://github.com/netmail-open/wjelement
  supportedDialects:
    draft: ['3', '4']
  toolingListingNotes: 'Draft-06+ progress: issue 17'
  status: 'obsolete'

- name: wjelement-cpp
  toolingTypes: ['validator']
  languages: ['C++']
  license: 'AGPL-3.0'
  source: https://github.com/petehug/wjelement-cpp
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: Header-only C++ library for JSON Schema validation
  toolingTypes: ['validator']
  languages: ['C++']
  license: BSD-2-Clause
  source: https://github.com/tristanpenman/valijson
  supportedDialects:
    draft: ['3', '4']
  status: 'obsolete'

- name: Modern C++ JSON schema validator
  toolingTypes: ['validator']
  languages: ['C++']
  license: MIT
  source: https://github.com/pboettch/json-schema-validator
  supportedDialects:
    draft: ['4']
  toolingListingNotes: 'based on JSON for Modern C++'
  status: 'obsolete'

- name: scjsv
  toolingTypes: ['validator']
  languages: ['Clojure']
  license: 'EPL-1.0'
  source: https://github.com/metosin/scjsv
  supportedDialects:
    draft: ['4']
  toolingListingNotes: '(wrapper for java-json-tools/json-schema-validator)'
  status: 'obsolete'

- name: json-schema validator
  toolingTypes: ['validator']
  languages: ['Clojure']
  license: MIT
  source: https://github.com/tatut/json-schema
  supportedDialects:
    draft: ['3', '4']
  status: 'obsolete'

- name: JSCK
  toolingTypes: ['validator']
  languages: ['CoffeeScript']
  license: MIT
  source: https://github.com/pandastrike/jsck
  supportedDialects:
    draft: ['3', '4']
  status: 'obsolete'

- name: json_schema
  toolingTypes: ['validator']
  languages: ['Dart']
  license: 'BSL-1.0'
  source: https://github.com/patefacio/json_schema
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: Elixir JSON Schema validator
  toolingTypes: ['validator']
  languages: ['Elixir']
  license: MIT
  source: https://github.com/jonasschmidt/ex_json_schema
  supportedDialects:
    draft: ['4']
  toolingListingNotes: 'Draft-06+ progress: issue 24; branch multi-draft-support'
  status: 'obsolete'

- name: validate-json
  toolingTypes: ['validator']
  languages: ['Go']
  license: GPL-2.0
  source: https://github.com/cesanta/validate-json
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: hjsonschema
  toolingTypes: ['validator']
  languages: ['Haskell']
  license: MIT
  source: https://github.com/seagreen/hjsonschema
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: json-schema-validator
  toolingTypes: ['validator']
  languages: ['Java']
  license: 'LGPL-3.0'
  source: https://github.com/java-json-tools/json-schema-validator
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: jsonschema
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: MIT
  source: https://github.com/tdegrunt/jsonschema
  supportedDialects:
    draft: ['4']
  toolingListingNotes: 'for Node.js'
  status: 'obsolete'

- name: tv4
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'MIT'
  source: http://geraintluff.github.com/tv4/
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: is-my-json-valid
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'MIT'
  source: https://github.com/mafintosh/is-my-json-valid
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: JaySchema
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'BSD-3-Clause'
  source: https://github.com/natesilva/jayschema
  supportedDialects:
    draft: ['4']
  toolingListingNotes: 'for Node.js'
  status: 'obsolete'

- name: z-schema
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'MIT'
  source: https://github.com/zaggino/z-schema
  supportedDialects:
    draft: ['4']
  toolingListingNotes: 'for Node.js'
  status: 'obsolete'

- name: direct-schema
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'BSD-3-Clause'
  source: http://github.com/IreneKnapp/direct-schema
  supportedDialects:
    draft: ['3']
  status: 'obsolete'

- name: JSV
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'BSD-3-Clause'
  source: http://github.com/garycourt/JSV
  supportedDialects:
    draft: ['1', '2', '3']
  status: 'obsolete'

- name: json-schema
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'BSD-3-Clause'
  source: https://github.com/kriszyp/json-schema
  supportedDialects:
    draft: ['4']
  toolingListingNotes: 'part of the [Persevere](http://github.com/kriszyp/json-schema) project'
  status: 'obsolete'

- name: schema.js
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'MIT'
  source: https://github.com/akidee/schema.js
  supportedDialects:
    draft: ['2']
  status: 'obsolete'

- name: json-gate
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'MIT'
  source: https://github.com/oferei/json-gate
  supportedDialects:
    draft: ['3']
  status: 'obsolete'

- name: JSEN
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'MIT'
  source: https://github.com/bugventure/jsen
  supportedDialects:
    draft: ['3']
  toolingListingNotes: 'for Node.js'
  status: 'obsolete'

- name: Skeemas
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'MIT'
  source: https://github.com/ericgj/json-schema-valid
  supportedDialects:
    draft: ['3', '4']
  status: 'obsolete'

- name: Jassi
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'GPL-3.0'
  source: https://github.com/iclanzan/jassi
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: json-schema-valid
  toolingTypes: ['validator']
  languages: ['JavaScript']
  license: 'MIT'
  source: https://github.com/ericgj/json-schema-valid
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: jsv4-php
  toolingTypes: ['validator']
  languages: ['PHP']
  license: 'MIT'
  source: https://github.com/geraintluff/jsv4-php
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: JVal
  toolingTypes: ['validator']
  languages: ['PHP']
  license: 'MIT'
  source: https://github.com/stefk/jval
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: JSON Guard
  toolingTypes: ['validator']
  languages: ['PHP']
  license: 'MIT'
  source: https://github.com/thephpleague/json-guard
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: JSV::Validator
  toolingTypes: ['validator']
  languages: ['Perl']
  license: MIT
  source: https://metacpan.org/module/JSV::Validator
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: postgres-json-schema
  toolingTypes: ['validator']
  languages: ['PostgreSQL']
  license: 'PostgreSQL'
  source: https://github.com/gavinwahl/postgres-json-schema
  supportedDialects:
    draft: ['4']
  toolingListingNotes: 'PL/pgSQL implementation, no remote (http) references'
  status: 'obsolete'

- name: json_schema
  toolingTypes: ['validator']
  languages: ['Ruby']
  license: MIT
  source: https://github.com/brandur/json_schema
  supportedDialects:
    draft: ['4']
  toolingListingNotes: 'Schema parser and validator, with hyper-schema support'
  status: 'obsolete'

- name: json-schema
  toolingTypes: ['validator']
  languages: ['Ruby']
  license: MIT
  source: https://github.com/hoxworth/json-schema
  supportedDialects:
    draft: ['1', '2', '3', '4']
  status: 'obsolete'

- name: valico
  toolingTypes: ['validator']
  languages: ['Rust']
  license: MIT
  source: https://github.com/rustless/valico
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: json-schema-parser
  toolingTypes: ['validator']
  languages: ['Scala']
  license: Apache-2.0
  source: https://github.com/VoxSupplyChain/json-schema-parser
  supportedDialects:
    draft: ['4']
  toolingListingNotes: 'Schema parser and validator'
  status: 'obsolete'

- name: JSONSchema
  toolingTypes: ['validator']
  languages: ['Swift']
  license: BSD-3-Clause
  source: https://github.com/kylef/JSONSchema.swift
  supportedDialects:
    draft: ['4']
  status: 'obsolete'

- name: 'JSL'
  toolingTypes: [code-to-schema]
  languages: ['Python']
  license: 'BSD-3-Clause'
  source: 'https://github.com/aromanovich/jsl'
  status: 'obsolete'

- name: 'json-schema-generator'
  toolingTypes: [code-to-schema]
  languages: ['JavaScript']
  license: 'MIT'
  source: 'https://github.com/krg7880/json-schema-generator'
  status: 'obsolete'

- name: 'Typson'
  toolingTypes: ['code-to-schema']
  languages: ['TypeScript']
  source: 'https://github.com/lbovet/typson'
  license: 'Apache-2.0'
  status: 'obsolete'

- name: 'JSON Schema Generator'
  toolingTypes: ['code-to-schema', 'editor-plugins']
  homepage: 'https://visualstudiogallery.msdn.microsoft.com/b4515ef8-a518-41ca-b48c-bb1fd4e6faf7'
  status: 'obsolete'

- name: 'API-Add-In'
  toolingTypes: ['code-to-schema']
  source: 'https://github.com/bayeslife/api-add-in'
  status: 'obsolete'

- name: 'json-schema-generator'
  toolingTypes: ['schema-to-data']
  languages: ['JavaScript']
  source: 'https://github.com/json-schema-faker'
  license: 'MIT'
  status: 'obsolete'

- name: 'DJsonSchema'
  toolingTypes: ['schema-to-code']
  languages: ['Delphi']
  source: 'https://github.com/schlothauer-wauer/DJsonSchema'
  license: 'MIT'
  status: 'obsolete'

- name: 'aeson-schema'
  toolingTypes: ['schema-to-code']
  languages: ['Haskell']
  source: 'https://github.com/Fuuzetsu/aeson-schema'
  license: 'MIT'
  status: 'obsolete'

- name: 'autoparse'
  toolingTypes: ['schema-to-code']
  languages: ['Ruby']
  source: 'https://github.com/google/autoparse'
  license: 'Apache-2.0'
  status: 'obsolete'

- name: 'json-schema-codegen'
  toolingTypes: ['schema-to-code']
  languages: ['Scala']
  source: 'https://github.com/VoxSupplyChain/json-schema-codegen'
  license: 'Apache-2.0'
  status: 'obsolete'

- name: 'Argus'
  toolingTypes: ['schema-to-code']
  languages: ['Scala']
  source: 'https://github.com/aishfenton/argus'
  license: 'MIT'
  status: 'obsolete'

- name: 'Bric-à-brac'
  toolingTypes: ['schema-to-code']
  languages: ['Swift']
  source: 'https://github.com/glimpseio/BricBrac'
  license: 'MIT'
  status: 'obsolete'

- name: 'gojsonschema'
  toolingTypes: ['schema-to-code']
  languages: ['Go']
  source: 'https://github.com/andy-zhangtao/gojsonschema'
  homepage: 'http://json.golang.chinazt.cc'
  license: 'Apache-2.0'
  status: 'obsolete'

- name: 'JSON Editor'
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  source: 'https://github.com/jdorn/json-editor'
  license: 'MIT'
  status: 'obsolete'

- name: 'JSONForms'
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  homepage: 'https://jsonforms.io'
  license: 'MIT'
  status: 'obsolete'

- name: 'Jsonary'
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  homepage: 'https://jsonary.com/'
  license: 'MIT'
  status: 'obsolete'

- name: 'Metawidget'
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  homepage: 'https://metawidget.org/'
  license: 'LGPL-2.1'
  status: 'obsolete'

- name: 'pure-form webcomponent'
  toolingTypes: ['schema-to-web-UI']
  languages: ['JavaScript']
  source: 'https://github.com/john-doherty/pure-form'
  license: 'MIT'
  status: 'obsolete'

- name: 'Liquid XML Studio 2016'
  toolingTypes: ['editor']
  homepage: 'https://www.liquid-technologies.com/json-schema-editor'
  status: 'obsolete'

- name: 'ReSharper 2016.1'
  toolingTypes: ['editor']
  homepage: 'https://www.jetbrains.com/resharper/'
  status: 'obsolete'

- name: 'Visual Studio 2013'
  toolingTypes: ['editor']
  homepage: 'http://www.visualstudio.com/'
  status: 'obsolete'

- name: 'JSON Schema Editor'
  toolingTypes: ['editor']
  homepage: 'https://json-schema-editor.tangramjs.com'
  status: 'obsolete'

- name: 'JSON Editor (Tangram)'
  toolingTypes: ['editor']
  homepage: 'https://json-editor.tangramjs.com'
  status: 'obsolete'

- name: 'JSON Schema Compatibility'
  toolingTypes: ['util-draft-migration']
  languages: ['JavaScript']
  source: 'https://github.com/geraintluff/json-schema-compatability'
  license: 'CC0-1.0'
  status: 'obsolete'

- name: 'Matic'
  toolingTypes: ['documentation']
  languages: ['JavaScript']
  source: 'https://github.com/mattyod/matic'
  license: 'MIT'
  status: 'obsolete'

- name: 'Docson'
  toolingTypes: ['documentation']
  languages: ['JavaScript']
  source: 'https://github.com/lbovet/docson'
  license: 'Apache-2.0'
  status: 'obsolete'

- name: 'doca'
  toolingTypes: ['documentation']
  languages: ['JavaScript']
  source: 'https://github.com/cloudflare/doca/'
  license: 'BSD-2-Clause'
  status: 'obsolete'

- name: 'prmd'
  toolingTypes: ['documentation']
  languages: ['JavaScript']
  source: 'https://github.com/interagent/prmd'
  license: 'MIT'
  status: 'obsolete'

- name: 'Dojo'
  toolingTypes: ['util-general-processing']
  languages: ['JavaScript']
  homepage: 'https://www.dojotoolkit.org/'
  license: 'AFL-2.1 OR BSD-3-Clause'
  status: 'obsolete'

- name: 'JSON Schema Random'
  toolingTypes: ['schema-to-data']
  languages: ['JavaScript']
  source: 'https://github.com/andreineculau/json-schema-random'
  license: 'Apache-2.0'
  status: 'obsolete'

- name: Jaronuinga
    Jaronuinga is a simple JSON Schema validator written in Java 17. It is based on JSONP 1.1 and has no other dependencies.
    The library's primary purpose is to intercept the parsing process for additional custom analysis (e.g., verifying "foreign keys" on data submission).
    It may also be used for schema analysis via `getParent()` and `getChildren()` methods.
  toolingTypes: ['validator']
  languages: ['Java']
  maintainers:
    - name: 'Dmitry Repchevsky'
      username: 'Dmitry Repchevsky'
      platform: 'github'
  license: 'LGPL 2.1 or later'
  source: 'https://github.com/elixir-europe/java-json-schema-validator'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']
  lastUpdated: '2024-10-01'
  
- name: protoc-gen-jsonschema
  toolingTypes: ['model-to-schema']
  languages: ['Protocol Buffers']
  maintainers:
    - name: 'Uanid'
      username: 'uanid'
      platform: 'github'
  license: 'Apache-2.0'
  source: 'https://github.com/pubg/protoc-gen-jsonschema'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']

- name: swift-json-schema
  environments: ['macOS', 'iOS', 'tvOS', 'watchOS', 'visionOS', 'Linux']
  toolingTypes: ['validator', 'code-to-schema', 'model-to-schema']
  languages: ['Swift']
  maintainers:
    - name: 'Austin Evans'
      username: 'ajevans99'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/ajevans99/swift-json-schema'
  supportedDialects:
    draft: ['2020-12']

- name: 'Liquid JSON Schema Editor'
  toolingTypes: ['validator', 'documentation', 'editor']
  languages: ['C#', '.NET']
  environments: ['Microsoft Windows']
  maintainers:
    - name: 'Liquid Technologies Ltd'
      platform: 'other'
  creators:
    - name: 'Liquid Technologies Ltd'
      platform: 'other'
  homepage: 'https://www.liquid-technologies.com/json-schema-editor'
  license: 'Proprietary and Freeware'
  supportedDialects:
    draft: ['4', '6', '7', '2019-09', '2020-12']

- name: 'JSON Schema Editor'
  toolingTypes: ['editor']
  maintainers:
    - name: 'robclarabase'
      username: 'robclarabase'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/Clarabase/json-schema-editor'
  homepage: 'https://json-schema-editor.onrender.com/'
  supportedDialects:
    draft: ['2020-12']

- name: JSV
  environments: ['Linux', 'MacOS', 'Windows','Embedded platform']
  toolingTypes: ['validator']
  languages: ['Elixir', 'Erlang']
  maintainers:
    - name: 'Ludovic Demblans'
      username: 'lud'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/lud/jsv'
  homepage: 'https://hex.pm/packages/jsv'
  supportedDialects:
    draft: ['2020-12', '7']
  toolingListingNotes: 'JSON Schema Validation for Elixir according to the latest specifications. Supports compile-time schema builds, custom dialects and custom formats.'

- name: '@imhonglu/json-schema'
  toolingTypes: ['validator']
  languages: ['TypeScript']
  maintainers:
    - name: 'Beom-Ku Jung'
      username: 'imhonglu'
      platform: 'github'
  license: 'MIT'
  source: 'https://github.com/imhonglu/new-wheels/tree/main/libs/json-schema'
  homepage: 'https://github.com/imhonglu/new-wheels/tree/main/libs/json-schema'
  supportedDialects:
    draft: ['2020-12']
  toolingListingNotes: 'Built for Node.js and browsers, it supports static type inference for schema definitions.'

---

## File: data/use-cases.json

[
  {
    "title": "Structural validation",
    "summary": "Structural validation refers to the structure that a JSON document is supposed to follow, such as which properties must exist, what types of values are expected where, and what they must look like."
  },
  {
    "title": "Semantic annotation",
    "summary": "There is a need to annotate values within a JSON document: for machine readability, and for documentation purposes."
  },
  {
    "title": "Domain-specific language",
    "summary": "Developers may write an application that uses a JSON Schema internally as a domain-specific language, so that the schema is only used inside a single application by a single party. By using a declarative language, the application requirements can be optimized better than a human could do."
  },
  {
    "title": "A common vocabulary",
    "summary": "A development team maintains two similar applications, but for different platforms, in different languages. The application downloads and reads from a common repository of JSON documents. They want to make sure that both applications accept or reject JSON with identical behavior, so they write a single JSON Schema and deploy it to both applications."
  },
  {
    "title": "Model-Driven UI constraints",
    "summary": "When a server declares constraints that a submission must meet, there is a need for the user interface to receive these constraints to provide model-driven validation of permissible values, making the form more accessible to the user."
  },
  {
    "title": "UI Generation",
    "summary": "JSON Schema can be used to automatically generate user interfaces that adhere to a given schema."
  },
  {
    "title": "Data Serialization",
    "summary": "Compress JSON data for storage/transmission. For example: [https://jsonbinpack.sourcemeta.com](https://jsonbinpack.sourcemeta.com)"
  },
  {
    "title": "Fuzzing, enumeration, and generation",
    "summary": "Security applications need to generate examples of JSON documents within the valid set, and outside the valid set."
  },
  {
    "title": "Partial validation",
    "summary": "Due to technical limitations, some JSON parsers may only be able to understand a subset of the JSON value space, and it makes sense to validate the value read by the application, instead of the JSON document provided to the JSON parser."
  },
  {
    "title": "Automated Testing",
    "summary": "Good definitions of input/output that schemas provide enable contract and property based testing scenarios. For example: [https://schemathesis.readthedocs.io/en/stable/](https://schemathesis.readthedocs.io/en/stable/)"
  },
  {
    "title": "Machine-readable profiles of Web resources",
    "summary": "A Web server that offers a JSON document should be able to link to a profile document that describes the meaning of the data in a machine-readable form."
  },
  {
    "title": "Schema Inference",
    "summary": "This is pretty useful in data science. You may have huge JSON datasets and don't know the structure well. You can use tools that will derive a JSON Schema from the data for you to better understand it and act on it."
  },
  {
    "title": "Hypermedia",
    "summary": "Generic user-agents must be able to make use of the schema as it evolves, including Web browsers, spiders, and automated tooling. It should support loose coupling (like an HTML homepage); so a schema should be able to change, add, and remove features with minimal breakage for compatible clients."
  },
  {
    "title": "Results and Reporting",
    "summary": "The party that is providing the schema and input may not be the same party that is performing the validation; in this case, there should be a standard way to abstract away the validator interface, and report the results of a validation operation (validation result, annotations, and errors)."
  },
  {
    "title": "External validation",
    "summary": "Authors may embed resources of other media types, such as text documents, or base64 or hex-encoded binary documents; and may wish to pass off validation of these documents to another software tool."
  },
  {
    "title": "Intra-document data consistency validation",
    "summary": "A JSON document may carry relational data that must be internally consistent."
  },
  {
    "title": "Inter-database consistency validation",
    "summary": "A JSON document may carry relational data that must be verified against outside data sources."
  },
  {
    "title": "Linting",
    "summary": "Sometimes it's desirable to require formatting that does not impact the application-level meaning of the document, but instead specifies requirements purely for aesthetic or compatibility reasons."
  }
]



================================================
SYMLINK: data/ambassadors.json -> ambassadors.json
================================================

---

## File: pages/md-style-guide.md

---
title: JSON Schema documentation style guide
---

Welcome to JSON Schema! This guide is intended for project contributors and provides guidelines for the text-formatting conventions of our documentation. The purpose of this style guide is to create consistency throughout our documentation, so make sure to read and follow it carefully. To learn about how to contribute to our documentation, see the [Docs contributing guide](https://github.com/json-schema-org/website/blob/main/CONTRIBUTING-docs.md)

## Our preferred style guide 

We use the [Google developer documentation style guide](https://developers.google.com/style) as our default guide. For a quick summary, see the [Google style guide highlights](https://developers.google.com/style/highlights). This document describes customizations to the Google developers style guide specific to the JSON Schema documentation. 

The JSON Schema documentation uses American spelling and our preferred dictionary is the
[American Heritage Dictionary](https://ahdictionary.com/). 

## Write for your audience

The content of our documentation is written mainly for develepers, therefore, information should be clear, concise, and accurate. If you're unsure about a certain detail, please contact the appropriate people to verify it. For more information about our users personas, see [Personas](https://github.com/json-schema-org/community/issues/336#personas). 

## Types of documents and information architecture

To better attend to the needs of our readers, we create technical documentation according to the [diataxis framework](https://diataxis.fr/). Therefore, most of our documents can be classified as one of the following:

- Reference
- Tutorial
- How-to guides
- Explanation

Other types of documents we write are the following:

- Use cases
- Case studies
- Release notes

We organize our documentation into the following content buckets:

- **Introduction**: Several types of documents live in this bucket that introduce the JSON Schema initiative's purpose, how the JSON Schema is used in various industries and applications, and its key features and benefits.
   
- **Basics**: The documents of this content bucket help beginners get started with JSON Schema. 
  
- **Guides**: The guides contained in this bucket help users develop practical skills for validating schemas, building complex ones, and troubleshooting issues. 
  
- **Reference**: These documents explain the type of data, formats, and constraints that keywords expect. It also contains examples of how to use JSON Schema keywords.
  
- **Specification**: This section contains detailed changelogs of keyword modifications, highlights behavioral changes, and provides migration best practices.  
 

## Code blocks

To ensure that code samples are easy to search, copy and paste, and adapt, include all code as text, not as images, in the documentation.  

## Titles and headings 

Titles should be short and communicate the main idea of the document. For explanation or reference documents, the title should start with a noun phrase, for example, _Conditional subschemas_. When the document is a guide that includes steps to complete a task, such as a tutorial, the title should start with a bare infinitive, for example, _Structure complex schemas_. To learn more about headings and titles, see [_Headings and titles_](https://developers.google.com/style/text-formatting) of the Google developer documentation style guide. 

Headings help readers scan the document and identify the parts that are relevant to them. Use headings, and subheadings when needed, that clearly describe the information they contain. 

## Notices and Markdown tags

Use the following tags to give readers relevant information that is not part of the flow of the text. To learn when to use notices, please read the [Notes, cautions, warning, and other notices](https://developers.google.com/style/notices) chapter of the Google developer documentation style guide. 

### Table of contents

To help readers find the information they are looking for within the document, add a table of contents at the beginning. 

```markdown
<tableofcontent content= {content} depth= {depth}/>
```

### Blockquote

Use the `Blockquote` tag for text that is quoted from another source. 

```markdown
<blockquote> Message to show </blockquote>
```

Example: 

According to the Google developers style guide, notices should be used sparingly:

 
 Don't use too many notices. When you use multiple notices on a page, they begin to lose their visual distinctiveness. See if you can convey the information in a different way. This is especially true if you have two (or more) notices in a row.
 

### Tabs group

Use the tabs groups to make comparisons. 

```markdown
[ tabs-start "label"]
[ tab "name"]
message to show
[ tabs-end ]
```

Example:

[tabs-start "Language-specific info"]

[tab "Python"]
In Python, "objects" are analogous to the `dict` type.  An
important difference, however, is that while Python dictionaries
may use anything hashable as a key, in JSON all the keys
must be strings.

Try not to be confused by the two uses of the word "object" here:
Python uses the word `object` to mean the generic base class for
everything, whereas in JSON it is used only to mean a mapping from
string keys to values.

[tab "Ruby"]
In Ruby, "objects" are analogous to the `Hash` type. An important
difference, however, is that all keys in JSON must be strings, and therefore
any non-string keys are converted over to their string representation.

Try not to be confused by the two uses of the word "object" here:
Ruby uses the word `Object` to mean the generic base class for
everything, whereas in JSON it is used only to mean a mapping from
string keys to values.

[tab "Objective-C"]
In Objective-C, "objects" are analogous to the `NSDictionary` type.

[tab "Swift"]
In Swift, "objects" are analogous to the `Dictionary` type.
[tabs-end]

### Star tag

Highlight changes introduced by drafts with the `Star` tag.

```markdown
<Star label="New in draft"/>
```

Example:

<Star label= "New in draft 2019-09"/>

The deprecated keyword is a boolean that indicates that the instance value the keyword applies to should not be used and may be removed in the future.

### Infobox tag

Use the `Infobox` tag for [Notes](https://developers.google.com/style/notices). Notes provide the reader with relevant information that is not necessary, for example, an aside or a tip. 

```markdown
<Infobox label="Note"> Message to show </Infobox>
```

Example:

 Draft-07 core and validation are backwards-compatible with draft-06. 

### Warning tag

Use the `Warning` tag for cautions. A [Caution](https://developers.google.com/style/notices) notice lets the reader know they should proceed carefully. 

```markdown
<Warning label="Caution"> Message to show </Warning>
```

Example:

<Warning label="Caution"> Using `oneOf` increases processing times because every sub-schema requires verification. Prefer `anyOf` whenever possible.</Warning>

### Danger tag

Use the `Danger` tag for [Warning](https://developers.google.com/style/notices) notices, which are stronger than Cautions.  

```markdown
<Danger label="Warning"> Message to show </Danger>
```

Example:

<Danger label="Warning"> Modifying a JSON Schema without validating the existing data against it, can cause system or application errors or compromise data integrity. </Danger>

## Markdown tags for blog articles

Use the following tags only when writing blog articles.  

### StarInline

You can use the `StarInLine` tag to highlight important information within your text, for example, when providing a best practice. 

```markdown
<StarInline label="Best Practice"/> Message to show
```

Example:

<StarInline label="Best Practice"/> Always include the `$schema` keyword at the root of your JSON Schema to declare which version you're using.

### Summary and details

To provide readers with additional information without cluttering the main content, use the `summary` and `details` tags. The text within the `summary` tag is displayed initialy. The content within `details` is revealed after readers click on it.

```markdown
<summary> 
Click for more details
</summary>
<details>
Additional information to show
</details>
```

Example:

 
View the details of the employee information schema here

 
<code>
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "age": { "type": "integer", "minimum": 18 },
    "email": { 
      "type": "string",
      "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
    },
    "jobTitle": { "type": "string" },
    "department": { "type": "string" },
    "hireDate": { "type": "string", "format": "date" }
  },
  "required": ["name", "email", "jobTitle", "department", "hireDate"],
  "additionalProperties": false
}
</code>


### Bigquote

Use `Bigquote` to emphasize key quotations or statements, for example, a user testimonial. 

```markdown
<Bigquote> This is an important quote </Bigquote>
```

Example:

 _Choosing JSON Schema to allow JSON schema validation was a natural and obvious choice that our team made. It has been a fundamental part of our application since we moved from having a static site to a dynamic application about 3 years ago._ 
 - Rachael Sewell & Robert Sese, Docs Engineers at GitHub 

### Regularquote

Use the `Regularquote` tag for shorter quotes from documentation or other sources and for highlighting key terms or concepts.

```markdown
<Regularquote>This is a short quote</Regularquote>
```

Example: 

When discussing JSON Schema validation, it's important to understand the concept of keywords.

<Regularquote>
Keywords are the basic building blocks of JSON Schema. They are used to impose requirements on parts of the instance, or to provide annotation information.
</Regularquote>


### Tip

Use the `Tip` tag to give readers advice or additional context that enhances understanding. 

```markdown
<Tip label="Tip">This is a tip or additional context.</Tip>
```

Example: 

<Tip label="Tip">To learn more about keyword dependencies, read the _Static Analysis of JSON Schema_ article by Greg Dennis.</Tip>



We created this guide based on templates from [The Good Docs Project](https://www.thegooddocsproject.dev/).

---

## File: pages/specification-links.md

---
title: Specification Links
section: docs
prev: 
  label: Specification
  url: /specification
next: 
  label: Migration
  url: /specification/migration
---



You can find the latest released draft on the [Specification](../../specification) page.  The complex numbering and naming system for drafts and meta-schemas is fully explained here as well.



| common name | published | meta-schema identifiers | IETF identifiers | notes |
| --- | --- | --- | --- | --- |
| Draft 2021-NN | *(TBD)* | *(TBD)* | *(TBD)* | Milestone:
        
          Draft 2021-NN |
| Draft 2020-12 | 16-June-2022 | 2020-12 | draft-bhutton-json-schema-00
        
        
          draft-bhutton-json-schema-validation-00
        
        
          draft-bhutton-relative-json-pointer-00 | Milestone:
        [draft-08-patch-1](https://github.com/json-schema-org/json-schema-spec/milestone/8)
        
        Changes and fixes as a result of discussion with the OpenAPI community. (Includes breaking changes.) |
|  |  |  |  |  |
| draft-bhutton-json-schema-01
        
        
          draft-bhutton-json-schema-validation-01 |  |  |  |  |
| Draft 2019-09 | 17-September-2019 | 2019-09 | draft-handrews-json-schema-02
        
        
          draft-handrews-json-schema-validation-02
        
        
          draft-handrews-json-schema-hyperschema-02
        
        
          draft-handrews-relative-json-pointer-02 | Milestone:
        [draft-08](https://github.com/json-schema-org/json-schema-spec/milestone/6) |
| Draft 7 | 19-March-2018 | draft-07 | draft-handrews-json-schema-00
        
        
          draft-handrews-json-schema-validation-00
        
        
          draft-handrews-json-schema-hyperschema-00
        
        
          draft-handrews-relative-json-pointer-00 | the&nbsp;draft-handrews-*-01 drafts were
        bugfixes and/or clarifications without meta-schema or functional changes
        
        Milestone:
        [draft-07](https://github.com/json-schema-org/json-schema-spec/milestone/5) |
|  |  |  |  |  |
| draft-handrews-json-schema-01
        
        
                draft-handrews-json-schema-validation-01
        
        
            draft-handrews-json-schema-hyperschema-01
        
        
            draft-handrews-relative-json-pointer-01 |  |  |  |  |
| Draft 6 | 21-April-2017 | draft-06 | draft-wright-json-schema-01
        
        
          draft-wright-json-schema-validation-01
        
        
          draft-wright-json-schema-hyperschema-01 | Milestones:
        [draft-6](https://github.com/json-schema-org/json-schema-spec/milestone/2),
        [Meta-schema draft-06](https://github.com/json-schema-org/json-schema-spec/milestone/4) |
| Draft 5 | 13-October-2016 | draft-04 | draft-wright-json-schema-00
        
        
          draft-wright-json-schema-validation-00
        
        
          draft-wright-json-schema-hyperschema-00 | meta-schemas not changed, so
        "draft-05" is really
        draft-04
        
        Milestone: [draft-5 (2016-10-13)](https://github.com/json-schema-org/json-schema-spec/milestone/1) |
| Draft 4 | 31-January-2013 | draft-zyp-json-schema-04
        
        
          draft-fge-json-schema-validation-00
        
        
          draft-luff-json-hyper-schema-00
        
        
          draft-pbryan-zyp-json-ref-03 | json-ref drafts
        00-02 were all published between
        json-schema-03 and
        json-schema-04 |  |
| Draft 3 | 22-November-2010 | draft-03 | draft-zyp-json-schema-03 |  |
| Draft 2 | 23-March-2010 | draft-02 | draft-zyp-json-schema-02 |  |
| Draft 1 | 05-December-2009 | draft-01 | draft-zyp-json-schema-01 |  |
| Draft 0 | 05-December-2009 | draft-00 | draft-zyp-json-schema-00 | due to a markup error, this draft was replaced by
        draft-01 on the same day |



## Published Drafts

### 2020-12

- Specifications
    - Core: [draft-bhutton-json-schema-01](../../draft/2020-12/draft-bhutton-json-schema-01.html) ([changes](../../draft/2020-12/draft-bhutton-json-schema-01.html#appendix-G))
    - Validation: [draft-bhutton-json-schema-validation-01](../../draft/2020-12/draft-bhutton-json-schema-validation-01.html) ([changes](/draft/2020-12/draft-bhutton-json-schema-validation-01.html#appendix-C))
    - Relative JSON Pointer: [draft-bhutton-relative-json-pointer-00](https://tools.ietf.org/html/draft-bhutton-relative-json-pointer-00) ([changes](https://tools.ietf.org/html/draft-bhutton-relative-json-pointer-00#appendix-A))
    - Published: 16-June-2022
- General use meta-schemas
    - [JSON Schema meta-schema](../../draft/2020-12/schema)
    - [JSON Hyper-Schema meta-schema](../../draft/2020-12/hyper-schema) (2019-09 Hyper-Schema with 2020-12 Validation)
    - [JSON Hyper-Schema Link Description Object meta-schema](../../draft/2020-12/links)
- Individual vocabulary meta-schemas
  - [Core Vocabulary meta-schema](../../draft/2020-12/meta/core)
  - [Applicator Vocabulary meta-schema](../../draft/2020-12/meta/applicator)
  - [Validation Vocabulary meta-schema](../../draft/2020-12/meta/validation)
  - [Unevaluated Vocabulary meta-schema](../../draft/2020-12/meta/unevaluated)
  - [Format Annotation Vocabulary meta-schema](../../draft/2020-12/meta/format-annotation)
  - [Format Assertion Vocabulary meta-schema](../../draft/2020-12/meta/format-assertion)
  - [Content Vocabulary meta-schema](../../draft/2020-12/meta/content)
  - [Meta-Data Vocabulary meta-schema](../../draft/2020-12/meta/meta-data)
- Output schemas
    - [JSON Schema recommended output schema](../../draft/2020-12/output/schema)
- Output examples
    - [JSON Schema verbose output example](../../draft/2020-12/output/verbose-example)

#### Obsolete Draft 2020-12 Documents

_These were updated without changing functionality or meta-schemas due to a few errors and unclear sections._

- Core:
  [draft-bhutton-json-schema-00](../../draft/2020-12/draft-bhutton-json-schema-00.html) ([changes](/draft/2020-12/draft-bhutton-json-schema-00.html#rfc.appendix.G))
- Validation:
  [draft-bhutton-json-schema-validation-00](../../draft/2020-12/draft-bhutton-json-schema-validation-00.html) ([changes](/draft/2020-12/draft-bhutton-json-schema-validation-00.html#rfc.appendix.C))

### Draft 2019-09 (formerly known as Draft 8)

_**NOTE:** All meta-schema URIs now use `https://`.  While currently also available over plain HTTP due to the limitations of GitHub pages and the need to keep prior drafts available over HTTP, only the HTTPS URIs should be used._

- Specifications
    - Core: [draft-handrews-json-schema-02](../../draft/2019-09/draft-handrews-json-schema-02.html) ([changes](draft/2019-09/draft-handrews-json-schema-02.html#rfc.appendix.G))
    - Validation: [draft-handrews-json-schema-validation-02](../../draft/2019-09/draft-handrews-json-schema-validation-02.html) ([changes](/draft/2019-09/draft-handrews-json-schema-validation-02.html#rfc.appendix.C))
    - Hyper-Schema: [draft-handrews-json-schema-hyperschema-02](../../draft/2019-09/draft-handrews-json-schema-hyperschema-02.html) ([changes](/draft/2019-09/draft-handrews-json-schema-hyperschema-02.html#rfc.appendix.B))
    - Relative JSON Pointer: [draft-handrews-relative-json-pointer-02](https://tools.ietf.org/html/draft-handrews-relative-json-pointer-02) ([changes](https://tools.ietf.org/html/draft-handrews-relative-json-pointer-02#appendix-A))
    - Published: 17-September-2019
- General use meta-schemas
    - [JSON Schema meta-schema](../../draft/2019-09/schema)
    - [JSON Hyper-Schema meta-schema](../../draft/2019-09/hyper-schema)
    - [JSON Hyper-Schema Link Description Object meta-schema](../../draft/2019-09/links)
- Individual vocabulary meta-schemas
    - [Core Vocabulary meta-schema](../../draft/2019-09/meta/core)
    - [Applicator Vocabulary meta-schema](../../draft/2019-09/meta/applicator)
    - [Validation Vocabulary meta-schema](../../draft/2019-09/meta/validation)
    - [Format Vocabulary meta-schema](../../draft/2019-09/meta/format)
    - [Content Vocabulary meta-schema](../../draft/2019-09/meta/content)
    - [Meta-Data Vocabulary meta-schema](../../draft/2019-09/meta/meta-data)
    - [Hyper-Schema Vocabulary meta-schema](../../draft/2019-09/meta/hyper-schema)
- Output schemas
    - [JSON Schema recommended output schema](../../draft/2019-09/output/schema)
    - [JSON Hyper-Schema recommended output schema](../../draft/2019-09/output/hyper-schema)
- Output examples
    - [JSON Schema verbose output example](../../draft/2019-09/output/verbose-example)

### Draft 7

- Core: [draft-handrews-json-schema-01](../../draft-07/draft-handrews-json-schema-01.html) ([changes](../../draft-07/draft-handrews-json-schema-01.html#rfc.appendix.B))
- Validation: [draft-handrews-json-schema-validation-01](../../draft-07/draft-handrews-json-schema-validation-01.html) ([changes](../../draft-07/draft-handrews-json-schema-validation-01.html#rfc.appendix.B))
- Hyper-Schema: [draft-handrews-json-schema-hyperschema-01](../../draft-07/draft-handrews-json-schema-hyperschema-01.html) ([changes](../../draft-07/draft-handrews-json-schema-hyperschema-01.html#rfc.appendix.B))
- [JSON Schema meta-schema](../../draft-07/schema)
- [JSON Hyper-Schema meta-schema](../../draft-07/hyper-schema)
- [JSON Hyper-Schema Link Description Object meta-schema](../../draft-07/links)
- [JSON Hyper-Schema recommended output schema](../../draft-07/hyper-schema-output)
- Relative JSON Pointer: [draft-handrews-relative-json-pointer-01](https://tools.ietf.org/html/draft-handrews-relative-json-pointer-01) ([changes](https://tools.ietf.org/html/draft-handrews-relative-json-pointer-01#appendix-B))
- Published: 19-March-2018

#### Obsolete Draft 7 Documents

_These were updated without changing functionality or meta-schemas due to a few errors and unclear sections._

- Core: [draft-handrews-json-schema-00](../../draft-07/draft-handrews-json-schema-00.pdf) ([changes](../../draft-07/draft-handrews-json-schema-00.pdf#appendix-B))
- Validation: [draft-handrews-json-schema-validation-00](../../draft-07/draft-handrews-json-schema-validation-00.pdf) ([changes](../../draft-07/draft-handrews-json-schema-validation-00.pdf#appendix-B))
- Hyper-Schema: [draft-handrews-json-schema-hyperschema-00](../../draft-07/draft-handrews-json-schema-hyperschema-00.html) ([changes](../../draft-07/draft-handrews-json-schema-hyperschema-00.html#rfc.appendix.B))
- Relative JSON Pointer: [draft-handrews-relative-json-pointer-00](https://tools.ietf.org/html/draft-handrews-relative-json-pointer-00) ([changes](https://tools.ietf.org/html/draft-handrews-relative-json-pointer-00#appendix-B))

### Draft 6

- Core: [draft-wright-json-schema-01](../../draft-06/draft-wright-json-schema-01.html) ([changes](../../draft-06/draft-wright-json-schema-01.html#rfc.appendix.B))
- Validation: [draft-wright-json-schema-validation-01](../../draft-06/draft-wright-json-schema-validation-01.html) ([changes](../../draft-06/draft-wright-json-schema-validation-01.html#rfc.appendix.B)) ([schema migration FAQ](draft-06/json-schema-release-notes))
- Hyper-Schema: [draft-wright-json-schema-hyperschema-01](../../draft-06/draft-wright-json-schema-hyperschema-01.html) ([changes](../../draft-06/draft-wright-json-schema-hyperschema-01.html#rfc.appendix.B)) ([hyper-schema migration FAQ](draft-06/json-hyper-schema-release-notes))
- [JSON Schema meta-schema](../../draft-06/schema)
- [JSON Hyper-Schema meta-schema](../../draft-06/hyper-schema)
- Published: 21-April-2017

### Draft 5

 - Core: [draft-wright-json-schema-00](../../draft-05/draft-wright-json-schema-00.pdf) ([changes](../../draft-05/draft-wright-json-schema-00.pdf#appendix-B))
 - Validation: [draft-wright-json-schema-validation-00](../../draft-05/draft-wright-json-schema-validation-00.pdf) ([changes](../../draft-05/draft-wright-json-schema-validation-00.pdf#appendix-B))
 - Hyper-Schema: [draft-wright-json-schema-hyperschema-00](../../draft-05/draft-wright-json-schema-hyperschema-00.pdf) ([changes](../../draft-05/draft-wright-json-schema-hyperschema-00.pdf#appendix-B))
 - Draft 5 was primarily a cleanup of Draft 4 and continued to use the Draft 4 meta-schemas.
 - Published: 13-October-2016

### Draft 4

 - Core: [draft-zyp-json-schema-04](../../draft-04/draft-zyp-json-schema-04.html) ([changes](../../draft-04/draft-zyp-json-schema-04.html#rfc.appendix.A))
 - Validation: [draft-fge-json-schema-validation-00](../../draft-04/draft-fge-json-schema-validation-00.html) ([changes](../../draft-04/draft-fge-json-schema-validation-00.html#rfc.appendix.A))
 - Hyper-Schema: [draft-luff-json-hyper-schema-00](../../draft-04/draft-luff-json-hyper-schema-00.html) ([changes](../../draft-04/draft-luff-json-hyper-schema-00.html#rfc.appendix.A))
 - JSON Reference: [draft-pbryan-zyp-json-ref-03](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03) ([changes](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#appendix-A))
 * [JSON Schema meta-schema](../../draft-04/schema)
 * [JSON Hyper-Schema meta-schema](../../draft-04/hyper-schema)
 - Published: 31-January-2013

### Draft 3

 - Complete Specification: [draft-zyp-json-schema-03](../../draft-03/draft-zyp-json-schema-03.pdf) ([changes](../../draft-03/draft-zyp-json-schema-03.pdf#anchor54))
* [JSON Schema meta-schema](../../draft-03/schema)
* [JSON Hyper-Schema meta-schema](../../draft-03/hyper-schema)
- Published: 22-November-2010

### Draft 2

 - Complete Specification: [draft-zyp-json-schema-02](../../draft-02/draft-zyp-json-schema-02.txt) (changes: Appendix-A)
* [JSON Schema meta-schema](../../draft-02/schema)
* [JSON Hyper-Schema meta-schema](../../draft-02/hyper-schema)
- Published: 23-March-2010

### Draft 1

 - Complete Specification: [draft-zyp-json-schema-01](../../draft-01/draft-zyp-json-schema-01.html) ([changes](../../draft-01/draft-zyp-json-schema-01.html#anchor54))
* [JSON Schema meta-schema](../../draft-01/schema)
* [JSON Hyper-Schema meta-schema](../../draft-01/hyper-schema)
- Published: 05-December-2009

### Draft 0

_Note that Draft 0 erroneously claimed to update another RFC, and was replaced the same day by Draft 1.  It is included here for completeness only._

 - Specification: [draft-zyp-json-schema-00](../../draft-00/draft-zyp-json-schema-00.txt) (changes: Appendix-A))
* [JSON Schema meta-schema](../../draft-00/schema)
* [JSON Hyper-Schema meta-schema](../../draft-00/hyper-schema)
- Published: 05-December-2009

## Latest Snapshot (work in progress)

The next unreleased draft is a work in progress.  You can [give feedback and get involved on GitHub](https://github.com/json-schema-org/json-schema-spec).

The specification links here link to the raw sources.  We do not provide rendered [work-in-progress](work-in-progress) drafts except near the very end of a publication cycle, during the final review period.

 - Core: [jsonschema-core.md](https://github.com/json-schema-org/json-schema-spec/blob/main/specs/jsonschema-core.md)
 - Validation: [jsonschema-validation.md](https://github.com/json-schema-org/json-schema-spec/blob/main/specs/jsonschema-validation.md)
 - Hyper-Schema: [jsonschema-hyperschema.xml](https://github.com/json-schema-org/json-hyperschema-spec/blob/main/jsonschema-hyperschema.xml)
- Relative JSON Pointer: [relative-json-pointer.xml](https://github.com/json-schema-org/json-schema-spec/blob/master/relative-json-pointer.xml)
- [JSON Schema meta-schema](https://github.com/json-schema-org/json-schema-spec/blob/master/schema.json)
- [JSON Hyper-Schema meta-schema](https://github.com/json-schema-org/json-hyperschema-spec/blob/main/hyper-schema.json)
- [JSON Hyper-Schema Link Description Object meta-schema](https://github.com/json-schema-org/json-hyperschema-spec/blob/main/links.json)
- [JSON Schema Vocabulary meta-schemas](https://github.com/json-schema-org/json-hyperschema-spec/tree/main/meta/)
- [JSON Schema Output schemas and examples](https://github.com/json-schema-org/json-hyperschema-spec/tree/main/output/)

---

## File: pages/specification.md

---
title: Specification [#section]
section: docs
prev: 
  label: Common Interfaces across Implementations
  url: /implementers/interfaces
next: 
  label: Specification Links
  url: /specification-links
---

The current version is *2020-12*!
The previous version was 2019-09.

Specification documents
-----------------------

See also the release notes / change log (Work in progress).

The specification is split into two parts, Core and Validation. We also publish
the Relative JSON Pointers spec although it's not currently used by Core or
Validation in any significant way.

|     |     |
|:----|:----|
| [JSON Schema Core](../../draft/2020-12/json-schema-core.html)   | defines the basic foundation of JSON Schema   |
| [JSON Schema Validation](../../draft/2020-12/json-schema-validation.html)   | defines the validation keywords of JSON Schema    |
| [Relative JSON Pointers](https://tools.ietf.org/html/draft-bhutton-relative-json-pointer-00)   | extends the JSON Pointer syntax for relative pointers   |

Meta-schemas
------------

The meta-schemas are schemas against which other schemas can be validated. It is self-descriptive: the JSON Schema meta-schema validates itself.

The latest meta-schema is **2020-12**.  For an explanation of the change to date-based identifiers, see the [Specification Links](../specification-links) page.

_If you are accessing these JSON document links **from a web browser**, you will need to **save the file** then open it as a JSON document.  This is due to limitations with GitHub Pages._

## General-purpose meta-schema

Please note, additional vocabulary specific schema files are needed to fully construct and use the Core/Validation Dialect meta-schema.

|                                                                                        |                                                                                |
|:---------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------|
| [Core/Validation Dialect meta-schema](../../draft/2020-12/schema)    | Used for schemas written for pure validation.                                  |
| [Hyper-Schema Dialect meta-schema](../../draft/2020-12/hyper-schema) | Used for schemas written for validation (2020-12) and hyper-linking (2019-09). |
| [Recommended Output meta-schema](../../draft/2020-12/output/schema)  | Recommended output structure of the application process.                       |

## Single-vocabulary meta-schemas

These are relevant primarily to people who want to write their own meta-schemas that build on specific parts of the existing specification.

- [Core Vocabulary meta-schema](../../draft/2020-12/meta/core)
- [Applicator Vocabulary meta-schema](../../draft/2020-12/meta/applicator)
- [Validation Vocabulary meta-schema](../../draft/2020-12/meta/validation)
- [Unevaluated Vocabulary meta-schema](../../draft/2020-12/meta/unevaluated)
- [Format Annotation Vocabulary meta-schema](../../draft/2020-12/meta/format-annotation)
- [Format Assertion Vocabulary meta-schema](../../draft/2020-12/meta/format-assertion)
- [Content Vocabulary meta-schema](../../draft/2020-12/meta/content)
- [Meta-Data Vocabulary meta-schema](../../draft/2020-12/meta/meta-data)

## Output schemas and examples
- [JSON Schema recommended output schema](../../draft/2020-12/output/schema)
- [JSON Schema verbose output example](../../draft/2020-12/output/verbose-example)

Migrating from older drafts
-------------

The release notes discuss the changes impacting users and implementers:

- JSON Schema Core and Validation
    - [Draft 2019-09 to Draft 2020-12](../../draft/2020-12/release-notes)
    - [Draft-07 to Draft 2019-09](../../draft/2019-09/release-notes)
    - [Draft-06 to Draft-07](../../draft-07/json-schema-release-notes)
    - [Draft-04 to Draft-06](../../draft-06/json-schema-release-notes)
- JSON Hyper-Schema
    - There was no JSON Hyper-Schema draft for 2020-12 releases.
    - [Draft-07 to 2019-09](../../draft/2019-09/release-notes#hyper-schema-vocabulary)
    - [Draft-04 to Draft-07](../../draft-07/json-hyper-schema-release-notes)
    - [Draft-04 to Draft-06](../../draft-06/json-hyper-schema-release-notes)

Older drafts
------------

Please see [Specification Links](../../specification-links) for older drafts and the latest unreleased version of the specification.

---

## File: pages/work-in-progress.md

---
title: Work In Progress Feedback
---

## Right now

We're working towards JSON Schema 2022-NN.

See the [GitHub repository](https://github.com/json-schema-org/json-schema-spec) for ongoing spec work.

---

## File: pages/blog/posts/6-river-systems-case-study.md

---
title: "How 6 River Systems saves time and boosts collaboration with JSON Schema"
date: "2023-05-08"
type: Case Study
cover: /img/posts/2023/6-river-systems-case-study/cover.webp
authors:
  - name: Melinda Gutermuth
    photo: /img/avatars/melinda.webp
    link: https://www.x.com/shelikeswords
  - name: Ben Hutton
    photo: /img/avatars/benhutton.webp
    link: https://www.x.com/relequestual
excerpt: "Explore the powerful impact of JSON Schema on 6 River Systems' fulfillment operations. Discover how they enabled enhanced collaboration, time savings, and data quality assurance, propelling their successful scaling journey."
---

With the help of AI and collaborative robots, 6 River Systems has become an industry leader in fulfillment operations. Companies in the United States, Canada, and Europe use their comprehensive solutions to optimize their shipping workflows and fulfill millions of units every week. Since they were founded in 2015, 6 River Systems has grown rapidly and experienced a handful of common hurdles that come with scaling a business. During this journey, they found that JSON Schema was able to help them through some of these challenges.


## Challenges

Like many organizations that experience rapid growth, 6 River Systems has faced a series of organizational, technical, and evolutionary challenges as they've scaled. When 6 River Systems' number of warehouse clients increased by a factor of 10, the company itself had to grow as well. The operations, engineering, and analytics teams at 6 River Systems expanded significantly, and as a result, they realized they needed a better way to stay aligned and communicate expectations, contracts, and understandings—not only with one another, but also with the fulfillment system.

6 River Systems uses a large amount of robotics and hardware, and many of those technologies don't always work well together. They struggled to integrate best-in-class data processing, storage, and analytics tools into their existing systems. For example, the robots in their facility use the Robot Operating System (ROS) framework, which stores messages, commands, and system status information. While tools like ROSbag make it easier to collect and analyze robot data, they aren't compatible with modern data stack tools like Elasticsearch and BigQuery. Additionally, the most widely used version of ROS depends on Python 2.7, which is deprecated.

One inevitable byproduct of rapid growth is technical debt. 6 River Systems found early success, enough for Shopify to acquire them in 2019. Some of the solutions they implemented were short-sighted, and they knew that their next phase of growth would require them to focus on projects and practices that were sustainable in the long term.

<figure class="mt-10">
  
  <figcaption class="mt-2 mb-10 text-sm text-center text-gray-500">Automation robot "Chuck"</figcaption>
</figure>


## Solution

By expanding their use of JSON Schema, 6 River Systems was able to solve a number of organizational and technical problems. In fact, JSON Schema has become the nucleus for automation across the organization, which has helped them achieve more consistency and higher-quality results.

To address their communication challenges, 6 River Systems' analysts started to directly collaborate with product engineers to draft new schemas. Using JSON Schema, the analysts can write a production-ready specification that the engineers understand immediately.

6 River Systems has found JSON Schema to be extremely helpful for generating typed SDKs. When an analyst and an engineer finish iterating on a schema, they use the schema to generate TypeScript interfaces for use by robots and throughout the application. The strongly typed nature at the data generation point makes development much smoother and eliminates bugs before they reach production, which makes all the difference.

6 River Systems also uses their schemas to automatically update destination databases, identify and isolate non-conforming data, and provide insight into the data that flows through the pipelines.

Here's a look at some of the technical solutions they've implemented:

- Every time a new schema is released, a series of database reconciliation steps run to make sure everything is in sync. Database tables are created or migrated automatically, and schemas are pushed to registries.
- Data processing systems use JSON Schemas to continuously validate data. Any data that doesn't adhere to the schema specification is redirected to an "invalid events" table (also known as "dead-lettering"), and an alert is triggered. They track the volume of invalid events and notify stakeholders as needed.
- They use JSON Schemas to build event-level namespaces that are incorporated into all of their metrics and monitoring systems. They can identify the exact instrumentation and version of what's running through the pipes, and any issues are immediately visible on a graph.
- Tools for data discovery, such as data catalogs, are seeded with JSON Schemas, so the tools no longer have to manually scrape metadata.
- They're starting to use JSON Schemas to help automate the generation of sources in [dbt](https://www.getdbt.com/), a popular warehouse analytics platform. As a result, an analytics engineer or data analyst no longer has to help write a new JSON Schema and then write the same thing all over again in YAML.


## Impact

As a result of using JSON Schema, 6 River Systems has seen benefits across the organization. They've found that JSON Schema saves time across all layers of their tech stack. Some would say that structuring data at the point of generation slows things down, and there's some truth to that sentiment. But 6 River Systems has found that isn't the case when the team has TypeScript interfaces to point out incorrect data types and missing attributes in an IDE.

JSON Schema is a tool that both a data analyst and a product engineer can understand. This enables two people who work with very different languages, such as TypeScript and SQL, to communicate directly with one another—a benefit that "cannot be understated," says Jacob Thomas, Data Platform team lead at 6 River Systems.

JSON Schema has enabled 6 River Systems to implement automation across the stack. They've implemented TypeScript interfaces for instrumentation SDKs, used it to generate tables for data warehouses, and put it to use in streaming environments to generate Kafka topics and dbt sources. In a large fulfillment center, it's very difficult to track down data problems after code has been released, so using JSON Schema to validate code before it goes out saves time and brings peace of mind.

As a company scales, having individuals chase things down through complicated infrastructure is not sustainable. Using JSON Schema as the shared language across the organization has improved the quality and visibility of data at all levels, which enables sustainable practices.

<figure class="mt-10">
  
  <figcaption class="mt-2 mb-10 text-sm text-center text-gray-500">Operator Command Center - "The Bridge"</figcaption>
</figure>

### Key Impact Results

The biggest advantage 6 River Systems has seen from using JSON Schema is the time they have saved. For such a small team managing such a large amount of work, every minute counts! They want to automate everything that can be automated.

"We have processed hundreds of millions of events—each and every one of them is 'known good'. It's a model that works, and it works very well."

6 River Systems discovered that by using JSON Schema, they could:

- Deploy known-good instrumentation to thousands of robots in the field.
- Enable effective collaboration between product engineers who think in TypeScript and JavaScript, data engineers who think in Python, and analysts who think in SQL.
- Validate every payload that reaches their data collection infrastructure.
- Proactively seed data discovery mechanisms and catalogs, as opposed to having the tools manually scrape metadata.

As a result of using JSON Schema, they've been able to implement tools like [Quicktype](https://quicktype.io/) and [TypeBox](https://github.com/sinclairzx81/typebox) on the producer side and JSON Schema-based validators on the client side. With some logic to connect the two, their data warehouses stay up-to-date.


## 6 River Systems' Journey

6 River Systems was founded in Waltham, Massachusetts, in 2015 and became a subsidiary of Shopify in 2019. Like many companies that grow quickly, 6 River Systems discovered that they needed to make some changes in order to sustain their early success. Let's take a look at how 6 River Systems went through the process of identifying the challenges they were facing and the different solutions they considered.


### Identifying Pain Points

When 6 River Systems was starting out, they dealt with a lot of semi-structured data sent without context. There was no way of knowing what the data meant, how to structure it, or what was acceptable and what wasn't. They formed a team to analyze this data, but as the volume of data increased, scaling the team became unsustainable. On top of that, instrumentation would often change and sometimes be removed entirely, making it even harder to contextualize the data and causing customer-facing dashboards to break.

All this was happening as new customers continued to come on board. Costs were increasing across the organization, and 6 River Systems knew that they needed to expand as fast as possible using sustainable, long-term solutions—all without blocking current development.

"We identified very quickly that we needed a solution for expressing expectations, contracts, and understanding—an IDL for both systems and humans within various teams."


### Finding a Solution

In their search for solutions to maintain explicit contracts with their data, here are some of the options they considered:

- **Protobuf**: While Protobuf works very well, it's less common than JSON. Analysts tend not to know it, while JSON is something they work with every day. Because 6 River Systems' engineering and analytics teams work so closely together, they needed a solution that was equally understandable to both.
- **Apache Avro**: There's a lot to like about Avro, but it's heavily tied to the Kafka ecosystem, which 6 River Systems doesn't use.
- **JSON Schema**: Rather than completely rewriting the stack with new technology, using JSON Schema was an incremental solution that was easy to understand. JSON was already widely used by front-end engineers, it integrates well with the Node.js and TypeScript ecosystem, and it can be "bolted onto" existing code with little to no changes.


### Validating the Solution

Using JSON and JSON Schema turned out to be the best solution at all levels of the stack. Instead of starting from scratch, they could use JSON Schema to enhance upstream processes while automating downstream ones. They were able to make each schema more strict than before and enforce more constraints around the data.

"The 'aha!' moment was when teams no longer needed to talk to us to push new instrumentation. The product team and analysts could talk to each other, and good data would show up in BigQuery."

While 6 River Systems had previously used JSON Schema in a number of areas across the company, they now use it to power UI components, workflow and configuration management systems, and incoming and outgoing integrations to warehouse management systems. By implementing JSON Schema consistently across the organization, they are confident in their ability to keep growing and scaling while always maintaining the high-quality solutions they are known for.

Thank you to [Jacob Thomas](https://www.linkedin.com/in/jake-thomas/) and 6 River Systems for enabling us to share this case study with you.

Images used with permission.

---

## File: pages/blog/posts/and-then-there-were-three.md

---
title: "And Then There Were Three"
date: "2022-06-23"
tags:
  - Update
  - News
type: Community
cover: /img/posts/2022/and-then-there-were-three/cover.webp
authors:
  - name: Greg Dennis
    photo: /img/avatars/gregsdennis.webp
    link: https://www.linkedin.com/in/gregdennis/
    byline: JSON Tooling Implementer, Specification & Tooling Architect @Postman
excerpt: "More full-time contributors is better, right?"
---

Hi, everybody!

I'm Greg Dennis.  I'm the author of [`json-everything`](https://github.com/gregsdennis/json-everything), which aims to be an all-encompassing tool suite for JSON needs in .Net, including JSON Path, JSON Patch, and (of course) JSON Schema, amongst others.  I'm also responsible for driving and authoring the output requirements in the JSON Schema specification.

Piggybacking on [Julian's news](hello-world-hello-postman), I'm also joining Postman to work on JSON Schema full time as a Specification & Tooling Architect!  This means that I will be working on updating the specification as well as helping define and implement validation and other JSON-Schema-adjacent tooling.  I also expect to be highly involved in the community by supporting other tooling implementors.

## Being Involved

JSON Schema has always been a passion project for me.  I didn't really see it at work\*, and I never had a problem for which JSON Schema was the solution.  Nevertheless, I recognized its potential that it _could_ be the solution other people needed, and I wanted to contribute by giving them an easy adoption path.

\* *I have primarily worked in the .Net world, where there are a lot of other data validation tools, most of which are built into the framework and centered around deserialization.  However, with the popularity of JSON Schema growing (especially around code generation), we could find a proper place for it in .Net soon.*

I first became involved with JSON Schema in 2015 when I was looking for JSON-related functionality to implement in my library, Manatee.Json.  I liked the ability to validate JSON data, and I especially liked that the validation requirements themselves could be represented in JSON.

At that time, Draft 4 had been available for a couple years, and the project was just starting to be picked up again after having been nearly abandoned.  Although I didn't know it then, I kind of just stumbled upon the project at the right time.  I started reading through some of the open issues, commenting on a few, and I joined the Slack workspace.

It soon became apparent that I wasn't going away, and I was invited to contribute as a core member of the team.  I spent my spare time discussing changes and new features, while trying to balance how helpful or easy to use a particular feature would be to JSON Schema users (primarily schema authors) against how hard that feature would be to implement.

Since then, I have contributed to countless discussions, commented on alterations to the specification, and even made a few authorship contributions of my own, including the aforementioned section on output formatting.

I've learned a lot from my involvement with JSON Schema.

Most significantly, having a focus on interoperability has opened my eyes to the needs of programming languages and frameworks that I haven't used.  Working primarily in C-based languages, I had never considered that different programming languages could actually _do_ different things.  Previous to my experience here, I had thought different languages all provided the same set of functionality, the only difference being that some made certain tasks easier.

I've also learned that JSON Schema is used for a lot more than just validation: hyperschema, code generation, and form generation are primary examples.  The diversity of application really makes JSON Schema a great concept.

## Being an Implementor

I've had two libraries (so far) that implement JSON Schema.

[Manatee.Json](https://www.nuget.org/packages/Manatee.Json) was the first, and it was half a learning platform for me to develop my coding skills and half intended to actually be useful to people.  It wasn't fast by any stretch of the imagination (I later found out that it was just my home-brew parsing that was slow), but it was accurate to the specification, and it had done moderately well in the nuget.org download stats.  At the time of this writing, it continues to be downloaded 300 times per day and has reached 1 million downloads despite it being deprecated for two years.

The second library, [JsonSchema.Net](https://www.nuget.org/packages/JsonSchema.Net), released in 2020, aims to be a more practical production-use library.  I created it as a JSON Schema companion to .Net's new built-in `System.Text.Json` parser/serializer, which was released in 2019.  In the two years that it's been available, it has amassed almost 450K downloads at about 670 per day.

JsonSchema.Net also has several "expansion pack" libraries that provide additional functionality, such as schema generation from .Net code, data generation from a schema, and two vocabularies that I wrote to address a couple open GitHub issues on the specification repository: external data access and identifying item uniqueness within arrays by specified keys.

I always keep an eye out for other extended uses for JSON Schema (and JSON in general) to add to the suite, and now I have more time to do it!

## Being an Employee

Last year, when Ben announced he was joining Postman to work on JSON Schema full time, I had reservations about the direction of the project.  Was Postman looking to own the project?  What would that mean for its future or for our ability (as volunteer contributors) to enact changes?

Ben's response was incredible and perfect:  he championed JSON Schema joining the OpenJS Foundation, cementing its independence.  And that he did it while being a Postman employee was reassurance that Postman was in it for the betterment of the open source community.

Then business carried on as usual.  We were all working hard toward the release of an editorial, non-functional patch release for 2020-12 (now released!), and Ben found that he needed some more dedicated help.  So in Slack DMs, he asked me if I would be interested in joining up.  Even though I was just getting settled in at a new company, I couldn't let this opportunity pass me by.  Getting paid to work on a passion project is the dream!

And now, I'm extremely excited to announce that I'm joining Postman Open Technologies as a Specification & Tooling Architect.  I will have three focuses: work on the JSON Schema specification, support for its implementors, and development support of adjacent uses.

To start with the specification, the output format will continue to be a primary focus for me.  Earlier this year, I opened a [discussion](https://github.com/orgs/json-schema-org/discussions/63) on potential improvements.  I think that we're in a good place, and I need to start creating PRs that move the current language in the specification to the new design.

I'm not sure yet what implementor support will look like, but based on our [implementations page](https://json-schema.org/tools), it seems that many of them haven't updated to supporting 2020-12 yet.  Outreach is probably the best place to start here.  We need to find out the status of each of these projects.  Are they still maintained?  Do they _intend_ to stay up-to-date with the specification?  Do they need help?  Answering these questions will be the first step.

And finally adjacent tooling.  I'm really excited about this part because it will highlight for me how JSON Schema is being used in the real world, thereby _validating_ (ha!) its usefulness.

I'm really excited about the opportunity that Postman has given me to work full time on a project that I love and its adjacency, and I foresee a bright future for this project and the community that continues to support and build it.

Thank you to everyone I've met on this journey, used my libraries, asked questions, contributed code, or just offered opinions!  I love being a part of this community!

Cover photo by me 😁