@@ -523,25 +523,29 @@ to inform the user of the evaluation path that produced the error or annotation.
523523
524524### Keyword Interactions
525525
526- Keywords MAY modify their behavior based on the presence, absence, or value of
527- another keyword in the same [ schema object] ( #schema-document ) . Such keywords
528- MUST NOT result in a circular dependency.
529-
530526Unless otherwise specified, keywords act independently.
531527
532- Supplementary specifications are encouraged to specify any interactive behavior as part of the keyword whose behavior is modified.
533-
534- #### Annotations as an Interaction Mechanism
535-
536- This document uses annotations as a mechanism to describe the interactions
537- between keywords, however this is for illustrative purposes and not
538- prescriptive. Implementations MAY use whatever mechanisms makes sense given
539- their architecture and language needs in order to achieve the specified
540- behaviors. Implementations are not required to collect annotations in order to
541- manage keyword interaction.
542-
543- Supplementary specifications are also encouraged to use annotations to describe
544- any interactions of the keywords they define.
528+ Keywords MAY modify their behavior based on the presence, absence, or value of
529+ another keyword in the same schema object. Such keywords MUST NOT result in a
530+ circular dependency.
531+
532+ Supplementary specifications are encouraged to specify any dependencies as part
533+ of the dependent keyword (i.e. the keyword whose behavior is modified).
534+
535+ Within this document, keyword dependencies are expressed using one of the
536+ following mechanics:
537+
538+ - Static dependencies, in which the dependency relies on the presence or
539+ contents of another keyword.
540+ - Dynamic dependencies, in which the dependency relies on the evaluation of
541+ another keyword against an instance. This dependency may be on either the
542+ annotations produced by the keyword or the validation result of its
543+ subschema(s).
544+
545+ These mechanics are used merely to describe dependencies; they are for
546+ illustrative purposes and not prescriptive. Implementations MAY use whatever
547+ mechanisms makes sense given the needs of their architecture and language in
548+ order to achieve the specified behaviors.
545549
546550### Default Behaviors {#default-behaviors}
547551
0 commit comments