Have you ever had an idea for a JSON Schema keyword that would make your life easier? Whether it's an assertion JSON Schema doesn't support, or syntactic sugar for a complex pattern, or just an annotation, the JSON Schema vocabulary system formalizes a way for you to define, use, and share your custom keywords with the world.
Custom vocabularies can be used for all kinds of things from creating a set of utility keywords for complex validations to a set of annotations supporting things like form builders or code generators.
In this workshop we will cover all the concepts and terms you'll need to know to design and implement our own vocabulary. After discussing the limitations and pitfalls you might encounter when using custom vocabularies in your schemas, we'll break into groups to design and implement our own vocabularies. Finally, we'll do some exercises to see how we can use any annotations we defined in our vocabularies in our applications. Vocabulary implementation instructions will be given for a JavaScript/TypeScript JSON Schema library, but there are also JSON Schema libraries with vocabulary support in C#, Python, and Perl if groups want to try one of those instead.
Slides:
https://docs.google.com/presentation/d/1lC4UqiJ2EzViwHBj9Xdtk5dch6mPGEMHYUT_63BLxcc/edit?usp=sharing