Взаимоисключающие группы недвижимости
Предположим, у меня есть объект с четырьмя возможными свойствами: 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
, но я не могу понять правильное заклинание.