diff --git a/docs/standards/index.md b/docs/standards/index.md
index e114284c..f41dba13 100644
--- a/docs/standards/index.md
+++ b/docs/standards/index.md
@@ -12,3 +12,74 @@ You can find further information for:
- the [BIDS schema](./schema/index.md)
- the [BIDS statistical model specification](.//bids_stats_model/index.md)
- the [BIDS apps specification](./bids_app_specification/index.md)
+
+The following figure shows the relationship between the BIDS specification, validator implementations, and the BIDS schema:
+
+```mermaid
+---
+config:
+ layout: dagre
+---
+flowchart TB
+ subgraph s6["bids-standard/bids-specification"]
+ markdown@{ label: "src/
markdown" }
+ bidsschematools@{ label: "tools/schemacode/
bidsschematools" }
+ schema@{ label: "src/schema/
YAMLs" }
+ end
+ subgraph s2["bids-specification.readthedocs.io"]
+ specification["specification html"]
+ schema.json@{ label: "schema.json" }
+ end
+ subgraph s_jsr["https://jsr.io/@bids/schema"]
+ schema.json-jsr["schema.json"]
+ end
+ subgraph s5["bids.neuroimaging.io"]
+ s2
+ end
+ subgraph subGraph5["legacy-validator @ v1.15.1"]
+ Node.js["Node.js"]
+ regex["filename patterns"]
+ web1@{ label: "web" }
+ cli1["cli"]
+ end
+ subgraph subGraph6["bids-validator ≥ v2.0"]
+ web@{ label: "web" }
+ deno["deno"]
+ cli["cli"]
+ end
+ subgraph subGraph7["python-validator ≥ v1.14.7"]
+ python["python"]
+ library["library"]
+ cli3["cli"]
+ end
+ schema -. is interpreted by .-> bidsschematools
+ markdown -- is interpreted by --> mkdocs@{ label: "mkdocs" }
+ bidsschematools -- provides MACROS for --> mkdocs
+ mkdocs -- renders HTML --> specification
+ schema -- is instance of --> bids-schema@{ label: "BIDS Schema" }
+ bids-schema -. is implemented by .-> deno & bidsschematools & python
+ bids-schema -. is reflected in .-> metaschema.json@{ label: "metaschema.json
JSON Schema" }
+ schema.json -- is instance of --> bids-schema & metaschema.json
+ schema.json-jsr -- is instance of --> bids-schema & metaschema.json
+ bidsschematools -- compiles YAMLs as --> schema.json & schema.json-jsr
+ regex --> Node.js
+ Node.js --> web1 & cli1
+ deno --> web & cli
+ python --> library & cli3
+ specification -. is interpreted by .-> regex
+ schema.json-jsr -. is interpreted by .-> deno
+ bidsschematools -- is used by --> python
+ markdown@{ shape: docs}
+ bidsschematools@{ shape: proc}
+ schema@{ shape: docs}
+ schema.json@{ shape: doc}
+ schema.json-jsr@{ shape: doc}
+ Node.js@{ shape: subproc}
+ web1@{ shape: rect}
+ web@{ shape: rect}
+ deno@{ shape: subproc}
+ python@{ shape: subproc}
+ mkdocs@{ shape: proc}
+ bids-schema@{ shape: rect}
+ metaschema.json@{ shape: doc}
+```
diff --git a/mkdocs.yml b/mkdocs.yml
index cd8e7d6b..2d168241 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -20,6 +20,8 @@ plugins:
module_name: macros/main
# toggle to true if you are in CD/CI environment
on_error_fail: true
+ - panzoom:
+ full_screen: True # default False
- redirects:
redirect_maps:
# old links from the old website
diff --git a/requirements.in b/requirements.in
index 7a6a12c5..b344c179 100644
--- a/requirements.in
+++ b/requirements.in
@@ -3,9 +3,10 @@ gender_guesser
geopy
jinja2>=3.1.5
markdown-it-py
-mkdocs-material[imaging]
+mkdocs-material[imaging]>=9.6.3
mkdocs-macros-plugin
mkdocs-open-in-new-tab
+mkdocs-panzoom-plugin
mkdocs-redirects
mkdocs-rss-plugin
plotly>=5.3.1
diff --git a/requirements.txt b/requirements.txt
index 7d8d62ca..eb5f3afd 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -14,6 +14,8 @@ attrs==23.2.0
# referencing
babel==2.15.0
# via mkdocs-material
+beautifulsoup4==4.13.3
+ # via mkdocs-panzoom-plugin
bibtexparser==1.4.1
# via pyzotero
bids-validator==1.14.6
@@ -113,18 +115,21 @@ mkdocs==1.6.0
# mkdocs-macros-plugin
# mkdocs-material
# mkdocs-open-in-new-tab
+ # mkdocs-panzoom-plugin
# mkdocs-redirects
# mkdocs-rss-plugin
mkdocs-get-deps==0.2.0
# via mkdocs
mkdocs-macros-plugin==1.0.5
# via -r requirements.in
-mkdocs-material==9.5.26
+mkdocs-material==9.6.5
# via -r requirements.in
mkdocs-material-extensions==1.3.1
# via mkdocs-material
mkdocs-open-in-new-tab==1.0.3
# via -r requirements.in
+mkdocs-panzoom-plugin==0.1.3
+ # via -r requirements.in
mkdocs-redirects==1.2.1
# via -r requirements.in
mkdocs-rss-plugin==1.13.0
@@ -240,6 +245,8 @@ six==1.16.0
# via python-dateutil
smmap==5.0.1
# via gitdb
+soupsieve==2.6
+ # via beautifulsoup4
sqlalchemy==2.0.30
# via pybids
tabulate==0.9.0
@@ -256,6 +263,7 @@ tinycss2==1.3.0
# cssselect2
typing-extensions==4.12.2
# via
+ # beautifulsoup4
# formulaic
# sqlalchemy
tzdata==2024.1