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