Взаимоисключающие группы недвижимости

Предположим, у меня есть объект с четырьмя возможными свойствами: a, b, c, d. a и b могут появляться только вместе (то есть, a появляется тогда и только тогда, когда b появляется). Если появятся a и b, cне могу появляются (то есть, a / b и c являются взаимоисключающими). Если a и b не появляются, может появиться c (но не обязательно). d может появляться в любой комбинации с / b, c или самостоятельно. Никакие свойства кроме a, b, c или d не могут появляться вообще.

Как я могу выразить это как jsonschema? Я подозреваю, что мог бы использовать некоторую комбинациюoneOf а такжеrequired, но я не могу понять правильное заклинание.

Ответы на вопрос(2)

Ваш ответ на вопрос