diff --git a/jsonschema-core.md b/jsonschema-core.md index 84a6579c..24cfa30a 100644 --- a/jsonschema-core.md +++ b/jsonschema-core.md @@ -523,11 +523,29 @@ to inform the user of the evaluation path that produced the error or annotation. ### Keyword Interactions -Keyword behavior MAY be defined in terms of the annotation results of -[subschemas](#root) and/or adjacent keywords (keywords within the same schema -object) and their subschemas. Such keywords MUST NOT result in a circular -dependency. Keywords MAY modify their behavior based on the presence or absence -of another keyword in the same [schema object](#schema-document). +Unless otherwise specified, keywords act independently. + +Keywords MAY modify their behavior based on the presence, absence, or value of +another keyword in the same schema object. Such keywords MUST NOT result in a +circular dependency. + +Supplementary specifications are encouraged to specify any dependencies as part +of the dependent keyword (i.e. the keyword whose behavior is modified). + +Within this document, keyword dependencies are expressed using one of the +following mechanisms: + +- Static dependencies, in which the dependency relies on the presence or + contents of another keyword. +- Dynamic dependencies, in which the dependency relies on the evaluation of + another keyword against an instance. This dependency may be on either the + annotations produced by the keyword or the validation result of its + subschema(s). + +These mechanisms are used merely to describe dependencies; they are for +illustrative purposes and not prescriptive. Implementations MAY use whatever +mechanisms make sense given the needs of their architecture and language in +order to achieve the specified behaviors. ### Default Behaviors {#default-behaviors}