Вы говорите, что схема недопустима, но это не относится к приведенному вами примеру.
Неизвестные ключевые слова игнорируются. Это позволяет создавать расширения. Если бы неизвестные ключевые слова были предотвращены, у нас не было бы экосистемы расширений, созданных различными людьми и группами, таких как генерация форм.
Вы говорите, что значение в required
является «ссылкой на существующая собственность ". Ключевое слово required
не имеет ссылки на ключевое слово properties
.
required
определяет, какие ключи должен иметь объект.
properties
определяет способ применения подсхемы к значениям. в объекте.
Нет необходимости включать значения в required
в properties
. На самом деле, обычно это не так при построении сложных модульных схем.
С точки зрения проверки правильности схемы можно использовать мета-схему схемы JSON.
С точки зрения проверка дополнительных вещей, которые вы считаете нежелательными, это ваше дело, учитывая, что приведенные вами примеры действительны.
В некоторых библиотеках может быть предусмотрена проверка работоспособности, но такая проверка вряд ли подойдет для примеров, которые вы предоставили, так как они не являются ошибками.