Skip to content

Commit e13116f

Browse files
committed
Release Notes: Vocabulary changes
1 parent 9744883 commit e13116f

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

draft/2020-12/release-notes.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,3 +184,22 @@ Here's how you would covert a schema using `$recursiveRef` to use `$dynamicRef`.
184184
}</pre></td>
185185
</tr>
186186
</table>
187+
188+
## Vocabulary Changes
189+
The `unevaluatedProperties` and `unevaluatedItems` keywords have been moved from
190+
the applicator vocabulary to their own vocabulary designated which is required
191+
in the default meta-schema. In Draft 2019-09, these keywords were expected to
192+
throw an error if not implemented. This was a special-case behavior of the
193+
applicator vocabulary. Moving the "unevaluated" keywords into their own
194+
vocabulary allows us to remove that special-case and also allowing for dialects
195+
to be constructed that don't require these keywords.
196+
197+
The format vocabulary was broken into two separate vocabularies. The
198+
"format-annotation" vocabulary treats the `format` keyword as an annotation and
199+
the "format-assertion" vocabulary treats the `format` keyword as an assertion.
200+
The "format-annotation" vocabulary is used in the default meta-schema and is
201+
required. In Draft 2019-09, `format` should be evaluated as an annotation by
202+
default and implementations could provide configuration to change the behavior
203+
to evaluate `format` as an assertion. The separate vocabularies allow for
204+
removing the special configuration requirements and just use the vocabulary
205+
system to express which behavior should be used.

0 commit comments

Comments
 (0)