This is the first of probably quite a few trivial changes which make our testing of $ref more resillient -- specifically today, we only test very few keywords to ensure subschemas within them are collected / searched for $ids. This work comes out of discussions with Giorgio Ghelli as well as having written an implementation agnostic referencing implementation in a minimal way (i.e. without artificially including keywords even where tests were missing), wherein it was obvious we only have current tests for 5! keywords.
if/then/else are possibly particularly dangerous, since some tools may mistakenly believe that a schema with no if can have then/else dropped, but this is not the case, as the then/else may contain a subschema that will be referenceable elsewhere.
This is the first of probably quite a few trivial changes which make our testing of $ref more resillient -- specifically today, we only test very few keywords to ensure subschemas within them are collected / searched for $ids. This work comes out of discussions with Giorgio Ghelli as well as having written an implementation agnostic referencing implementation in a minimal way (i.e. without artificially including keywords even where tests were missing), wherein it was obvious we only have current tests for 5! keywords.
if/then/else are possibly particularly dangerous, since some tools may mistakenly believe that a schema with no if can have then/else dropped, but this is not the case, as the then/else may contain a subschema that will be referenceable elsewhere.
C/o Giorgio Ghelli