Skip to content

Split "unevaluated*" into separate vocab for separate support indications #853

Closed
@handrews

Description

@handrews

While responding at ajv-validator/ajv#1082 (comment) I was reminded that we technically allow validators to make an independent decision about supporting unevaluatedProperties and unevaluatedItems due to their dependence on annotation collection, which is not required for basic spec conformance.

We did that before the $vocabulary process had been developed. Which means that whether or not these keywords are considered errors is totally outside of that process, which is otherwise how we give schema authors control over ensuring support for the features on which they depend.

We could split those keywords out of the "applicator" vocabulary (perhaps in to an "annotated-applicator" vocabulary, or just "unevaluated", or something, the name isn't that important).

Then we could provide (or just tell people they can write, like we do with the different "format" vocabulary options) a meta-schema that is just like the standard one, but with the "unevaluated" (or whatever) vocabulary declared with false, or omitted entirely.

This would require meta-schema updates, but given that 2019-09 has barely been implemented at all and still does not even have a full test suite, rolling everything forward to a 2020-03 or 2020-04 that is aligned with OpenAPI 3.1 would be pretty reasonable. I will file a separate issue for tracking the question of whether the draft-08-patch1 release should be one with a new meta-schema or not.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions