From f3b3392299766afa68e67bc50282daf8254b97c1 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Thu, 12 Mar 2026 17:29:21 -0400
Subject: [PATCH 01/35] fix: resolve broken anchor links
Signed-off-by: John McCall
---
blog/2025-05-21-release-notes.mdx | 2 +-
blog/2025-06-25-release-notes.mdx | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/blog/2025-05-21-release-notes.mdx b/blog/2025-05-21-release-notes.mdx
index 35b1f399..c82b4be6 100644
--- a/blog/2025-05-21-release-notes.mdx
+++ b/blog/2025-05-21-release-notes.mdx
@@ -48,7 +48,7 @@ s3://overturemaps-us-west-2/bridgefiles/2025-05-21.0
## GERS IDs will become UUIDs in June
-In next month's release (late June), Overture is standardizing the [`id` property](/schema/#top-level-properties) across all themes by adopting [UUIDs](https://www.rfc-editor.org/rfc/rfc9562.html), stored as strings.
+In next month's release (late June), Overture is standardizing the [`id` property](/schema/) across all themes by adopting [UUIDs](https://www.rfc-editor.org/rfc/rfc9562.html), stored as strings.
Currently the structure of our IDs varies slightly across datasets, with some themes embedding metadata (e.g. [H3](https://h3geo.org/)) in the `id` property. The new UUIDs will be randomly-generated identifiers with no encoded information. Moving to UUIDs enables consistent ID generation and registration across our data pipelines, which is necessary for the successful implementation of [GERS](/gers).
diff --git a/blog/2025-06-25-release-notes.mdx b/blog/2025-06-25-release-notes.mdx
index a29f9780..895b8326 100644
--- a/blog/2025-06-25-release-notes.mdx
+++ b/blog/2025-06-25-release-notes.mdx
@@ -66,7 +66,7 @@ You can access the datasets by following the process outlined [here](/getting-da
## What's new? Big changes to GERS.
-In this release, Overture has standardized the [`id` property](/schema/#top-level-properties) across all themes by adopting [UUIDs](https://www.rfc-editor.org/rfc/rfc9562.html), stored as strings. This is a **one-time** breaking change for our ID system. For this release only, we are offering Parquet files, partioned by `theme` and `type` that map the old May IDs to the new June UUIDs. You can find that file here: `s3://overturemaps-extras-us-west-2/june_to_may_id_mapping/`.
+In this release, Overture has standardized the [`id` property](/schema/) across all themes by adopting [UUIDs](https://www.rfc-editor.org/rfc/rfc9562.html), stored as strings. This is a **one-time** breaking change for our ID system. For this release only, we are offering Parquet files, partioned by `theme` and `type` that map the old May IDs to the new June UUIDs. You can find that file here: `s3://overturemaps-extras-us-west-2/june_to_may_id_mapping/`.
Overture is now producing [bridge files](https://docs.overturemaps.org/gers/bridge-files/) with each release. You can find the latest bridge files here, partitioned by `dataset`, `theme`, and `type`:
From 98a4b3011b343babf3aa39ef67dbe1cb0c25e162 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Thu, 12 Mar 2026 17:33:25 -0400
Subject: [PATCH 02/35] fix: html minifier warning about orphaned
post
render
Signed-off-by: John McCall
---
src/components/home.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/home.jsx b/src/components/home.jsx
index da687013..3f07f843 100644
--- a/src/components/home.jsx
+++ b/src/components/home.jsx
@@ -20,7 +20,7 @@ export function HeroHeadline() {
}
export function HeroSubtext({ children }) {
- return {children}
;
+ return {children}
;
}
export function HeroCTAs({ children }) {
From d8da5fbea01477cce0e3a228b3646ab3209083ab Mon Sep 17 00:00:00 2001
From: John McCall
Date: Thu, 12 Mar 2026 18:10:19 -0400
Subject: [PATCH 03/35] add dependabot for npm
Signed-off-by: John McCall
---
.github/dependabot.yml | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index ca669707..d6079a62 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -2,6 +2,18 @@
version: 2
updates:
+ # Maintain npm dependencies
+ - package-ecosystem: "npm"
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ open-pull-requests-limit: 5
+ labels:
+ - "bot"
+ commit-message:
+ prefix: "[CHORE](deps)"
+ include: "scope"
+
# Maintain GitHub Actions dependencies
- package-ecosystem: "github-actions"
directory: "/"
From 350c8259ee45414bf9507bdd73b9d15e608f5a6f Mon Sep 17 00:00:00 2001
From: John McCall
Date: Thu, 12 Mar 2026 18:10:39 -0400
Subject: [PATCH 04/35] update to LTS node, remove unused dep
Signed-off-by: John McCall
---
package-lock.json | 43 ++-----------------------------------------
package.json | 5 ++---
2 files changed, 4 insertions(+), 44 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 7b3052d1..cd346f75 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -35,11 +35,10 @@
"markdownlint-cli": "^0.43.0",
"prettier": "^3.4.2",
"typescript": "^5.7.3",
- "vitest": "^4.0.18",
- "yaml-loader": "^0.8.0"
+ "vitest": "^4.0.18"
},
"engines": {
- "node": ">=18.0"
+ "node": ">=24"
}
},
"node_modules/@acemir/cssom": {
@@ -14095,13 +14094,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/javascript-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz",
- "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/jest-util": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
@@ -24428,37 +24420,6 @@
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"license": "ISC"
},
- "node_modules/yaml": {
- "version": "2.8.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz",
- "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/eemeli"
- }
- },
- "node_modules/yaml-loader": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/yaml-loader/-/yaml-loader-0.8.1.tgz",
- "integrity": "sha512-BCEndnUoi3BaZmePkwGGe93txRxLgMhBa/gE725v1/GHnura8QvNs7c4+4C1yyhhKoj3Dg63M7IqhA++15j6ww==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "javascript-stringify": "^2.0.1",
- "loader-utils": "^2.0.0",
- "yaml": "^2.0.0"
- },
- "engines": {
- "node": ">= 14"
- }
- },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
diff --git a/package.json b/package.json
index 3aa655a0..9285186a 100644
--- a/package.json
+++ b/package.json
@@ -50,8 +50,7 @@
"markdownlint-cli": "^0.43.0",
"prettier": "^3.4.2",
"typescript": "^5.7.3",
- "vitest": "^4.0.18",
- "yaml-loader": "^0.8.0"
+ "vitest": "^4.0.18"
},
"browserslist": {
"production": [
@@ -66,6 +65,6 @@
]
},
"engines": {
- "node": ">=18.0"
+ "node": ">=24"
}
}
From 480ed5b2d1d807ab045139e0b7d2f3d649677328 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Thu, 12 Mar 2026 18:13:17 -0400
Subject: [PATCH 05/35] add schema preview build + error for broken anchors
Signed-off-by: John McCall
---
docusaurus.config.js | 69 +++++++++++++++++++++++++++-----------------
1 file changed, 42 insertions(+), 27 deletions(-)
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 965e6bb7..5ddf1f18 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -9,6 +9,12 @@ const darkCodeTheme = themes.nightOwl;
const defaultUrl = 'https://docs.overturemaps.org';
const defaultBaseUrl = '/';
+// SCHEMA_PREVIEW is set by the schema repo's CI when building a PR preview of the
+// schema reference docs (see OvertureMaps/schema/.github/workflows/schema-pr-preview.yml).
+// When true, only the schema reference section is built β blog, community pages, and
+// navbar items unrelated to the schema are excluded to keep the preview fast and focused.
+const isSchemaPreview = process.env.SCHEMA_PREVIEW === 'true';
+
function getFromEnvironment(variableName, defaultValue) {
const environmentValue = process.env[variableName];
return environmentValue ? environmentValue : defaultValue;
@@ -67,6 +73,7 @@ const config = {
projectName: 'docs', // Usually your repo name.
onBrokenLinks: 'throw',
+ onBrokenAnchors: 'throw',
markdown: {
hooks: {
@@ -86,17 +93,19 @@ const config = {
themes: [],
- plugins: [
- [
- '@docusaurus/plugin-content-pages',
- {
- id: 'community',
- path: './community',
- routeBasePath: 'community',
- showLastUpdateTime: true,
- },
- ],
- ],
+ plugins: isSchemaPreview
+ ? []
+ : [
+ [
+ '@docusaurus/plugin-content-pages',
+ {
+ id: 'community',
+ path: './community',
+ routeBasePath: 'community',
+ showLastUpdateTime: true,
+ },
+ ],
+ ],
presets: [
[
@@ -109,12 +118,14 @@ const config = {
showLastUpdateTime: true,
breadcrumbs: false,
},
- blog: {
- blogTitle: 'Overture Maps Engineering Blog',
- blogDescription: 'Building Overture Maps',
- blogSidebarTitle: 'Posts from the Overture Maps engineering team',
- blogSidebarCount: 20,
- },
+ blog: isSchemaPreview
+ ? false
+ : {
+ blogTitle: 'Overture Maps Engineering Blog',
+ blogDescription: 'Building Overture Maps',
+ blogSidebarTitle: 'Posts from the Overture Maps engineering team',
+ blogSidebarCount: 20,
+ },
theme: {
customCss: require.resolve('./src/css/custom.css'),
},
@@ -151,16 +162,20 @@ const config = {
position: 'left',
label: 'Docs',
},
- {
- to: 'blog',
- label: 'Blog',
- position: 'left',
- },
- {
- to: 'community',
- label: 'Community',
- position: 'left',
- },
+ ...(!isSchemaPreview
+ ? [
+ {
+ to: 'blog',
+ label: 'Blog',
+ position: 'left',
+ },
+ {
+ to: 'community',
+ label: 'Community',
+ position: 'left',
+ },
+ ]
+ : []),
{
to: 'https://github.com/OvertureMaps/docs',
position: 'right',
From 64e03b713c56634c64df4eb75d6fc659b4f334ce Mon Sep 17 00:00:00 2001
From: John McCall
Date: Thu, 12 Mar 2026 18:14:55 -0400
Subject: [PATCH 06/35] Use package.json node version and switch to npm ci
Read Node version from package.json instead of hardcoding '24', add a pinned lowlydba/sustainable-npm action to configure the npm environment, and replace `npm install --prefer-dedupe` with `npm ci --prefer-dedupe` for deterministic installs. Build step remains unchanged.
Signed-off-by: John McCall
---
.github/workflows/production_deploy_documentation.yml | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/production_deploy_documentation.yml b/.github/workflows/production_deploy_documentation.yml
index 77c690f3..b69c22ff 100644
--- a/.github/workflows/production_deploy_documentation.yml
+++ b/.github/workflows/production_deploy_documentation.yml
@@ -28,10 +28,13 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v6
with:
- node-version: '24'
+ node-version-file: package.json
+
+ - name: Configure sustainable npm
+ uses: lowlydba/sustainable-npm@ed089bd92235c2af803a951fba2bd42c59fbcd73 # v2.0.0
- name: Install NPM dependencies
- run: npm install --prefer-dedupe
+ run: npm ci --prefer-dedupe
- name: Build Docusaurus Pages π§
run: npm run build
From a689b3dc08b2a05e9a4b08364a033ae222b03ecb Mon Sep 17 00:00:00 2001
From: John McCall
Date: Fri, 13 Mar 2026 11:42:42 -0400
Subject: [PATCH 07/35] Update package-lock.json
Signed-off-by: John McCall
---
package-lock.json | 238 +++++++++++++++++++++++++++-------------------
1 file changed, 142 insertions(+), 96 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index cd346f75..a279da61 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -445,14 +445,14 @@
}
},
"node_modules/@asamuzakjp/dom-selector/node_modules/css-tree": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
- "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
+ "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "mdn-data": "2.12.2",
- "source-map-js": "^1.0.1"
+ "mdn-data": "2.27.1",
+ "source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
@@ -469,9 +469,9 @@
}
},
"node_modules/@asamuzakjp/dom-selector/node_modules/mdn-data": {
- "version": "2.12.2",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
- "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+ "version": "2.27.1",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
+ "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
"dev": true,
"license": "CC0-1.0"
},
@@ -654,9 +654,9 @@
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.6.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.6.tgz",
- "integrity": "sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==",
+ "version": "0.6.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.7.tgz",
+ "integrity": "sha512-6Fqi8MtQ/PweQ9xvux65emkLQ83uB+qAVtfHkC9UodyHMIZdxNI01HjLCLUtybElp2KY2XNE0nOgyP1E1vXw9w==",
"license": "MIT",
"dependencies": {
"@babel/helper-compilation-targets": "^7.28.6",
@@ -2055,12 +2055,12 @@
}
},
"node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.0.tgz",
- "integrity": "sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ==",
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.1.tgz",
+ "integrity": "sha512-ENp89vM9Pw4kv/koBb5N2f9bDZsR0hpf3BdPMOg/pkS3pwO4dzNnQZVXtBbeyAadgm865DmQG2jMMLqmZXvuCw==",
"license": "MIT",
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.6",
+ "@babel/helper-define-polyfill-provider": "^0.6.7",
"core-js-compat": "^3.48.0"
},
"peerDependencies": {
@@ -2209,23 +2209,23 @@
}
},
"node_modules/@bramus/specificity/node_modules/css-tree": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
- "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
+ "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "mdn-data": "2.12.2",
- "source-map-js": "^1.0.1"
+ "mdn-data": "2.27.1",
+ "source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
}
},
"node_modules/@bramus/specificity/node_modules/mdn-data": {
- "version": "2.12.2",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
- "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+ "version": "2.27.1",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
+ "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
"dev": true,
"license": "CC0-1.0"
},
@@ -7667,12 +7667,12 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "25.2.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.1.tgz",
- "integrity": "sha512-CPrnr8voK8vC6eEtyRzvMpgp3VyVRhgclonE7qYi6P9sXwYb59ucfrnmFBTaP0yUi8Gk4yZg/LlTJULGxvTNsg==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz",
+ "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==",
"license": "MIT",
"dependencies": {
- "undici-types": "~7.16.0"
+ "undici-types": "~7.18.0"
}
},
"node_modules/@types/prismjs": {
@@ -7750,11 +7750,12 @@
}
},
"node_modules/@types/send": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
- "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
+ "version": "0.17.6",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz",
+ "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==",
"license": "MIT",
"dependencies": {
+ "@types/mime": "^1",
"@types/node": "*"
}
},
@@ -7778,16 +7779,6 @@
"@types/send": "<1"
}
},
- "node_modules/@types/serve-static/node_modules/@types/send": {
- "version": "0.17.6",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz",
- "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==",
- "license": "MIT",
- "dependencies": {
- "@types/mime": "^1",
- "@types/node": "*"
- }
- },
"node_modules/@types/sockjs": {
"version": "0.3.36",
"resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
@@ -8232,9 +8223,9 @@
}
},
"node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
@@ -8265,9 +8256,9 @@
}
},
"node_modules/ajv-formats/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -10277,14 +10268,14 @@
}
},
"node_modules/cssstyle/node_modules/css-tree": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
- "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
+ "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "mdn-data": "2.12.2",
- "source-map-js": "^1.0.1"
+ "mdn-data": "2.27.1",
+ "source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
@@ -10301,9 +10292,9 @@
}
},
"node_modules/cssstyle/node_modules/mdn-data": {
- "version": "2.12.2",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
- "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+ "version": "2.27.1",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
+ "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
"dev": true,
"license": "CC0-1.0"
},
@@ -11293,19 +11284,25 @@
}
},
"node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "version": "2.0.0-next.6",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz",
+ "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "is-core-module": "^2.13.0",
+ "es-errors": "^1.3.0",
+ "is-core-module": "^2.16.1",
+ "node-exports-info": "^1.6.0",
+ "object-keys": "^1.1.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
"resolve": "bin/resolve"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -12358,17 +12355,40 @@
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
"license": "BSD-2-Clause"
},
+ "node_modules/glob/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/glob/node_modules/brace-expansion": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
+ "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
"node_modules/glob/node_modules/minimatch": {
- "version": "10.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz",
- "integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==",
+ "version": "10.2.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz",
+ "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
- "@isaacs/brace-expansion": "^5.0.1"
+ "brace-expansion": "^5.0.2"
},
"engines": {
- "node": "20 || >=22"
+ "node": "18 || 20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -12896,15 +12916,6 @@
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"license": "MIT"
},
- "node_modules/hpack.js/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
"node_modules/html-encoding-sniffer": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz",
@@ -17551,6 +17562,35 @@
"node": ">=18"
}
},
+ "node_modules/node-exports-info": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz",
+ "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array.prototype.flatmap": "^1.3.3",
+ "es-errors": "^1.3.0",
+ "object.entries": "^1.1.9",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/node-exports-info/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/node-releases": {
"version": "2.0.27",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
@@ -18176,9 +18216,9 @@
}
},
"node_modules/path-scurry/node_modules/lru-cache": {
- "version": "11.2.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz",
- "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==",
+ "version": "11.2.6",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz",
+ "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==",
"dev": true,
"license": "BlueOak-1.0.0",
"engines": {
@@ -21284,9 +21324,9 @@
}
},
"node_modules/schema-utils/node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
@@ -21999,14 +22039,20 @@
}
},
"node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"license": "MIT",
"dependencies": {
- "safe-buffer": "~5.2.0"
+ "safe-buffer": "~5.1.0"
}
},
+ "node_modules/string_decoder/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
"node_modules/string-width": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
@@ -22037,12 +22083,12 @@
}
},
"node_modules/string-width/node_modules/strip-ansi": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
- "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"license": "MIT",
"dependencies": {
- "ansi-regex": "^6.0.1"
+ "ansi-regex": "^6.2.2"
},
"engines": {
"node": ">=12"
@@ -22916,9 +22962,9 @@
}
},
"node_modules/undici-types": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
- "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
+ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
"license": "MIT"
},
"node_modules/unicode-canonical-property-names-ecmascript": {
@@ -24296,12 +24342,12 @@
}
},
"node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
- "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"license": "MIT",
"dependencies": {
- "ansi-regex": "^6.0.1"
+ "ansi-regex": "^6.2.2"
},
"engines": {
"node": ">=12"
@@ -24359,9 +24405,9 @@
}
},
"node_modules/wsl-utils/node_modules/is-wsl": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
- "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz",
+ "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==",
"license": "MIT",
"dependencies": {
"is-inside-container": "^1.0.0"
From 97bb21e5922b8fadcfe47672e3e7688ffdbace30 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Fri, 13 Mar 2026 11:46:25 -0400
Subject: [PATCH 08/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index c4893226..fb28b126 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -18,13 +18,14 @@ jobs:
steps:
- name: Check out the main docs repo repository and build.
uses: actions/checkout@v6
- with:
- fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v6
with:
- node-version: '24'
+ node-version-file: 'package.json'
+
+ - name: Sustainable npm
+ uses: lowlydba/sustainable-npm@v2
- name: Install NPM dependencies
run: npm ci --omit=dev
From 61d176f64e36b2b4f13dcd448b4c58ba7c26920b Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 12:11:21 -0400
Subject: [PATCH 09/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 45 ++++++++++++++++++---------
1 file changed, 30 insertions(+), 15 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index fb28b126..91065f5b 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -11,6 +11,13 @@ permissions:
contents: read
pull-requests: write
+env:
+ DOCS_PATH: docs
+ PREVIEW_PATH: /${{ github.event.repository.name }}/pr/${{ github.event.number }}
+ STAGING_URL: https://staging.overturemaps.org
+ SCHEMA_PREVIEW: false # Set to true to only publish Schema reference docs
+ AWS_ROLE_ARN: arn:aws:iam::763944545891:role/pages-staging-oidc-overturemaps
+ AWS_REGION: us-west-2
jobs:
build:
name: Build
@@ -24,16 +31,20 @@ jobs:
with:
node-version-file: 'package.json'
- - name: Sustainable npm
- uses: lowlydba/sustainable-npm@v2
+ - uses: lowlydba/sustainable-npm@v2
- - name: Install NPM dependencies
- run: npm ci --omit=dev
+ - run: npm ci --omit=dev
+
+ - name: Generate schema markdown docs
+ uses: OvertureMaps/workflows/.github/actions/generate-schema-docs@main
+ with:
+ output-dir: ${{ github.workspace }}/docs/schema/reference
- name: Build Docusaurus website
env:
- DOCUSAURUS_URL: https://staging.overturemaps.org/
- DOCUSAURUS_BASE_URL: /${{ github.event.repository.name }}/pr/${{ github.event.number }}/
+ DOCUSAURUS_URL: ${{ env.STAGING_URL }}/
+ DOCUSAURUS_BASE_URL: ${{ env.PREVIEW_PATH }}/
+ SCHEMA_PREVIEW: ${{ env.SCHEMA_PREVIEW }}
run: npm run build
- name: Upload docs build as an artifact π¦
@@ -44,17 +55,17 @@ jobs:
deploy:
name: Deploy
- runs-on: ubuntu-latest
+ runs-on: ubuntu-slim
needs: build
environment:
name: staging
- url: https://staging.overturemaps.org/${{ github.event.repository.name }}/pr/${{ github.event.number }}/index.html
+ url: ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html
steps:
- name: Configure AWS credentials π
uses: aws-actions/configure-aws-credentials@v6
with:
- role-to-assume: arn:aws:iam::763944545891:role/pages-staging-oidc-overturemaps
+ role-to-assume: ${{ env.AWS_ROLE_ARN }}
aws-region: us-west-2
- name: Download artifacts π₯
@@ -65,9 +76,9 @@ jobs:
- name: Copy to S3
run: |
- aws s3 sync --delete build s3://overture-managed-staging-usw2/gh-pages/${{ github.event.repository.name }}/pr/${{ github.event.number }}/
+ aws s3 sync --delete build s3://overture-managed-staging-usw2/gh-pages${{ env.PREVIEW_PATH }}/
- name: Bust the Cache
- run: aws cloudfront create-invalidation --distribution-id E1KP2IN0H2RGGT --paths "/${{ github.event.repository.name }}/pr/${{ github.event.number }}/*"
+ run: aws cloudfront create-invalidation --distribution-id E1KP2IN0H2RGGT --paths "${{ env.PREVIEW_PATH }}/*"
- name: Get deploy timestamp
id: timestamp
@@ -77,9 +88,13 @@ jobs:
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
- ## π Overture Maps docs branch preview deployed!
+ ## π OMF Docs preview is live!
- You can review your changes at https://staging.overturemaps.org/${{ github.event.repository.name }}/pr/${{ github.event.number }}/index.html
+ | | |
+ |---|---|
+ | **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
+ | **Updated** | ${{ steps.timestamp.outputs.time }} |
+ | **Commit** | [${{ github.sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}) |
- ---
- β»οΈ Last refreshed: ${{ steps.timestamp.outputs.time }}
+ > [!NOTE]
+ > This preview updates automatically with each push to this PR.
From fa84d185948d2a368533b1042e68574b9f27c880 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 12:16:59 -0400
Subject: [PATCH 10/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index 91065f5b..8e3e6bdc 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -41,11 +41,11 @@ jobs:
output-dir: ${{ github.workspace }}/docs/schema/reference
- name: Build Docusaurus website
+ run: npm run build
env:
DOCUSAURUS_URL: ${{ env.STAGING_URL }}/
DOCUSAURUS_BASE_URL: ${{ env.PREVIEW_PATH }}/
SCHEMA_PREVIEW: ${{ env.SCHEMA_PREVIEW }}
- run: npm run build
- name: Upload docs build as an artifact π¦
uses: actions/upload-artifact@v7
@@ -66,7 +66,7 @@ jobs:
uses: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: ${{ env.AWS_ROLE_ARN }}
- aws-region: us-west-2
+ aws-region: ${{ env.AWS_REGION }}
- name: Download artifacts π₯
uses: actions/download-artifact@v8
@@ -85,10 +85,10 @@ jobs:
run: echo "time=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
- name: Comment on PR
- uses: marocchino/sticky-pull-request-comment@v2
+ uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3.0.2
with:
message: |
- ## π OMF Docs preview is live!
+ ## πΊοΈ OMF Docs preview is live!
| | |
|---|---|
From d251fe7351fdd4683e68f55955e743ce28d12562 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 12:29:38 -0400
Subject: [PATCH 11/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index 8e3e6bdc..a6390a85 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -91,7 +91,7 @@ jobs:
## πΊοΈ OMF Docs preview is live!
| | |
- |---|---|
+ |-------------|---|
| **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
| **Updated** | ${{ steps.timestamp.outputs.time }} |
| **Commit** | [${{ github.sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}) |
From c90780193166719299986a854c41f5d0010bf35b Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 12:36:22 -0400
Subject: [PATCH 12/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index a6390a85..b300b701 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -82,7 +82,9 @@ jobs:
- name: Get deploy timestamp
id: timestamp
- run: echo "time=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
+ run: |
+ echo "time=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
+ echo "short_sha=$(echo '${{ github.event.pull_request.head.sha }}' | cut -c1-7)" >> $GITHUB_OUTPUT
- name: Comment on PR
uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3.0.2
@@ -94,7 +96,7 @@ jobs:
|-------------|---|
| **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
| **Updated** | ${{ steps.timestamp.outputs.time }} |
- | **Commit** | [${{ github.sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}) |
+ | **Commit** | [${{ steps.timestamp.outputs.short_sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
> [!NOTE]
> This preview updates automatically with each push to this PR.
From 3a497051281f023d464a8a51bdf54456306b1d27 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 12:43:06 -0400
Subject: [PATCH 13/35] Throw on duplicate routes; rename places README to fix
dup route
Enable Docusaurus to throw on duplicate routes by adding onDuplicateRoutes: 'throw' to docusaurus.config.js. Rename docs/guides/places/README.md to docs/guides/places/_README.md to reorganize the guide file (prevents it from being treated as the default index page).
Signed-off-by: John McCall
---
docs/guides/places/{README.md => _README.md} | 0
docusaurus.config.js | 1 +
2 files changed, 1 insertion(+)
rename docs/guides/places/{README.md => _README.md} (100%)
diff --git a/docs/guides/places/README.md b/docs/guides/places/_README.md
similarity index 100%
rename from docs/guides/places/README.md
rename to docs/guides/places/_README.md
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 5ddf1f18..270e8328 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -74,6 +74,7 @@ const config = {
onBrokenLinks: 'throw',
onBrokenAnchors: 'throw',
+ onDuplicateRoutes: 'throw',
markdown: {
hooks: {
From a4f485a36545972a02c02e458bd8cdff2cba9810 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 12:43:09 -0400
Subject: [PATCH 14/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index b300b701..a6c98bd9 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -1,6 +1,6 @@
---
name: Staging Deploy
-run-name: Publish docs to staging website (for PR)
+run-name: Publish docs to staging website
on:
pull_request:
From 32a61b1b42a0f9b3f7a8d64b63404c1b256bf877 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 12:45:19 -0400
Subject: [PATCH 15/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index a6c98bd9..fe1262fe 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -76,7 +76,7 @@ jobs:
- name: Copy to S3
run: |
- aws s3 sync --delete build s3://overture-managed-staging-usw2/gh-pages${{ env.PREVIEW_PATH }}/
+ aws s3 sync --delete --quiet build s3://overture-managed-staging-usw2/gh-pages${{ env.PREVIEW_PATH }}/
- name: Bust the Cache
run: aws cloudfront create-invalidation --distribution-id E1KP2IN0H2RGGT --paths "${{ env.PREVIEW_PATH }}/*"
From bb4e267ff8bf2528c540ae7815aabc61c29033a8 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 12:45:45 -0400
Subject: [PATCH 16/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index fe1262fe..fe5bdf63 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -77,6 +77,7 @@ jobs:
- name: Copy to S3
run: |
aws s3 sync --delete --quiet build s3://overture-managed-staging-usw2/gh-pages${{ env.PREVIEW_PATH }}/
+
- name: Bust the Cache
run: aws cloudfront create-invalidation --distribution-id E1KP2IN0H2RGGT --paths "${{ env.PREVIEW_PATH }}/*"
@@ -93,10 +94,10 @@ jobs:
## πΊοΈ OMF Docs preview is live!
| | |
- |-------------|---|
+ |-------------|----------------------------------------------------------|
| **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
| **Updated** | ${{ steps.timestamp.outputs.time }} |
- | **Commit** | [${{ steps.timestamp.outputs.short_sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
+ | **Commit** | [${{ steps.timestamp.outputs.short_sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
> [!NOTE]
> This preview updates automatically with each push to this PR.
From 65788dcf81a72db2f51267d01aaaf5b11444bb32 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 12:51:01 -0400
Subject: [PATCH 17/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index fe5bdf63..01996d5b 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -22,6 +22,9 @@ jobs:
build:
name: Build
runs-on: ubuntu-latest
+ outputs:
+ schema-sha: ${{ steps.schema-docs.outputs.schema-sha }}
+ schema-ref: ${{ steps.schema-docs.outputs.schema-ref }}
steps:
- name: Check out the main docs repo repository and build.
uses: actions/checkout@v6
@@ -36,6 +39,7 @@ jobs:
- run: npm ci --omit=dev
- name: Generate schema markdown docs
+ id: schema-docs
uses: OvertureMaps/workflows/.github/actions/generate-schema-docs@main
with:
output-dir: ${{ github.workspace }}/docs/schema/reference
@@ -98,6 +102,7 @@ jobs:
| **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
| **Updated** | ${{ steps.timestamp.outputs.time }} |
| **Commit** | [${{ steps.timestamp.outputs.short_sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
+ | **Schema** | [${{ needs.build.outputs.schema-ref }}@${{ needs.build.outputs.schema-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build.outputs.schema-sha }}) |
> [!NOTE]
> This preview updates automatically with each push to this PR.
From 84aed713b7cc1225a3aa7ffa062a772b44499e2d Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 12:55:57 -0400
Subject: [PATCH 18/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index 01996d5b..b1504843 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -85,11 +85,12 @@ jobs:
- name: Bust the Cache
run: aws cloudfront create-invalidation --distribution-id E1KP2IN0H2RGGT --paths "${{ env.PREVIEW_PATH }}/*"
- - name: Get deploy timestamp
- id: timestamp
+ - name: Gather metadata for PR comment
+ id: deploy-metadata
run: |
echo "time=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
echo "short_sha=$(echo '${{ github.event.pull_request.head.sha }}' | cut -c1-7)" >> $GITHUB_OUTPUT
+ echo "schema-ref-short=$(echo '${{ needs.build.outputs.schema-ref }}' | sed 's|refs/heads/||;s|refs/tags/||')" >> $GITHUB_OUTPUT
- name: Comment on PR
uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3.0.2
@@ -100,9 +101,9 @@ jobs:
| | |
|-------------|----------------------------------------------------------|
| **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
- | **Updated** | ${{ steps.timestamp.outputs.time }} |
- | **Commit** | [${{ steps.timestamp.outputs.short_sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
- | **Schema** | [${{ needs.build.outputs.schema-ref }}@${{ needs.build.outputs.schema-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build.outputs.schema-sha }}) |
+ | **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
+ | **Commit** | [${{ steps.deploy-metadata.outputs.short_sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
+ | **Schema** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ needs.build.outputs.schema-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build.outputs.schema-sha }}) |
> [!NOTE]
> This preview updates automatically with each push to this PR.
From c635a533dce53d40abd1a48681304d0409b602a3 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 12:56:54 -0400
Subject: [PATCH 19/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index b1504843..30f6247a 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -6,6 +6,10 @@ on:
pull_request:
branches: [main]
+concurrency:
+ group: staging-deploy-${{ github.event.number }}
+ cancel-in-progress: true
+
permissions:
id-token: write
contents: read
@@ -103,7 +107,7 @@ jobs:
| **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
| **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
| **Commit** | [${{ steps.deploy-metadata.outputs.short_sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
- | **Schema** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ needs.build.outputs.schema-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build.outputs.schema-sha }}) |
+ | **Schema Ref** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ needs.build.outputs.schema-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build.outputs.schema-sha }}) |
> [!NOTE]
> This preview updates automatically with each push to this PR.
From bd8e50f390b4e60cf684a7d71b4270a47630e4ae Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 13:01:30 -0400
Subject: [PATCH 20/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index 30f6247a..caaaf7d2 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -93,8 +93,9 @@ jobs:
id: deploy-metadata
run: |
echo "time=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
- echo "short_sha=$(echo '${{ github.event.pull_request.head.sha }}' | cut -c1-7)" >> $GITHUB_OUTPUT
+ echo "short-sha=$(echo '${{ github.event.pull_request.head.sha }}' | cut -c1-7)" >> $GITHUB_OUTPUT
echo "schema-ref-short=$(echo '${{ needs.build.outputs.schema-ref }}' | sed 's|refs/heads/||;s|refs/tags/||')" >> $GITHUB_OUTPUT
+ echo "schema-short-sha=$(echo '${{ needs.build.outputs.schema-sha }}' | cut -c1-7)" >> $GITHUB_OUTPUT
- name: Comment on PR
uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3.0.2
@@ -102,12 +103,12 @@ jobs:
message: |
## πΊοΈ OMF Docs preview is live!
- | | |
- |-------------|----------------------------------------------------------|
- | **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
- | **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
- | **Commit** | [${{ steps.deploy-metadata.outputs.short_sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
- | **Schema Ref** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ needs.build.outputs.schema-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build.outputs.schema-sha }}) |
+ | | |
+ |-----------------|----------------------------------------------------------|
+ | **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
+ | **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
+ | **Commit** | [${{ steps.deploy-metadata.outputs.short-sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
+ | **Schema Ref** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ steps.deploy-metadata.outputs.schema-short-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build.outputs.schema-sha }}) |
> [!NOTE]
> This preview updates automatically with each push to this PR.
From 97ff699434cdce00e754c3d0bc176a4229919866 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 13:05:43 -0400
Subject: [PATCH 21/35] Create staging_deploy_cleanup.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy_cleanup.yaml | 39 +++++++++++++++++++
1 file changed, 39 insertions(+)
create mode 100644 .github/workflows/staging_deploy_cleanup.yaml
diff --git a/.github/workflows/staging_deploy_cleanup.yaml b/.github/workflows/staging_deploy_cleanup.yaml
new file mode 100644
index 00000000..3de9bfe1
--- /dev/null
+++ b/.github/workflows/staging_deploy_cleanup.yaml
@@ -0,0 +1,39 @@
+---
+name: Staging Deploy Cleanup
+run-name: Clean up staging preview for PR #${{ github.event.number }}
+
+on:
+ pull_request:
+ types: [closed]
+
+permissions:
+ contents: read
+
+jobs:
+ cleanup:
+ name: Cleanup
+ runs-on: ubuntu-slim
+ permissions:
+ id-token: write
+ env:
+ AWS_ROLE_ARN: arn:aws:iam::763944545891:role/pages-staging-oidc-overturemaps
+ AWS_REGION: us-west-2
+
+ steps:
+ - name: Configure AWS credentials
+ uses: aws-actions/configure-aws-credentials@v6
+ with:
+ role-to-assume: ${{ env.AWS_ROLE_ARN }}
+ aws-region: ${{ env.AWS_REGION }}
+
+ # No flags to ignore "not found" errors, so we use "|| true" to prevent failure if the path doesn't exist
+ - name: Delete from S3
+ run: |
+ aws s3 rm --recursive \
+ s3://overture-managed-staging-usw2/gh-pages/${{ github.event.repository.name }}/pr/${{ github.event.number }}/ || true
+
+ - name: Bust the cache
+ run: |
+ aws cloudfront create-invalidation \
+ --distribution-id E1KP2IN0H2RGGT \
+ --paths "/${{ github.event.repository.name }}/pr/${{ github.event.number }}/*" || true
From 5316536456f10d43e44510ee1965d247feb0c685 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 13:07:27 -0400
Subject: [PATCH 22/35] chore: make it pretty
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 10 +++++-----
.github/workflows/staging_deploy_cleanup.yaml | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index caaaf7d2..bdba7c2d 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -105,10 +105,10 @@ jobs:
| | |
|-----------------|----------------------------------------------------------|
- | **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
- | **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
- | **Commit** | [${{ steps.deploy-metadata.outputs.short-sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
- | **Schema Ref** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ steps.deploy-metadata.outputs.schema-short-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build.outputs.schema-sha }}) |
+ | π **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
+ | π **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
+ | π **Commit** | [${{ steps.deploy-metadata.outputs.short-sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
+ | ποΈ **Schema Ref** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ steps.deploy-metadata.outputs.schema-short-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build.outputs.schema-sha }}) |
> [!NOTE]
- > This preview updates automatically with each push to this PR.
+ > β»οΈ This preview updates automatically with each push to this PR.
diff --git a/.github/workflows/staging_deploy_cleanup.yaml b/.github/workflows/staging_deploy_cleanup.yaml
index 3de9bfe1..35707e24 100644
--- a/.github/workflows/staging_deploy_cleanup.yaml
+++ b/.github/workflows/staging_deploy_cleanup.yaml
@@ -1,6 +1,6 @@
---
name: Staging Deploy Cleanup
-run-name: Clean up staging preview for PR #${{ github.event.number }}
+run-name: β»οΈ Clean up staging preview for PR #${{ github.event.number }}
on:
pull_request:
From 50be9145a0065dd69b43d243d8719f23203304b6 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 13:46:50 -0400
Subject: [PATCH 23/35] chore: check if fork before building
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index bdba7c2d..be63d0e7 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -23,9 +23,20 @@ env:
AWS_ROLE_ARN: arn:aws:iam::763944545891:role/pages-staging-oidc-overturemaps
AWS_REGION: us-west-2
jobs:
+ check-fork:
+ name: Check fork
+ runs-on: ubuntu-slim
+ steps:
+ - name: Staging deploy is not supported for fork PRs
+ if: github.event.pull_request.head.repo.full_name != github.repository
+ run: |
+ echo "::warning title=Staging deploy not supported for fork PRs::Staging previews are only available for PRs from branches within this repository, not forks. Please open your PR from a branch in OvertureMaps/docs instead."
+ exit 1
+
build:
name: Build
runs-on: ubuntu-latest
+ needs: check-fork
outputs:
schema-sha: ${{ steps.schema-docs.outputs.schema-sha }}
schema-ref: ${{ steps.schema-docs.outputs.schema-ref }}
@@ -64,7 +75,7 @@ jobs:
deploy:
name: Deploy
runs-on: ubuntu-slim
- needs: build
+ needs: [check-fork, build]
environment:
name: staging
url: ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html
From 3fab10a7b90cad292b6b1c2b0be7b2a21d5f630e Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 13:50:09 -0400
Subject: [PATCH 24/35] feat: use more human-friendly ts format
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index be63d0e7..a3969a4f 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -103,7 +103,7 @@ jobs:
- name: Gather metadata for PR comment
id: deploy-metadata
run: |
- echo "time=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
+ echo "time=$(date -u +'%b %d, %Y %H:%M UTC')" >> $GITHUB_OUTPUT
echo "short-sha=$(echo '${{ github.event.pull_request.head.sha }}' | cut -c1-7)" >> $GITHUB_OUTPUT
echo "schema-ref-short=$(echo '${{ needs.build.outputs.schema-ref }}' | sed 's|refs/heads/||;s|refs/tags/||')" >> $GITHUB_OUTPUT
echo "schema-short-sha=$(echo '${{ needs.build.outputs.schema-sha }}' | cut -c1-7)" >> $GITHUB_OUTPUT
From 5fbc8fe73c8484f6f1a52ee36c4a5786fcff27e2 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 14:10:21 -0400
Subject: [PATCH 25/35] fix: copilot suggestions
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 2 +-
.github/workflows/staging_deploy_cleanup.yaml | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index a3969a4f..d69395c0 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -31,10 +31,10 @@ jobs:
if: github.event.pull_request.head.repo.full_name != github.repository
run: |
echo "::warning title=Staging deploy not supported for fork PRs::Staging previews are only available for PRs from branches within this repository, not forks. Please open your PR from a branch in OvertureMaps/docs instead."
- exit 1
build:
name: Build
+ if: github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
needs: check-fork
outputs:
diff --git a/.github/workflows/staging_deploy_cleanup.yaml b/.github/workflows/staging_deploy_cleanup.yaml
index 35707e24..1634a1e6 100644
--- a/.github/workflows/staging_deploy_cleanup.yaml
+++ b/.github/workflows/staging_deploy_cleanup.yaml
@@ -12,6 +12,7 @@ permissions:
jobs:
cleanup:
name: Cleanup
+ if: github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-slim
permissions:
id-token: write
From 580a2769bb40e9a738a7d67806ce806ec05a028e Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 14:18:19 -0400
Subject: [PATCH 26/35] fix: SSR mismatch with browser-only component
Docusaurus React Root onRecoverableError: Error: Minified React error #418; visit https://reactjs.org/docs/error-decoder.html?invariant=418 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
Signed-off-by: John McCall
---
src/components/home.jsx | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/components/home.jsx b/src/components/home.jsx
index 3f07f843..b65c61af 100644
--- a/src/components/home.jsx
+++ b/src/components/home.jsx
@@ -1,5 +1,6 @@
import React from 'react';
import Link from '@docusaurus/Link';
+import BrowserOnly from '@docusaurus/BrowserOnly';
import RotatingWord from './RotatingWord';
import styles from './home.module.css';
@@ -14,7 +15,7 @@ export function HeroHeadline() {
Overture
is
-
+ {() => }
);
}
From 7372b0777c0d94ccd2d8d3464994b631faeffdd2 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Mon, 16 Mar 2026 14:26:07 -0400
Subject: [PATCH 27/35] Revert "fix: SSR mismatch with browser-only component"
This reverts commit 580a2769bb40e9a738a7d67806ce806ec05a028e.
---
src/components/home.jsx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/components/home.jsx b/src/components/home.jsx
index b65c61af..3f07f843 100644
--- a/src/components/home.jsx
+++ b/src/components/home.jsx
@@ -1,6 +1,5 @@
import React from 'react';
import Link from '@docusaurus/Link';
-import BrowserOnly from '@docusaurus/BrowserOnly';
import RotatingWord from './RotatingWord';
import styles from './home.module.css';
@@ -15,7 +14,7 @@ export function HeroHeadline() {
Overture
is
- {() => }
+
);
}
From 5cd4e08b4b2a543d83e7544e6233306e94e2023d Mon Sep 17 00:00:00 2001
From: John McCall
Date: Tue, 17 Mar 2026 13:05:30 -0400
Subject: [PATCH 28/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index d69395c0..af706f28 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -58,6 +58,7 @@ jobs:
uses: OvertureMaps/workflows/.github/actions/generate-schema-docs@main
with:
output-dir: ${{ github.workspace }}/docs/schema/reference
+ schema-ref: 'main'
- name: Build Docusaurus website
run: npm run build
From d8dd6de72d1589f757b27e34f534aa1b08977d1a Mon Sep 17 00:00:00 2001
From: John McCall
Date: Tue, 17 Mar 2026 15:43:37 -0400
Subject: [PATCH 29/35] Remove generated schema reference docs; add .gitkeep
Delete the autogenerated schema reference markdown/json files from docs/schema/reference and add a .gitkeep placeholder. These files are produced at build time by overture-schema-codegen and should not be committed to the repository; the .gitkeep preserves the directory so the docs build can drop generated assets there. To get a complete test build that includes the latest schema docs, open a pull request to trigger the docs build.
Signed-off-by: John McCall
---
docs/schema/reference/.gitkeep | 3 +
.../reference/addresses/_category_.json | 4 -
docs/schema/reference/addresses/address.md | 76 --------
.../reference/addresses/types/_category_.json | 3 -
.../addresses/types/address_level.md | 30 ---
docs/schema/reference/base/_category_.json | 4 -
docs/schema/reference/base/bathymetry.md | 59 ------
docs/schema/reference/base/infrastructure.md | 77 --------
docs/schema/reference/base/land.md | 85 ---------
docs/schema/reference/base/land_cover.md | 66 -------
docs/schema/reference/base/land_use.md | 82 --------
.../reference/base/types/_category_.json | 3 -
docs/schema/reference/base/types/depth.md | 15 --
docs/schema/reference/base/types/elevation.md | 16 --
docs/schema/reference/base/types/height.md | 13 --
.../base/types/infrastructure_class.md | 176 ------------------
.../base/types/infrastructure_subtype.md | 30 ---
.../schema/reference/base/types/land_class.md | 54 ------
.../base/types/land_cover_subtype.md | 20 --
.../reference/base/types/land_subtype.md | 25 ---
.../reference/base/types/land_use_class.md | 121 ------------
.../reference/base/types/land_use_subtype.md | 36 ----
.../reference/base/types/source_tags.md | 15 --
.../reference/base/types/surface_material.md | 36 ----
.../reference/base/types/water_class.md | 47 -----
.../reference/base/types/water_subtype.md | 24 ---
docs/schema/reference/base/water.md | 98 ----------
.../reference/buildings/_category_.json | 4 -
docs/schema/reference/buildings/building.md | 102 ----------
.../reference/buildings/building_part.md | 101 ----------
.../reference/buildings/types/_category_.json | 3 -
.../buildings/types/building_class.md | 103 ----------
.../buildings/types/building_subtype.md | 29 ---
.../buildings/types/facade_material.md | 26 ---
.../buildings/types/roof_material.md | 29 ---
.../buildings/types/roof_orientation.md | 20 --
.../reference/buildings/types/roof_shape.md | 29 ---
docs/schema/reference/core/_category_.json | 4 -
.../reference/core/cartographic_hints.md | 18 --
docs/schema/reference/core/common_names.md | 10 -
.../schema/reference/core/confidence_score.md | 15 --
docs/schema/reference/core/feature_version.md | 27 ---
docs/schema/reference/core/length_unit.md | 19 --
docs/schema/reference/core/level.md | 20 --
docs/schema/reference/core/max_zoom.md | 23 ---
docs/schema/reference/core/min_zoom.md | 23 ---
docs/schema/reference/core/name_rule.md | 32 ----
docs/schema/reference/core/name_variant.md | 22 ---
docs/schema/reference/core/names.md | 33 ----
.../schema/reference/core/perspective_mode.md | 12 --
docs/schema/reference/core/perspectives.md | 16 --
docs/schema/reference/core/prominence.md | 23 ---
.../reference/core/scoping/_category_.json | 3 -
docs/schema/reference/core/scoping/heading.md | 17 --
.../scoping/linearly_referenced_position.md | 15 --
.../core/scoping/linearly_referenced_range.md | 26 ---
.../reference/core/scoping/opening_hours.md | 12 --
.../reference/core/scoping/purpose_of_use.md | 18 --
.../core/scoping/recognized_status.md | 18 --
docs/schema/reference/core/scoping/side.md | 15 --
.../reference/core/scoping/travel_mode.md | 25 ---
.../scoping/vehicle_axle_count_selector.md | 17 --
.../core/scoping/vehicle_height_selector.md | 18 --
.../core/scoping/vehicle_length_selector.md | 18 --
.../core/scoping/vehicle_relation.md | 19 --
.../core/scoping/vehicle_weight_selector.md | 18 --
.../core/scoping/vehicle_width_selector.md | 18 --
docs/schema/reference/core/sort_key.md | 17 --
docs/schema/reference/core/source_item.md | 34 ----
docs/schema/reference/core/sources.md | 28 ---
docs/schema/reference/core/speed_unit.md | 12 --
docs/schema/reference/core/weight_unit.md | 17 --
.../reference/divisions/_category_.json | 4 -
docs/schema/reference/divisions/division.md | 131 -------------
.../reference/divisions/division_area.md | 88 ---------
.../reference/divisions/division_boundary.md | 83 ---------
.../reference/divisions/types/_category_.json | 3 -
.../reference/divisions/types/admin_level.md | 16 --
.../types/capital_of_division_item.md | 14 --
.../divisions/types/division/_category_.json | 3 -
.../divisions/types/division/norms.md | 13 --
.../types/division_area/_category_.json | 3 -
.../types/division_area/area_class.md | 12 --
.../types/division_boundary/_category_.json | 3 -
.../types/division_boundary/boundary_class.md | 10 -
.../divisions/types/division_class.md | 15 --
.../reference/divisions/types/division_id.md | 16 --
.../reference/divisions/types/hierarchy.md | 16 --
.../divisions/types/hierarchy_item.md | 16 --
.../reference/divisions/types/place_type.md | 27 ---
docs/schema/reference/places/_category_.json | 4 -
docs/schema/reference/places/place.md | 113 -----------
.../reference/places/types/_category_.json | 3 -
docs/schema/reference/places/types/address.md | 17 --
docs/schema/reference/places/types/brand.md | 27 ---
.../reference/places/types/categories.md | 16 --
.../places/types/operating_status.md | 19 --
.../schema/reference/places/types/taxonomy.md | 17 --
.../schema/reference/pydantic/_category_.json | 4 -
.../pydantic/networks/_category_.json | 3 -
.../reference/pydantic/networks/email_str.md | 7 -
.../reference/pydantic/networks/http_url.md | 9 -
docs/schema/reference/system/_category_.json | 4 -
.../reference/system/country_code_alpha2.md | 18 --
docs/schema/reference/system/hex_color.md | 20 --
docs/schema/reference/system/json_pointer.md | 23 ---
docs/schema/reference/system/language_tag.md | 27 ---
.../reference/system/no_whitespace_string.md | 14 --
docs/schema/reference/system/phone_number.md | 13 --
.../system/primitive/_category_.json | 3 -
.../reference/system/primitive/geometry.md | 11 --
.../reference/system/primitive/primitives.md | 27 ---
.../reference/system/ref/_category_.json | 3 -
docs/schema/reference/system/ref/id.md | 32 ----
docs/schema/reference/system/region_code.md | 16 --
.../reference/system/snake_case_string.md | 15 --
.../reference/system/stripped_string.md | 22 ---
docs/schema/reference/system/wikidata_id.md | 23 ---
.../reference/transportation/_category_.json | 4 -
.../reference/transportation/connector.md | 49 -----
.../reference/transportation/segment.md | 168 -----------------
.../transportation/types/_category_.json | 3 -
.../types/access_restriction_rule.md | 20 --
.../types/access_restriction_rule.when.md | 22 ---
.../transportation/types/access_rules.md | 14 --
.../transportation/types/access_type.md | 11 --
.../types/connector_reference.md | 15 --
.../types/destination_label_type.md | 16 --
.../types/destination_labels.md | 14 --
.../transportation/types/destination_rule.md | 25 ---
.../types/destination_rule.when.md | 13 --
.../types/destination_sign_symbol.md | 31 ---
.../transportation/types/destinations.md | 9 -
.../transportation/types/level_rule.md | 16 --
.../transportation/types/level_rules.md | 9 -
.../types/prohibited_transition_rule.md | 23 ---
.../types/prohibited_transition_rule.when.md | 22 ---
.../types/prohibited_transitions.md | 9 -
.../transportation/types/rail_class.md | 18 --
.../transportation/types/rail_flag.md | 20 --
.../transportation/types/rail_flag_rule.md | 15 --
.../transportation/types/rail_flags.md | 14 --
.../transportation/types/road_class.md | 27 ---
.../transportation/types/road_flag.md | 19 --
.../transportation/types/road_flag_rule.md | 15 --
.../transportation/types/road_flags.md | 14 --
.../transportation/types/road_surface.md | 17 --
.../transportation/types/route_reference.md | 19 --
.../reference/transportation/types/routes.md | 9 -
.../transportation/types/sequence_entry.md | 14 --
.../reference/transportation/types/speed.md | 14 --
.../transportation/types/speed_limit_rule.md | 32 ----
.../types/speed_limit_rule.when.md | 22 ---
.../transportation/types/speed_limits.md | 14 --
.../transportation/types/speed_value.md | 16 --
.../transportation/types/subclass.md | 18 --
.../transportation/types/subclass_rule.md | 15 --
.../transportation/types/subclass_rules.md | 9 -
.../reference/transportation/types/subtype.md | 13 --
.../transportation/types/surface_rule.md | 13 --
.../transportation/types/surfaces.md | 14 --
.../reference/transportation/types/width.md | 11 --
.../transportation/types/width_rule.md | 13 --
.../transportation/types/width_rules.md | 16 --
164 files changed, 3 insertions(+), 4220 deletions(-)
create mode 100644 docs/schema/reference/.gitkeep
delete mode 100644 docs/schema/reference/addresses/_category_.json
delete mode 100644 docs/schema/reference/addresses/address.md
delete mode 100644 docs/schema/reference/addresses/types/_category_.json
delete mode 100644 docs/schema/reference/addresses/types/address_level.md
delete mode 100644 docs/schema/reference/base/_category_.json
delete mode 100644 docs/schema/reference/base/bathymetry.md
delete mode 100644 docs/schema/reference/base/infrastructure.md
delete mode 100644 docs/schema/reference/base/land.md
delete mode 100644 docs/schema/reference/base/land_cover.md
delete mode 100644 docs/schema/reference/base/land_use.md
delete mode 100644 docs/schema/reference/base/types/_category_.json
delete mode 100644 docs/schema/reference/base/types/depth.md
delete mode 100644 docs/schema/reference/base/types/elevation.md
delete mode 100644 docs/schema/reference/base/types/height.md
delete mode 100644 docs/schema/reference/base/types/infrastructure_class.md
delete mode 100644 docs/schema/reference/base/types/infrastructure_subtype.md
delete mode 100644 docs/schema/reference/base/types/land_class.md
delete mode 100644 docs/schema/reference/base/types/land_cover_subtype.md
delete mode 100644 docs/schema/reference/base/types/land_subtype.md
delete mode 100644 docs/schema/reference/base/types/land_use_class.md
delete mode 100644 docs/schema/reference/base/types/land_use_subtype.md
delete mode 100644 docs/schema/reference/base/types/source_tags.md
delete mode 100644 docs/schema/reference/base/types/surface_material.md
delete mode 100644 docs/schema/reference/base/types/water_class.md
delete mode 100644 docs/schema/reference/base/types/water_subtype.md
delete mode 100644 docs/schema/reference/base/water.md
delete mode 100644 docs/schema/reference/buildings/_category_.json
delete mode 100644 docs/schema/reference/buildings/building.md
delete mode 100644 docs/schema/reference/buildings/building_part.md
delete mode 100644 docs/schema/reference/buildings/types/_category_.json
delete mode 100644 docs/schema/reference/buildings/types/building_class.md
delete mode 100644 docs/schema/reference/buildings/types/building_subtype.md
delete mode 100644 docs/schema/reference/buildings/types/facade_material.md
delete mode 100644 docs/schema/reference/buildings/types/roof_material.md
delete mode 100644 docs/schema/reference/buildings/types/roof_orientation.md
delete mode 100644 docs/schema/reference/buildings/types/roof_shape.md
delete mode 100644 docs/schema/reference/core/_category_.json
delete mode 100644 docs/schema/reference/core/cartographic_hints.md
delete mode 100644 docs/schema/reference/core/common_names.md
delete mode 100644 docs/schema/reference/core/confidence_score.md
delete mode 100644 docs/schema/reference/core/feature_version.md
delete mode 100644 docs/schema/reference/core/length_unit.md
delete mode 100644 docs/schema/reference/core/level.md
delete mode 100644 docs/schema/reference/core/max_zoom.md
delete mode 100644 docs/schema/reference/core/min_zoom.md
delete mode 100644 docs/schema/reference/core/name_rule.md
delete mode 100644 docs/schema/reference/core/name_variant.md
delete mode 100644 docs/schema/reference/core/names.md
delete mode 100644 docs/schema/reference/core/perspective_mode.md
delete mode 100644 docs/schema/reference/core/perspectives.md
delete mode 100644 docs/schema/reference/core/prominence.md
delete mode 100644 docs/schema/reference/core/scoping/_category_.json
delete mode 100644 docs/schema/reference/core/scoping/heading.md
delete mode 100644 docs/schema/reference/core/scoping/linearly_referenced_position.md
delete mode 100644 docs/schema/reference/core/scoping/linearly_referenced_range.md
delete mode 100644 docs/schema/reference/core/scoping/opening_hours.md
delete mode 100644 docs/schema/reference/core/scoping/purpose_of_use.md
delete mode 100644 docs/schema/reference/core/scoping/recognized_status.md
delete mode 100644 docs/schema/reference/core/scoping/side.md
delete mode 100644 docs/schema/reference/core/scoping/travel_mode.md
delete mode 100644 docs/schema/reference/core/scoping/vehicle_axle_count_selector.md
delete mode 100644 docs/schema/reference/core/scoping/vehicle_height_selector.md
delete mode 100644 docs/schema/reference/core/scoping/vehicle_length_selector.md
delete mode 100644 docs/schema/reference/core/scoping/vehicle_relation.md
delete mode 100644 docs/schema/reference/core/scoping/vehicle_weight_selector.md
delete mode 100644 docs/schema/reference/core/scoping/vehicle_width_selector.md
delete mode 100644 docs/schema/reference/core/sort_key.md
delete mode 100644 docs/schema/reference/core/source_item.md
delete mode 100644 docs/schema/reference/core/sources.md
delete mode 100644 docs/schema/reference/core/speed_unit.md
delete mode 100644 docs/schema/reference/core/weight_unit.md
delete mode 100644 docs/schema/reference/divisions/_category_.json
delete mode 100644 docs/schema/reference/divisions/division.md
delete mode 100644 docs/schema/reference/divisions/division_area.md
delete mode 100644 docs/schema/reference/divisions/division_boundary.md
delete mode 100644 docs/schema/reference/divisions/types/_category_.json
delete mode 100644 docs/schema/reference/divisions/types/admin_level.md
delete mode 100644 docs/schema/reference/divisions/types/capital_of_division_item.md
delete mode 100644 docs/schema/reference/divisions/types/division/_category_.json
delete mode 100644 docs/schema/reference/divisions/types/division/norms.md
delete mode 100644 docs/schema/reference/divisions/types/division_area/_category_.json
delete mode 100644 docs/schema/reference/divisions/types/division_area/area_class.md
delete mode 100644 docs/schema/reference/divisions/types/division_boundary/_category_.json
delete mode 100644 docs/schema/reference/divisions/types/division_boundary/boundary_class.md
delete mode 100644 docs/schema/reference/divisions/types/division_class.md
delete mode 100644 docs/schema/reference/divisions/types/division_id.md
delete mode 100644 docs/schema/reference/divisions/types/hierarchy.md
delete mode 100644 docs/schema/reference/divisions/types/hierarchy_item.md
delete mode 100644 docs/schema/reference/divisions/types/place_type.md
delete mode 100644 docs/schema/reference/places/_category_.json
delete mode 100644 docs/schema/reference/places/place.md
delete mode 100644 docs/schema/reference/places/types/_category_.json
delete mode 100644 docs/schema/reference/places/types/address.md
delete mode 100644 docs/schema/reference/places/types/brand.md
delete mode 100644 docs/schema/reference/places/types/categories.md
delete mode 100644 docs/schema/reference/places/types/operating_status.md
delete mode 100644 docs/schema/reference/places/types/taxonomy.md
delete mode 100644 docs/schema/reference/pydantic/_category_.json
delete mode 100644 docs/schema/reference/pydantic/networks/_category_.json
delete mode 100644 docs/schema/reference/pydantic/networks/email_str.md
delete mode 100644 docs/schema/reference/pydantic/networks/http_url.md
delete mode 100644 docs/schema/reference/system/_category_.json
delete mode 100644 docs/schema/reference/system/country_code_alpha2.md
delete mode 100644 docs/schema/reference/system/hex_color.md
delete mode 100644 docs/schema/reference/system/json_pointer.md
delete mode 100644 docs/schema/reference/system/language_tag.md
delete mode 100644 docs/schema/reference/system/no_whitespace_string.md
delete mode 100644 docs/schema/reference/system/phone_number.md
delete mode 100644 docs/schema/reference/system/primitive/_category_.json
delete mode 100644 docs/schema/reference/system/primitive/geometry.md
delete mode 100644 docs/schema/reference/system/primitive/primitives.md
delete mode 100644 docs/schema/reference/system/ref/_category_.json
delete mode 100644 docs/schema/reference/system/ref/id.md
delete mode 100644 docs/schema/reference/system/region_code.md
delete mode 100644 docs/schema/reference/system/snake_case_string.md
delete mode 100644 docs/schema/reference/system/stripped_string.md
delete mode 100644 docs/schema/reference/system/wikidata_id.md
delete mode 100644 docs/schema/reference/transportation/_category_.json
delete mode 100644 docs/schema/reference/transportation/connector.md
delete mode 100644 docs/schema/reference/transportation/segment.md
delete mode 100644 docs/schema/reference/transportation/types/_category_.json
delete mode 100644 docs/schema/reference/transportation/types/access_restriction_rule.md
delete mode 100644 docs/schema/reference/transportation/types/access_restriction_rule.when.md
delete mode 100644 docs/schema/reference/transportation/types/access_rules.md
delete mode 100644 docs/schema/reference/transportation/types/access_type.md
delete mode 100644 docs/schema/reference/transportation/types/connector_reference.md
delete mode 100644 docs/schema/reference/transportation/types/destination_label_type.md
delete mode 100644 docs/schema/reference/transportation/types/destination_labels.md
delete mode 100644 docs/schema/reference/transportation/types/destination_rule.md
delete mode 100644 docs/schema/reference/transportation/types/destination_rule.when.md
delete mode 100644 docs/schema/reference/transportation/types/destination_sign_symbol.md
delete mode 100644 docs/schema/reference/transportation/types/destinations.md
delete mode 100644 docs/schema/reference/transportation/types/level_rule.md
delete mode 100644 docs/schema/reference/transportation/types/level_rules.md
delete mode 100644 docs/schema/reference/transportation/types/prohibited_transition_rule.md
delete mode 100644 docs/schema/reference/transportation/types/prohibited_transition_rule.when.md
delete mode 100644 docs/schema/reference/transportation/types/prohibited_transitions.md
delete mode 100644 docs/schema/reference/transportation/types/rail_class.md
delete mode 100644 docs/schema/reference/transportation/types/rail_flag.md
delete mode 100644 docs/schema/reference/transportation/types/rail_flag_rule.md
delete mode 100644 docs/schema/reference/transportation/types/rail_flags.md
delete mode 100644 docs/schema/reference/transportation/types/road_class.md
delete mode 100644 docs/schema/reference/transportation/types/road_flag.md
delete mode 100644 docs/schema/reference/transportation/types/road_flag_rule.md
delete mode 100644 docs/schema/reference/transportation/types/road_flags.md
delete mode 100644 docs/schema/reference/transportation/types/road_surface.md
delete mode 100644 docs/schema/reference/transportation/types/route_reference.md
delete mode 100644 docs/schema/reference/transportation/types/routes.md
delete mode 100644 docs/schema/reference/transportation/types/sequence_entry.md
delete mode 100644 docs/schema/reference/transportation/types/speed.md
delete mode 100644 docs/schema/reference/transportation/types/speed_limit_rule.md
delete mode 100644 docs/schema/reference/transportation/types/speed_limit_rule.when.md
delete mode 100644 docs/schema/reference/transportation/types/speed_limits.md
delete mode 100644 docs/schema/reference/transportation/types/speed_value.md
delete mode 100644 docs/schema/reference/transportation/types/subclass.md
delete mode 100644 docs/schema/reference/transportation/types/subclass_rule.md
delete mode 100644 docs/schema/reference/transportation/types/subclass_rules.md
delete mode 100644 docs/schema/reference/transportation/types/subtype.md
delete mode 100644 docs/schema/reference/transportation/types/surface_rule.md
delete mode 100644 docs/schema/reference/transportation/types/surfaces.md
delete mode 100644 docs/schema/reference/transportation/types/width.md
delete mode 100644 docs/schema/reference/transportation/types/width_rule.md
delete mode 100644 docs/schema/reference/transportation/types/width_rules.md
diff --git a/docs/schema/reference/.gitkeep b/docs/schema/reference/.gitkeep
new file mode 100644
index 00000000..f4e78d65
--- /dev/null
+++ b/docs/schema/reference/.gitkeep
@@ -0,0 +1,3 @@
+Schema reference documentation files are generated at build time from overture-schema-codegen and dropped here.
+
+If you need a *complete* test build, open a pull request to trigger a docs build that will include the latest schema documentation.
diff --git a/docs/schema/reference/addresses/_category_.json b/docs/schema/reference/addresses/_category_.json
deleted file mode 100644
index 29c13add..00000000
--- a/docs/schema/reference/addresses/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "label": "Addresses",
- "position": 1
-}
diff --git a/docs/schema/reference/addresses/address.md b/docs/schema/reference/addresses/address.md
deleted file mode 100644
index 09066d62..00000000
--- a/docs/schema/reference/addresses/address.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# Address
-
-Addresses are structured labels for the geographic locations where businesses and individuals
-reside.
-
-While address formats around the world have some general points in common, the specifics vary
-extensively from place to place. The rules for dividing an address up into parts or fields vary,
-as do the names of those parts or fields.
-
-The address schema uses a simplified approach to capture the common structure of addresses
-worldwide while accommodating local variance. The schema is heavily based on the OpenAddresses
-([www.openaddresses.io](https://www.openaddresses.io)) project.
-
-For sub-country administrative levels (and non-administrative levels such as neighborhoods), the
-schema provides the `address_levels` field. This is where the names of cities and towns,
-provinces, state, and regions, and similar addressing units are found.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Position of the address. Addresses are point geometries.
*Allowed geometry types: Point* |
-| `theme` | `"addresses"` | |
-| `type` | `"address"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `address_levels[]` | `list<`[`AddressLevel`](types/address_level.md)`>` (optional) | Names of the sub-country addressing areas the address belongs to, including the city or locality, in descending order of generality.
The list is sorted so that the highest, or most general, level comes first (*e.g.*, region) and the lowest, or most particular level, comes last (*e.g.*, city or town).
The number of items in this list and their meaning is country-dependent. For example, in the United States, we expect two items: the state, and the locality or municipality within the state. Other countries might have as few as one, or even three or more.
When a specific level that is required for a country is not known. most likely because the data provider has not supplied it and we have not derived it from another source, the list item corresponding to that level must be present, but its `value` field should be omitted.
*Minimum length: 1*
*Maximum length: 5* |
-| `address_levels[].value` | [`StrippedString`](../system/stripped_string.md) (optional) | A string without leading or trailing whitespace |
-| `country` | [`CountryCodeAlpha2`](../system/country_code_alpha2.md) | The country the address belongs to, as an ISO 3166-1 alpha-2 country code. |
-| `number` | [`StrippedString`](../system/stripped_string.md) (optional) | The house number.
This field does not necessarily contain an integer or even a number. Values such as "74B", "189 1/2", and "208.5", where the non-integer or non-number part is part of the house number, not a unit number, are in common use.
*Minimum length: 1* |
-| `postal_city` | [`StrippedString`](../system/stripped_string.md) (optional) | The postal authority designated city name, if applicable.
In some countries or regions, a mailing address may need to specify a different city name than the city that actually contains the address coordinates. This optional field can be used to specify the alternate city name to use.
For example:
- The postal city for the US address *716 East County Road, Winchester, Indiana* is Ridgeville. - The postal city for the Slovenian address *Tomaj 71, 6221 Tomaj, Slovenia* is Dutovlje.
*Minimum length: 1* |
-| `postcode` | [`StrippedString`](../system/stripped_string.md) (optional) | The postal code.
*Minimum length: 1* |
-| `street` | [`StrippedString`](../system/stripped_string.md) (optional) | The street name.
The street name can include a type (*e.g.*, "Street" or "St", "Boulevard" or "Blvd", *etc.*) and a directional (*e.g.*, "NW" or "Northwest", "S" or "Sud"). Both type and directional, if present, may be either a prefix or a suffix to the primary name. They may either be fully spelled-out or abbreviated.
*Minimum length: 1* |
-| `unit` | [`StrippedString`](../system/stripped_string.md) (optional) | The secondary address unit designator.
In the case where the primary street address is divided into secondary units, which may be apartments, floors, or even buildings if the primary street address is a campus, this field names the specific secondary unit being addressed.
*Minimum length: 1* |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `416ab01c-d836-4c4f-aedc-2f30941ce94d` |
-| `bbox.xmin` | `-176.56381225585938` |
-| `bbox.xmax` | `-176.56378173828125` |
-| `bbox.ymin` | `-43.94719696044922` |
-| `bbox.ymax` | `-43.94718933105469` |
-| `geometry` | `POINT (-176.5637854 -43.9471955)` |
-| `theme` | `addresses` |
-| `type` | `address` |
-| `version` | `1` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenAddresses/LINZ` |
-| `sources[0].record_id` | `null` |
-| `sources[0].update_time` | `null` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `address_levels[0].value` | `Chatham Islands` |
-| `address_levels[1].value` | `Chatham Island` |
-| `country` | `NZ` |
-| `number` | `54` |
-| `postal_city` | `null` |
-| `postcode` | `null` |
-| `street` | `Tikitiki Hill Road` |
-| `unit` | `null` |
diff --git a/docs/schema/reference/addresses/types/_category_.json b/docs/schema/reference/addresses/types/_category_.json
deleted file mode 100644
index a3ec0897..00000000
--- a/docs/schema/reference/addresses/types/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Types"
-}
diff --git a/docs/schema/reference/addresses/types/address_level.md b/docs/schema/reference/addresses/types/address_level.md
deleted file mode 100644
index 741f1da1..00000000
--- a/docs/schema/reference/addresses/types/address_level.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-hide_table_of_contents: true
----
-
-# AddressLevel
-
-A sub-country addressing unit, such as a region, city, or neighborhood, that is less specific
-than a street name and not a postal code.
-
-In the following address, the terms `MontrΓ©al` and `QC` are address levels:
-
-```
-3998 Rue De Bullion, MontrΓ©al, QC H2W 2E4
-```
-
-The number of address levels per address is country-dependent.
-
-Other addressing systems may use the terms "administrative level" or "admin level" for the
-same concept. We have chosen the term "address level" to communicate the fact that in some
-countries and regions, address levels do not necessarily correspond to administrative units.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `value` | [`StrippedString`](../../system/stripped_string.md) (optional) | A string without leading or trailing whitespace
*Minimum length: 1* |
-
-## Used By
-
-- [`Address`](../address.md)
diff --git a/docs/schema/reference/base/_category_.json b/docs/schema/reference/base/_category_.json
deleted file mode 100644
index b6b44478..00000000
--- a/docs/schema/reference/base/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "label": "Base",
- "position": 2
-}
diff --git a/docs/schema/reference/base/bathymetry.md b/docs/schema/reference/base/bathymetry.md
deleted file mode 100644
index a584f769..00000000
--- a/docs/schema/reference/base/bathymetry.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# Bathymetry
-
-Bathymetry features provide topographic representations of underwater areas, such as parts of
-lake beds or ocean floors.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Shape of the underwater area, which may be a polygon or multi-polygon.
*Allowed geometry types: MultiPolygon, Polygon* |
-| `theme` | `"base"` | |
-| `type` | `"bathymetry"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `depth` | [`Depth`](types/depth.md) | Depth below surface level of the feature in meters. |
-| `cartography` | [`CartographicHints`](../core/cartographic_hints.md) (optional) | |
-| `cartography.prominence` | [`Prominence`](../core/prominence.md) (optional) | Subjective scale of feature significance or importance, with 1 being the least, and 100 being the most, significant.
This value can be used to help drive decisions about how and when to display a feature, and how to treat it relative to neighboring features.
When populated by Overture, this value is derived from various factors including, but not limited to: feature and subtype, population, and capital status. |
-| `cartography.min_zoom` | [`MinZoom`](../core/min_zoom.md) (optional) | Recommended minimum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels below this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
-| `cartography.max_zoom` | [`MaxZoom`](../core/max_zoom.md) (optional) | Recommended maximum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels above this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
-| `cartography.sort_key` | [`SortKey`](../core/sort_key.md) (optional) | Integer indicating the recommended order in which to draw features.
Features with a lower number should be drawn "in front" of features with a higher number. |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `5d40bd6c-db14-5492-b29f-5e25a59032bc` |
-| `bbox.xmin` | `-175.12791442871094` |
-| `bbox.xmax` | `-170.05111694335938` |
-| `bbox.ymin` | `-77.9718246459961` |
-| `bbox.ymax` | `-75.64299774169922` |
-| `geometry` | `MULTIPOLYGON (((-170.71296928 -76.744313428, -170.719841483 -76.757076376, -170.731061124 -76.761...` |
-| `theme` | `base` |
-| `type` | `bathymetry` |
-| `version` | `0` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `ETOPO/GLOBathy` |
-| `sources[0].record_id` | `2024-12-09T00:00:00.000Z` |
-| `sources[0].update_time` | `null` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `depth` | `500` |
-| `cartography.prominence` | `null` |
-| `cartography.min_zoom` | `null` |
-| `cartography.max_zoom` | `null` |
-| `cartography.sort_key` | `12` |
diff --git a/docs/schema/reference/base/infrastructure.md b/docs/schema/reference/base/infrastructure.md
deleted file mode 100644
index 678c9b64..00000000
--- a/docs/schema/reference/base/infrastructure.md
+++ /dev/null
@@ -1,77 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# Infrastructure
-
-Infrastructure features provide basic information about real-world infrastructure entitites
-such as bridges, airports, runways, aerialways, communication towers, and power lines.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Geometry of the infrastructure feature, which may be a point, line string, polygon, or multi-polygon.
*Allowed geometry types: LineString, MultiPolygon, Point, Polygon* |
-| `theme` | `"base"` | |
-| `type` | `"infrastructure"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `class` | [`InfrastructureClass`](types/infrastructure_class.md) | |
-| `subtype` | [`InfrastructureSubtype`](types/infrastructure_subtype.md) | |
-| `height` | [`Height`](types/height.md) (optional) | Height of the feature in meters. |
-| `surface` | [`SurfaceMaterial`](types/surface_material.md) (optional) | |
-| `names` | [`Names`](../core/names.md) (optional) | |
-| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
-| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
-| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
-| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
-| `source_tags` | [`SourceTags`](types/source_tags.md) (map, optional) | Key-value pairs imported directly from the source data without change.
This field provides access to raw OSM entity tags for features sourced from OpenStreetMap. |
-| `wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `e9e3d506-89c0-3473-8cee-5e5ac6596d6c` |
-| `bbox.xmin` | `-180.0` |
-| `bbox.xmax` | `-179.99998474121094` |
-| `bbox.ymin` | `-82.42408752441406` |
-| `bbox.ymax` | `-82.42407989501953` |
-| `geometry` | `POINT (-179.9999994 -82.42408)` |
-| `theme` | `base` |
-| `type` | `infrastructure` |
-| `version` | `0` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenStreetMap` |
-| `sources[0].record_id` | `n7674174803@2` |
-| `sources[0].update_time` | `2023-04-07T17:37:48.000Z` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `class` | `information` |
-| `subtype` | `pedestrian` |
-| `height` | `null` |
-| `surface` | `null` |
-| `names.primary` | `1306 km to South Pole` |
-| `names.common` | `null` |
-| `names.rules` | `null` |
-| `level` | `null` |
-| `source_tags` | `{"description": "1036 km to South Pole.", "information": "route_marker", "note": "The road contin...` |
-| `wikidata` | `Q800558` |
diff --git a/docs/schema/reference/base/land.md b/docs/schema/reference/base/land.md
deleted file mode 100644
index d432fc06..00000000
--- a/docs/schema/reference/base/land.md
+++ /dev/null
@@ -1,85 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# Land
-
-Land features are representations of physical land surfaces.
-
-In Overture data releases, land features are sourced from OpenStreetMap.
-TODO. Finish this whenI get more info from Jennings.
-
-Physical representations of land surfaces.
-
-Global land derived from the inverse of OSM Coastlines. Translates `natural` tags from OpenStreetMap.
-
-TODO: Update this description when the relationship to `land_cover` is better understood.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Geometry of the land feature, which may be a point, line string, polygon, or multi-polygon.
*Allowed geometry types: LineString, MultiPolygon, Point, Polygon* |
-| `theme` | `"base"` | |
-| `type` | `"land"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `class` | [`LandClass`](types/land_class.md) (optional) | |
-| `subtype` | [`LandSubtype`](types/land_subtype.md) (optional) | |
-| `elevation` | [`Elevation`](types/elevation.md) (optional) | Elevation above sea level of the feature in meters. |
-| `surface` | [`SurfaceMaterial`](types/surface_material.md) (optional) | |
-| `names` | [`Names`](../core/names.md) (optional) | |
-| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
-| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
-| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
-| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
-| `source_tags` | [`SourceTags`](types/source_tags.md) (map, optional) | Key-value pairs imported directly from the source data without change.
This field provides access to raw OSM entity tags for features sourced from OpenStreetMap. |
-| `wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `70fc3596-a987-3fea-820c-c016c0a2f0da` |
-| `bbox.xmin` | `-178.7000274658203` |
-| `bbox.xmax` | `-178.6999969482422` |
-| `bbox.ymin` | `-85.45001220703125` |
-| `bbox.ymax` | `-85.44999694824219` |
-| `geometry` | `POINT (-178.7 -85.45)` |
-| `theme` | `base` |
-| `type` | `land` |
-| `version` | `0` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenStreetMap` |
-| `sources[0].record_id` | `n11693475112@1` |
-| `sources[0].update_time` | `2024-03-05T09:23:39.000Z` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `class` | `cliff` |
-| `subtype` | `physical` |
-| `elevation` | `null` |
-| `surface` | `null` |
-| `names.primary` | `Dismal Buttress` |
-| `names.common` | `null` |
-| `names.rules` | `null` |
-| `level` | `null` |
-| `source_tags` | `{"natural": "cliff", "ref:linz:place_id": "12318", "wikipedia": "en:Dismal Buttress"}` |
-| `wikidata` | `Q5282342` |
diff --git a/docs/schema/reference/base/land_cover.md b/docs/schema/reference/base/land_cover.md
deleted file mode 100644
index da55573a..00000000
--- a/docs/schema/reference/base/land_cover.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# LandCover
-
-Land cover features indicate the primary natural or artificial surface material covering a land
-area on the earth, including vegetation types like forests and crops, built environments like
-cities, and natural surfaces like wetlands or barren ground.
-
-Land cover features relate to `LandUse` features in the following way: land cover is the
-physical thing covering the land, while land use is the human use to which the land is being
-put.
-
-TODO: Explain relationship to `Land` features.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Shape of the covered land area, which may be a polygon or multi-polygon.
*Allowed geometry types: MultiPolygon, Polygon* |
-| `theme` | `"base"` | |
-| `type` | `"land_cover"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `subtype` | [`LandCoverSubtype`](types/land_cover_subtype.md) | |
-| `cartography` | [`CartographicHints`](../core/cartographic_hints.md) (optional) | |
-| `cartography.prominence` | [`Prominence`](../core/prominence.md) (optional) | Subjective scale of feature significance or importance, with 1 being the least, and 100 being the most, significant.
This value can be used to help drive decisions about how and when to display a feature, and how to treat it relative to neighboring features.
When populated by Overture, this value is derived from various factors including, but not limited to: feature and subtype, population, and capital status. |
-| `cartography.min_zoom` | [`MinZoom`](../core/min_zoom.md) (optional) | Recommended minimum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels below this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
-| `cartography.max_zoom` | [`MaxZoom`](../core/max_zoom.md) (optional) | Recommended maximum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels above this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
-| `cartography.sort_key` | [`SortKey`](../core/sort_key.md) (optional) | Integer indicating the recommended order in which to draw features.
Features with a lower number should be drawn "in front" of features with a higher number. |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `c347312d-012b-5e73-8bd3-a10d04b2981d` |
-| `bbox.xmin` | `-180.0001983642578` |
-| `bbox.xmax` | `-179.99313354492188` |
-| `bbox.ymin` | `65.95172119140625` |
-| `bbox.ymax` | `65.96218872070312` |
-| `geometry` | `POLYGON ((-179.99877531181616 65.95172539425603, -179.99740705536922 65.95265577758867, -179.9975...` |
-| `theme` | `base` |
-| `type` | `land_cover` |
-| `version` | `0` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `ESA WorldCover` |
-| `sources[0].record_id` | `null` |
-| `sources[0].update_time` | `2024-11-07T00:00:00.000Z` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `subtype` | `barren` |
-| `cartography.prominence` | `null` |
-| `cartography.min_zoom` | `8` |
-| `cartography.max_zoom` | `15` |
-| `cartography.sort_key` | `3` |
diff --git a/docs/schema/reference/base/land_use.md b/docs/schema/reference/base/land_use.md
deleted file mode 100644
index dfdf1cf8..00000000
--- a/docs/schema/reference/base/land_use.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# LandUse
-
-Land use features specify the predominant human use of an area of land, for example commercial
-activity, recreation, farming, housing, education, or military use.
-
-Land use features relate to `LandCover` features in the following way: land use is the human
-human activity being done with the land, while land cover is the physical thing that covers it.
-
-TODO: Explain relationship to `Land` features.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Geometry of the land use area, which may be a point, line string, polygon, or multi-polygon.
*Allowed geometry types: LineString, MultiPolygon, Point, Polygon* |
-| `theme` | `"base"` | |
-| `type` | `"land_use"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `class` | [`LandUseClass`](types/land_use_class.md) | |
-| `subtype` | [`LandUseSubtype`](types/land_use_subtype.md) | |
-| `elevation` | [`Elevation`](types/elevation.md) (optional) | Elevation above sea level of the feature in meters. |
-| `surface` | [`SurfaceMaterial`](types/surface_material.md) (optional) | |
-| `names` | [`Names`](../core/names.md) (optional) | |
-| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
-| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
-| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
-| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
-| `source_tags` | [`SourceTags`](types/source_tags.md) (map, optional) | Key-value pairs imported directly from the source data without change.
This field provides access to raw OSM entity tags for features sourced from OpenStreetMap. |
-| `wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `1e1f6095-5bd2-3fdb-a422-41351b848e9d` |
-| `bbox.xmin` | `-176.56825256347656` |
-| `bbox.xmax` | `-176.56231689453125` |
-| `bbox.ymin` | `-43.96001052856445` |
-| `bbox.ymax` | `-43.95420837402344` |
-| `geometry` | `POLYGON ((-176.5623454 -43.9567812, -176.5627644 -43.9561272, -176.5626898 -43.9557432, -176.5624...` |
-| `theme` | `base` |
-| `type` | `land_use` |
-| `version` | `0` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenStreetMap` |
-| `sources[0].record_id` | `w56117029@3` |
-| `sources[0].update_time` | `2010-04-24T22:35:13.000Z` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `class` | `golf_course` |
-| `subtype` | `golf` |
-| `elevation` | `null` |
-| `surface` | `null` |
-| `names.primary` | `Chatham Islands Golf Club` |
-| `names.common` | `null` |
-| `names.rules` | `null` |
-| `level` | `null` |
-| `source_tags` | `{"LINZ:source_version": "V16", "attribution": "http://wiki.osm.org/wiki/Attribution#LINZ", "leisu...` |
-| `wikidata` | `null` |
diff --git a/docs/schema/reference/base/types/_category_.json b/docs/schema/reference/base/types/_category_.json
deleted file mode 100644
index a3ec0897..00000000
--- a/docs/schema/reference/base/types/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Types"
-}
diff --git a/docs/schema/reference/base/types/depth.md b/docs/schema/reference/base/types/depth.md
deleted file mode 100644
index f6b96f3e..00000000
--- a/docs/schema/reference/base/types/depth.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Depth
-
-Depth below surface level of the feature in meters.
-
-Underlying type: `int32`
-
-## Constraints
-
-- `β₯ 0`
-- `β₯ -2147483648` (from [`int32`](../../system/primitive/primitives.md))
-- `β€ 2147483647` (from [`int32`](../../system/primitive/primitives.md))
-
-## Used By
-
-- [`Bathymetry`](../bathymetry.md)
diff --git a/docs/schema/reference/base/types/elevation.md b/docs/schema/reference/base/types/elevation.md
deleted file mode 100644
index 2bfb7d12..00000000
--- a/docs/schema/reference/base/types/elevation.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Elevation
-
-Elevation above sea level of the feature in meters.
-
-Underlying type: `int32`
-
-## Constraints
-
-- `β€ 9000`
-- `β₯ -2147483648` (from [`int32`](../../system/primitive/primitives.md))
-- `β€ 2147483647` (from [`int32`](../../system/primitive/primitives.md))
-
-## Used By
-
-- [`Land`](../land.md)
-- [`LandUse`](../land_use.md)
diff --git a/docs/schema/reference/base/types/height.md b/docs/schema/reference/base/types/height.md
deleted file mode 100644
index 6a4b542f..00000000
--- a/docs/schema/reference/base/types/height.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Height
-
-Height of the feature in meters.
-
-Underlying type: `float64`
-
-## Constraints
-
-- `> 0`
-
-## Used By
-
-- [`Infrastructure`](../infrastructure.md)
diff --git a/docs/schema/reference/base/types/infrastructure_class.md b/docs/schema/reference/base/types/infrastructure_class.md
deleted file mode 100644
index b8cc4043..00000000
--- a/docs/schema/reference/base/types/infrastructure_class.md
+++ /dev/null
@@ -1,176 +0,0 @@
-# InfrastructureClass
-
-Further classification of the type of infrastructure.
-
-The infrastructure class adds detail to the broad classification of `InfrastructureSubtype`.
-
-## Values
-
-- `aerialway_station`
-- `airport`
-- `airport_gate`
-- `airstrip`
-- `apron`
-- `aqueduct`
-- `artwork`
-- `atm`
-- `barrier`
-- `bell_tower`
-- `bench`
-- `bicycle_parking`
-- `bicycle_rental`
-- `block`
-- `boardwalk`
-- `bollard`
-- `border_control`
-- `breakwater`
-- `bridge`
-- `bridge_support`
-- `bump_gate`
-- `bus_route`
-- `bus_station`
-- `bus_stop`
-- `bus_trap`
-- `cable`
-- `cable_barrier`
-- `cable_car`
-- `cable_distribution`
-- `camp_site`
-- `cantilever`
-- `catenary_mast`
-- `cattle_grid`
-- `chain`
-- `chair_lift`
-- `charging_station`
-- `city_wall`
-- `communication_line`
-- `communication_pole`
-- `communication_tower`
-- `connection`
-- `cooling`
-- `covered`
-- `crossing`
-- `cutline`
-- `cycle_barrier`
-- `dam`
-- `defensive`
-- `ditch`
-- `diving`
-- `drag_lift`
-- `drain`
-- `drinking_water`
-- `entrance`
-- `fence`
-- `ferry_terminal`
-- `fire_hydrant`
-- `fountain`
-- `full-height_turnstile`
-- `gasometer`
-- `gate`
-- `generator`
-- `give_way`
-- `gondola`
-- `goods`
-- `guard_rail`
-- `hampshire_gate`
-- `handrail`
-- `hedge`
-- `height_restrictor`
-- `heliostat`
-- `helipad`
-- `heliport`
-- `hose`
-- `information`
-- `insulator`
-- `international_airport`
-- `j-bar`
-- `jersey_barrier`
-- `kerb`
-- `kissing_gate`
-- `launchpad`
-- `lift_gate`
-- `lighting`
-- `lightning_protection`
-- `magic_carpet`
-- `manhole`
-- `milestone`
-- `military_airport`
-- `minaret`
-- `minor_line`
-- `mixed_lift`
-- `mobile_phone_tower`
-- `monitoring`
-- `motorcycle_parking`
-- `motorway_junction`
-- `movable`
-- `municipal_airport`
-- `observation`
-- `parking`
-- `parking_entrance`
-- `parking_space`
-- `pedestrian_crossing`
-- `picnic_table`
-- `pier`
-- `pipeline`
-- `plant`
-- `planter`
-- `platform`
-- `platter`
-- `portal`
-- `post_box`
-- `power_line`
-- `power_pole`
-- `power_tower`
-- `private_airport`
-- `pylon`
-- `quay`
-- `radar`
-- `railway_halt`
-- `railway_station`
-- `recycling`
-- `regional_airport`
-- `reservoir_covered`
-- `retaining_wall`
-- `roller_coaster`
-- `rope_tow`
-- `runway`
-- `sally_port`
-- `seaplane_airport`
-- `sewer`
-- `silo`
-- `siren`
-- `stile`
-- `stop`
-- `stop_position`
-- `stopway`
-- `storage_tank`
-- `street_cabinet`
-- `street_lamp`
-- `substation`
-- `subway_station`
-- `swing_gate`
-- `switch`
-- `t-bar`
-- `taxilane`
-- `taxiway`
-- `terminal`
-- `toilets`
-- `toll_booth`
-- `traffic_signals`
-- `transformer`
-- `trestle`
-- `utility_pole`
-- `vending_machine`
-- `viaduct`
-- `viewpoint`
-- `wall`
-- `waste_basket`
-- `waste_disposal`
-- `watchtower`
-- `water_tower`
-- `weir`
-- `zip_line`
-
-## Used By
-
-- [`Infrastructure`](../infrastructure.md)
diff --git a/docs/schema/reference/base/types/infrastructure_subtype.md b/docs/schema/reference/base/types/infrastructure_subtype.md
deleted file mode 100644
index c7432d70..00000000
--- a/docs/schema/reference/base/types/infrastructure_subtype.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# InfrastructureSubtype
-
-Broadest classification of the type of infrastructure.
-
-This broad classification can be refined by `InfrastructureClass`.
-
-## Values
-
-- `aerialway`
-- `airport`
-- `barrier`
-- `bridge`
-- `communication`
-- `emergency`
-- `manhole`
-- `pedestrian`
-- `pier`
-- `power`
-- `quay`
-- `recreation`
-- `tower`
-- `transit`
-- `transportation`
-- `utility`
-- `waste_management`
-- `water`
-
-## Used By
-
-- [`Infrastructure`](../infrastructure.md)
diff --git a/docs/schema/reference/base/types/land_class.md b/docs/schema/reference/base/types/land_class.md
deleted file mode 100644
index 8c63ddaf..00000000
--- a/docs/schema/reference/base/types/land_class.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# LandClass
-
-Further classification of the land.
-
-The land class adds detail to the broad classification of `LandSubtype`.
-
-## Values
-
-- `archipelago`
-- `bare_rock`
-- `beach`
-- `cave_entrance`
-- `cliff`
-- `desert`
-- `dune`
-- `fell`
-- `forest`
-- `glacier`
-- `grass`
-- `grassland`
-- `heath`
-- `hill`
-- `island`
-- `islet`
-- `land`
-- `meadow`
-- `meteor_crater`
-- `mountain_range`
-- `peak`
-- `peninsula`
-- `plateau`
-- `reef`
-- `ridge`
-- `rock`
-- `saddle`
-- `sand`
-- `scree`
-- `scrub`
-- `shingle`
-- `shrub`
-- `shrubbery`
-- `stone`
-- `tree`
-- `tree_row`
-- `tundra`
-- `valley`
-- `volcanic_caldera_rim`
-- `volcano`
-- `wetland`
-- `wood`
-
-## Used By
-
-- [`Land`](../land.md)
diff --git a/docs/schema/reference/base/types/land_cover_subtype.md b/docs/schema/reference/base/types/land_cover_subtype.md
deleted file mode 100644
index 8a9676ae..00000000
--- a/docs/schema/reference/base/types/land_cover_subtype.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# LandCoverSubtype
-
-Primary or dominant material covering the land.
-
-## Values
-
-- `barren`
-- `crop`
-- `forest`
-- `grass`
-- `mangrove`
-- `moss`
-- `shrub`
-- `snow`
-- `urban`
-- `wetland`
-
-## Used By
-
-- [`LandCover`](../land_cover.md)
diff --git a/docs/schema/reference/base/types/land_subtype.md b/docs/schema/reference/base/types/land_subtype.md
deleted file mode 100644
index 9e92c91a..00000000
--- a/docs/schema/reference/base/types/land_subtype.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# LandSubtype
-
-Broadest classification of the land.
-
-This broad classification can be refined by `LandClass`.
-
-## Values
-
-- `crater`
-- `desert`
-- `forest`
-- `glacier`
-- `grass`
-- `land`
-- `physical`
-- `reef`
-- `rock`
-- `sand`
-- `shrub`
-- `tree`
-- `wetland`
-
-## Used By
-
-- [`Land`](../land.md)
diff --git a/docs/schema/reference/base/types/land_use_class.md b/docs/schema/reference/base/types/land_use_class.md
deleted file mode 100644
index 5c9531d8..00000000
--- a/docs/schema/reference/base/types/land_use_class.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# LandUseClass
-
-Further classification of the land use.
-
-The land use class adds detail to the broad classification of `LandUseSubtype`.
-
-## Values
-
-- `aboriginal_land`
-- `airfield`
-- `allotments`
-- `animal_keeping`
-- `aquaculture`
-- `barracks`
-- `base`
-- `beach_resort`
-- `brownfield`
-- `bunker`
-- `camp_site`
-- `cemetery`
-- `clinic`
-- `college`
-- `commercial`
-- `connection`
-- `construction`
-- `danger_area`
-- `doctors`
-- `dog_park`
-- `downhill`
-- `driving_range`
-- `driving_school`
-- `education`
-- `environmental`
-- `fairway`
-- `farmland`
-- `farmyard`
-- `fatbike`
-- `flowerbed`
-- `forest`
-- `garages`
-- `garden`
-- `golf_course`
-- `grass`
-- `grave_yard`
-- `green`
-- `greenfield`
-- `greenhouse_horticulture`
-- `highway`
-- `hike`
-- `hospital`
-- `ice_skate`
-- `industrial`
-- `institutional`
-- `kindergarten`
-- `landfill`
-- `lateral_water_hazard`
-- `logging`
-- `marina`
-- `meadow`
-- `military`
-- `military_hospital`
-- `military_school`
-- `music_school`
-- `national_park`
-- `natural_monument`
-- `nature_reserve`
-- `naval_base`
-- `nordic`
-- `nuclear_explosion_site`
-- `obstacle_course`
-- `orchard`
-- `park`
-- `peat_cutting`
-- `pedestrian`
-- `pitch`
-- `plant_nursery`
-- `playground`
-- `plaza`
-- `protected`
-- `protected_landscape_seascape`
-- `quarry`
-- `railway`
-- `range`
-- `recreation_ground`
-- `religious`
-- `residential`
-- `resort`
-- `retail`
-- `rough`
-- `salt_pond`
-- `school`
-- `schoolyard`
-- `ski_jump`
-- `skitour`
-- `sled`
-- `sleigh`
-- `snow_park`
-- `species_management_area`
-- `stadium`
-- `state_park`
-- `static_caravan`
-- `strict_nature_reserve`
-- `tee`
-- `theme_park`
-- `track`
-- `traffic_island`
-- `training_area`
-- `trench`
-- `university`
-- `village_green`
-- `vineyard`
-- `water_hazard`
-- `water_park`
-- `wilderness_area`
-- `winter_sports`
-- `works`
-- `zoo`
-
-## Used By
-
-- [`LandUse`](../land_use.md)
diff --git a/docs/schema/reference/base/types/land_use_subtype.md b/docs/schema/reference/base/types/land_use_subtype.md
deleted file mode 100644
index 3acc75d2..00000000
--- a/docs/schema/reference/base/types/land_use_subtype.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# LandUseSubtype
-
-Broadest classification of the land use.
-
-This broad classification can be refined by `LandUseClass`.
-
-## Values
-
-- `agriculture`
-- `aquaculture`
-- `campground`
-- `cemetery`
-- `construction`
-- `developed`
-- `education`
-- `entertainment`
-- `golf`
-- `grass`
-- `horticulture`
-- `landfill`
-- `managed`
-- `medical`
-- `military`
-- `park`
-- `pedestrian`
-- `protected`
-- `recreation`
-- `religious`
-- `residential`
-- `resource_extraction`
-- `transportation`
-- `winter_sports`
-
-## Used By
-
-- [`LandUse`](../land_use.md)
diff --git a/docs/schema/reference/base/types/source_tags.md b/docs/schema/reference/base/types/source_tags.md
deleted file mode 100644
index aaac9760..00000000
--- a/docs/schema/reference/base/types/source_tags.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# SourceTags
-
-Key-value pairs imported directly from the source data without change.
-
-This field provides access to raw OSM entity tags for features sourced from
-OpenStreetMap.
-
-Underlying type: `map`
-
-## Used By
-
-- [`Infrastructure`](../infrastructure.md)
-- [`Land`](../land.md)
-- [`LandUse`](../land_use.md)
-- [`Water`](../water.md)
diff --git a/docs/schema/reference/base/types/surface_material.md b/docs/schema/reference/base/types/surface_material.md
deleted file mode 100644
index 707f5a6a..00000000
--- a/docs/schema/reference/base/types/surface_material.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# SurfaceMaterial
-
-Material that makes up the surface of `Infrastructure` and `Land` features.
-
-## Values
-
-- `asphalt`
-- `cobblestone`
-- `compacted`
-- `concrete`
-- `concrete_plates`
-- `dirt`
-- `earth`
-- `fine_gravel`
-- `grass`
-- `gravel`
-- `ground`
-- `paved`
-- `paving_stones`
-- `pebblestone`
-- `recreation_grass`
-- `recreation_paved`
-- `recreation_sand`
-- `rubber`
-- `sand`
-- `sett`
-- `tartan`
-- `unpaved`
-- `wood`
-- `woodchips`
-
-## Used By
-
-- [`Infrastructure`](../infrastructure.md)
-- [`Land`](../land.md)
-- [`LandUse`](../land_use.md)
diff --git a/docs/schema/reference/base/types/water_class.md b/docs/schema/reference/base/types/water_class.md
deleted file mode 100644
index def472f9..00000000
--- a/docs/schema/reference/base/types/water_class.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# WaterClass
-
-Further description of the type of water body.
-
-The water class adds detail to the broad classification of `WaterSubtype`.
-
-## Values
-
-- `basin`
-- `bay`
-- `blowhole`
-- `canal`
-- `cape`
-- `ditch`
-- `dock`
-- `drain`
-- `fairway`
-- `fish_pass`
-- `fishpond`
-- `geyser`
-- `hot_spring`
-- `lagoon`
-- `lake`
-- `moat`
-- `ocean`
-- `oxbow`
-- `pond`
-- `reflecting_pool`
-- `reservoir`
-- `river`
-- `salt_pond`
-- `sea`
-- `sewage`
-- `shoal`
-- `spring`
-- `strait`
-- `stream`
-- `swimming_pool`
-- `tidal_channel`
-- `wastewater`
-- `water`
-- `water_storage`
-- `waterfall`
-
-## Used By
-
-- [`Water`](../water.md)
diff --git a/docs/schema/reference/base/types/water_subtype.md b/docs/schema/reference/base/types/water_subtype.md
deleted file mode 100644
index 987dc1af..00000000
--- a/docs/schema/reference/base/types/water_subtype.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# WaterSubtype
-
-The broad classification of water body such as river, ocean or lake.
-
-This broad classification can be refined using `WaterClass`.
-
-## Values
-
-- `canal`
-- `human_made`
-- `lake`
-- `ocean`
-- `physical`
-- `pond`
-- `reservoir`
-- `river`
-- `spring`
-- `stream`
-- `wastewater`
-- `water`
-
-## Used By
-
-- [`Water`](../water.md)
diff --git a/docs/schema/reference/base/water.md b/docs/schema/reference/base/water.md
deleted file mode 100644
index 57cab194..00000000
--- a/docs/schema/reference/base/water.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# Water
-
-Water features represent ocean and inland water bodies.
-
-In Overture data releases, water features are sourced from OpenStreetMap. There are two main
-categories of water feature: ocean and inland water bodies.
-
-Ocean
------
-The `subytpe` value `"ocean"` indicates an ocean area feature whose geometry represents the
-surface area of an ocean or part of an ocean. Ocean area may be tiled into many small polygons
-of consistent complexity to ensure manageable geometry. In Overture data releases, ocean area
-features are created from OpenStreetMap coastlines data (`natural=coastline`) using a QA'd
-version of the output from the OSMCoastline tool. In aggregate, all the ocean area features
-represent the inverse of the land features with subtype `"land"` and class `"land"`.
-
-The names and recommended label position for oceans and seas can be found in features with the
-subtype `"physical"` and the class `"ocean"` or `"sea"`.
-
-Inland Water
-------------
-Subtypes other than `"ocean"` (and `"physical"`) represent inland water bodies. In Overture data
-releases, these features are sourced from the OpenStreetMap tag `natural=*` where the tag value
-indicates a water body, as well as the tags `natural=water`, `waterway=*`,
-and `water=*`.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Geometry of the water feature, which may be a point, line string, polygon, or multi-polygon.
*Allowed geometry types: LineString, MultiPolygon, Point, Polygon* |
-| `theme` | `"base"` | |
-| `type` | `"water"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `class` | [`WaterClass`](types/water_class.md) (optional) | |
-| `subtype` | [`WaterSubtype`](types/water_subtype.md) (optional) | |
-| `is_intermittent` | `boolean` (optional) | Whether the water body exists intermittently, not permanently
*`strict=True`* |
-| `is_salt` | `boolean` (optional) | Whether the water body contains salt water
*`strict=True`* |
-| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
-| `names` | [`Names`](../core/names.md) (optional) | |
-| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
-| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
-| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
-| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-| `source_tags` | [`SourceTags`](types/source_tags.md) (map, optional) | Key-value pairs imported directly from the source data without change.
This field provides access to raw OSM entity tags for features sourced from OpenStreetMap. |
-| `wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `6bbb5fe5-bf26-3efa-b120-0a7079b60840` |
-| `bbox.xmin` | `-177.03179931640625` |
-| `bbox.xmax` | `-177.0317840576172` |
-| `bbox.ymin` | `-84.93480682373047` |
-| `bbox.ymax` | `-84.9347915649414` |
-| `geometry` | `POINT (-177.031799 -84.934793)` |
-| `theme` | `base` |
-| `type` | `water` |
-| `version` | `0` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenStreetMap` |
-| `sources[0].record_id` | `n11109190647@2` |
-| `sources[0].update_time` | `2024-02-11T05:52:05.000Z` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `class` | `cape` |
-| `subtype` | `physical` |
-| `is_intermittent` | `null` |
-| `is_salt` | `null` |
-| `level` | `null` |
-| `names.primary` | `Thanksgiving Point` |
-| `names.common` | `null` |
-| `names.rules` | `null` |
-| `source_tags` | `{"natural": "cape", "ref:linz:place_id": "13433"}` |
-| `wikidata` | `Q33140589` |
diff --git a/docs/schema/reference/buildings/_category_.json b/docs/schema/reference/buildings/_category_.json
deleted file mode 100644
index 3e85a3e7..00000000
--- a/docs/schema/reference/buildings/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "label": "Buildings",
- "position": 3
-}
diff --git a/docs/schema/reference/buildings/building.md b/docs/schema/reference/buildings/building.md
deleted file mode 100644
index 4d455505..00000000
--- a/docs/schema/reference/buildings/building.md
+++ /dev/null
@@ -1,102 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# Building
-
-Buildings are man-made structures with roofs that exist permanently in one place.
-
-A building's geometry represents the two-dimensional footprint of the building as viewed from
-directly above, looking down. Fields such as `height` and `num_floors` allow the
-three-dimensional shape to be approximated. Some buildings, identified by the `has_parts` field,
-have associated `BuildingPart` features which can be used to generate a more representative 3D
-model of the building.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | The building's footprint or roofprint (if traced from aerial/satellite imagery).
*Allowed geometry types: MultiPolygon, Polygon* |
-| `theme` | `"buildings"` | |
-| `type` | `"building"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `subtype` | [`BuildingSubtype`](types/building_subtype.md) (optional) | A broad classification of the current use and purpose of the building.
If the current use of the building no longer accords with the original built purpose, the current use should be specified. For example, a building built as a train station but later converted into a shopping mall would have the value `"commercial"` rather than `"transportation"`. |
-| `class` | [`BuildingClass`](types/building_class.md) (optional) | A more specific classification of the current use and purpose of the building.
If the current use of the building no longer accords with the original built purpose, the current use should be specified. |
-| `has_parts` | `boolean` (optional) | Whether the building has associated building part features
*`strict=True`* |
-| `names` | [`Names`](../core/names.md) (optional) | |
-| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
-| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
-| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
-| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
-| `height` | [`float64`](../system/primitive/primitives.md) (optional) | Height of the building or part in meters.
This is the distance from the lowest point to the highest point.
*`> 0`* |
-| `is_underground` | `boolean` (optional) | Whether the entire building or part is completely below ground.
The underground flag is useful for display purposes. Buildings and building parts that are entirely below ground can be styled differently or omitted from the rendered image.
This flag is conceptually different from the `level` field, which indicates relative z-ordering and, notably, can be negative even if the building is entirely above-ground.
*`strict=True`* |
-| `num_floors` | [`int32`](../system/primitive/primitives.md) (optional) | Number of above-ground floors of the building or part.
*`> 0`* |
-| `num_floors_underground` | [`int32`](../system/primitive/primitives.md) (optional) | Number of below-ground floors of the building or part.
*`> 0`* |
-| `min_height` | [`float64`](../system/primitive/primitives.md) (optional) | Altitude above ground where the bottom of the building or building part starts.
If present, this value indicates that the lowest part of the building or building part starts is above ground level. |
-| `min_floor` | [`int32`](../system/primitive/primitives.md) (optional) | Start floor of this building or part.
If present, this value indicates that the building or part is "floating" and its bottom-most floor is above ground level, usually because it is part of a larger building in which some parts do reach down to ground level. An example is a building that has an entry road or driveway at ground level into an interior courtyard, where part of the building bridges above the entry road. This property may sometimes be populated when `min_height` is missing and in these cases can be used as a proxy for `min_height`.
*`> 0`* |
-| `facade_color` | [`HexColor`](../system/hex_color.md) (optional) | Facade color in `#rgb` or `#rrggbb` hex notation |
-| `facade_material` | [`FacadeMaterial`](types/facade_material.md) (optional) | Outer surface material of the facade |
-| `roof_material` | [`RoofMaterial`](types/roof_material.md) (optional) | Outer surface material of the roof |
-| `roof_shape` | [`RoofShape`](types/roof_shape.md) (optional) | Shape of the roof |
-| `roof_direction` | [`float64`](../system/primitive/primitives.md) (optional) | Bearing of the roof ridge line in degrees
*`β₯ 0`*
*`< 360`* |
-| `roof_orientation` | [`RoofOrientation`](types/roof_orientation.md) (optional) | Orientation of the roof shape relative to the footprint shape |
-| `roof_color` | [`HexColor`](../system/hex_color.md) (optional) | The roof color in `#rgb` or `#rrggbb` hex notation |
-| `roof_height` | [`float64`](../system/primitive/primitives.md) (optional) | Height of the roof in meters.
This is the distance from the base of the roof to its highest point. |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `148f35b1-7bc1-4180-9280-10d39b13883b` |
-| `bbox.xmin` | `-176.643798828125` |
-| `bbox.xmax` | `-176.64349365234375` |
-| `bbox.ymin` | `-43.9938850402832` |
-| `bbox.ymax` | `-43.993709564208984` |
-| `geometry` | `POLYGON ((-176.6435004 -43.9938042, -176.6435738 -43.9937107, -176.6437726 -43.9937913, -176.6436...` |
-| `theme` | `buildings` |
-| `type` | `building` |
-| `version` | `1` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenStreetMap` |
-| `sources[0].record_id` | `w519166507@1` |
-| `sources[0].update_time` | `2017-08-27T21:39:50.000Z` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `subtype` | `null` |
-| `class` | `null` |
-| `has_parts` | `false` |
-| `names` | `null` |
-| `level` | `null` |
-| `height` | `null` |
-| `is_underground` | `false` |
-| `num_floors` | `null` |
-| `num_floors_underground` | `null` |
-| `min_height` | `null` |
-| `min_floor` | `null` |
-| `facade_color` | `null` |
-| `facade_material` | `null` |
-| `roof_material` | `null` |
-| `roof_shape` | `null` |
-| `roof_direction` | `null` |
-| `roof_orientation` | `null` |
-| `roof_color` | `null` |
-| `roof_height` | `null` |
diff --git a/docs/schema/reference/buildings/building_part.md b/docs/schema/reference/buildings/building_part.md
deleted file mode 100644
index acbcfd05..00000000
--- a/docs/schema/reference/buildings/building_part.md
+++ /dev/null
@@ -1,101 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# BuildingPart
-
-Building parts represent parts of larger building features. They allow buildings to be modeled
-in rich detail suitable for creating realistic 3D models.
-
-Every building part is associated with a parent `Building` feature via the `building_id` field.
-In addition, a building part has a footprint geometry and may include additional details such as
-its height, the number of floors, and the color and material of its facade and roof.
-
-Building parts can float or be stacked on top of each other. The `min_height`, `min_floor`,
-`height`, and `num_floors`, fields can be used to arrange the parts correctly along the
-vertical dimension.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | The footprint or roofprint of the building part.
*Allowed geometry types: MultiPolygon, Polygon* |
-| `theme` | `"buildings"` | |
-| `type` | `"building_part"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `building_id` | [`Id`](../system/ref/id.md) | The building to which this part belongs
*References [`Building`](building.md) (belongs to)* |
-| `names` | [`Names`](../core/names.md) (optional) | |
-| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
-| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
-| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
-| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
-| `height` | [`float64`](../system/primitive/primitives.md) (optional) | Height of the building or part in meters.
This is the distance from the lowest point to the highest point.
*`> 0`* |
-| `is_underground` | `boolean` (optional) | Whether the entire building or part is completely below ground.
The underground flag is useful for display purposes. Buildings and building parts that are entirely below ground can be styled differently or omitted from the rendered image.
This flag is conceptually different from the `level` field, which indicates relative z-ordering and, notably, can be negative even if the building is entirely above-ground.
*`strict=True`* |
-| `num_floors` | [`int32`](../system/primitive/primitives.md) (optional) | Number of above-ground floors of the building or part.
*`> 0`* |
-| `num_floors_underground` | [`int32`](../system/primitive/primitives.md) (optional) | Number of below-ground floors of the building or part.
*`> 0`* |
-| `min_height` | [`float64`](../system/primitive/primitives.md) (optional) | Altitude above ground where the bottom of the building or building part starts.
If present, this value indicates that the lowest part of the building or building part starts is above ground level. |
-| `min_floor` | [`int32`](../system/primitive/primitives.md) (optional) | Start floor of this building or part.
If present, this value indicates that the building or part is "floating" and its bottom-most floor is above ground level, usually because it is part of a larger building in which some parts do reach down to ground level. An example is a building that has an entry road or driveway at ground level into an interior courtyard, where part of the building bridges above the entry road. This property may sometimes be populated when `min_height` is missing and in these cases can be used as a proxy for `min_height`.
*`> 0`* |
-| `facade_color` | [`HexColor`](../system/hex_color.md) (optional) | Facade color in `#rgb` or `#rrggbb` hex notation |
-| `facade_material` | [`FacadeMaterial`](types/facade_material.md) (optional) | Outer surface material of the facade |
-| `roof_material` | [`RoofMaterial`](types/roof_material.md) (optional) | Outer surface material of the roof |
-| `roof_shape` | [`RoofShape`](types/roof_shape.md) (optional) | Shape of the roof |
-| `roof_direction` | [`float64`](../system/primitive/primitives.md) (optional) | Bearing of the roof ridge line in degrees
*`β₯ 0`*
*`< 360`* |
-| `roof_orientation` | [`RoofOrientation`](types/roof_orientation.md) (optional) | Orientation of the roof shape relative to the footprint shape |
-| `roof_color` | [`HexColor`](../system/hex_color.md) (optional) | The roof color in `#rgb` or `#rrggbb` hex notation |
-| `roof_height` | [`float64`](../system/primitive/primitives.md) (optional) | Height of the roof in meters.
This is the distance from the base of the roof to its highest point. |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `19412d64-51ac-3d6a-ac2f-8a8c8b91bb60` |
-| `bbox.xmin` | `-73.24630737304688` |
-| `bbox.xmax` | `-73.24613952636719` |
-| `bbox.ymin` | `-39.81101608276367` |
-| `bbox.ymax` | `-39.81088638305664` |
-| `geometry` | `POLYGON ((-73.2462509 -39.8108937, -73.2462755 -39.8109047, -73.246291 -39.8109182, -73.2463022 -...` |
-| `theme` | `buildings` |
-| `type` | `building_part` |
-| `version` | `0` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenStreetMap` |
-| `sources[0].record_id` | `w223076787@2` |
-| `sources[0].update_time` | `2014-10-31T22:55:36.000Z` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `building_id` | `bd663bd4-1844-4d7d-a400-114de051cf49` |
-| `names` | `null` |
-| `level` | `3` |
-| `height` | `null` |
-| `is_underground` | `false` |
-| `num_floors` | `null` |
-| `num_floors_underground` | `null` |
-| `min_height` | `null` |
-| `min_floor` | `null` |
-| `facade_color` | `null` |
-| `facade_material` | `null` |
-| `roof_material` | `null` |
-| `roof_shape` | `null` |
-| `roof_direction` | `null` |
-| `roof_orientation` | `null` |
-| `roof_color` | `null` |
-| `roof_height` | `null` |
diff --git a/docs/schema/reference/buildings/types/_category_.json b/docs/schema/reference/buildings/types/_category_.json
deleted file mode 100644
index a3ec0897..00000000
--- a/docs/schema/reference/buildings/types/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Types"
-}
diff --git a/docs/schema/reference/buildings/types/building_class.md b/docs/schema/reference/buildings/types/building_class.md
deleted file mode 100644
index ed62867d..00000000
--- a/docs/schema/reference/buildings/types/building_class.md
+++ /dev/null
@@ -1,103 +0,0 @@
----
-hide_table_of_contents: true
----
-
-# BuildingClass
-
-Further classification of the type and purpose of a building.
-
-The building class adds detail to the broad classification of `BuildingSubtype`.
-
-## Values
-
-- `agricultural`
-- `allotment_house`
-- `apartments`
-- `barn`
-- `beach_hut`
-- `boathouse`
-- `bridge_structure`
-- `bungalow`
-- `bunker`
-- `cabin`
-- `carport`
-- `cathedral`
-- `chapel`
-- `church`
-- `civic`
-- `college`
-- `commercial`
-- `cowshed`
-- `detached`
-- `digester`
-- `dormitory`
-- `dwelling_house`
-- `factory`
-- `farm`
-- `farm_auxiliary`
-- `fire_station`
-- `garage`
-- `garages`
-- `ger`
-- `glasshouse`
-- `government`
-- `grandstand`
-- `greenhouse`
-- `guardhouse`
-- `hangar`
-- `hospital`
-- `hotel`
-- `house`
-- `houseboat`
-- `hut`
-- `industrial`
-- `kindergarten`
-- `kiosk`
-- `library`
-- `manufacture`
-- `military`
-- `monastery`
-- `mosque`
-- `office`
-- `outbuilding`
-- `parking`
-- `pavilion`
-- `post_office`
-- `presbytery`
-- `public`
-- `religious`
-- `residential`
-- `retail`
-- `roof`
-- `school`
-- `semi`
-- `semidetached_house`
-- `service`
-- `shed`
-- `shrine`
-- `silo`
-- `slurry_tank`
-- `sports_centre`
-- `sports_hall`
-- `stable`
-- `stadium`
-- `static_caravan`
-- `stilt_house`
-- `storage_tank`
-- `sty`
-- `supermarket`
-- `synagogue`
-- `temple`
-- `terrace`
-- `toilets`
-- `train_station`
-- `transformer_tower`
-- `transportation`
-- `trullo`
-- `university`
-- `warehouse`
-- `wayside_shrine`
-
-## Used By
-
-- [`Building`](../building.md)
diff --git a/docs/schema/reference/buildings/types/building_subtype.md b/docs/schema/reference/buildings/types/building_subtype.md
deleted file mode 100644
index 07f476b5..00000000
--- a/docs/schema/reference/buildings/types/building_subtype.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-hide_table_of_contents: true
----
-
-# BuildingSubtype
-
-Broadest classification of the type and purpose of a building.
-
-This broad classification can be refined by `BuildingClass`.
-
-## Values
-
-- `agricultural`
-- `civic`
-- `commercial`
-- `education`
-- `entertainment`
-- `industrial`
-- `medical`
-- `military`
-- `outbuilding`
-- `religious`
-- `residential`
-- `service`
-- `transportation`
-
-## Used By
-
-- [`Building`](../building.md)
diff --git a/docs/schema/reference/buildings/types/facade_material.md b/docs/schema/reference/buildings/types/facade_material.md
deleted file mode 100644
index e702ea2f..00000000
--- a/docs/schema/reference/buildings/types/facade_material.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-hide_table_of_contents: true
----
-
-# FacadeMaterial
-
-The outer surface material of building facade.
-
-## Values
-
-- `brick`
-- `cement_block`
-- `clay`
-- `concrete`
-- `glass`
-- `metal`
-- `plaster`
-- `plastic`
-- `stone`
-- `timber_framing`
-- `wood`
-
-## Used By
-
-- [`Building`](../building.md)
-- [`BuildingPart`](../building_part.md)
diff --git a/docs/schema/reference/buildings/types/roof_material.md b/docs/schema/reference/buildings/types/roof_material.md
deleted file mode 100644
index f6a6fd30..00000000
--- a/docs/schema/reference/buildings/types/roof_material.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-hide_table_of_contents: true
----
-
-# RoofMaterial
-
-The outermost material of the roof.
-
-## Values
-
-- `concrete`
-- `copper`
-- `eternit`
-- `glass`
-- `grass`
-- `gravel`
-- `metal`
-- `plastic`
-- `roof_tiles`
-- `slate`
-- `solar_panels`
-- `tar_paper`
-- `thatch`
-- `wood`
-
-## Used By
-
-- [`Building`](../building.md)
-- [`BuildingPart`](../building_part.md)
diff --git a/docs/schema/reference/buildings/types/roof_orientation.md b/docs/schema/reference/buildings/types/roof_orientation.md
deleted file mode 100644
index 38ee37a6..00000000
--- a/docs/schema/reference/buildings/types/roof_orientation.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-hide_table_of_contents: true
----
-
-# RoofOrientation
-
-Orientation of the roof shape relative to the footprint shape.
-
-The members of this enumeration, `"across"` and `"along"`, are borrowed from the OpenStreetMap
-`roof:orientation=*` tag and have the same meanings as they do in OSM.
-
-## Values
-
-- `across` - The roof ridge runs perpendicular to the longer of the two building edges, parallel to the shorter
-- `along` - The roof ridge runs parallel to the longer of the two building edges
-
-## Used By
-
-- [`Building`](../building.md)
-- [`BuildingPart`](../building_part.md)
diff --git a/docs/schema/reference/buildings/types/roof_shape.md b/docs/schema/reference/buildings/types/roof_shape.md
deleted file mode 100644
index cac6716a..00000000
--- a/docs/schema/reference/buildings/types/roof_shape.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-hide_table_of_contents: true
----
-
-# RoofShape
-
-The shape of the roof.
-
-## Values
-
-- `dome`
-- `flat`
-- `gabled`
-- `gambrel`
-- `half_hipped`
-- `hipped`
-- `mansard`
-- `onion`
-- `pyramidal`
-- `round`
-- `saltbox`
-- `sawtooth`
-- `skillion`
-- `spherical`
-
-## Used By
-
-- [`Building`](../building.md)
-- [`BuildingPart`](../building_part.md)
diff --git a/docs/schema/reference/core/_category_.json b/docs/schema/reference/core/_category_.json
deleted file mode 100644
index 5adbbd20..00000000
--- a/docs/schema/reference/core/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "label": "Core",
- "position": 7
-}
diff --git a/docs/schema/reference/core/cartographic_hints.md b/docs/schema/reference/core/cartographic_hints.md
deleted file mode 100644
index 33c58438..00000000
--- a/docs/schema/reference/core/cartographic_hints.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# CartographicHints
-
-Cartographic hints for optimal use of Overture features in map-making.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `prominence` | [`Prominence`](prominence.md) (optional) | Subjective scale of feature significance or importance, with 1 being the least, and 100 being the most, significant.
This value can be used to help drive decisions about how and when to display a feature, and how to treat it relative to neighboring features.
When populated by Overture, this value is derived from various factors including, but not limited to: feature and subtype, population, and capital status. |
-| `min_zoom` | [`MinZoom`](min_zoom.md) (optional) | Recommended minimum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels below this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
-| `max_zoom` | [`MaxZoom`](max_zoom.md) (optional) | Recommended maximum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels above this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
-| `sort_key` | [`SortKey`](sort_key.md) (optional) | Integer indicating the recommended order in which to draw features.
Features with a lower number should be drawn "in front" of features with a higher number. |
-
-## Used By
-
-- [`Bathymetry`](../base/bathymetry.md)
-- [`Division`](../divisions/division.md)
-- [`LandCover`](../base/land_cover.md)
diff --git a/docs/schema/reference/core/common_names.md b/docs/schema/reference/core/common_names.md
deleted file mode 100644
index 2d1950d7..00000000
--- a/docs/schema/reference/core/common_names.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# CommonNames
-
-A mapping from language to the most commonly used or recognized name in that language.
-
-Underlying type: `map<`[`LanguageTag`](../system/language_tag.md)`,`[`StrippedString`](../system/stripped_string.md)`>`
-
-## Used By
-
-- [`Division`](../divisions/division.md)
-- [`Names`](names.md)
diff --git a/docs/schema/reference/core/confidence_score.md b/docs/schema/reference/core/confidence_score.md
deleted file mode 100644
index 42256524..00000000
--- a/docs/schema/reference/core/confidence_score.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# ConfidenceScore
-
-Confidence score between 0.0 and 1.0
-
-Underlying type: `float64`
-
-## Constraints
-
-- `β₯ 0.0`
-- `β€ 1.0`
-
-## Used By
-
-- [`Place`](../places/place.md)
-- [`SourceItem`](source_item.md)
diff --git a/docs/schema/reference/core/feature_version.md b/docs/schema/reference/core/feature_version.md
deleted file mode 100644
index 96939448..00000000
--- a/docs/schema/reference/core/feature_version.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# FeatureVersion
-
-Underlying type: `int32`
-
-## Constraints
-
-- `β₯ 0`
-- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
-- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
-
-## Used By
-
-- [`Address`](../addresses/address.md)
-- [`Bathymetry`](../base/bathymetry.md)
-- [`Building`](../buildings/building.md)
-- [`BuildingPart`](../buildings/building_part.md)
-- [`Connector`](../transportation/connector.md)
-- [`Division`](../divisions/division.md)
-- [`DivisionArea`](../divisions/division_area.md)
-- [`DivisionBoundary`](../divisions/division_boundary.md)
-- [`Infrastructure`](../base/infrastructure.md)
-- [`Land`](../base/land.md)
-- [`LandCover`](../base/land_cover.md)
-- [`LandUse`](../base/land_use.md)
-- [`Place`](../places/place.md)
-- [`Segment`](../transportation/segment.md)
-- [`Water`](../base/water.md)
diff --git a/docs/schema/reference/core/length_unit.md b/docs/schema/reference/core/length_unit.md
deleted file mode 100644
index 44750a38..00000000
--- a/docs/schema/reference/core/length_unit.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# LengthUnit
-
-Unit of length.
-
-## Values
-
-- `in` - One inch in the imperial and US customary systems
-- `ft` - One foot in the imperial and US customary systems (12 inches)
-- `yd` - One yard in the imperial and US customary systems (three feet)
-- `mi` - One mile in the imperial and US customary systems (1,760 yards)
-- `cm` - One centimeter in the metric and SI systems
-- `m` - One meter in the metric and SI systems
-- `km` - One kilometer in the metric and SI systems
-
-## Used By
-
-- [`VehicleHeightSelector`](scoping/vehicle_height_selector.md)
-- [`VehicleLengthSelector`](scoping/vehicle_length_selector.md)
-- [`VehicleWidthSelector`](scoping/vehicle_width_selector.md)
diff --git a/docs/schema/reference/core/level.md b/docs/schema/reference/core/level.md
deleted file mode 100644
index dff9ca8a..00000000
--- a/docs/schema/reference/core/level.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Level
-
-Z-order of the feature where 0 is visual level
-
-Underlying type: `int32`
-
-## Constraints
-
-- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
-- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
-
-## Used By
-
-- [`Building`](../buildings/building.md)
-- [`BuildingPart`](../buildings/building_part.md)
-- [`Infrastructure`](../base/infrastructure.md)
-- [`Land`](../base/land.md)
-- [`LandUse`](../base/land_use.md)
-- [`LevelRule`](../transportation/types/level_rule.md)
-- [`Water`](../base/water.md)
diff --git a/docs/schema/reference/core/max_zoom.md b/docs/schema/reference/core/max_zoom.md
deleted file mode 100644
index 6f06fba0..00000000
--- a/docs/schema/reference/core/max_zoom.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# MaxZoom
-
-Recommended maximum tile zoom level in which this feature should be displayed.
-
-It is recommended that the feature be hidden at zoom levels above this value.
-
-Zoom levels follow the Slippy Maps convention, documented in the following
-references:
-- [https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames](https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames)
-- [https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection](https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection)
-
-Underlying type: `int32`
-
-## Constraints
-
-- `β₯ 0`
-- `β€ 23`
-- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
-- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
-
-## Used By
-
-- [`CartographicHints`](cartographic_hints.md)
diff --git a/docs/schema/reference/core/min_zoom.md b/docs/schema/reference/core/min_zoom.md
deleted file mode 100644
index f309c1e0..00000000
--- a/docs/schema/reference/core/min_zoom.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# MinZoom
-
-Recommended minimum tile zoom level in which this feature should be displayed.
-
-It is recommended that the feature be hidden at zoom levels below this value.
-
-Zoom levels follow the Slippy Maps convention, documented in the following
-references:
-- [https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames](https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames)
-- [https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection](https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection)
-
-Underlying type: `int32`
-
-## Constraints
-
-- `β₯ 0`
-- `β€ 23`
-- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
-- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
-
-## Used By
-
-- [`CartographicHints`](cartographic_hints.md)
diff --git a/docs/schema/reference/core/name_rule.md b/docs/schema/reference/core/name_rule.md
deleted file mode 100644
index 4b1c0308..00000000
--- a/docs/schema/reference/core/name_rule.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# NameRule
-
-A rule that can be evaluated to determine the name in advanced scenarios.
-
-Name rules are used for cases where the primary name is not sufficient; the common name is not
-the right fit for the use case and another variant is needed; or where the name only applies in
-certain specific circumstances.
-
-Examples might include:
-- An official, alternate, or short name.
-- A name that only applies to part of a linear path like a road segment (geometric range
- scoping).
-- A name that only applies to the left or right side of a linear path like a road segment (side
- scoping).
-- A name that is only accepted by some political perspectives.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `value` | [`StrippedString`](../system/stripped_string.md) | The actual name value.
*Minimum length: 1* |
-| `variant` | [`NameVariant`](name_variant.md) | The name variant for this name rule. |
-| `language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `perspectives` | [`Perspectives`](perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `perspectives.mode` | [`PerspectiveMode`](perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `between` | [`LinearlyReferencedRange`](scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `side` | [`Side`](scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-
-## Used By
-
-- [`Names`](names.md)
diff --git a/docs/schema/reference/core/name_variant.md b/docs/schema/reference/core/name_variant.md
deleted file mode 100644
index ea9fa475..00000000
--- a/docs/schema/reference/core/name_variant.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# NameVariant
-
-Name variant used in a `NameRule`.
-
-## Values
-
-- `common` - The most commonly used or recognized name for a feature in the specified language.
-
-In a `Names` value, most common names will appear in the `Names.common` field and will
-not need to be specified as `NameRule` values in `Names.rules`. This member of the
-enumeration should only be used to construct a `NameRule` if the common name needs to
-be scoped in some way and therefore cannot be accurately represented in `CommonNames`.
-- `official` - The legally or administratively recognized name, often used by government agencies or
-official documents.
-- `alternate` - An alternative name, which may be a historical name, a local colloquial name, or some
-other well-known name is not the common name.
-- `short` - An abbreviated or shortened version of the name, which may be an acronym or some other
-commonly-used short form. An example is "NYC" for New York City.
-
-## Used By
-
-- [`NameRule`](name_rule.md)
diff --git a/docs/schema/reference/core/names.md b/docs/schema/reference/core/names.md
deleted file mode 100644
index 220658c5..00000000
--- a/docs/schema/reference/core/names.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# Names
-
-Multilingual names container.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name.
*Minimum length: 1* |
-| `common` | [`CommonNames`](common_names.md) (map, optional) | |
-| `rules[]` | `list<`[`NameRule`](name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `rules[].variant` | [`NameVariant`](name_variant.md) | The name variant for this name rule. |
-| `rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `rules[].perspectives` | [`Perspectives`](perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `rules[].perspectives.mode` | [`PerspectiveMode`](perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `rules[].between` | [`LinearlyReferencedRange`](scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `rules[].side` | [`Side`](scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-
-## Used By
-
-- [`Brand`](../places/types/brand.md)
-- [`Building`](../buildings/building.md)
-- [`BuildingPart`](../buildings/building_part.md)
-- [`Division`](../divisions/division.md)
-- [`DivisionArea`](../divisions/division_area.md)
-- [`Infrastructure`](../base/infrastructure.md)
-- [`Land`](../base/land.md)
-- [`LandUse`](../base/land_use.md)
-- [`Place`](../places/place.md)
-- [`Segment`](../transportation/segment.md)
-- [`Water`](../base/water.md)
diff --git a/docs/schema/reference/core/perspective_mode.md b/docs/schema/reference/core/perspective_mode.md
deleted file mode 100644
index af2f597f..00000000
--- a/docs/schema/reference/core/perspective_mode.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# PerspectiveMode
-
-Perspective mode for disputed names.
-
-## Values
-
-- `accepted_by`
-- `disputed_by`
-
-## Used By
-
-- [`Perspectives`](perspectives.md)
diff --git a/docs/schema/reference/core/perspectives.md b/docs/schema/reference/core/perspectives.md
deleted file mode 100644
index b5e634d9..00000000
--- a/docs/schema/reference/core/perspectives.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Perspectives
-
-Political perspectives container.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `mode` | [`PerspectiveMode`](perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-
-## Used By
-
-- [`Division`](../divisions/division.md)
-- [`DivisionBoundary`](../divisions/division_boundary.md)
-- [`NameRule`](name_rule.md)
diff --git a/docs/schema/reference/core/prominence.md b/docs/schema/reference/core/prominence.md
deleted file mode 100644
index 524ec979..00000000
--- a/docs/schema/reference/core/prominence.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Prominence
-
-Subjective scale of feature significance or importance, with 1 being the least, and
-100 being the most, significant.
-
-This value can be used to help drive decisions about how and when to display a
-feature, and how to treat it relative to neighboring features.
-
-When populated by Overture, this value is derived from various factors including,
-but not limited to: feature and subtype, population, and capital status.
-
-Underlying type: `int32`
-
-## Constraints
-
-- `β₯ 1`
-- `β€ 100`
-- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
-- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
-
-## Used By
-
-- [`CartographicHints`](cartographic_hints.md)
diff --git a/docs/schema/reference/core/scoping/_category_.json b/docs/schema/reference/core/scoping/_category_.json
deleted file mode 100644
index 155d669b..00000000
--- a/docs/schema/reference/core/scoping/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Scoping"
-}
diff --git a/docs/schema/reference/core/scoping/heading.md b/docs/schema/reference/core/scoping/heading.md
deleted file mode 100644
index e59a4600..00000000
--- a/docs/schema/reference/core/scoping/heading.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Heading
-
-Travel direction along an oriented path: forward or backward.
-
-## Values
-
-- `forward`
-- `backward`
-
-## Used By
-
-- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
-- [`DestinationRule`](../../transportation/types/destination_rule.md)
-- [`DestinationRule.When`](../../transportation/types/destination_rule.when.md)
-- [`ProhibitedTransitionRule`](../../transportation/types/prohibited_transition_rule.md)
-- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
-- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/linearly_referenced_position.md b/docs/schema/reference/core/scoping/linearly_referenced_position.md
deleted file mode 100644
index 605af6ee..00000000
--- a/docs/schema/reference/core/scoping/linearly_referenced_position.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# LinearlyReferencedPosition
-
-Represents a linearly-referenced position between 0% and 100% of the distance along a path such as a road segment or a river center-line segment.
-
-Underlying type: `float64`
-
-## Constraints
-
-- `β₯ 0.0`
-- `β€ 1.0`
-
-## Used By
-
-- [`ConnectorReference`](../../transportation/types/connector_reference.md)
-- [`LinearlyReferencedRange`](linearly_referenced_range.md)
diff --git a/docs/schema/reference/core/scoping/linearly_referenced_range.md b/docs/schema/reference/core/scoping/linearly_referenced_range.md
deleted file mode 100644
index b08f0491..00000000
--- a/docs/schema/reference/core/scoping/linearly_referenced_range.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# LinearlyReferencedRange
-
-Represents a non-empty range of positions along a path as a pair linearly-referenced positions. For example, the pair [0.25, 0.5] represents the range beginning 25% of the distance from the start of the path and ending 50% of the distance from the path
-
-Underlying type: `list`
-
-## Constraints
-
-- Linear reference range constraint (0.0 to 1.0). (`LinearReferenceRangeConstraint`)
-- `β₯ 0.0` (from [`LinearlyReferencedPosition`](linearly_referenced_position.md))
-- `β€ 1.0` (from [`LinearlyReferencedPosition`](linearly_referenced_position.md))
-
-## Used By
-
-- [`AccessRestrictionRule`](../../transportation/types/access_restriction_rule.md)
-- [`LevelRule`](../../transportation/types/level_rule.md)
-- [`NameRule`](../name_rule.md)
-- [`ProhibitedTransitionRule`](../../transportation/types/prohibited_transition_rule.md)
-- [`RailFlagRule`](../../transportation/types/rail_flag_rule.md)
-- [`RoadFlagRule`](../../transportation/types/road_flag_rule.md)
-- [`RouteReference`](../../transportation/types/route_reference.md)
-- [`SourceItem`](../source_item.md)
-- [`SpeedLimitRule`](../../transportation/types/speed_limit_rule.md)
-- [`SubclassRule`](../../transportation/types/subclass_rule.md)
-- [`SurfaceRule`](../../transportation/types/surface_rule.md)
-- [`WidthRule`](../../transportation/types/width_rule.md)
diff --git a/docs/schema/reference/core/scoping/opening_hours.md b/docs/schema/reference/core/scoping/opening_hours.md
deleted file mode 100644
index da30697e..00000000
--- a/docs/schema/reference/core/scoping/opening_hours.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# OpeningHours
-
-Time span or time spans during which something is open or active, specified in the OpenStreetMap
-opening hours specification: [https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification](https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification).
-
-Underlying type: `string`
-
-## Used By
-
-- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
-- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
-- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/purpose_of_use.md b/docs/schema/reference/core/scoping/purpose_of_use.md
deleted file mode 100644
index a91e74f9..00000000
--- a/docs/schema/reference/core/scoping/purpose_of_use.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# PurposeOfUse
-
-Reason why a person or entity travelling on the transportation network is using a particular
-location.
-
-## Values
-
-- `as_customer`
-- `at_destination`
-- `to_deliver`
-- `to_farm`
-- `for_forestry`
-
-## Used By
-
-- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
-- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
-- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/recognized_status.md b/docs/schema/reference/core/scoping/recognized_status.md
deleted file mode 100644
index 52ce0c78..00000000
--- a/docs/schema/reference/core/scoping/recognized_status.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# RecognizedStatus
-
-Status of the person or entity travelling as recognized by authorities controlling the particular
-location.
-
-## Values
-
-- `as_permitted`
-- `as_private`
-- `as_disabled`
-- `as_employee`
-- `as_student`
-
-## Used By
-
-- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
-- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
-- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/side.md b/docs/schema/reference/core/scoping/side.md
deleted file mode 100644
index bc8390a1..00000000
--- a/docs/schema/reference/core/scoping/side.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Side
-
-The side, left or right, on which something appears relative to a facing or heading direction
-(*e.g.*, the side of a road relative to the road orientation), or relative to the direction of
-travel of a person or vehicle.
-
-## Values
-
-- `left` - On the left relative to the facing direction
-- `right` - On the right side relative to the facing direction
-
-## Used By
-
-- [`NameRule`](../name_rule.md)
-- [`Norms`](../../divisions/types/division/norms.md)
diff --git a/docs/schema/reference/core/scoping/travel_mode.md b/docs/schema/reference/core/scoping/travel_mode.md
deleted file mode 100644
index 1a2aa0b5..00000000
--- a/docs/schema/reference/core/scoping/travel_mode.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# TravelMode
-
-Enumerates possible travel modes.
-
-Some modes represent groups of modes.
-
-## Values
-
-- `vehicle`
-- `motor_vehicle`
-- `car`
-- `truck`
-- `motorcycle`
-- `foot`
-- `bicycle`
-- `bus`
-- `hgv`
-- `hov`
-- `emergency`
-
-## Used By
-
-- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
-- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
-- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_axle_count_selector.md b/docs/schema/reference/core/scoping/vehicle_axle_count_selector.md
deleted file mode 100644
index 461dd926..00000000
--- a/docs/schema/reference/core/scoping/vehicle_axle_count_selector.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# VehicleAxleCountSelector
-
-Selects vehicles based on the number of axles they have.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `dimension` | `"axle_count"` | |
-| `comparison` | [`VehicleRelation`](vehicle_relation.md) | |
-| `value` | [`uint8`](../../system/primitive/primitives.md) | Number of axles on the vehicle |
-
-## Used By
-
-- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
-- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
-- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_height_selector.md b/docs/schema/reference/core/scoping/vehicle_height_selector.md
deleted file mode 100644
index ba56f33d..00000000
--- a/docs/schema/reference/core/scoping/vehicle_height_selector.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# VehicleHeightSelector
-
-Selects vehicles based on their height.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `dimension` | `"height"` | |
-| `comparison` | [`VehicleRelation`](vehicle_relation.md) | |
-| `value` | [`float64`](../../system/primitive/primitives.md) | Vehicle height selection threshold in the given `unit`
*`β₯ 0`* |
-| `unit` | [`LengthUnit`](../length_unit.md) | Height unit in which `value` is expressed |
-
-## Used By
-
-- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
-- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
-- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_length_selector.md b/docs/schema/reference/core/scoping/vehicle_length_selector.md
deleted file mode 100644
index 5a6e1c01..00000000
--- a/docs/schema/reference/core/scoping/vehicle_length_selector.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# VehicleLengthSelector
-
-Selects vehicles based on their length.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `dimension` | `"length"` | |
-| `comparison` | [`VehicleRelation`](vehicle_relation.md) | |
-| `value` | [`float64`](../../system/primitive/primitives.md) | Vehicle length selection threshold in the given `unit`
*`β₯ 0`* |
-| `unit` | [`LengthUnit`](../length_unit.md) | Length unit in which `value` is expressed |
-
-## Used By
-
-- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
-- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
-- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_relation.md b/docs/schema/reference/core/scoping/vehicle_relation.md
deleted file mode 100644
index 0ac89edd..00000000
--- a/docs/schema/reference/core/scoping/vehicle_relation.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# VehicleRelation
-
-Relational operator, such as less than or equal to.
-
-## Values
-
-- `greater_than`
-- `greater_than_equal`
-- `equal`
-- `less_than`
-- `less_than_equal`
-
-## Used By
-
-- [`VehicleAxleCountSelector`](vehicle_axle_count_selector.md)
-- [`VehicleHeightSelector`](vehicle_height_selector.md)
-- [`VehicleLengthSelector`](vehicle_length_selector.md)
-- [`VehicleWeightSelector`](vehicle_weight_selector.md)
-- [`VehicleWidthSelector`](vehicle_width_selector.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_weight_selector.md b/docs/schema/reference/core/scoping/vehicle_weight_selector.md
deleted file mode 100644
index 3e42bdce..00000000
--- a/docs/schema/reference/core/scoping/vehicle_weight_selector.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# VehicleWeightSelector
-
-Selects vehicles based on their weight.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `dimension` | `"weight"` | |
-| `comparison` | [`VehicleRelation`](vehicle_relation.md) | |
-| `value` | [`float64`](../../system/primitive/primitives.md) | Vehicle weight selection threshold in the given `unit`
*`β₯ 0`* |
-| `unit` | [`WeightUnit`](../weight_unit.md) | Weight unit in which `value` is expressed |
-
-## Used By
-
-- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
-- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
-- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_width_selector.md b/docs/schema/reference/core/scoping/vehicle_width_selector.md
deleted file mode 100644
index f86e41b3..00000000
--- a/docs/schema/reference/core/scoping/vehicle_width_selector.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# VehicleWidthSelector
-
-Selects vehicles based on their width.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `dimension` | `"width"` | |
-| `comparison` | [`VehicleRelation`](vehicle_relation.md) | |
-| `value` | [`float64`](../../system/primitive/primitives.md) | Vehicle width selection threshold in the given `unit`
*`β₯ 0`* |
-| `unit` | [`LengthUnit`](../length_unit.md) | Width unit in which `value` is expressed |
-
-## Used By
-
-- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
-- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
-- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/sort_key.md b/docs/schema/reference/core/sort_key.md
deleted file mode 100644
index 1c118716..00000000
--- a/docs/schema/reference/core/sort_key.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# SortKey
-
-Integer indicating the recommended order in which to draw features.
-
-Features with a lower number should be drawn "in front" of features with a higher
-number.
-
-Underlying type: `int32`
-
-## Constraints
-
-- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
-- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
-
-## Used By
-
-- [`CartographicHints`](cartographic_hints.md)
diff --git a/docs/schema/reference/core/source_item.md b/docs/schema/reference/core/source_item.md
deleted file mode 100644
index c4acca0d..00000000
--- a/docs/schema/reference/core/source_item.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# SourceItem
-
-Specifies the source of the data used for a feature or one of its properties.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `dataset` | `string` | Name of the dataset where the source data can be found. |
-| `license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `confidence` | [`ConfidenceScore`](confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `between` | [`LinearlyReferencedRange`](scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-
-## Used By
-
-- [`Address`](../addresses/address.md)
-- [`Bathymetry`](../base/bathymetry.md)
-- [`Building`](../buildings/building.md)
-- [`BuildingPart`](../buildings/building_part.md)
-- [`Connector`](../transportation/connector.md)
-- [`Division`](../divisions/division.md)
-- [`DivisionArea`](../divisions/division_area.md)
-- [`DivisionBoundary`](../divisions/division_boundary.md)
-- [`Infrastructure`](../base/infrastructure.md)
-- [`Land`](../base/land.md)
-- [`LandCover`](../base/land_cover.md)
-- [`LandUse`](../base/land_use.md)
-- [`Place`](../places/place.md)
-- [`Segment`](../transportation/segment.md)
-- [`Water`](../base/water.md)
-- [`Sources`](sources.md)
diff --git a/docs/schema/reference/core/sources.md b/docs/schema/reference/core/sources.md
deleted file mode 100644
index ac48419e..00000000
--- a/docs/schema/reference/core/sources.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Sources
-
-Information about the source data used to assemble the feature.
-
-Underlying type: `list<`[`SourceItem`](source_item.md)`>`
-
-## Constraints
-
-- Minimum length: 1
-- All items must be unique. (`UniqueItemsConstraint`)
-
-## Used By
-
-- [`Address`](../addresses/address.md)
-- [`Bathymetry`](../base/bathymetry.md)
-- [`Building`](../buildings/building.md)
-- [`BuildingPart`](../buildings/building_part.md)
-- [`Connector`](../transportation/connector.md)
-- [`Division`](../divisions/division.md)
-- [`DivisionArea`](../divisions/division_area.md)
-- [`DivisionBoundary`](../divisions/division_boundary.md)
-- [`Infrastructure`](../base/infrastructure.md)
-- [`Land`](../base/land.md)
-- [`LandCover`](../base/land_cover.md)
-- [`LandUse`](../base/land_use.md)
-- [`Place`](../places/place.md)
-- [`Segment`](../transportation/segment.md)
-- [`Water`](../base/water.md)
diff --git a/docs/schema/reference/core/speed_unit.md b/docs/schema/reference/core/speed_unit.md
deleted file mode 100644
index acfd44ac..00000000
--- a/docs/schema/reference/core/speed_unit.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# SpeedUnit
-
-Unit of speed.
-
-## Values
-
-- `mph` - Miles per hour
-- `km/h` - Kilometers per hour
-
-## Used By
-
-- [`Speed`](../transportation/types/speed.md)
diff --git a/docs/schema/reference/core/weight_unit.md b/docs/schema/reference/core/weight_unit.md
deleted file mode 100644
index f53cb297..00000000
--- a/docs/schema/reference/core/weight_unit.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# WeightUnit
-
-Unit of weight.
-
-## Values
-
-- `oz` - One ounce in the imperial and US customary systems
-- `lb` - One pound in the imperial and US customary systems
-- `st` - One short ton, or one ton in the US customary system (2,000 pounds)
-- `lt` - One long ton, or one ton in the imperial system (2,400 pounds)
-- `g` - One gram in the metric and SI systems
-- `kg` - One kilogram in the metric and SI systems
-- `t` - One tonne in the metric and SI systems
-
-## Used By
-
-- [`VehicleWeightSelector`](scoping/vehicle_weight_selector.md)
diff --git a/docs/schema/reference/divisions/_category_.json b/docs/schema/reference/divisions/_category_.json
deleted file mode 100644
index 51eecd25..00000000
--- a/docs/schema/reference/divisions/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "label": "Divisions",
- "position": 4
-}
diff --git a/docs/schema/reference/divisions/division.md b/docs/schema/reference/divisions/division.md
deleted file mode 100644
index 2bd5aad5..00000000
--- a/docs/schema/reference/divisions/division.md
+++ /dev/null
@@ -1,131 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# Division
-
-Divisions are recognized official or non-official organizations of people as seen
-from a given political perspective.
-
-Examples include countries, provinces, cities, towns, neighborhoods, etc.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `cartography` | [`CartographicHints`](../core/cartographic_hints.md) (optional) | |
-| `cartography.prominence` | [`Prominence`](../core/prominence.md) (optional) | Subjective scale of feature significance or importance, with 1 being the least, and 100 being the most, significant.
This value can be used to help drive decisions about how and when to display a feature, and how to treat it relative to neighboring features.
When populated by Overture, this value is derived from various factors including, but not limited to: feature and subtype, population, and capital status. |
-| `cartography.min_zoom` | [`MinZoom`](../core/min_zoom.md) (optional) | Recommended minimum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels below this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
-| `cartography.max_zoom` | [`MaxZoom`](../core/max_zoom.md) (optional) | Recommended maximum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels above this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
-| `cartography.sort_key` | [`SortKey`](../core/sort_key.md) (optional) | Integer indicating the recommended order in which to draw features.
Features with a lower number should be drawn "in front" of features with a higher number. |
-| `names` | [`Names`](../core/names.md) | |
-| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
-| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
-| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
-| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Approximate location of a position commonly associated with the real-world entity modeled by the division feature.
*Allowed geometry types: Point* |
-| `theme` | `"divisions"` | |
-| `type` | `"division"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `subtype` | [`PlaceType`](types/place_type.md) | *`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`*
*`parent_division_id` is required when `subtype` β `country`*
*`parent_division_id` is forbidden when `subtype` = `country`* |
-| `country` | [`CountryCodeAlpha2`](../system/country_code_alpha2.md) | ISO 3166-1 alpha-2 country code of the country or country-like entity, that this division represents or belongs to.
If the entity this division represents has a country code, the country property contains it. If it does not, the country property contains the country code of the first division encountered by traversing the parent_division_id chain to the root.
For example: - The country value for the United States is 'US' - The country value for New York City is 'US' - The country value for Puerto Rico, a dependency of the US, is 'PR'. - The country value for San Juan, Puerto Rico is 'PR'.
If an entity has an internationally-recognized ISO 3166-1 alpha-2 country code, it should always be used. In cases where the schema requires the code but no internationally-recognized code is available, a synthetic code may be used provided it does not conflict with any internationally-recognized codes. |
-| `hierarchies[][]` | `list<`[`Hierarchy`](types/hierarchy.md)`>` | Hierarchies in which this division participates.
Every division participates in at least one hierarchy. Most participate in only one. Some divisions may participate in more than one hierarchy, for example if they are claimed by different parent divisions from different political perspectives; or if there are other real-world reasons why the division or one of its ancestors has multiple parents.
The first hierarchy in the list is the default hierarchy, and the second-to-last entry in the default hierarchy (if there is such an entry) always corresponds to the `parent_division_id' property. The ordering of hierarchies after the first one is arbitrary.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `hierarchies[][].division_id` | [`DivisionId`](types/division_id.md) | ID of the division |
-| `hierarchies[][].subtype` | [`PlaceType`](types/place_type.md) | |
-| `hierarchies[][].name` | [`StrippedString`](../system/stripped_string.md) | Primary name of the division |
-| `parent_division_id` | [`Id`](../system/ref/id.md) (optional) | Division ID of this division's parent division.
Not allowed for top-level divisions (countries) and required for all other divisions.
The default parent division is the parent division as seen from the default political perspective, if there is one, and is otherwise chosen somewhat arbitrarily. The hierarchies property can be used to inspect the exhaustive list of parent divisions.
*Minimum length: 1*
*`parent_division_id` is required when `subtype` β `country`*
*`parent_division_id` is forbidden when `subtype` = `country`* |
-| `admin_level` | [`AdminLevel`](types/admin_level.md) (optional) | Integer representing the division's position in its country's administrative hierarchy, where lower numbers correspond to higher level administrative units.
*`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`* |
-| `class` | [`DivisionClass`](types/division_class.md) (optional) | |
-| `local_type` | [`CommonNames`](../core/common_names.md) (map, optional) | Local name for the subtype property, optionally localized.
For example, the Canadian province of Quebec has the subtype 'region', but in the local administrative hierarchy it is referred to as a 'province'. Similarly, the Canadian Yukon territory also has subtype 'region', but is locally called a 'territory'.
This property is localized using a standard Overture names structure. So for example, in Switzerland the top-level administrative subdivision corresponding to subtype 'region' is the canton, which is may be translated in each of Switzerland's official languages as, 'canton' in French, 'kanton' in German, 'cantone' in Italian, and 'chantun' in Romansh. |
-| `region` | [`RegionCode`](../system/region_code.md) (optional) | ISO 3166-2 principal subdivision code of the subdivision-like entity this division represents or belongs to.
If the entity this division represents has a principal subdivision code, the region property contains it. If it does not, the region property contains the principal subdivision code of the first division encountered by traversing the parent_division_id chain to the root.
For example: - The region value for the United States is omitted. - The region value for the U.S. state of New York is 'US-NY'. - The region value for New York City is 'US-NY', which it inherits from the state of New York. - The region value for Puerto Rico is 'US-PR'. |
-| `perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which this division is considered to be an accurate representation.
If this property is absent, then this division is not known to be disputed from any political perspective. Consequently, there is only one division feature representing the entire real world entity.
If this property is present, it means the division represents one of several alternative perspectives on the same real-world entity.
There are two modes of perspective:
1. `accepted_by` means the representation of the division is accepted by the listed entities and would be included on a map drawn from their perspective.
2. `disputed_by` means the representation of the division is disputed by the listed entities and would be excluded from a map drawn from their perspective.
When drawing a map from the perspective of a given country, one would start by gathering all the undisputed divisions (with no `perspectives` property), and then adding to that first all divisions explicitly accepted by the country, and second all divisions not explicitly disputed by the country. |
-| `perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `norms` | [`Norms`](types/division/norms.md) (optional) | Collects information about local norms and rules within the division that are generally useful for mapping and map-related use cases.
If the norms property or a desired sub-property of the norms property is missing on a division, but at least one of its ancestor divisions has the norms property and the desired sub-property, then the value from the nearest ancestor division may be assumed. |
-| `norms.driving_side` | [`Side`](../core/scoping/side.md) (optional) | Side of the road on which vehicles drive in the division. |
-| `population` | [`int32`](../system/primitive/primitives.md) (optional) | Population of the division
*`β₯ 0`* |
-| `capital_division_ids` | `list<`[`Id`](../system/ref/id.md)`>` (optional) | Division IDs of this division's capital divisions. If present, this property will refer to the division IDs of the capital cities, county seats, etc. of a division.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `capital_of_divisions[]` | `list<`[`CapitalOfDivisionItem`](types/capital_of_division_item.md)`>` (optional) | Division IDs and subtypes of divisions this division is a capital of.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `capital_of_divisions[].division_id` | [`DivisionId`](types/division_id.md) | ID of the division |
-| `capital_of_divisions[].subtype` | [`PlaceType`](types/place_type.md) | |
-| `wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
-
-## Constraints
-
-- `admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`
-- `parent_division_id` is required when `subtype` β `country`
-- `parent_division_id` is forbidden when `subtype` = `country`
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `cartography.prominence` | `29` |
-| `cartography.min_zoom` | `null` |
-| `cartography.max_zoom` | `null` |
-| `cartography.sort_key` | `null` |
-| `names.primary` | `Sia'atoutai` |
-| `names.common` | `null` |
-| `id` | `350e85f6-68ba-4114-9906-c2844815988b` |
-| `bbox.xmin` | `-175.25515747070312` |
-| `bbox.xmax` | `-175.255126953125` |
-| `bbox.ymin` | `-21.1353702545166` |
-| `bbox.ymax` | `-21.13536834716797` |
-| `geometry` | `POINT (-175.2551522 -21.1353686)` |
-| `theme` | `divisions` |
-| `type` | `division` |
-| `version` | `1` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenStreetMap` |
-| `sources[0].record_id` | `n3173231082@4` |
-| `sources[0].update_time` | `2014-12-18T09:17:03Z` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `subtype` | `locality` |
-| `country` | `TO` |
-| `hierarchies[0][0].division_id` | `fef8748b-0c91-46ad-9f2d-976d8d2de3e9` |
-| `hierarchies[0][0].subtype` | `country` |
-| `hierarchies[0][0].name` | `Tonga` |
-| `hierarchies[0][1].division_id` | `4d67561a-2292-41bd-8996-7853d276a42c` |
-| `hierarchies[0][1].subtype` | `region` |
-| `hierarchies[0][1].name` | `Tongatapu` |
-| `hierarchies[0][2].division_id` | `8730f0cc-d436-4f11-a7d3-49085813ef44` |
-| `hierarchies[0][2].subtype` | `county` |
-| `hierarchies[0][2].name` | `Vahe Kolomotu'a` |
-| `hierarchies[0][3].division_id` | `350e85f6-68ba-4114-9906-c2844815988b` |
-| `hierarchies[0][3].subtype` | `locality` |
-| `hierarchies[0][3].name` | `Sia'atoutai` |
-| `parent_division_id` | `8730f0cc-d436-4f11-a7d3-49085813ef44` |
-| `class` | `village` |
-| `local_type` | `{"en": "village"}` |
-| `region` | `TO-04` |
-| `perspectives` | `null` |
-| `norms` | `null` |
-| `population` | `534` |
-| `capital_division_ids` | `null` |
-| `capital_of_divisions` | `null` |
-| `wikidata` | `null` |
-| `names.rules[0].variant` | `alternate` |
-| `names.rules[0].language` | `null` |
-| `names.rules[0].perspectives` | `null` |
-| `names.rules[0].value` | `Nafualu` |
-| `names.rules[0].between` | `null` |
-| `names.rules[0].side` | `null` |
diff --git a/docs/schema/reference/divisions/division_area.md b/docs/schema/reference/divisions/division_area.md
deleted file mode 100644
index cfa311ef..00000000
--- a/docs/schema/reference/divisions/division_area.md
+++ /dev/null
@@ -1,88 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# DivisionArea
-
-Division areas are polygons that represent the land or maritime area covered by a
-division.
-
-Each division area belongs to a division which it references by ID, and for which
-the division area provides an area polygon. For ease of use, every division area
-repeats the subtype, names, country, and region properties of the division it
-belongs to.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `names` | [`Names`](../core/names.md) | |
-| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
-| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
-| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
-| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | The area covered by the division with which this area feature is associated
*Allowed geometry types: MultiPolygon, Polygon* |
-| `theme` | `"divisions"` | |
-| `type` | `"division_area"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `subtype` | [`PlaceType`](types/place_type.md) | *`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`* |
-| `class` | [`AreaClass`](types/division_area/area_class.md) | |
-| `is_land` | `boolean` (optional) | A boolean to indicate whether or not the feature geometry represents the land-clipped, non-maritime boundary. The geometry can be used for map rendering, cartographic display, and similar purposes.
*`strict=True`*
*Exactly one of `is_land`, `is_territorial` must be `true`* |
-| `is_territorial` | `boolean` (optional) | A boolean to indicate whether or not the feature geometry represents Overture's best approximation of this place's maritime boundary. For coastal places, this would tend to include the water area. The geometry can be used for data processing, reverse-geocoding, and similar purposes.
*`strict=True`*
*Exactly one of `is_land`, `is_territorial` must be `true`* |
-| `division_id` | [`Id`](../system/ref/id.md) | Division ID of the division this area belongs to.
*References [`Division`](division.md) (belongs to)* |
-| `country` | [`CountryCodeAlpha2`](../system/country_code_alpha2.md) | ISO 3166-1 alpha-2 country code of the division this area belongs to. |
-| `region` | [`RegionCode`](../system/region_code.md) (optional) | ISO 3166-2 principal subdivision code of the division this area belongs to. |
-| `admin_level` | [`AdminLevel`](types/admin_level.md) (optional) | Integer representing the division's position in its country's administrative hierarchy, where lower numbers correspond to higher level administrative units.
*`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`* |
-
-## Constraints
-
-- Exactly one of `is_land`, `is_territorial` must be `true`
-- `admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `names.primary` | `Κ»Eua` |
-| `names.common` | `null` |
-| `names.rules` | `null` |
-| `id` | `eb9b112f-ec3c-47f7-b519-6f9f2e6fc2bd` |
-| `bbox.xmin` | `-174.97535705566406` |
-| `bbox.xmax` | `-174.90040588378906` |
-| `bbox.ymin` | `-21.473018646240234` |
-| `bbox.ymax` | `-21.283489227294922` |
-| `geometry` | `MULTIPOLYGON (((-174.9553949 -21.4730179, -174.9514163 -21.4719978, -174.9520108 -21.4681253, -17...` |
-| `theme` | `divisions` |
-| `type` | `division_area` |
-| `version` | `2` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenStreetMap` |
-| `sources[0].record_id` | `r7247527@3` |
-| `sources[0].update_time` | `2020-12-30T18:41:56Z` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `subtype` | `region` |
-| `class` | `land` |
-| `is_land` | `true` |
-| `is_territorial` | `false` |
-| `division_id` | `21597af0-b564-463c-a356-42c29e712b7d` |
-| `country` | `TO` |
-| `region` | `TO-01` |
diff --git a/docs/schema/reference/divisions/division_boundary.md b/docs/schema/reference/divisions/division_boundary.md
deleted file mode 100644
index 39bcd519..00000000
--- a/docs/schema/reference/divisions/division_boundary.md
+++ /dev/null
@@ -1,83 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# DivisionBoundary
-
-Boundaries represent borders between divisions of the same subtype.
-
-Some boundaries may be disputed by the divisions on one or both sides.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Boundary line or lines
*Allowed geometry types: LineString, MultiLineString* |
-| `theme` | `"divisions"` | |
-| `type` | `"division_boundary"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `subtype` | [`PlaceType`](types/place_type.md) | *`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`*
*`country` is required when `subtype` β `country`*
*`country` is forbidden when `subtype` = `country`* |
-| `class` | [`BoundaryClass`](types/division_boundary/boundary_class.md) | |
-| `is_land` | `boolean` (optional) | A boolean to indicate whether or not the feature geometry represents the land-clipped, non-maritime boundary. The geometry can be used for map rendering, cartographic display, and similar purposes.
*`strict=True`*
*Exactly one of `is_land`, `is_territorial` must be `true`* |
-| `is_territorial` | `boolean` (optional) | A boolean to indicate whether or not the feature geometry represents Overture's best approximation of this place's maritime boundary. For coastal places, this would tend to include the water area. The geometry can be used for data processing, reverse-geocoding, and similar purposes.
*`strict=True`*
*Exactly one of `is_land`, `is_territorial` must be `true`* |
-| `division_ids` | `list<`[`Id`](../system/ref/id.md)`>` | Identifies the two divisions to the left and right, respectively, of the boundary line. The left- and right-hand sides of the boundary are considered from the perspective of a person standing on the line facing in the direction in which the geometry is oriented, i.e. facing toward the end of the line.
The first array element is the Overture ID of the left division. The second element is the Overture ID of the right division.
*References [`Division`](division.md) (boundary of)*
*Minimum length: 2*
*Maximum length: 2*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `country` | [`CountryCodeAlpha2`](../system/country_code_alpha2.md) (optional) | ISO 3166-1 alpha-2 country code of the country or country-like entity that both sides of the boundary share.
This property will be present on boundaries between two regions, counties, or similar entities within the same country, but will not be present on boundaries between two countries or country-like entities.
*`country` is required when `subtype` β `country`*
*`country` is forbidden when `subtype` = `country`* |
-| `region` | [`RegionCode`](../system/region_code.md) (optional) | ISO 3166-2 principal subdivision code of the subdivision-like entity that both sides of the boundary share.
This property will be present on boundaries between two counties, localadmins or similar entities within the same principal subdivision, but will not be present on boundaries between different principal subdivisions or countries. |
-| `admin_level` | [`AdminLevel`](types/admin_level.md) (optional) | Integer representing the division's position in its country's administrative hierarchy, where lower numbers correspond to higher level administrative units.
*`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`* |
-| `is_disputed` | `boolean` (optional) | Indicator if there are entities disputing this division boundary. Information about entities disputing this boundary should be included in perspectives property.
This property should also be true if boundary between two entities is unclear and this is "best guess". So having it true and no perspectives gives map creators reason not to fully trust the boundary, but use it if they have no other.
*`strict=True`* |
-| `perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which this division boundary is considered to be an accurate representation.
If this property is absent, then this boundary is not known to be disputed from any political perspective. Consequently, there is only one boundary feature representing the entire real world entity.
If this property is present, it means the boundary represents one of several alternative perspectives on the same real-world entity.
There are two modes of perspective:
1. `accepted_by` means the representation of the boundary is accepted by the listed entities and would be included on a map drawn from their perspective.
2. `disputed_by` means the representation of the boundary is disputed by the listed entities and would be excluded from a map drawn from their perspective.
When drawing a map from the perspective of a given country, one would start by gathering all the undisputed boundary (with no `perspectives` property), and then adding to that first all boundary explicitly accepted by the country, and second all boundary not explicitly disputed by the country. |
-| `perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-
-## Constraints
-
-- Exactly one of `is_land`, `is_territorial` must be `true`
-- `admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`
-- `country` is required when `subtype` β `country`
-- `country` is forbidden when `subtype` = `country`
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `2bdf68e4-860d-3d8c-a472-ccf439a5302a` |
-| `bbox.xmin` | `-147.06483459472656` |
-| `bbox.xmax` | `-147.04847717285156` |
-| `bbox.ymin` | `-15.4231538772583` |
-| `bbox.ymax` | `-15.151169776916504` |
-| `geometry` | `LINESTRING (-147.064823 -15.4231537, -147.0519131 -15.2885069, -147.048482 -15.1511701)` |
-| `theme` | `divisions` |
-| `type` | `division_boundary` |
-| `version` | `1` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenStreetMap` |
-| `sources[0].record_id` | `r6063055@9` |
-| `sources[0].update_time` | `2023-07-20T00:28:40Z` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `sources[1].property` | |
-| `sources[1].dataset` | `OpenStreetMap` |
-| `sources[1].record_id` | `r6063063@12` |
-| `sources[1].update_time` | `2023-07-20T00:28:40Z` |
-| `sources[1].confidence` | `null` |
-| `sources[1].between` | `null` |
-| `subtype` | `county` |
-| `class` | `maritime` |
-| `is_land` | `false` |
-| `is_territorial` | `true` |
-| `division_ids` | `["ae266459-63a4-4508-8295-0101e27d039b", "d4a6873d-885a-4f2a-bc0f-37e9d9e874e4"]` |
-| `country` | `PF` |
-| `region` | `null` |
-| `is_disputed` | `false` |
-| `perspectives` | `null` |
diff --git a/docs/schema/reference/divisions/types/_category_.json b/docs/schema/reference/divisions/types/_category_.json
deleted file mode 100644
index a3ec0897..00000000
--- a/docs/schema/reference/divisions/types/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Types"
-}
diff --git a/docs/schema/reference/divisions/types/admin_level.md b/docs/schema/reference/divisions/types/admin_level.md
deleted file mode 100644
index 7b36f057..00000000
--- a/docs/schema/reference/divisions/types/admin_level.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# AdminLevel
-
-Integer representing the division's position in its country's administrative hierarchy, where lower numbers correspond to higher level administrative units.
-
-Underlying type: `uint8`
-
-## Constraints
-
-- `β₯ 0` (from [`uint8`](../../system/primitive/primitives.md))
-- `β€ 255` (from [`uint8`](../../system/primitive/primitives.md))
-
-## Used By
-
-- [`Division`](../division.md)
-- [`DivisionArea`](../division_area.md)
-- [`DivisionBoundary`](../division_boundary.md)
diff --git a/docs/schema/reference/divisions/types/capital_of_division_item.md b/docs/schema/reference/divisions/types/capital_of_division_item.md
deleted file mode 100644
index 2b3c5250..00000000
--- a/docs/schema/reference/divisions/types/capital_of_division_item.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# CapitalOfDivisionItem
-
-One division that has capital.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `division_id` | [`DivisionId`](division_id.md) | ID of the division |
-| `subtype` | [`PlaceType`](place_type.md) | |
-
-## Used By
-
-- [`Division`](../division.md)
diff --git a/docs/schema/reference/divisions/types/division/_category_.json b/docs/schema/reference/divisions/types/division/_category_.json
deleted file mode 100644
index e35ad267..00000000
--- a/docs/schema/reference/divisions/types/division/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Division"
-}
diff --git a/docs/schema/reference/divisions/types/division/norms.md b/docs/schema/reference/divisions/types/division/norms.md
deleted file mode 100644
index 9f0c4347..00000000
--- a/docs/schema/reference/divisions/types/division/norms.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Norms
-
-Local norms and standards.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `driving_side` | [`Side`](../../../core/scoping/side.md) (optional) | Side of the road on which vehicles drive in the division. |
-
-## Used By
-
-- [`Division`](../../division.md)
diff --git a/docs/schema/reference/divisions/types/division_area/_category_.json b/docs/schema/reference/divisions/types/division_area/_category_.json
deleted file mode 100644
index beafbd10..00000000
--- a/docs/schema/reference/divisions/types/division_area/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Division Area"
-}
diff --git a/docs/schema/reference/divisions/types/division_area/area_class.md b/docs/schema/reference/divisions/types/division_area/area_class.md
deleted file mode 100644
index 22ec4d13..00000000
--- a/docs/schema/reference/divisions/types/division_area/area_class.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# AreaClass
-
-Area and boundary class designations.
-
-## Values
-
-- `land`
-- `maritime`
-
-## Used By
-
-- [`DivisionArea`](../../division_area.md)
diff --git a/docs/schema/reference/divisions/types/division_boundary/_category_.json b/docs/schema/reference/divisions/types/division_boundary/_category_.json
deleted file mode 100644
index e7a1d5c2..00000000
--- a/docs/schema/reference/divisions/types/division_boundary/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Division Boundary"
-}
diff --git a/docs/schema/reference/divisions/types/division_boundary/boundary_class.md b/docs/schema/reference/divisions/types/division_boundary/boundary_class.md
deleted file mode 100644
index 55c0ccaa..00000000
--- a/docs/schema/reference/divisions/types/division_boundary/boundary_class.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# BoundaryClass
-
-## Values
-
-- `land`
-- `maritime`
-
-## Used By
-
-- [`DivisionBoundary`](../../division_boundary.md)
diff --git a/docs/schema/reference/divisions/types/division_class.md b/docs/schema/reference/divisions/types/division_class.md
deleted file mode 100644
index ec5489a1..00000000
--- a/docs/schema/reference/divisions/types/division_class.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# DivisionClass
-
-Division-specific class designations.
-
-## Values
-
-- `megacity`
-- `city`
-- `town`
-- `village`
-- `hamlet`
-
-## Used By
-
-- [`Division`](../division.md)
diff --git a/docs/schema/reference/divisions/types/division_id.md b/docs/schema/reference/divisions/types/division_id.md
deleted file mode 100644
index dcbedc0e..00000000
--- a/docs/schema/reference/divisions/types/division_id.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# DivisionId
-
-ID of the division
-
-Underlying type: `string`
-
-## Constraints
-
-- Minimum length: 1
-- Minimum length: 1 (from [`Id`](../../system/ref/id.md))
-- Allows only strings that contain no whitespace characters. (`NoWhitespaceConstraint`, pattern: `^\S+$`) (from [`NoWhitespaceString`](../../system/no_whitespace_string.md))
-
-## Used By
-
-- [`CapitalOfDivisionItem`](capital_of_division_item.md)
-- [`HierarchyItem`](hierarchy_item.md)
diff --git a/docs/schema/reference/divisions/types/hierarchy.md b/docs/schema/reference/divisions/types/hierarchy.md
deleted file mode 100644
index 73ed6a45..00000000
--- a/docs/schema/reference/divisions/types/hierarchy.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Hierarchy
-
-A hierarchy of divisions, with the first entry being a country; each subsequent entry, if any, being a division that is a direct child of the previous entry; and the last entry representing the division that contains the hierarchy.
-
-For example, a hierarchy for the United States is simply [United States]. A hierarchy for the U.S. state of New Hampshire would be [United States, New Hampshire], and a hierarchy for the city of Concord, NH would be [United States, New Hampshire, Merrimack County, Concord].
-
-Underlying type: `list<`[`HierarchyItem`](hierarchy_item.md)`>`
-
-## Constraints
-
-- Minimum length: 1
-- All items must be unique. (`UniqueItemsConstraint`)
-
-## Used By
-
-- [`Division`](../division.md)
diff --git a/docs/schema/reference/divisions/types/hierarchy_item.md b/docs/schema/reference/divisions/types/hierarchy_item.md
deleted file mode 100644
index 53ef5641..00000000
--- a/docs/schema/reference/divisions/types/hierarchy_item.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# HierarchyItem
-
-One division in a hierarchy.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `division_id` | [`DivisionId`](division_id.md) | ID of the division |
-| `subtype` | [`PlaceType`](place_type.md) | |
-| `name` | [`StrippedString`](../../system/stripped_string.md) | Primary name of the division
*Minimum length: 1* |
-
-## Used By
-
-- [`Division`](../division.md)
-- [`Hierarchy`](hierarchy.md)
diff --git a/docs/schema/reference/divisions/types/place_type.md b/docs/schema/reference/divisions/types/place_type.md
deleted file mode 100644
index 641bf299..00000000
--- a/docs/schema/reference/divisions/types/place_type.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# PlaceType
-
-Category of the division from a finite, hierarchical, ordered list of categories (e.g., country,
-region, locality, etc.) similar to a Who's on First placetype.
-
-## Values
-
-- `country`
-- `dependency`
-- `macroregion`
-- `region`
-- `macrocounty`
-- `county`
-- `localadmin`
-- `locality`
-- `borough`
-- `macrohood`
-- `neighborhood`
-- `microhood`
-
-## Used By
-
-- [`CapitalOfDivisionItem`](capital_of_division_item.md)
-- [`Division`](../division.md)
-- [`DivisionArea`](../division_area.md)
-- [`DivisionBoundary`](../division_boundary.md)
-- [`HierarchyItem`](hierarchy_item.md)
diff --git a/docs/schema/reference/places/_category_.json b/docs/schema/reference/places/_category_.json
deleted file mode 100644
index 69d3715d..00000000
--- a/docs/schema/reference/places/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "label": "Places",
- "position": 5
-}
diff --git a/docs/schema/reference/places/place.md b/docs/schema/reference/places/place.md
deleted file mode 100644
index 65c00f51..00000000
--- a/docs/schema/reference/places/place.md
+++ /dev/null
@@ -1,113 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# Place
-
-Places are point representations of real-world facilities, businesses, services, or amenities.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Position of the place. Places are point geometries.
*Allowed geometry types: Point* |
-| `theme` | `"places"` | |
-| `type` | `"place"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `operating_status` | [`OperatingStatus`](types/operating_status.md) | An indication of whether a place is: in continued operation, in a temporary operating hiatus, or closed permanently.
This is not an indication of opening hours or that the place is open/closed at the current time-of-day or day-of-week.
When `operating_status` is `"permanently_closed"`, the `confidence` field will be set to 0. |
-| `categories` | [`Categories`](types/categories.md) (optional) | |
-| `categories.primary` | [`SnakeCaseString`](../system/snake_case_string.md) | The primary or main category of the place. |
-| `categories.alternate` | `list<`[`SnakeCaseString`](../system/snake_case_string.md)`>` (optional) | Alternate categories of the place.
Some places might fit into two categories, e.g., a book store and a coffee shop. In these cases, the primary category can be augmented with additional categories. |
-| `basic_category` | [`SnakeCaseString`](../system/snake_case_string.md) (optional) | The basic level category of a place.
This field classifies places into categories at a level that most people find intuitive. The full list of possible values it may hold can be found at (TODO).
The basic level category, or simply basic category, is based on a cognitive science model use in taxonomy and ontology development. The idea is to provide the category name at the level of generality that is preferred by humans in learning and memory tasks. This category to be roughly in the middle of the general-to-specific category hierarchy.
The full list of basic level categories is available at https://docs.overturemaps.org/guides/places/ |
-| `taxonomy` | [`Taxonomy`](types/taxonomy.md) (optional) | A structured representation of the place's category within the Overture taxonomy.
Provides the primary classification, full hierarchy path, and alternate categories. |
-| `taxonomy.primary` | [`SnakeCaseString`](../system/snake_case_string.md) | The primary, or most specific, category known about this place.
The `primary` category value must always equal the last or rightmost entry in the `hierarchy` field. |
-| `taxonomy.hierarchy` | `list<`[`SnakeCaseString`](../system/snake_case_string.md)`>` | The full primary hierarchy of categories known for this place, ordered from most general to most specific. An example hierarchy might be: `["food_and_drink", "restaurant", "casual_eatery", "gas_station_sushi"]`.
The rightmost, or most specific, value in the `hierarchy` must always be equal to the `primary` field. The basic level category of the place will typically be found in the middle of the primary hierarchy. The primary hierarchy does not include any of the alternate categories found in the `alternates` field. |
-| `taxonomy.alternates` | `list<`[`SnakeCaseString`](../system/snake_case_string.md)`>` (optional) | Unordered list of additional categories that are known for this place but that are not part of the primary category hierarchy.
Alternate categories allow a more complete picture of the place to be surfaced when it fits multiple unconnected branches in the taxonomy. For example a gas station that also sells groceries might have primary category of "gas_station" with an alternate of "grocery_store".
Alternate categories are not part of the primary hierarchy or another alternate category's hierarchy. In other words, if a category is a parent in the hierarchy of another category, that category can't be a primary or alternate category itself.
Note as well that this field is an unordered list of extra categories and does not represent a hierarchy. |
-| `confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | A score between 0 and 1 indicating how confident we are that the place exists.
A confidence score of 0 indicates that we are certain the place doesn't exist anymore and will always be paired with an `operating_status` of `"permanently_closed"`.
A confidence score of 1 indicates that we are certain the place does exist.
If there is no value for confidence, it means we don't have enough information on which to estimate our confidence level. |
-| `websites` | `list<`[`HttpUrl`](../pydantic/networks/http_url.md)`>` (optional) | The sites of the place.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `socials` | `list<`[`HttpUrl`](../pydantic/networks/http_url.md)`>` (optional) | The social media URLs of the place.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `emails` | `list<`[`EmailStr`](../pydantic/networks/email_str.md)`>` (optional) | The email addresses of the place.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `phones` | `list<`[`PhoneNumber`](../system/phone_number.md)`>` (optional) | The phone numbers of the place.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `brand` | [`Brand`](types/brand.md) (optional) | The brand associated with the place. |
-| `brand.names` | [`Names`](../core/names.md) (optional) | |
-| `brand.names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
-| `brand.names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
-| `brand.names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `brand.names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `brand.names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
-| `brand.names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `brand.names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `brand.names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `brand.names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `brand.names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `brand.names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-| `brand.wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
-| `addresses[]` | `list<`[`Address`](types/address.md)`>` (optional) | The address or addresses of the place
*Minimum length: 1* |
-| `addresses[].freeform` | `string` (optional) | Free-form address that contains street name, house number and other address info |
-| `addresses[].locality` | `string` (optional) | City, town, or neighborhood component of the place address |
-| `addresses[].postcode` | `string` (optional) | Postal code component of the place address |
-| `addresses[].region` | [`RegionCode`](../system/region_code.md) (optional) | An ISO 3166-2 principal subdivision code |
-| `addresses[].country` | [`CountryCodeAlpha2`](../system/country_code_alpha2.md) (optional) | An ISO 3166-1 alpha-2 country code |
-| `names` | [`Names`](../core/names.md) (optional) | |
-| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
-| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
-| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
-| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `99003ee6-e75b-4dd6-8a8a-53a5a716c50d` |
-| `bbox.xmin` | `-150.46875` |
-| `bbox.xmax` | `-150.46875` |
-| `bbox.ymin` | `-79.17134094238281` |
-| `bbox.ymax` | `-79.17133331298828` |
-| `geometry` | `POINT (-150.46875 -79.1713346)` |
-| `theme` | `places` |
-| `type` | `place` |
-| `version` | `1` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `meta` |
-| `sources[0].record_id` | `107663894904826` |
-| `sources[0].update_time` | `2025-06-30T07:00:00.000Z` |
-| `sources[0].confidence` | `0.7337175792507205` |
-| `sources[0].between` | `null` |
-| `operating_status` | `open` |
-| `categories.primary` | `hotel` |
-| `categories.alternate` | `null` |
-| `confidence` | `0.7337175792507205` |
-| `websites` | `["https://www.superhotel.co.jp/s_hotels/beppu/"]` |
-| `socials` | `["https://www.facebook.com/107663894904826"]` |
-| `emails` | `null` |
-| `phones` | `["+81977009000"]` |
-| `brand.wikidata` | `null` |
-| `brand.names.primary` | `SUPER HOTEL` |
-| `brand.names.common` | `null` |
-| `brand.names.rules` | `null` |
-| `addresses[0].freeform` | `η§η°ηζ¨ͺζεΈι§
εηΊοΌοΌβοΌ` |
-| `addresses[0].locality` | `ζ¨ͺζεΈ` |
-| `addresses[0].postcode` | `013-0036` |
-| `addresses[0].region` | `null` |
-| `addresses[0].country` | `JP` |
-| `names.primary` | `γΉγΌγγΌγγγ«ε₯εΊι§
ε` |
-| `names.common` | `null` |
-| `names.rules` | `null` |
diff --git a/docs/schema/reference/places/types/_category_.json b/docs/schema/reference/places/types/_category_.json
deleted file mode 100644
index a3ec0897..00000000
--- a/docs/schema/reference/places/types/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Types"
-}
diff --git a/docs/schema/reference/places/types/address.md b/docs/schema/reference/places/types/address.md
deleted file mode 100644
index b64d5be1..00000000
--- a/docs/schema/reference/places/types/address.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Address
-
-An address associated with a place.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `freeform` | `string` (optional) | Free-form address that contains street name, house number and other address info |
-| `locality` | `string` (optional) | City, town, or neighborhood component of the place address |
-| `postcode` | `string` (optional) | Postal code component of the place address |
-| `region` | [`RegionCode`](../../system/region_code.md) (optional) | An ISO 3166-2 principal subdivision code |
-| `country` | [`CountryCodeAlpha2`](../../system/country_code_alpha2.md) (optional) | An ISO 3166-1 alpha-2 country code |
-
-## Used By
-
-- [`Place`](../place.md)
diff --git a/docs/schema/reference/places/types/brand.md b/docs/schema/reference/places/types/brand.md
deleted file mode 100644
index 8064e958..00000000
--- a/docs/schema/reference/places/types/brand.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Brand
-
-A brand associated with a place.
-
-A location with multiple brands is modeled as multiple separate places, each with its own brand.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `names` | [`Names`](../../core/names.md) (optional) | |
-| `names.primary` | [`StrippedString`](../../system/stripped_string.md) | The most commonly used name. |
-| `names.common` | [`CommonNames`](../../core/common_names.md) (map, optional) | |
-| `names.rules[]` | `list<`[`NameRule`](../../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `names.rules[].value` | [`StrippedString`](../../system/stripped_string.md) | The actual name value. |
-| `names.rules[].variant` | [`NameVariant`](../../core/name_variant.md) | The name variant for this name rule. |
-| `names.rules[].language` | [`LanguageTag`](../../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `names.rules[].perspectives` | [`Perspectives`](../../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `names.rules[].between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `names.rules[].side` | [`Side`](../../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-| `wikidata` | [`WikidataId`](../../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
-
-## Used By
-
-- [`Place`](../place.md)
diff --git a/docs/schema/reference/places/types/categories.md b/docs/schema/reference/places/types/categories.md
deleted file mode 100644
index fbb5a64d..00000000
--- a/docs/schema/reference/places/types/categories.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Categories
-
-Categories a place belongs to.
-
-Complete list is available on GitHub: [https://github.com/OvertureMaps/schema/blob/main/docs/schema/concepts/by-theme/places/overture_categories.csv](https://github.com/OvertureMaps/schema/blob/main/docs/schema/concepts/by-theme/places/overture_categories.csv)
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `primary` | [`SnakeCaseString`](../../system/snake_case_string.md) | The primary or main category of the place. |
-| `alternate` | `list<`[`SnakeCaseString`](../../system/snake_case_string.md)`>` (optional) | Alternate categories of the place.
Some places might fit into two categories, e.g., a book store and a coffee shop. In these cases, the primary category can be augmented with additional categories.
*All items must be unique. (`UniqueItemsConstraint`)* |
-
-## Used By
-
-- [`Place`](../place.md)
diff --git a/docs/schema/reference/places/types/operating_status.md b/docs/schema/reference/places/types/operating_status.md
deleted file mode 100644
index 61b17c7f..00000000
--- a/docs/schema/reference/places/types/operating_status.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# OperatingStatus
-
-General indication of whether a place is: in continued operation, in a temporary operating
-hiatus, or closed permanently.
-
-Operating status should not be confused with opening hours or operating hours. In particular,
-the status `"open"` does not mean the place is open *right now*, it means that in general the
-place is continuing to operate normally, as opposed to being in an operating hiatus
-(`"temporarily_closed"`) or shuttered (`"permanently_closed"`).
-
-## Values
-
-- `open`
-- `permanently_closed`
-- `temporarily_closed`
-
-## Used By
-
-- [`Place`](../place.md)
diff --git a/docs/schema/reference/places/types/taxonomy.md b/docs/schema/reference/places/types/taxonomy.md
deleted file mode 100644
index 33f5b4da..00000000
--- a/docs/schema/reference/places/types/taxonomy.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Taxonomy
-
-A structured representation of the place's category within the Overture taxonomy.
-
-Provides the primary classification, full hierarchy path, and alternate categories.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `primary` | [`SnakeCaseString`](../../system/snake_case_string.md) | The primary, or most specific, category known about this place.
The `primary` category value must always equal the last or rightmost entry in the `hierarchy` field. |
-| `hierarchy` | `list<`[`SnakeCaseString`](../../system/snake_case_string.md)`>` | The full primary hierarchy of categories known for this place, ordered from most general to most specific. An example hierarchy might be: `["food_and_drink", "restaurant", "casual_eatery", "gas_station_sushi"]`.
The rightmost, or most specific, value in the `hierarchy` must always be equal to the `primary` field. The basic level category of the place will typically be found in the middle of the primary hierarchy. The primary hierarchy does not include any of the alternate categories found in the `alternates` field.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `alternates` | `list<`[`SnakeCaseString`](../../system/snake_case_string.md)`>` (optional) | Unordered list of additional categories that are known for this place but that are not part of the primary category hierarchy.
Alternate categories allow a more complete picture of the place to be surfaced when it fits multiple unconnected branches in the taxonomy. For example a gas station that also sells groceries might have primary category of "gas_station" with an alternate of "grocery_store".
Alternate categories are not part of the primary hierarchy or another alternate category's hierarchy. In other words, if a category is a parent in the hierarchy of another category, that category can't be a primary or alternate category itself.
Note as well that this field is an unordered list of extra categories and does not represent a hierarchy.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-
-## Used By
-
-- [`Place`](../place.md)
diff --git a/docs/schema/reference/pydantic/_category_.json b/docs/schema/reference/pydantic/_category_.json
deleted file mode 100644
index 6bc65c37..00000000
--- a/docs/schema/reference/pydantic/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "label": "Pydantic",
- "position": 8
-}
diff --git a/docs/schema/reference/pydantic/networks/_category_.json b/docs/schema/reference/pydantic/networks/_category_.json
deleted file mode 100644
index 8dc67bc4..00000000
--- a/docs/schema/reference/pydantic/networks/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Networks"
-}
diff --git a/docs/schema/reference/pydantic/networks/email_str.md b/docs/schema/reference/pydantic/networks/email_str.md
deleted file mode 100644
index 3bf99260..00000000
--- a/docs/schema/reference/pydantic/networks/email_str.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# EmailStr
-
-See: [Pydantic docs](https://docs.pydantic.dev/latest/api/networks/#pydantic.networks.EmailStr)
-
-## Used By
-
-- [`Place`](../../places/place.md)
diff --git a/docs/schema/reference/pydantic/networks/http_url.md b/docs/schema/reference/pydantic/networks/http_url.md
deleted file mode 100644
index b4b25f0e..00000000
--- a/docs/schema/reference/pydantic/networks/http_url.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# HttpUrl
-
-A type that will accept any http or https URL.
-
-See: [Pydantic docs](https://docs.pydantic.dev/latest/api/networks/#pydantic.networks.HttpUrl)
-
-## Used By
-
-- [`Place`](../../places/place.md)
diff --git a/docs/schema/reference/system/_category_.json b/docs/schema/reference/system/_category_.json
deleted file mode 100644
index 22378997..00000000
--- a/docs/schema/reference/system/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "label": "System",
- "position": 9
-}
diff --git a/docs/schema/reference/system/country_code_alpha2.md b/docs/schema/reference/system/country_code_alpha2.md
deleted file mode 100644
index 62980aca..00000000
--- a/docs/schema/reference/system/country_code_alpha2.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# CountryCodeAlpha2
-
-An ISO-3166-1 alpha-2 country code.
-
-Underlying type: `string`
-
-## Constraints
-
-- Allows only ISO 3166-1 alpha-2 country codes. (`CountryCodeAlpha2Constraint`, pattern: `^[A-Z]{2}$`)
-
-## Used By
-
-- [`Address`](../addresses/address.md)
-- [`Address`](../places/types/address.md)
-- [`Division`](../divisions/division.md)
-- [`DivisionArea`](../divisions/division_area.md)
-- [`DivisionBoundary`](../divisions/division_boundary.md)
-- [`Perspectives`](../core/perspectives.md)
diff --git a/docs/schema/reference/system/hex_color.md b/docs/schema/reference/system/hex_color.md
deleted file mode 100644
index a22c9c1f..00000000
--- a/docs/schema/reference/system/hex_color.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# HexColor
-
-A color represented as an #RRGGBB or #RGB hexadecimal string.
-
-For example:
-
-- `"#ff0000"` or `#f00` for pure red π₯
-- `"#ffa500"` for bright orange π§
-- `"#000000"` or `"#000"` for black β¬
-
-Underlying type: `string`
-
-## Constraints
-
-- Allows only hexadecimal color codes (e.g., #FF0000 or #FFF). (`HexColorConstraint`, pattern: `^#[0-9A-Fa-f]{3}([0-9A-Fa-f]{3})?$`)
-
-## Used By
-
-- [`Building`](../buildings/building.md)
-- [`BuildingPart`](../buildings/building_part.md)
diff --git a/docs/schema/reference/system/json_pointer.md b/docs/schema/reference/system/json_pointer.md
deleted file mode 100644
index b4f4cbb1..00000000
--- a/docs/schema/reference/system/json_pointer.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# JsonPointer
-
-A JSON Pointer
-
-As described in `the JSON Pointer specification, RFC-6901`_.
-
-.. _the JSON Pointer specification, RFC-6901: [https://rfc-editor.org/rfc/rfc6901.html](https://rfc-editor.org/rfc/rfc6901.html)
-
-For example:
-
-- `""` (root value)
-- `"/connectors/"`
-- `"/connectors/0/at"`
-
-Underlying type: `string`
-
-## Constraints
-
-- Allows only valid JSON Pointer values (RFC 6901). (`JsonPointerConstraint`)
-
-## Used By
-
-- [`SourceItem`](../core/source_item.md)
diff --git a/docs/schema/reference/system/language_tag.md b/docs/schema/reference/system/language_tag.md
deleted file mode 100644
index 9daab5db..00000000
--- a/docs/schema/reference/system/language_tag.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# LanguageTag
-
-A BCP-47 language tag.
-
-As described in `Tags for Identifying Languages, BCP-47`_.
-
-.. _Tags for Identifying Languages, BCP-47: [https://www.rfc-editor.org/rfc/bcp/bcp47.txt](https://www.rfc-editor.org/rfc/bcp/bcp47.txt)
-
-For example:
-
-- `"en"`
-- `"en-US"`
-- `"fr-CA"`
-- `"zh-Hant-TW"`
-
-Underlying type: `string`
-
-## Constraints
-
-- Allows only `BCP-47`_ language tags. (`LanguageTagConstraint`, pattern: `^(?:(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}?)|(?:[A-Za-z]{4,8}))(?:-[A-Za-z]{4})?(?:-[A-Za-z]{2}|[0-9]{3})?(?:-(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(?:-[A-WY-Za-wy-z0-9](?:-[A-Za-z0-9]{2,8})+)*$`)
-
-## Used By
-
-- [`Division`](../divisions/division.md)
-- [`NameRule`](../core/name_rule.md)
-- [`Names`](../core/names.md)
-- [`CommonNames`](../core/common_names.md)
diff --git a/docs/schema/reference/system/no_whitespace_string.md b/docs/schema/reference/system/no_whitespace_string.md
deleted file mode 100644
index f3e298b8..00000000
--- a/docs/schema/reference/system/no_whitespace_string.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# NoWhitespaceString
-
-A string that contains no whitespace characters.
-
-Underlying type: `string`
-
-## Constraints
-
-- Allows only strings that contain no whitespace characters. (`NoWhitespaceConstraint`, pattern: `^\S+$`)
-
-## Used By
-
-- [`DivisionId`](../divisions/types/division_id.md)
-- [`Id`](ref/id.md)
diff --git a/docs/schema/reference/system/phone_number.md b/docs/schema/reference/system/phone_number.md
deleted file mode 100644
index 8bfed046..00000000
--- a/docs/schema/reference/system/phone_number.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# PhoneNumber
-
-An international phone number.
-
-Underlying type: `string`
-
-## Constraints
-
-- Allows only international phone numbers. (`PhoneNumberConstraint`, pattern: `^\+\d{1,3}[\s\-\(\)0-9]+$`)
-
-## Used By
-
-- [`Place`](../places/place.md)
diff --git a/docs/schema/reference/system/primitive/_category_.json b/docs/schema/reference/system/primitive/_category_.json
deleted file mode 100644
index ee6c4309..00000000
--- a/docs/schema/reference/system/primitive/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Primitive"
-}
diff --git a/docs/schema/reference/system/primitive/geometry.md b/docs/schema/reference/system/primitive/geometry.md
deleted file mode 100644
index 25d26fde..00000000
--- a/docs/schema/reference/system/primitive/geometry.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Geometry Types
-
-Spatial types for representing geographic features.
-
-## Types
-
-| Type | Description |
-| -----: | ------------- |
-| `Geometry` | GeoJSON geometry value (Point, LineString, Polygon, etc.) |
-| `BBox` | Bounding box as 4 or 6 coordinate values: [west, south, east, north] or [west, south, min-altitude, east, north, max-altitude] |
-| `GeometryType` | Enumeration of geometry types: `geometry_collection`, `line_string`, `multi_line_string`, `multi_point`, `multi_polygon`, `point`, `polygon` |
\ No newline at end of file
diff --git a/docs/schema/reference/system/primitive/primitives.md b/docs/schema/reference/system/primitive/primitives.md
deleted file mode 100644
index 8b0415a7..00000000
--- a/docs/schema/reference/system/primitive/primitives.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Primitive Types
-
-Numeric types used for schema field definitions.
-
-## Integer Types
-
-| Type | Range | Description |
-| -----: | :-----: | ------------- |
-| `int8` | -128 to 127 | Portable 8-bit signed integer. |
-| `int16` | -32,768 to 32,767 | Portable 16-bit signed integer. |
-| `int32` | -2,147,483,648 to 2,147,483,647 | Portable 32-bit signed integer. |
-| `int64` | -2^63 to 2^63-1 | Portable 64-bit signed integer. |
-
-## Unsigned Integer Types
-
-| Type | Range | Description |
-| -----: | :-----: | ------------- |
-| `uint8` | 0 to 255 | Portable 8-bit unsigned integer. |
-| `uint16` | 0 to 65,535 | Portable 16-bit unsigned integer. |
-| `uint32` | 0 to 4,294,967,295 | Portable 32-bit unsigned integer. |
-
-## Floating Point Types
-
-| Type | Precision | Description |
-| -----: | :---------: | ------------- |
-| `float32` | ~7 decimal digits | Portable IEEE 32-bit floating point number. |
-| `float64` | ~15 decimal digits | Portable IEEE 64-bit floating point number. |
diff --git a/docs/schema/reference/system/ref/_category_.json b/docs/schema/reference/system/ref/_category_.json
deleted file mode 100644
index a3d90fc8..00000000
--- a/docs/schema/reference/system/ref/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Ref"
-}
diff --git a/docs/schema/reference/system/ref/id.md b/docs/schema/reference/system/ref/id.md
deleted file mode 100644
index 0925e857..00000000
--- a/docs/schema/reference/system/ref/id.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# ID
-
-A unique identifier.
-
-Underlying type: `string`
-
-## Constraints
-
-- Minimum length: 1
-- Allows only strings that contain no whitespace characters. (`NoWhitespaceConstraint`, pattern: `^\S+$`) (from [`NoWhitespaceString`](../no_whitespace_string.md))
-
-## Used By
-
-- [`Address`](../../addresses/address.md)
-- [`Bathymetry`](../../base/bathymetry.md)
-- [`Building`](../../buildings/building.md)
-- [`BuildingPart`](../../buildings/building_part.md)
-- [`Connector`](../../transportation/connector.md)
-- [`ConnectorReference`](../../transportation/types/connector_reference.md)
-- [`DestinationRule`](../../transportation/types/destination_rule.md)
-- [`Division`](../../divisions/division.md)
-- [`DivisionArea`](../../divisions/division_area.md)
-- [`DivisionBoundary`](../../divisions/division_boundary.md)
-- [`Infrastructure`](../../base/infrastructure.md)
-- [`Land`](../../base/land.md)
-- [`LandCover`](../../base/land_cover.md)
-- [`LandUse`](../../base/land_use.md)
-- [`Place`](../../places/place.md)
-- [`Segment`](../../transportation/segment.md)
-- [`SequenceEntry`](../../transportation/types/sequence_entry.md)
-- [`Water`](../../base/water.md)
-- [`DivisionId`](../../divisions/types/division_id.md)
diff --git a/docs/schema/reference/system/region_code.md b/docs/schema/reference/system/region_code.md
deleted file mode 100644
index bf2f016e..00000000
--- a/docs/schema/reference/system/region_code.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# RegionCode
-
-An ISO 3166-2 principal subdivision code.
-
-Underlying type: `string`
-
-## Constraints
-
-- Allows only ISO 3166-2 principal subdivision codes. (`RegionCodeConstraint`, pattern: `^[A-Z]{2}-[A-Z0-9]{1,3}$`)
-
-## Used By
-
-- [`Address`](../places/types/address.md)
-- [`Division`](../divisions/division.md)
-- [`DivisionArea`](../divisions/division_area.md)
-- [`DivisionBoundary`](../divisions/division_boundary.md)
diff --git a/docs/schema/reference/system/snake_case_string.md b/docs/schema/reference/system/snake_case_string.md
deleted file mode 100644
index b74d51f0..00000000
--- a/docs/schema/reference/system/snake_case_string.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# SnakeCaseString
-
-A string that looks like a snake_case identifier, like a Python variable name (*e.g.*, `foo_bar`).
-
-Underlying type: `string`
-
-## Constraints
-
-- Allows only strings that look like snake_case identifiers, *e.g.* `"foo_bar"`. (`SnakeCaseConstraint`, pattern: `^[a-z0-9]+(_[a-z0-9]+)*$`)
-
-## Used By
-
-- [`Categories`](../places/types/categories.md)
-- [`Place`](../places/place.md)
-- [`Taxonomy`](../places/types/taxonomy.md)
diff --git a/docs/schema/reference/system/stripped_string.md b/docs/schema/reference/system/stripped_string.md
deleted file mode 100644
index 64220b5f..00000000
--- a/docs/schema/reference/system/stripped_string.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# StrippedString
-
-A string without leading or trailing whitespace.
-
-Underlying type: `string`
-
-## Constraints
-
-- Allows only strings that have no leading/trailing whitespace. (`StrippedConstraint`)
-
-## Used By
-
-- [`Address`](../addresses/address.md)
-- [`AddressLevel`](../addresses/types/address_level.md)
-- [`DestinationLabels`](../transportation/types/destination_labels.md)
-- [`Division`](../divisions/division.md)
-- [`HierarchyItem`](../divisions/types/hierarchy_item.md)
-- [`NameRule`](../core/name_rule.md)
-- [`Names`](../core/names.md)
-- [`RouteReference`](../transportation/types/route_reference.md)
-- [`SourceItem`](../core/source_item.md)
-- [`CommonNames`](../core/common_names.md)
diff --git a/docs/schema/reference/system/wikidata_id.md b/docs/schema/reference/system/wikidata_id.md
deleted file mode 100644
index ebef7cee..00000000
--- a/docs/schema/reference/system/wikidata_id.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# WikidataId
-
-A wikidata ID, as found on [https://www.wikidata.org/](https://www.wikidata.org/).
-
-- `"Q42"`
-- `"Q11643"`
-- `"Q116257497"`
-
-Underlying type: `string`
-
-## Constraints
-
-- Allows only Wikidata identifiers (Q followed by digits). (`WikidataIdConstraint`, pattern: `^Q\d+$`)
-
-## Used By
-
-- [`Brand`](../places/types/brand.md)
-- [`Division`](../divisions/division.md)
-- [`Infrastructure`](../base/infrastructure.md)
-- [`Land`](../base/land.md)
-- [`LandUse`](../base/land_use.md)
-- [`RouteReference`](../transportation/types/route_reference.md)
-- [`Water`](../base/water.md)
diff --git a/docs/schema/reference/transportation/_category_.json b/docs/schema/reference/transportation/_category_.json
deleted file mode 100644
index 597025ad..00000000
--- a/docs/schema/reference/transportation/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "label": "Transportation",
- "position": 6
-}
diff --git a/docs/schema/reference/transportation/connector.md b/docs/schema/reference/transportation/connector.md
deleted file mode 100644
index b03127e6..00000000
--- a/docs/schema/reference/transportation/connector.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# Connector
-
-Connectors create physical connections between segments.
-
-Connectors are compatible with GeoJSON Point features.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Position of the connector
*Allowed geometry types: Point* |
-| `theme` | `"transportation"` | |
-| `type` | `"connector"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `39542bee-230f-4b91-b7e5-a9b58e0c59b1` |
-| `bbox.xmin` | `-176.54730224609375` |
-| `bbox.xmax` | `-176.54727172851562` |
-| `bbox.ymin` | `-43.96794891357422` |
-| `bbox.ymax` | `-43.96794128417969` |
-| `geometry` | `POINT (-176.5472979 -43.9679472)` |
-| `theme` | `transportation` |
-| `type` | `connector` |
-| `version` | `1` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenStreetMap` |
-| `sources[0].record_id` | `null` |
-| `sources[0].update_time` | `null` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
diff --git a/docs/schema/reference/transportation/segment.md b/docs/schema/reference/transportation/segment.md
deleted file mode 100644
index f1f5cec3..00000000
--- a/docs/schema/reference/transportation/segment.md
+++ /dev/null
@@ -1,168 +0,0 @@
----
-sidebar_position: 1
-hide_table_of_contents: true
----
-
-# Segment
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
-| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
-| `geometry` | [`geometry`](../system/primitive/geometry.md) | Segment centerline
*Allowed geometry types: LineString* |
-| `theme` | `"transportation"` | |
-| `type` | `"segment"` | |
-| `version` | [`FeatureVersion`](../core/feature_version.md) | |
-| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
-| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
-| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
-| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
-| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
-| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
-| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
-| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
-| `subtype` | [`Subtype`](types/subtype.md) | Broad category of transportation segment. |
-| `access_restrictions[]` | [`AccessRules`](types/access_rules.md) (list, optional) | Rules governing access to this road segment |
-| `access_restrictions[].access_type` | [`AccessType`](types/access_type.md) | |
-| `access_restrictions[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing AccessRestrictionRule applies to. |
-| `access_restrictions[].when` | [`AccessRestrictionRule.When`](types/access_restriction_rule.when.md) (optional) | Scopes for AccessRestrictionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
-| `access_restrictions[].when.heading` | [`Heading`](../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing AccessRestrictionRule applies to. |
-| `access_restrictions[].when.during` | [`OpeningHours`](../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing AccessRestrictionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
-| `access_restrictions[].when.mode` | `list<`[`TravelMode`](../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing AccessRestrictionRule applies to. |
-| `access_restrictions[].when.using` | `list<`[`PurposeOfUse`](../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing AccessRestrictionRule applies to. |
-| `access_restrictions[].when.recognized` | `list<`[`RecognizedStatus`](../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing AccessRestrictionRule applies to. |
-| `access_restrictions[].when.vehicle` | [`VehicleAxleCountSelector`](../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing AccessRestrictionRule applies to. |
-| `connectors[]` | `list<`[`ConnectorReference`](types/connector_reference.md)`>` (optional) | List of connectors which this segment is physically connected to and their relative location. Each connector is a possible routing decision point, meaning it defines a place along the segment in which there is possibility to transition to other segments which share the same connector.
*Minimum length: 2*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `connectors[].connector_id` | [`Id`](../system/ref/id.md) | A unique identifier |
-| `connectors[].at` | [`LinearlyReferencedPosition`](../core/scoping/linearly_referenced_position.md) (optional) | The linearly-referenced position on the geometry, specified as a percentage displacement from the start of the geometry, that the containing ConnectorReference applies to. |
-| `level_rules[]` | [`LevelRules`](types/level_rules.md) (list, optional) | Defines the Z-order, i.e. stacking order, of the road segment. |
-| `level_rules[].value` | [`Level`](../core/level.md) | Z-order of the feature where 0 is visual level |
-| `level_rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing LevelRule applies to. |
-| `routes[]` | [`Routes`](types/routes.md) (list, optional) | Routes this segment belongs to |
-| `routes[].name` | [`StrippedString`](../system/stripped_string.md) (optional) | Full name of the route |
-| `routes[].network` | [`StrippedString`](../system/stripped_string.md) (optional) | Name of the highway system this route belongs to |
-| `routes[].ref` | [`StrippedString`](../system/stripped_string.md) (optional) | Code or number used to reference the route |
-| `routes[].symbol` | [`StrippedString`](../system/stripped_string.md) (optional) | URL or description of route signage |
-| `routes[].wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
-| `routes[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RouteReference applies to. |
-| `subclass_rules[]` | [`SubclassRules`](types/subclass_rules.md) (list, optional) | Set of subclasses scoped along segment |
-| `subclass_rules[].value` | [`Subclass`](types/subclass.md) | |
-| `subclass_rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SubclassRule applies to. |
-| `names` | [`Names`](../core/names.md) (optional) | |
-| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
-| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
-| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
-| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
-| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
-| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
-| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
-| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
-| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
-| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
-| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
-| `class` *(Road)* | [`RoadClass`](types/road_class.md) | |
-| `destinations[]` *(Road)* | [`Destinations`](types/destinations.md) (list, optional) | Describes objects that can be reached by following a transportation segment in the same way those objects are described on signposts or ground writing that a traveller following the segment would observe in the real world. This allows navigation systems to refer to signs and observable writing that a traveller actually sees. |
-| `destinations[].from_connector_id` | [`Id`](../system/ref/id.md) | Identifies the point of physical connection on this segment before which the destination sign or marking is visible. |
-| `destinations[].to_connector_id` | [`Id`](../system/ref/id.md) | Identifies the point of physical connection on the segment identified by 'to_segment_id' to transition to for reaching the destination(s). |
-| `destinations[].to_segment_id` | [`Id`](../system/ref/id.md) | Identifies the segment to transition to reach the destination(s) labeled on the sign or marking. |
-| `destinations[].final_heading` | [`Heading`](../core/scoping/heading.md) | Direction of travel on the segment identified by 'to_segment_id' that leads to the destination. |
-| `destinations[].labels[]` | `list<`[`DestinationLabels`](types/destination_labels.md)`>` (optional) | Labeled destinations that can be reached by following the segment. |
-| `destinations[].labels[].value` | [`StrippedString`](../system/stripped_string.md) | Names the object that is reached |
-| `destinations[].labels[].type` | [`DestinationLabelType`](types/destination_label_type.md) | |
-| `destinations[].symbols` | `list<`[`DestinationSignSymbol`](types/destination_sign_symbol.md)`>` (optional) | A collection of symbols or icons present on the sign next to current destination label. |
-| `destinations[].when` | [`DestinationRule.When`](types/destination_rule.when.md) (optional) | Scope for DestinationRule: |
-| `destinations[].when.heading` | [`Heading`](../core/scoping/heading.md) | The heading, either forward or backward, that the containing DestinationRule applies to. |
-| `prohibited_transitions[]` *(Road)* | [`ProhibitedTransitions`](types/prohibited_transitions.md) (list, optional) | Rules preventing transitions from this segment to another segment. |
-| `prohibited_transitions[].sequence[]` | `list<`[`SequenceEntry`](types/sequence_entry.md)`>` | Ordered sequence of connector/segment pairs that it is prohibited to follow from this segment. |
-| `prohibited_transitions[].sequence[].connector_id` | [`Id`](../system/ref/id.md) | Identifies the point of physical connection between the previous segment in the sequence and the segment in this sequence entry. |
-| `prohibited_transitions[].sequence[].segment_id` | [`Id`](../system/ref/id.md) | Identifies the segment that the previous segment in the sequence is physically connected to via the sequence entry's connector. |
-| `prohibited_transitions[].final_heading` | [`Heading`](../core/scoping/heading.md) | Direction of travel that is prohibited on the destination segment of the sequence. |
-| `prohibited_transitions[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing ProhibitedTransitionRule applies to. |
-| `prohibited_transitions[].when` | [`ProhibitedTransitionRule.When`](types/prohibited_transition_rule.when.md) (optional) | Scopes for ProhibitedTransitionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
-| `prohibited_transitions[].when.heading` | [`Heading`](../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing ProhibitedTransitionRule applies to. |
-| `prohibited_transitions[].when.during` | [`OpeningHours`](../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing ProhibitedTransitionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
-| `prohibited_transitions[].when.mode` | `list<`[`TravelMode`](../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing ProhibitedTransitionRule applies to. |
-| `prohibited_transitions[].when.using` | `list<`[`PurposeOfUse`](../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing ProhibitedTransitionRule applies to. |
-| `prohibited_transitions[].when.recognized` | `list<`[`RecognizedStatus`](../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing ProhibitedTransitionRule applies to. |
-| `prohibited_transitions[].when.vehicle` | [`VehicleAxleCountSelector`](../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing ProhibitedTransitionRule applies to. |
-| `road_flags[]` *(Road)* | [`RoadFlags`](types/road_flags.md) (list, optional) | Set of boolean attributes applicable to roads. May be specified either as a single flag array of flag values, or as an array of flag rules. |
-| `road_flags[].values` | `list<`[`RoadFlag`](types/road_flag.md)`>` | |
-| `road_flags[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RoadFlagRule applies to. |
-| `road_surface[]` *(Road)* | [`Surfaces`](types/surfaces.md) (list, optional) | Physical surface of the road. May either be specified as a single global value for the segment, or as an array of surface rules. |
-| `road_surface[].value` | [`RoadSurface`](types/road_surface.md) | |
-| `road_surface[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SurfaceRule applies to. |
-| `speed_limits[]` *(Road)* | [`SpeedLimits`](types/speed_limits.md) (list, optional) | Rules governing speed on this road segment |
-| `speed_limits[].max_speed` | [`Speed`](types/speed.md) (optional) | |
-| `speed_limits[].max_speed.value` | [`SpeedValue`](types/speed_value.md) | Speed value |
-| `speed_limits[].max_speed.unit` | [`SpeedUnit`](../core/speed_unit.md) | |
-| `speed_limits[].min_speed` | [`Speed`](types/speed.md) (optional) | |
-| `speed_limits[].min_speed.value` | [`SpeedValue`](types/speed_value.md) | Speed value |
-| `speed_limits[].min_speed.unit` | [`SpeedUnit`](../core/speed_unit.md) | |
-| `speed_limits[].is_max_speed_variable` | `boolean` (optional) | Indicates a variable speed corridor |
-| `speed_limits[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SpeedLimitRule applies to. |
-| `speed_limits[].when` | [`SpeedLimitRule.When`](types/speed_limit_rule.when.md) (optional) | Scopes for SpeedLimitRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
-| `speed_limits[].when.heading` | [`Heading`](../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing SpeedLimitRule applies to. |
-| `speed_limits[].when.during` | [`OpeningHours`](../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing SpeedLimitRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
-| `speed_limits[].when.mode` | `list<`[`TravelMode`](../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing SpeedLimitRule applies to. |
-| `speed_limits[].when.using` | `list<`[`PurposeOfUse`](../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing SpeedLimitRule applies to. |
-| `speed_limits[].when.recognized` | `list<`[`RecognizedStatus`](../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing SpeedLimitRule applies to. |
-| `speed_limits[].when.vehicle` | [`VehicleAxleCountSelector`](../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing SpeedLimitRule applies to. |
-| `subclass` *(Road)* | [`Subclass`](types/subclass.md) (optional) | |
-| `width_rules[]` *(Road)* | [`WidthRules`](types/width_rules.md) (list, optional) | Edge-to-edge width of the road modeled by this segment, in meters.
Examples: (1) If this segment models a carriageway without sidewalk, this value represents the edge-to-edge width of the carriageway, inclusive of any shoulder. (2) If this segment models a sidewalk by itself, this value represents the edge-to-edge width of the sidewalk. (3) If this segment models a combined sidewalk and carriageway, this value represents the edge-to-edge width inclusive of sidewalk. |
-| `width_rules[].value` | [`Width`](types/width.md) | |
-| `width_rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing WidthRule applies to. |
-| `class` *(Rail)* | [`RailClass`](types/rail_class.md) | |
-| `rail_flags[]` *(Rail)* | [`RailFlags`](types/rail_flags.md) (list, optional) | Set of boolean attributes applicable to railways. May be specified either as a single flag array of flag values, or as an array of flag rules. |
-| `rail_flags[].values` | `list<`[`RailFlag`](types/rail_flag.md)`>` | |
-| `rail_flags[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RailFlagRule applies to. |
-
-## Examples
-
-| Column | Value |
-| -------: | ------- |
-| `id` | `1bc62f3b-08b5-42b8-89fe-36f685f60455` |
-| `bbox.xmin` | `-176.5650177001953` |
-| `bbox.xmax` | `-176.56361389160156` |
-| `bbox.ymin` | `-43.954410552978516` |
-| `bbox.ymax` | `-43.953250885009766` |
-| `geometry` | `LINESTRING (-176.5636191 -43.954404, -176.5643637 -43.9538145, -176.5647264 -43.9535274, -176.564...` |
-| `theme` | `transportation` |
-| `type` | `segment` |
-| `version` | `1` |
-| `sources[0].property` | |
-| `sources[0].dataset` | `OpenStreetMap` |
-| `sources[0].record_id` | `w53435546@6` |
-| `sources[0].update_time` | `2021-05-03T06:37:03Z` |
-| `sources[0].confidence` | `null` |
-| `sources[0].between` | `null` |
-| `subtype` | `road` |
-| `access_restrictions` | `null` |
-| `connectors[0].connector_id` | `15b2c131-9137-4add-88c6-2acd3fa61355` |
-| `connectors[0].at` | `0.0` |
-| `connectors[1].connector_id` | `23ae2702-ef77-4d2e-b39d-77360b696d20` |
-| `connectors[1].at` | `0.523536154` |
-| `connectors[2].connector_id` | `8e944ce1-4b81-49eb-a823-7d98779c855c` |
-| `connectors[2].at` | `1.0` |
-| `level_rules` | `null` |
-| `routes` | `null` |
-| `subclass_rules` | `null` |
-| `names.primary` | `Meteorological Lane` |
-| `names.common` | `null` |
-| `destinations` | `null` |
-| `prohibited_transitions` | `null` |
-| `road_flags` | `null` |
-| `road_surface[0].value` | `gravel` |
-| `road_surface[0].between` | `null` |
-| `speed_limits` | `null` |
-| `subclass` | `null` |
-| `width_rules` | `null` |
-| `class` | `residential` |
-| `rail_flags` | `null` |
-| `names.rules[0].variant` | `common` |
-| `names.rules[0].language` | `null` |
-| `names.rules[0].perspectives` | `null` |
-| `names.rules[0].value` | `Meteorological Lane` |
-| `names.rules[0].between` | `null` |
-| `names.rules[0].side` | `null` |
diff --git a/docs/schema/reference/transportation/types/_category_.json b/docs/schema/reference/transportation/types/_category_.json
deleted file mode 100644
index a3ec0897..00000000
--- a/docs/schema/reference/transportation/types/_category_.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "label": "Types"
-}
diff --git a/docs/schema/reference/transportation/types/access_restriction_rule.md b/docs/schema/reference/transportation/types/access_restriction_rule.md
deleted file mode 100644
index d1f8c014..00000000
--- a/docs/schema/reference/transportation/types/access_restriction_rule.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# AccessRestrictionRule
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `access_type` | [`AccessType`](access_type.md) | |
-| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing AccessRestrictionRule applies to. |
-| `when` | [`AccessRestrictionRule.When`](access_restriction_rule.when.md) (optional) | Scopes for AccessRestrictionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
-| `when.heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing AccessRestrictionRule applies to. |
-| `when.during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing AccessRestrictionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
-| `when.mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing AccessRestrictionRule applies to. |
-| `when.using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing AccessRestrictionRule applies to. |
-| `when.recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing AccessRestrictionRule applies to. |
-| `when.vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing AccessRestrictionRule applies to. |
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`AccessRules`](access_rules.md)
diff --git a/docs/schema/reference/transportation/types/access_restriction_rule.when.md b/docs/schema/reference/transportation/types/access_restriction_rule.when.md
deleted file mode 100644
index a28cf64b..00000000
--- a/docs/schema/reference/transportation/types/access_restriction_rule.when.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# AccessRestrictionRule.When
-
-Scopes for AccessRestrictionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing AccessRestrictionRule applies to.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing AccessRestrictionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing AccessRestrictionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing AccessRestrictionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing AccessRestrictionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing AccessRestrictionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-
-## Constraints
-
-- At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set
-
-## Used By
-
-- [`AccessRestrictionRule`](access_restriction_rule.md)
diff --git a/docs/schema/reference/transportation/types/access_rules.md b/docs/schema/reference/transportation/types/access_rules.md
deleted file mode 100644
index 1f3341a7..00000000
--- a/docs/schema/reference/transportation/types/access_rules.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# AccessRules
-
-Rules governing access to this road segment
-
-Underlying type: `list<`[`AccessRestrictionRule`](access_restriction_rule.md)`>`
-
-## Constraints
-
-- Minimum length: 1
-- All items must be unique. (`UniqueItemsConstraint`)
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/access_type.md b/docs/schema/reference/transportation/types/access_type.md
deleted file mode 100644
index e77c8ab8..00000000
--- a/docs/schema/reference/transportation/types/access_type.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# AccessType
-
-## Values
-
-- `allowed`
-- `denied`
-- `designated`
-
-## Used By
-
-- [`AccessRestrictionRule`](access_restriction_rule.md)
diff --git a/docs/schema/reference/transportation/types/connector_reference.md b/docs/schema/reference/transportation/types/connector_reference.md
deleted file mode 100644
index 32a547d7..00000000
--- a/docs/schema/reference/transportation/types/connector_reference.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# ConnectorReference
-
-Contains the GERS ID and relative position between 0 and 1 of a connector feature along the
-segment.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `connector_id` | [`Id`](../../system/ref/id.md) | A unique identifier
*References [`Connector`](../connector.md) (connects to)* |
-| `at` | [`LinearlyReferencedPosition`](../../core/scoping/linearly_referenced_position.md) (optional) | The linearly-referenced position on the geometry, specified as a percentage displacement from the start of the geometry, that the containing ConnectorReference applies to. |
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/destination_label_type.md b/docs/schema/reference/transportation/types/destination_label_type.md
deleted file mode 100644
index cf2ccb11..00000000
--- a/docs/schema/reference/transportation/types/destination_label_type.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# DestinationLabelType
-
-Indicates what special symbol/icon is present on a signpost, visible as road marking or
-similar.
-
-## Values
-
-- `street`
-- `country`
-- `route_ref`
-- `toward_route_ref`
-- `unknown`
-
-## Used By
-
-- [`DestinationLabels`](destination_labels.md)
diff --git a/docs/schema/reference/transportation/types/destination_labels.md b/docs/schema/reference/transportation/types/destination_labels.md
deleted file mode 100644
index 578aaaac..00000000
--- a/docs/schema/reference/transportation/types/destination_labels.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# DestinationLabels
-
-The type of object of the destination label.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `value` | [`StrippedString`](../../system/stripped_string.md) | Names the object that is reached
*Minimum length: 1* |
-| `type` | [`DestinationLabelType`](destination_label_type.md) | |
-
-## Used By
-
-- [`DestinationRule`](destination_rule.md)
diff --git a/docs/schema/reference/transportation/types/destination_rule.md b/docs/schema/reference/transportation/types/destination_rule.md
deleted file mode 100644
index 34cab4b5..00000000
--- a/docs/schema/reference/transportation/types/destination_rule.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# DestinationRule
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `from_connector_id` | [`Id`](../../system/ref/id.md) | Identifies the point of physical connection on this segment before which the destination sign or marking is visible. |
-| `to_connector_id` | [`Id`](../../system/ref/id.md) | Identifies the point of physical connection on the segment identified by 'to_segment_id' to transition to for reaching the destination(s). |
-| `to_segment_id` | [`Id`](../../system/ref/id.md) | Identifies the segment to transition to reach the destination(s) labeled on the sign or marking. |
-| `final_heading` | [`Heading`](../../core/scoping/heading.md) | Direction of travel on the segment identified by 'to_segment_id' that leads to the destination. |
-| `labels[]` | `list<`[`DestinationLabels`](destination_labels.md)`>` (optional) | Labeled destinations that can be reached by following the segment.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `labels`, `symbols` must be set* |
-| `labels[].value` | [`StrippedString`](../../system/stripped_string.md) | Names the object that is reached |
-| `labels[].type` | [`DestinationLabelType`](destination_label_type.md) | |
-| `symbols` | `list<`[`DestinationSignSymbol`](destination_sign_symbol.md)`>` (optional) | A collection of symbols or icons present on the sign next to current destination label.
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `labels`, `symbols` must be set* |
-| `when` | [`DestinationRule.When`](destination_rule.when.md) (optional) | Scope for DestinationRule: |
-| `when.heading` | [`Heading`](../../core/scoping/heading.md) | The heading, either forward or backward, that the containing DestinationRule applies to. |
-
-## Constraints
-
-- At least one of `labels`, `symbols` must be set
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`Destinations`](destinations.md)
diff --git a/docs/schema/reference/transportation/types/destination_rule.when.md b/docs/schema/reference/transportation/types/destination_rule.when.md
deleted file mode 100644
index 9b0b063f..00000000
--- a/docs/schema/reference/transportation/types/destination_rule.when.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# DestinationRule.When
-
-Scope for DestinationRule:
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `heading` | [`Heading`](../../core/scoping/heading.md) | The heading, either forward or backward, that the containing DestinationRule applies to. |
-
-## Used By
-
-- [`DestinationRule`](destination_rule.md)
diff --git a/docs/schema/reference/transportation/types/destination_sign_symbol.md b/docs/schema/reference/transportation/types/destination_sign_symbol.md
deleted file mode 100644
index ec81dbe1..00000000
--- a/docs/schema/reference/transportation/types/destination_sign_symbol.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# DestinationSignSymbol
-
-Indicates what special symbol/icon is present on a signpost, visible as road marking or
-similar.
-
-## Values
-
-- `motorway`
-- `airport`
-- `hospital`
-- `center`
-- `industrial`
-- `parking`
-- `bus`
-- `train_station`
-- `rest_area`
-- `ferry`
-- `motorroad`
-- `fuel`
-- `viewpoint`
-- `fuel_diesel`
-- `food`
-- `lodging`
-- `info`
-- `camp_site`
-- `interchange`
-- `restrooms`
-
-## Used By
-
-- [`DestinationRule`](destination_rule.md)
diff --git a/docs/schema/reference/transportation/types/destinations.md b/docs/schema/reference/transportation/types/destinations.md
deleted file mode 100644
index d2c434eb..00000000
--- a/docs/schema/reference/transportation/types/destinations.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Destinations
-
-Describes objects that can be reached by following a transportation segment in the same way those objects are described on signposts or ground writing that a traveller following the segment would observe in the real world. This allows navigation systems to refer to signs and observable writing that a traveller actually sees.
-
-Underlying type: `list<`[`DestinationRule`](destination_rule.md)`>`
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/level_rule.md b/docs/schema/reference/transportation/types/level_rule.md
deleted file mode 100644
index 52c92f55..00000000
--- a/docs/schema/reference/transportation/types/level_rule.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# LevelRule
-
-A single level rule defining the Z-order, i.e. stacking order, applicable within a given scope
-on the road segment.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `value` | [`Level`](../../core/level.md) | Z-order of the feature where 0 is visual level |
-| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing LevelRule applies to. |
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`LevelRules`](level_rules.md)
diff --git a/docs/schema/reference/transportation/types/level_rules.md b/docs/schema/reference/transportation/types/level_rules.md
deleted file mode 100644
index f95284be..00000000
--- a/docs/schema/reference/transportation/types/level_rules.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# LevelRules
-
-Defines the Z-order, i.e. stacking order, of the road segment.
-
-Underlying type: `list<`[`LevelRule`](level_rule.md)`>`
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/prohibited_transition_rule.md b/docs/schema/reference/transportation/types/prohibited_transition_rule.md
deleted file mode 100644
index 40c3e965..00000000
--- a/docs/schema/reference/transportation/types/prohibited_transition_rule.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# ProhibitedTransitionRule
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `sequence[]` | `list<`[`SequenceEntry`](sequence_entry.md)`>` | Ordered sequence of connector/segment pairs that it is prohibited to follow from this segment.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `sequence[].connector_id` | [`Id`](../../system/ref/id.md) | Identifies the point of physical connection between the previous segment in the sequence and the segment in this sequence entry. |
-| `sequence[].segment_id` | [`Id`](../../system/ref/id.md) | Identifies the segment that the previous segment in the sequence is physically connected to via the sequence entry's connector. |
-| `final_heading` | [`Heading`](../../core/scoping/heading.md) | Direction of travel that is prohibited on the destination segment of the sequence. |
-| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing ProhibitedTransitionRule applies to. |
-| `when` | [`ProhibitedTransitionRule.When`](prohibited_transition_rule.when.md) (optional) | Scopes for ProhibitedTransitionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
-| `when.heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing ProhibitedTransitionRule applies to. |
-| `when.during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing ProhibitedTransitionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
-| `when.mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing ProhibitedTransitionRule applies to. |
-| `when.using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing ProhibitedTransitionRule applies to. |
-| `when.recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing ProhibitedTransitionRule applies to. |
-| `when.vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing ProhibitedTransitionRule applies to. |
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`ProhibitedTransitions`](prohibited_transitions.md)
diff --git a/docs/schema/reference/transportation/types/prohibited_transition_rule.when.md b/docs/schema/reference/transportation/types/prohibited_transition_rule.when.md
deleted file mode 100644
index 0a6d14d6..00000000
--- a/docs/schema/reference/transportation/types/prohibited_transition_rule.when.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# ProhibitedTransitionRule.When
-
-Scopes for ProhibitedTransitionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing ProhibitedTransitionRule applies to.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing ProhibitedTransitionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing ProhibitedTransitionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing ProhibitedTransitionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing ProhibitedTransitionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing ProhibitedTransitionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-
-## Constraints
-
-- At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set
-
-## Used By
-
-- [`ProhibitedTransitionRule`](prohibited_transition_rule.md)
diff --git a/docs/schema/reference/transportation/types/prohibited_transitions.md b/docs/schema/reference/transportation/types/prohibited_transitions.md
deleted file mode 100644
index 2a4a5179..00000000
--- a/docs/schema/reference/transportation/types/prohibited_transitions.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# ProhibitedTransitions
-
-Rules preventing transitions from this segment to another segment.
-
-Underlying type: `list<`[`ProhibitedTransitionRule`](prohibited_transition_rule.md)`>`
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/rail_class.md b/docs/schema/reference/transportation/types/rail_class.md
deleted file mode 100644
index c43bb6a6..00000000
--- a/docs/schema/reference/transportation/types/rail_class.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# RailClass
-
-Captures the kind of rail segment.
-
-## Values
-
-- `funicular`
-- `light_rail`
-- `monorail`
-- `narrow_gauge`
-- `standard_gauge`
-- `subway`
-- `tram`
-- `unknown`
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/rail_flag.md b/docs/schema/reference/transportation/types/rail_flag.md
deleted file mode 100644
index 9316a812..00000000
--- a/docs/schema/reference/transportation/types/rail_flag.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# RailFlag
-
-Simple flags that can be on or off for a railway segment.
-
-Specifies physical characteristics and can overlap.
-
-## Values
-
-- `is_bridge`
-- `is_tunnel`
-- `is_under_construction`
-- `is_abandoned`
-- `is_covered`
-- `is_passenger`
-- `is_freight`
-- `is_disused`
-
-## Used By
-
-- [`RailFlagRule`](rail_flag_rule.md)
diff --git a/docs/schema/reference/transportation/types/rail_flag_rule.md b/docs/schema/reference/transportation/types/rail_flag_rule.md
deleted file mode 100644
index 06bf91cc..00000000
--- a/docs/schema/reference/transportation/types/rail_flag_rule.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# RailFlagRule
-
-Rail-specific flag rule with geometric scoping only.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `values` | `list<`[`RailFlag`](rail_flag.md)`>` | *Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RailFlagRule applies to. |
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`RailFlags`](rail_flags.md)
diff --git a/docs/schema/reference/transportation/types/rail_flags.md b/docs/schema/reference/transportation/types/rail_flags.md
deleted file mode 100644
index 80633185..00000000
--- a/docs/schema/reference/transportation/types/rail_flags.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# RailFlags
-
-Set of boolean attributes applicable to railways. May be specified either as a single flag array of flag values, or as an array of flag rules.
-
-Underlying type: `list<`[`RailFlagRule`](rail_flag_rule.md)`>`
-
-## Constraints
-
-- Minimum length: 1
-- All items must be unique. (`UniqueItemsConstraint`)
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/road_class.md b/docs/schema/reference/transportation/types/road_class.md
deleted file mode 100644
index d18b7735..00000000
--- a/docs/schema/reference/transportation/types/road_class.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# RoadClass
-
-Captures the kind of road and its position in the road network hierarchy.
-
-## Values
-
-- `motorway`
-- `primary`
-- `secondary`
-- `tertiary`
-- `residential`
-- `living_street`
-- `trunk`
-- `unclassified`
-- `service`
-- `pedestrian`
-- `footway`
-- `steps`
-- `path`
-- `track`
-- `cycleway`
-- `bridleway`
-- `unknown`
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/road_flag.md b/docs/schema/reference/transportation/types/road_flag.md
deleted file mode 100644
index a2448e72..00000000
--- a/docs/schema/reference/transportation/types/road_flag.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# RoadFlag
-
-Simple flags that can be on or off for a road segment.
-
-Specifies physical characteristics and can overlap.
-
-## Values
-
-- `is_bridge`
-- `is_link`
-- `is_tunnel`
-- `is_under_construction`
-- `is_abandoned`
-- `is_covered`
-- `is_indoor`
-
-## Used By
-
-- [`RoadFlagRule`](road_flag_rule.md)
diff --git a/docs/schema/reference/transportation/types/road_flag_rule.md b/docs/schema/reference/transportation/types/road_flag_rule.md
deleted file mode 100644
index d7a823ee..00000000
--- a/docs/schema/reference/transportation/types/road_flag_rule.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# RoadFlagRule
-
-Road-specific flag rule with geometric scoping only.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `values` | `list<`[`RoadFlag`](road_flag.md)`>` | *Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
-| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RoadFlagRule applies to. |
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`RoadFlags`](road_flags.md)
diff --git a/docs/schema/reference/transportation/types/road_flags.md b/docs/schema/reference/transportation/types/road_flags.md
deleted file mode 100644
index 88445c57..00000000
--- a/docs/schema/reference/transportation/types/road_flags.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# RoadFlags
-
-Set of boolean attributes applicable to roads. May be specified either as a single flag array of flag values, or as an array of flag rules.
-
-Underlying type: `list<`[`RoadFlagRule`](road_flag_rule.md)`>`
-
-## Constraints
-
-- Minimum length: 1
-- All items must be unique. (`UniqueItemsConstraint`)
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/road_surface.md b/docs/schema/reference/transportation/types/road_surface.md
deleted file mode 100644
index 6ac83776..00000000
--- a/docs/schema/reference/transportation/types/road_surface.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# RoadSurface
-
-Physical surface of the road.
-
-## Values
-
-- `unknown`
-- `paved`
-- `unpaved`
-- `gravel`
-- `dirt`
-- `paving_stones`
-- `metal`
-
-## Used By
-
-- [`SurfaceRule`](surface_rule.md)
diff --git a/docs/schema/reference/transportation/types/route_reference.md b/docs/schema/reference/transportation/types/route_reference.md
deleted file mode 100644
index e3a9f7c2..00000000
--- a/docs/schema/reference/transportation/types/route_reference.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# RouteReference
-
-Route reference with linear referencing support.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `name` | [`StrippedString`](../../system/stripped_string.md) (optional) | Full name of the route
*Minimum length: 1* |
-| `network` | [`StrippedString`](../../system/stripped_string.md) (optional) | Name of the highway system this route belongs to
*Minimum length: 1* |
-| `ref` | [`StrippedString`](../../system/stripped_string.md) (optional) | Code or number used to reference the route
*Minimum length: 1* |
-| `symbol` | [`StrippedString`](../../system/stripped_string.md) (optional) | URL or description of route signage
*Minimum length: 1* |
-| `wikidata` | [`WikidataId`](../../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
-| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RouteReference applies to. |
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`Routes`](routes.md)
diff --git a/docs/schema/reference/transportation/types/routes.md b/docs/schema/reference/transportation/types/routes.md
deleted file mode 100644
index 72143b25..00000000
--- a/docs/schema/reference/transportation/types/routes.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Routes
-
-Routes this segment belongs to
-
-Underlying type: `list<`[`RouteReference`](route_reference.md)`>`
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/sequence_entry.md b/docs/schema/reference/transportation/types/sequence_entry.md
deleted file mode 100644
index 859b96c5..00000000
--- a/docs/schema/reference/transportation/types/sequence_entry.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# SequenceEntry
-
-A segment/connector pair in a prohibited transition sequence.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `connector_id` | [`Id`](../../system/ref/id.md) | Identifies the point of physical connection between the previous segment in the sequence and the segment in this sequence entry. |
-| `segment_id` | [`Id`](../../system/ref/id.md) | Identifies the segment that the previous segment in the sequence is physically connected to via the sequence entry's connector. |
-
-## Used By
-
-- [`ProhibitedTransitionRule`](prohibited_transition_rule.md)
diff --git a/docs/schema/reference/transportation/types/speed.md b/docs/schema/reference/transportation/types/speed.md
deleted file mode 100644
index d7ac28d4..00000000
--- a/docs/schema/reference/transportation/types/speed.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Speed
-
-A speed value, i.e. a certain number of distance units travelled per unit time.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `value` | [`SpeedValue`](speed_value.md) | Speed value |
-| `unit` | [`SpeedUnit`](../../core/speed_unit.md) | |
-
-## Used By
-
-- [`SpeedLimitRule`](speed_limit_rule.md)
diff --git a/docs/schema/reference/transportation/types/speed_limit_rule.md b/docs/schema/reference/transportation/types/speed_limit_rule.md
deleted file mode 100644
index cad040b2..00000000
--- a/docs/schema/reference/transportation/types/speed_limit_rule.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# SpeedLimitRule
-
-An individual speed limit rule.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `max_speed` | [`Speed`](speed.md) (optional) | *At least one of `max_speed`, `min_speed` must be set* |
-| `max_speed.value` | [`SpeedValue`](speed_value.md) | Speed value |
-| `max_speed.unit` | [`SpeedUnit`](../../core/speed_unit.md) | |
-| `min_speed` | [`Speed`](speed.md) (optional) | *At least one of `max_speed`, `min_speed` must be set* |
-| `min_speed.value` | [`SpeedValue`](speed_value.md) | Speed value |
-| `min_speed.unit` | [`SpeedUnit`](../../core/speed_unit.md) | |
-| `is_max_speed_variable` | `boolean` (optional) | Indicates a variable speed corridor
*`strict=True`* |
-| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SpeedLimitRule applies to. |
-| `when` | [`SpeedLimitRule.When`](speed_limit_rule.when.md) (optional) | Scopes for SpeedLimitRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
-| `when.heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing SpeedLimitRule applies to. |
-| `when.during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing SpeedLimitRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
-| `when.mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing SpeedLimitRule applies to. |
-| `when.using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing SpeedLimitRule applies to. |
-| `when.recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing SpeedLimitRule applies to. |
-| `when.vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing SpeedLimitRule applies to. |
-
-## Constraints
-
-- At least one of `max_speed`, `min_speed` must be set
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`SpeedLimits`](speed_limits.md)
diff --git a/docs/schema/reference/transportation/types/speed_limit_rule.when.md b/docs/schema/reference/transportation/types/speed_limit_rule.when.md
deleted file mode 100644
index 3d243123..00000000
--- a/docs/schema/reference/transportation/types/speed_limit_rule.when.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# SpeedLimitRule.When
-
-Scopes for SpeedLimitRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing SpeedLimitRule applies to.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing SpeedLimitRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing SpeedLimitRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing SpeedLimitRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing SpeedLimitRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-| `vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing SpeedLimitRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
-
-## Constraints
-
-- At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set
-
-## Used By
-
-- [`SpeedLimitRule`](speed_limit_rule.md)
diff --git a/docs/schema/reference/transportation/types/speed_limits.md b/docs/schema/reference/transportation/types/speed_limits.md
deleted file mode 100644
index c42f4726..00000000
--- a/docs/schema/reference/transportation/types/speed_limits.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# SpeedLimits
-
-Rules governing speed on this road segment
-
-Underlying type: `list<`[`SpeedLimitRule`](speed_limit_rule.md)`>`
-
-## Constraints
-
-- Minimum length: 1
-- All items must be unique. (`UniqueItemsConstraint`)
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/speed_value.md b/docs/schema/reference/transportation/types/speed_value.md
deleted file mode 100644
index 8b4983f6..00000000
--- a/docs/schema/reference/transportation/types/speed_value.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# SpeedValue
-
-Speed value
-
-Underlying type: `int32`
-
-## Constraints
-
-- `β₯ 1`
-- `β€ 350`
-- `β₯ -2147483648` (from [`int32`](../../system/primitive/primitives.md))
-- `β€ 2147483647` (from [`int32`](../../system/primitive/primitives.md))
-
-## Used By
-
-- [`Speed`](speed.md)
diff --git a/docs/schema/reference/transportation/types/subclass.md b/docs/schema/reference/transportation/types/subclass.md
deleted file mode 100644
index f91d5d42..00000000
--- a/docs/schema/reference/transportation/types/subclass.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Subclass
-
-Refines expected usage of the segment, must not overlap.
-
-## Values
-
-- `link`
-- `sidewalk`
-- `crosswalk`
-- `parking_aisle`
-- `driveway`
-- `alley`
-- `cycle_crossing`
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`SubclassRule`](subclass_rule.md)
diff --git a/docs/schema/reference/transportation/types/subclass_rule.md b/docs/schema/reference/transportation/types/subclass_rule.md
deleted file mode 100644
index c2552370..00000000
--- a/docs/schema/reference/transportation/types/subclass_rule.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# SubclassRule
-
-Set of subclasses scoped along segment.
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `value` | [`Subclass`](subclass.md) | |
-| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SubclassRule applies to. |
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`SubclassRules`](subclass_rules.md)
diff --git a/docs/schema/reference/transportation/types/subclass_rules.md b/docs/schema/reference/transportation/types/subclass_rules.md
deleted file mode 100644
index a8322e9e..00000000
--- a/docs/schema/reference/transportation/types/subclass_rules.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# SubclassRules
-
-Set of subclasses scoped along segment
-
-Underlying type: `list<`[`SubclassRule`](subclass_rule.md)`>`
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/subtype.md b/docs/schema/reference/transportation/types/subtype.md
deleted file mode 100644
index e24c2f7e..00000000
--- a/docs/schema/reference/transportation/types/subtype.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Subtype
-
-Transportation segment subtype classification.
-
-## Values
-
-- `road`
-- `rail`
-- `water`
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/surface_rule.md b/docs/schema/reference/transportation/types/surface_rule.md
deleted file mode 100644
index 3300da9d..00000000
--- a/docs/schema/reference/transportation/types/surface_rule.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# SurfaceRule
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `value` | [`RoadSurface`](road_surface.md) | |
-| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SurfaceRule applies to. |
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`Surfaces`](surfaces.md)
diff --git a/docs/schema/reference/transportation/types/surfaces.md b/docs/schema/reference/transportation/types/surfaces.md
deleted file mode 100644
index 846f4882..00000000
--- a/docs/schema/reference/transportation/types/surfaces.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Surfaces
-
-Physical surface of the road. May either be specified as a single global value for the segment, or as an array of surface rules.
-
-Underlying type: `list<`[`SurfaceRule`](surface_rule.md)`>`
-
-## Constraints
-
-- Minimum length: 1
-- All items must be unique. (`UniqueItemsConstraint`)
-
-## Used By
-
-- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/width.md b/docs/schema/reference/transportation/types/width.md
deleted file mode 100644
index c7e6d5ec..00000000
--- a/docs/schema/reference/transportation/types/width.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Width
-
-Underlying type: `float64`
-
-## Constraints
-
-- `> 0`
-
-## Used By
-
-- [`WidthRule`](width_rule.md)
diff --git a/docs/schema/reference/transportation/types/width_rule.md b/docs/schema/reference/transportation/types/width_rule.md
deleted file mode 100644
index 42aa4de5..00000000
--- a/docs/schema/reference/transportation/types/width_rule.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# WidthRule
-
-## Fields
-
-| Name | Type | Description |
-| -----: | :----: | ------------- |
-| `value` | [`Width`](width.md) | |
-| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing WidthRule applies to. |
-
-## Used By
-
-- [`Segment`](../segment.md)
-- [`WidthRules`](width_rules.md)
diff --git a/docs/schema/reference/transportation/types/width_rules.md b/docs/schema/reference/transportation/types/width_rules.md
deleted file mode 100644
index 1c5cbf03..00000000
--- a/docs/schema/reference/transportation/types/width_rules.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# WidthRules
-
-Edge-to-edge width of the road modeled by this segment, in meters.
-
-Examples: (1) If this segment models a carriageway without sidewalk, this value represents the edge-to-edge width of the carriageway, inclusive of any shoulder. (2) If this segment models a sidewalk by itself, this value represents the edge-to-edge width of the sidewalk. (3) If this segment models a combined sidewalk and carriageway, this value represents the edge-to-edge width inclusive of sidewalk.
-
-Underlying type: `list<`[`WidthRule`](width_rule.md)`>`
-
-## Constraints
-
-- Minimum length: 1
-- All items must be unique. (`UniqueItemsConstraint`)
-
-## Used By
-
-- [`Segment`](../segment.md)
From b38162ad77854980ebad6c9e4b6e5352b806ae75 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Wed, 18 Mar 2026 16:34:10 -0400
Subject: [PATCH 30/35] Revert "Remove generated schema reference docs; add
.gitkeep"
This reverts commit d8dd6de72d1589f757b27e34f534aa1b08977d1a.
---
docs/schema/reference/.gitkeep | 3 -
.../reference/addresses/_category_.json | 4 +
docs/schema/reference/addresses/address.md | 76 ++++++++
.../reference/addresses/types/_category_.json | 3 +
.../addresses/types/address_level.md | 30 +++
docs/schema/reference/base/_category_.json | 4 +
docs/schema/reference/base/bathymetry.md | 59 ++++++
docs/schema/reference/base/infrastructure.md | 77 ++++++++
docs/schema/reference/base/land.md | 85 +++++++++
docs/schema/reference/base/land_cover.md | 66 +++++++
docs/schema/reference/base/land_use.md | 82 ++++++++
.../reference/base/types/_category_.json | 3 +
docs/schema/reference/base/types/depth.md | 15 ++
docs/schema/reference/base/types/elevation.md | 16 ++
docs/schema/reference/base/types/height.md | 13 ++
.../base/types/infrastructure_class.md | 176 ++++++++++++++++++
.../base/types/infrastructure_subtype.md | 30 +++
.../schema/reference/base/types/land_class.md | 54 ++++++
.../base/types/land_cover_subtype.md | 20 ++
.../reference/base/types/land_subtype.md | 25 +++
.../reference/base/types/land_use_class.md | 121 ++++++++++++
.../reference/base/types/land_use_subtype.md | 36 ++++
.../reference/base/types/source_tags.md | 15 ++
.../reference/base/types/surface_material.md | 36 ++++
.../reference/base/types/water_class.md | 47 +++++
.../reference/base/types/water_subtype.md | 24 +++
docs/schema/reference/base/water.md | 98 ++++++++++
.../reference/buildings/_category_.json | 4 +
docs/schema/reference/buildings/building.md | 102 ++++++++++
.../reference/buildings/building_part.md | 101 ++++++++++
.../reference/buildings/types/_category_.json | 3 +
.../buildings/types/building_class.md | 103 ++++++++++
.../buildings/types/building_subtype.md | 29 +++
.../buildings/types/facade_material.md | 26 +++
.../buildings/types/roof_material.md | 29 +++
.../buildings/types/roof_orientation.md | 20 ++
.../reference/buildings/types/roof_shape.md | 29 +++
docs/schema/reference/core/_category_.json | 4 +
.../reference/core/cartographic_hints.md | 18 ++
docs/schema/reference/core/common_names.md | 10 +
.../schema/reference/core/confidence_score.md | 15 ++
docs/schema/reference/core/feature_version.md | 27 +++
docs/schema/reference/core/length_unit.md | 19 ++
docs/schema/reference/core/level.md | 20 ++
docs/schema/reference/core/max_zoom.md | 23 +++
docs/schema/reference/core/min_zoom.md | 23 +++
docs/schema/reference/core/name_rule.md | 32 ++++
docs/schema/reference/core/name_variant.md | 22 +++
docs/schema/reference/core/names.md | 33 ++++
.../schema/reference/core/perspective_mode.md | 12 ++
docs/schema/reference/core/perspectives.md | 16 ++
docs/schema/reference/core/prominence.md | 23 +++
.../reference/core/scoping/_category_.json | 3 +
docs/schema/reference/core/scoping/heading.md | 17 ++
.../scoping/linearly_referenced_position.md | 15 ++
.../core/scoping/linearly_referenced_range.md | 26 +++
.../reference/core/scoping/opening_hours.md | 12 ++
.../reference/core/scoping/purpose_of_use.md | 18 ++
.../core/scoping/recognized_status.md | 18 ++
docs/schema/reference/core/scoping/side.md | 15 ++
.../reference/core/scoping/travel_mode.md | 25 +++
.../scoping/vehicle_axle_count_selector.md | 17 ++
.../core/scoping/vehicle_height_selector.md | 18 ++
.../core/scoping/vehicle_length_selector.md | 18 ++
.../core/scoping/vehicle_relation.md | 19 ++
.../core/scoping/vehicle_weight_selector.md | 18 ++
.../core/scoping/vehicle_width_selector.md | 18 ++
docs/schema/reference/core/sort_key.md | 17 ++
docs/schema/reference/core/source_item.md | 34 ++++
docs/schema/reference/core/sources.md | 28 +++
docs/schema/reference/core/speed_unit.md | 12 ++
docs/schema/reference/core/weight_unit.md | 17 ++
.../reference/divisions/_category_.json | 4 +
docs/schema/reference/divisions/division.md | 131 +++++++++++++
.../reference/divisions/division_area.md | 88 +++++++++
.../reference/divisions/division_boundary.md | 83 +++++++++
.../reference/divisions/types/_category_.json | 3 +
.../reference/divisions/types/admin_level.md | 16 ++
.../types/capital_of_division_item.md | 14 ++
.../divisions/types/division/_category_.json | 3 +
.../divisions/types/division/norms.md | 13 ++
.../types/division_area/_category_.json | 3 +
.../types/division_area/area_class.md | 12 ++
.../types/division_boundary/_category_.json | 3 +
.../types/division_boundary/boundary_class.md | 10 +
.../divisions/types/division_class.md | 15 ++
.../reference/divisions/types/division_id.md | 16 ++
.../reference/divisions/types/hierarchy.md | 16 ++
.../divisions/types/hierarchy_item.md | 16 ++
.../reference/divisions/types/place_type.md | 27 +++
docs/schema/reference/places/_category_.json | 4 +
docs/schema/reference/places/place.md | 113 +++++++++++
.../reference/places/types/_category_.json | 3 +
docs/schema/reference/places/types/address.md | 17 ++
docs/schema/reference/places/types/brand.md | 27 +++
.../reference/places/types/categories.md | 16 ++
.../places/types/operating_status.md | 19 ++
.../schema/reference/places/types/taxonomy.md | 17 ++
.../schema/reference/pydantic/_category_.json | 4 +
.../pydantic/networks/_category_.json | 3 +
.../reference/pydantic/networks/email_str.md | 7 +
.../reference/pydantic/networks/http_url.md | 9 +
docs/schema/reference/system/_category_.json | 4 +
.../reference/system/country_code_alpha2.md | 18 ++
docs/schema/reference/system/hex_color.md | 20 ++
docs/schema/reference/system/json_pointer.md | 23 +++
docs/schema/reference/system/language_tag.md | 27 +++
.../reference/system/no_whitespace_string.md | 14 ++
docs/schema/reference/system/phone_number.md | 13 ++
.../system/primitive/_category_.json | 3 +
.../reference/system/primitive/geometry.md | 11 ++
.../reference/system/primitive/primitives.md | 27 +++
.../reference/system/ref/_category_.json | 3 +
docs/schema/reference/system/ref/id.md | 32 ++++
docs/schema/reference/system/region_code.md | 16 ++
.../reference/system/snake_case_string.md | 15 ++
.../reference/system/stripped_string.md | 22 +++
docs/schema/reference/system/wikidata_id.md | 23 +++
.../reference/transportation/_category_.json | 4 +
.../reference/transportation/connector.md | 49 +++++
.../reference/transportation/segment.md | 168 +++++++++++++++++
.../transportation/types/_category_.json | 3 +
.../types/access_restriction_rule.md | 20 ++
.../types/access_restriction_rule.when.md | 22 +++
.../transportation/types/access_rules.md | 14 ++
.../transportation/types/access_type.md | 11 ++
.../types/connector_reference.md | 15 ++
.../types/destination_label_type.md | 16 ++
.../types/destination_labels.md | 14 ++
.../transportation/types/destination_rule.md | 25 +++
.../types/destination_rule.when.md | 13 ++
.../types/destination_sign_symbol.md | 31 +++
.../transportation/types/destinations.md | 9 +
.../transportation/types/level_rule.md | 16 ++
.../transportation/types/level_rules.md | 9 +
.../types/prohibited_transition_rule.md | 23 +++
.../types/prohibited_transition_rule.when.md | 22 +++
.../types/prohibited_transitions.md | 9 +
.../transportation/types/rail_class.md | 18 ++
.../transportation/types/rail_flag.md | 20 ++
.../transportation/types/rail_flag_rule.md | 15 ++
.../transportation/types/rail_flags.md | 14 ++
.../transportation/types/road_class.md | 27 +++
.../transportation/types/road_flag.md | 19 ++
.../transportation/types/road_flag_rule.md | 15 ++
.../transportation/types/road_flags.md | 14 ++
.../transportation/types/road_surface.md | 17 ++
.../transportation/types/route_reference.md | 19 ++
.../reference/transportation/types/routes.md | 9 +
.../transportation/types/sequence_entry.md | 14 ++
.../reference/transportation/types/speed.md | 14 ++
.../transportation/types/speed_limit_rule.md | 32 ++++
.../types/speed_limit_rule.when.md | 22 +++
.../transportation/types/speed_limits.md | 14 ++
.../transportation/types/speed_value.md | 16 ++
.../transportation/types/subclass.md | 18 ++
.../transportation/types/subclass_rule.md | 15 ++
.../transportation/types/subclass_rules.md | 9 +
.../reference/transportation/types/subtype.md | 13 ++
.../transportation/types/surface_rule.md | 13 ++
.../transportation/types/surfaces.md | 14 ++
.../reference/transportation/types/width.md | 11 ++
.../transportation/types/width_rule.md | 13 ++
.../transportation/types/width_rules.md | 16 ++
164 files changed, 4220 insertions(+), 3 deletions(-)
delete mode 100644 docs/schema/reference/.gitkeep
create mode 100644 docs/schema/reference/addresses/_category_.json
create mode 100644 docs/schema/reference/addresses/address.md
create mode 100644 docs/schema/reference/addresses/types/_category_.json
create mode 100644 docs/schema/reference/addresses/types/address_level.md
create mode 100644 docs/schema/reference/base/_category_.json
create mode 100644 docs/schema/reference/base/bathymetry.md
create mode 100644 docs/schema/reference/base/infrastructure.md
create mode 100644 docs/schema/reference/base/land.md
create mode 100644 docs/schema/reference/base/land_cover.md
create mode 100644 docs/schema/reference/base/land_use.md
create mode 100644 docs/schema/reference/base/types/_category_.json
create mode 100644 docs/schema/reference/base/types/depth.md
create mode 100644 docs/schema/reference/base/types/elevation.md
create mode 100644 docs/schema/reference/base/types/height.md
create mode 100644 docs/schema/reference/base/types/infrastructure_class.md
create mode 100644 docs/schema/reference/base/types/infrastructure_subtype.md
create mode 100644 docs/schema/reference/base/types/land_class.md
create mode 100644 docs/schema/reference/base/types/land_cover_subtype.md
create mode 100644 docs/schema/reference/base/types/land_subtype.md
create mode 100644 docs/schema/reference/base/types/land_use_class.md
create mode 100644 docs/schema/reference/base/types/land_use_subtype.md
create mode 100644 docs/schema/reference/base/types/source_tags.md
create mode 100644 docs/schema/reference/base/types/surface_material.md
create mode 100644 docs/schema/reference/base/types/water_class.md
create mode 100644 docs/schema/reference/base/types/water_subtype.md
create mode 100644 docs/schema/reference/base/water.md
create mode 100644 docs/schema/reference/buildings/_category_.json
create mode 100644 docs/schema/reference/buildings/building.md
create mode 100644 docs/schema/reference/buildings/building_part.md
create mode 100644 docs/schema/reference/buildings/types/_category_.json
create mode 100644 docs/schema/reference/buildings/types/building_class.md
create mode 100644 docs/schema/reference/buildings/types/building_subtype.md
create mode 100644 docs/schema/reference/buildings/types/facade_material.md
create mode 100644 docs/schema/reference/buildings/types/roof_material.md
create mode 100644 docs/schema/reference/buildings/types/roof_orientation.md
create mode 100644 docs/schema/reference/buildings/types/roof_shape.md
create mode 100644 docs/schema/reference/core/_category_.json
create mode 100644 docs/schema/reference/core/cartographic_hints.md
create mode 100644 docs/schema/reference/core/common_names.md
create mode 100644 docs/schema/reference/core/confidence_score.md
create mode 100644 docs/schema/reference/core/feature_version.md
create mode 100644 docs/schema/reference/core/length_unit.md
create mode 100644 docs/schema/reference/core/level.md
create mode 100644 docs/schema/reference/core/max_zoom.md
create mode 100644 docs/schema/reference/core/min_zoom.md
create mode 100644 docs/schema/reference/core/name_rule.md
create mode 100644 docs/schema/reference/core/name_variant.md
create mode 100644 docs/schema/reference/core/names.md
create mode 100644 docs/schema/reference/core/perspective_mode.md
create mode 100644 docs/schema/reference/core/perspectives.md
create mode 100644 docs/schema/reference/core/prominence.md
create mode 100644 docs/schema/reference/core/scoping/_category_.json
create mode 100644 docs/schema/reference/core/scoping/heading.md
create mode 100644 docs/schema/reference/core/scoping/linearly_referenced_position.md
create mode 100644 docs/schema/reference/core/scoping/linearly_referenced_range.md
create mode 100644 docs/schema/reference/core/scoping/opening_hours.md
create mode 100644 docs/schema/reference/core/scoping/purpose_of_use.md
create mode 100644 docs/schema/reference/core/scoping/recognized_status.md
create mode 100644 docs/schema/reference/core/scoping/side.md
create mode 100644 docs/schema/reference/core/scoping/travel_mode.md
create mode 100644 docs/schema/reference/core/scoping/vehicle_axle_count_selector.md
create mode 100644 docs/schema/reference/core/scoping/vehicle_height_selector.md
create mode 100644 docs/schema/reference/core/scoping/vehicle_length_selector.md
create mode 100644 docs/schema/reference/core/scoping/vehicle_relation.md
create mode 100644 docs/schema/reference/core/scoping/vehicle_weight_selector.md
create mode 100644 docs/schema/reference/core/scoping/vehicle_width_selector.md
create mode 100644 docs/schema/reference/core/sort_key.md
create mode 100644 docs/schema/reference/core/source_item.md
create mode 100644 docs/schema/reference/core/sources.md
create mode 100644 docs/schema/reference/core/speed_unit.md
create mode 100644 docs/schema/reference/core/weight_unit.md
create mode 100644 docs/schema/reference/divisions/_category_.json
create mode 100644 docs/schema/reference/divisions/division.md
create mode 100644 docs/schema/reference/divisions/division_area.md
create mode 100644 docs/schema/reference/divisions/division_boundary.md
create mode 100644 docs/schema/reference/divisions/types/_category_.json
create mode 100644 docs/schema/reference/divisions/types/admin_level.md
create mode 100644 docs/schema/reference/divisions/types/capital_of_division_item.md
create mode 100644 docs/schema/reference/divisions/types/division/_category_.json
create mode 100644 docs/schema/reference/divisions/types/division/norms.md
create mode 100644 docs/schema/reference/divisions/types/division_area/_category_.json
create mode 100644 docs/schema/reference/divisions/types/division_area/area_class.md
create mode 100644 docs/schema/reference/divisions/types/division_boundary/_category_.json
create mode 100644 docs/schema/reference/divisions/types/division_boundary/boundary_class.md
create mode 100644 docs/schema/reference/divisions/types/division_class.md
create mode 100644 docs/schema/reference/divisions/types/division_id.md
create mode 100644 docs/schema/reference/divisions/types/hierarchy.md
create mode 100644 docs/schema/reference/divisions/types/hierarchy_item.md
create mode 100644 docs/schema/reference/divisions/types/place_type.md
create mode 100644 docs/schema/reference/places/_category_.json
create mode 100644 docs/schema/reference/places/place.md
create mode 100644 docs/schema/reference/places/types/_category_.json
create mode 100644 docs/schema/reference/places/types/address.md
create mode 100644 docs/schema/reference/places/types/brand.md
create mode 100644 docs/schema/reference/places/types/categories.md
create mode 100644 docs/schema/reference/places/types/operating_status.md
create mode 100644 docs/schema/reference/places/types/taxonomy.md
create mode 100644 docs/schema/reference/pydantic/_category_.json
create mode 100644 docs/schema/reference/pydantic/networks/_category_.json
create mode 100644 docs/schema/reference/pydantic/networks/email_str.md
create mode 100644 docs/schema/reference/pydantic/networks/http_url.md
create mode 100644 docs/schema/reference/system/_category_.json
create mode 100644 docs/schema/reference/system/country_code_alpha2.md
create mode 100644 docs/schema/reference/system/hex_color.md
create mode 100644 docs/schema/reference/system/json_pointer.md
create mode 100644 docs/schema/reference/system/language_tag.md
create mode 100644 docs/schema/reference/system/no_whitespace_string.md
create mode 100644 docs/schema/reference/system/phone_number.md
create mode 100644 docs/schema/reference/system/primitive/_category_.json
create mode 100644 docs/schema/reference/system/primitive/geometry.md
create mode 100644 docs/schema/reference/system/primitive/primitives.md
create mode 100644 docs/schema/reference/system/ref/_category_.json
create mode 100644 docs/schema/reference/system/ref/id.md
create mode 100644 docs/schema/reference/system/region_code.md
create mode 100644 docs/schema/reference/system/snake_case_string.md
create mode 100644 docs/schema/reference/system/stripped_string.md
create mode 100644 docs/schema/reference/system/wikidata_id.md
create mode 100644 docs/schema/reference/transportation/_category_.json
create mode 100644 docs/schema/reference/transportation/connector.md
create mode 100644 docs/schema/reference/transportation/segment.md
create mode 100644 docs/schema/reference/transportation/types/_category_.json
create mode 100644 docs/schema/reference/transportation/types/access_restriction_rule.md
create mode 100644 docs/schema/reference/transportation/types/access_restriction_rule.when.md
create mode 100644 docs/schema/reference/transportation/types/access_rules.md
create mode 100644 docs/schema/reference/transportation/types/access_type.md
create mode 100644 docs/schema/reference/transportation/types/connector_reference.md
create mode 100644 docs/schema/reference/transportation/types/destination_label_type.md
create mode 100644 docs/schema/reference/transportation/types/destination_labels.md
create mode 100644 docs/schema/reference/transportation/types/destination_rule.md
create mode 100644 docs/schema/reference/transportation/types/destination_rule.when.md
create mode 100644 docs/schema/reference/transportation/types/destination_sign_symbol.md
create mode 100644 docs/schema/reference/transportation/types/destinations.md
create mode 100644 docs/schema/reference/transportation/types/level_rule.md
create mode 100644 docs/schema/reference/transportation/types/level_rules.md
create mode 100644 docs/schema/reference/transportation/types/prohibited_transition_rule.md
create mode 100644 docs/schema/reference/transportation/types/prohibited_transition_rule.when.md
create mode 100644 docs/schema/reference/transportation/types/prohibited_transitions.md
create mode 100644 docs/schema/reference/transportation/types/rail_class.md
create mode 100644 docs/schema/reference/transportation/types/rail_flag.md
create mode 100644 docs/schema/reference/transportation/types/rail_flag_rule.md
create mode 100644 docs/schema/reference/transportation/types/rail_flags.md
create mode 100644 docs/schema/reference/transportation/types/road_class.md
create mode 100644 docs/schema/reference/transportation/types/road_flag.md
create mode 100644 docs/schema/reference/transportation/types/road_flag_rule.md
create mode 100644 docs/schema/reference/transportation/types/road_flags.md
create mode 100644 docs/schema/reference/transportation/types/road_surface.md
create mode 100644 docs/schema/reference/transportation/types/route_reference.md
create mode 100644 docs/schema/reference/transportation/types/routes.md
create mode 100644 docs/schema/reference/transportation/types/sequence_entry.md
create mode 100644 docs/schema/reference/transportation/types/speed.md
create mode 100644 docs/schema/reference/transportation/types/speed_limit_rule.md
create mode 100644 docs/schema/reference/transportation/types/speed_limit_rule.when.md
create mode 100644 docs/schema/reference/transportation/types/speed_limits.md
create mode 100644 docs/schema/reference/transportation/types/speed_value.md
create mode 100644 docs/schema/reference/transportation/types/subclass.md
create mode 100644 docs/schema/reference/transportation/types/subclass_rule.md
create mode 100644 docs/schema/reference/transportation/types/subclass_rules.md
create mode 100644 docs/schema/reference/transportation/types/subtype.md
create mode 100644 docs/schema/reference/transportation/types/surface_rule.md
create mode 100644 docs/schema/reference/transportation/types/surfaces.md
create mode 100644 docs/schema/reference/transportation/types/width.md
create mode 100644 docs/schema/reference/transportation/types/width_rule.md
create mode 100644 docs/schema/reference/transportation/types/width_rules.md
diff --git a/docs/schema/reference/.gitkeep b/docs/schema/reference/.gitkeep
deleted file mode 100644
index f4e78d65..00000000
--- a/docs/schema/reference/.gitkeep
+++ /dev/null
@@ -1,3 +0,0 @@
-Schema reference documentation files are generated at build time from overture-schema-codegen and dropped here.
-
-If you need a *complete* test build, open a pull request to trigger a docs build that will include the latest schema documentation.
diff --git a/docs/schema/reference/addresses/_category_.json b/docs/schema/reference/addresses/_category_.json
new file mode 100644
index 00000000..29c13add
--- /dev/null
+++ b/docs/schema/reference/addresses/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Addresses",
+ "position": 1
+}
diff --git a/docs/schema/reference/addresses/address.md b/docs/schema/reference/addresses/address.md
new file mode 100644
index 00000000..09066d62
--- /dev/null
+++ b/docs/schema/reference/addresses/address.md
@@ -0,0 +1,76 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# Address
+
+Addresses are structured labels for the geographic locations where businesses and individuals
+reside.
+
+While address formats around the world have some general points in common, the specifics vary
+extensively from place to place. The rules for dividing an address up into parts or fields vary,
+as do the names of those parts or fields.
+
+The address schema uses a simplified approach to capture the common structure of addresses
+worldwide while accommodating local variance. The schema is heavily based on the OpenAddresses
+([www.openaddresses.io](https://www.openaddresses.io)) project.
+
+For sub-country administrative levels (and non-administrative levels such as neighborhoods), the
+schema provides the `address_levels` field. This is where the names of cities and towns,
+provinces, state, and regions, and similar addressing units are found.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Position of the address. Addresses are point geometries.
*Allowed geometry types: Point* |
+| `theme` | `"addresses"` | |
+| `type` | `"address"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `address_levels[]` | `list<`[`AddressLevel`](types/address_level.md)`>` (optional) | Names of the sub-country addressing areas the address belongs to, including the city or locality, in descending order of generality.
The list is sorted so that the highest, or most general, level comes first (*e.g.*, region) and the lowest, or most particular level, comes last (*e.g.*, city or town).
The number of items in this list and their meaning is country-dependent. For example, in the United States, we expect two items: the state, and the locality or municipality within the state. Other countries might have as few as one, or even three or more.
When a specific level that is required for a country is not known. most likely because the data provider has not supplied it and we have not derived it from another source, the list item corresponding to that level must be present, but its `value` field should be omitted.
*Minimum length: 1*
*Maximum length: 5* |
+| `address_levels[].value` | [`StrippedString`](../system/stripped_string.md) (optional) | A string without leading or trailing whitespace |
+| `country` | [`CountryCodeAlpha2`](../system/country_code_alpha2.md) | The country the address belongs to, as an ISO 3166-1 alpha-2 country code. |
+| `number` | [`StrippedString`](../system/stripped_string.md) (optional) | The house number.
This field does not necessarily contain an integer or even a number. Values such as "74B", "189 1/2", and "208.5", where the non-integer or non-number part is part of the house number, not a unit number, are in common use.
*Minimum length: 1* |
+| `postal_city` | [`StrippedString`](../system/stripped_string.md) (optional) | The postal authority designated city name, if applicable.
In some countries or regions, a mailing address may need to specify a different city name than the city that actually contains the address coordinates. This optional field can be used to specify the alternate city name to use.
For example:
- The postal city for the US address *716 East County Road, Winchester, Indiana* is Ridgeville. - The postal city for the Slovenian address *Tomaj 71, 6221 Tomaj, Slovenia* is Dutovlje.
*Minimum length: 1* |
+| `postcode` | [`StrippedString`](../system/stripped_string.md) (optional) | The postal code.
*Minimum length: 1* |
+| `street` | [`StrippedString`](../system/stripped_string.md) (optional) | The street name.
The street name can include a type (*e.g.*, "Street" or "St", "Boulevard" or "Blvd", *etc.*) and a directional (*e.g.*, "NW" or "Northwest", "S" or "Sud"). Both type and directional, if present, may be either a prefix or a suffix to the primary name. They may either be fully spelled-out or abbreviated.
*Minimum length: 1* |
+| `unit` | [`StrippedString`](../system/stripped_string.md) (optional) | The secondary address unit designator.
In the case where the primary street address is divided into secondary units, which may be apartments, floors, or even buildings if the primary street address is a campus, this field names the specific secondary unit being addressed.
*Minimum length: 1* |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `416ab01c-d836-4c4f-aedc-2f30941ce94d` |
+| `bbox.xmin` | `-176.56381225585938` |
+| `bbox.xmax` | `-176.56378173828125` |
+| `bbox.ymin` | `-43.94719696044922` |
+| `bbox.ymax` | `-43.94718933105469` |
+| `geometry` | `POINT (-176.5637854 -43.9471955)` |
+| `theme` | `addresses` |
+| `type` | `address` |
+| `version` | `1` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenAddresses/LINZ` |
+| `sources[0].record_id` | `null` |
+| `sources[0].update_time` | `null` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `address_levels[0].value` | `Chatham Islands` |
+| `address_levels[1].value` | `Chatham Island` |
+| `country` | `NZ` |
+| `number` | `54` |
+| `postal_city` | `null` |
+| `postcode` | `null` |
+| `street` | `Tikitiki Hill Road` |
+| `unit` | `null` |
diff --git a/docs/schema/reference/addresses/types/_category_.json b/docs/schema/reference/addresses/types/_category_.json
new file mode 100644
index 00000000..a3ec0897
--- /dev/null
+++ b/docs/schema/reference/addresses/types/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Types"
+}
diff --git a/docs/schema/reference/addresses/types/address_level.md b/docs/schema/reference/addresses/types/address_level.md
new file mode 100644
index 00000000..741f1da1
--- /dev/null
+++ b/docs/schema/reference/addresses/types/address_level.md
@@ -0,0 +1,30 @@
+---
+hide_table_of_contents: true
+---
+
+# AddressLevel
+
+A sub-country addressing unit, such as a region, city, or neighborhood, that is less specific
+than a street name and not a postal code.
+
+In the following address, the terms `MontrΓ©al` and `QC` are address levels:
+
+```
+3998 Rue De Bullion, MontrΓ©al, QC H2W 2E4
+```
+
+The number of address levels per address is country-dependent.
+
+Other addressing systems may use the terms "administrative level" or "admin level" for the
+same concept. We have chosen the term "address level" to communicate the fact that in some
+countries and regions, address levels do not necessarily correspond to administrative units.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `value` | [`StrippedString`](../../system/stripped_string.md) (optional) | A string without leading or trailing whitespace
*Minimum length: 1* |
+
+## Used By
+
+- [`Address`](../address.md)
diff --git a/docs/schema/reference/base/_category_.json b/docs/schema/reference/base/_category_.json
new file mode 100644
index 00000000..b6b44478
--- /dev/null
+++ b/docs/schema/reference/base/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Base",
+ "position": 2
+}
diff --git a/docs/schema/reference/base/bathymetry.md b/docs/schema/reference/base/bathymetry.md
new file mode 100644
index 00000000..a584f769
--- /dev/null
+++ b/docs/schema/reference/base/bathymetry.md
@@ -0,0 +1,59 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# Bathymetry
+
+Bathymetry features provide topographic representations of underwater areas, such as parts of
+lake beds or ocean floors.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Shape of the underwater area, which may be a polygon or multi-polygon.
*Allowed geometry types: MultiPolygon, Polygon* |
+| `theme` | `"base"` | |
+| `type` | `"bathymetry"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `depth` | [`Depth`](types/depth.md) | Depth below surface level of the feature in meters. |
+| `cartography` | [`CartographicHints`](../core/cartographic_hints.md) (optional) | |
+| `cartography.prominence` | [`Prominence`](../core/prominence.md) (optional) | Subjective scale of feature significance or importance, with 1 being the least, and 100 being the most, significant.
This value can be used to help drive decisions about how and when to display a feature, and how to treat it relative to neighboring features.
When populated by Overture, this value is derived from various factors including, but not limited to: feature and subtype, population, and capital status. |
+| `cartography.min_zoom` | [`MinZoom`](../core/min_zoom.md) (optional) | Recommended minimum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels below this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
+| `cartography.max_zoom` | [`MaxZoom`](../core/max_zoom.md) (optional) | Recommended maximum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels above this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
+| `cartography.sort_key` | [`SortKey`](../core/sort_key.md) (optional) | Integer indicating the recommended order in which to draw features.
Features with a lower number should be drawn "in front" of features with a higher number. |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `5d40bd6c-db14-5492-b29f-5e25a59032bc` |
+| `bbox.xmin` | `-175.12791442871094` |
+| `bbox.xmax` | `-170.05111694335938` |
+| `bbox.ymin` | `-77.9718246459961` |
+| `bbox.ymax` | `-75.64299774169922` |
+| `geometry` | `MULTIPOLYGON (((-170.71296928 -76.744313428, -170.719841483 -76.757076376, -170.731061124 -76.761...` |
+| `theme` | `base` |
+| `type` | `bathymetry` |
+| `version` | `0` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `ETOPO/GLOBathy` |
+| `sources[0].record_id` | `2024-12-09T00:00:00.000Z` |
+| `sources[0].update_time` | `null` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `depth` | `500` |
+| `cartography.prominence` | `null` |
+| `cartography.min_zoom` | `null` |
+| `cartography.max_zoom` | `null` |
+| `cartography.sort_key` | `12` |
diff --git a/docs/schema/reference/base/infrastructure.md b/docs/schema/reference/base/infrastructure.md
new file mode 100644
index 00000000..678c9b64
--- /dev/null
+++ b/docs/schema/reference/base/infrastructure.md
@@ -0,0 +1,77 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# Infrastructure
+
+Infrastructure features provide basic information about real-world infrastructure entitites
+such as bridges, airports, runways, aerialways, communication towers, and power lines.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Geometry of the infrastructure feature, which may be a point, line string, polygon, or multi-polygon.
*Allowed geometry types: LineString, MultiPolygon, Point, Polygon* |
+| `theme` | `"base"` | |
+| `type` | `"infrastructure"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `class` | [`InfrastructureClass`](types/infrastructure_class.md) | |
+| `subtype` | [`InfrastructureSubtype`](types/infrastructure_subtype.md) | |
+| `height` | [`Height`](types/height.md) (optional) | Height of the feature in meters. |
+| `surface` | [`SurfaceMaterial`](types/surface_material.md) (optional) | |
+| `names` | [`Names`](../core/names.md) (optional) | |
+| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
+| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
+| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
+| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
+| `source_tags` | [`SourceTags`](types/source_tags.md) (map, optional) | Key-value pairs imported directly from the source data without change.
This field provides access to raw OSM entity tags for features sourced from OpenStreetMap. |
+| `wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `e9e3d506-89c0-3473-8cee-5e5ac6596d6c` |
+| `bbox.xmin` | `-180.0` |
+| `bbox.xmax` | `-179.99998474121094` |
+| `bbox.ymin` | `-82.42408752441406` |
+| `bbox.ymax` | `-82.42407989501953` |
+| `geometry` | `POINT (-179.9999994 -82.42408)` |
+| `theme` | `base` |
+| `type` | `infrastructure` |
+| `version` | `0` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenStreetMap` |
+| `sources[0].record_id` | `n7674174803@2` |
+| `sources[0].update_time` | `2023-04-07T17:37:48.000Z` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `class` | `information` |
+| `subtype` | `pedestrian` |
+| `height` | `null` |
+| `surface` | `null` |
+| `names.primary` | `1306 km to South Pole` |
+| `names.common` | `null` |
+| `names.rules` | `null` |
+| `level` | `null` |
+| `source_tags` | `{"description": "1036 km to South Pole.", "information": "route_marker", "note": "The road contin...` |
+| `wikidata` | `Q800558` |
diff --git a/docs/schema/reference/base/land.md b/docs/schema/reference/base/land.md
new file mode 100644
index 00000000..d432fc06
--- /dev/null
+++ b/docs/schema/reference/base/land.md
@@ -0,0 +1,85 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# Land
+
+Land features are representations of physical land surfaces.
+
+In Overture data releases, land features are sourced from OpenStreetMap.
+TODO. Finish this whenI get more info from Jennings.
+
+Physical representations of land surfaces.
+
+Global land derived from the inverse of OSM Coastlines. Translates `natural` tags from OpenStreetMap.
+
+TODO: Update this description when the relationship to `land_cover` is better understood.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Geometry of the land feature, which may be a point, line string, polygon, or multi-polygon.
*Allowed geometry types: LineString, MultiPolygon, Point, Polygon* |
+| `theme` | `"base"` | |
+| `type` | `"land"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `class` | [`LandClass`](types/land_class.md) (optional) | |
+| `subtype` | [`LandSubtype`](types/land_subtype.md) (optional) | |
+| `elevation` | [`Elevation`](types/elevation.md) (optional) | Elevation above sea level of the feature in meters. |
+| `surface` | [`SurfaceMaterial`](types/surface_material.md) (optional) | |
+| `names` | [`Names`](../core/names.md) (optional) | |
+| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
+| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
+| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
+| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
+| `source_tags` | [`SourceTags`](types/source_tags.md) (map, optional) | Key-value pairs imported directly from the source data without change.
This field provides access to raw OSM entity tags for features sourced from OpenStreetMap. |
+| `wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `70fc3596-a987-3fea-820c-c016c0a2f0da` |
+| `bbox.xmin` | `-178.7000274658203` |
+| `bbox.xmax` | `-178.6999969482422` |
+| `bbox.ymin` | `-85.45001220703125` |
+| `bbox.ymax` | `-85.44999694824219` |
+| `geometry` | `POINT (-178.7 -85.45)` |
+| `theme` | `base` |
+| `type` | `land` |
+| `version` | `0` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenStreetMap` |
+| `sources[0].record_id` | `n11693475112@1` |
+| `sources[0].update_time` | `2024-03-05T09:23:39.000Z` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `class` | `cliff` |
+| `subtype` | `physical` |
+| `elevation` | `null` |
+| `surface` | `null` |
+| `names.primary` | `Dismal Buttress` |
+| `names.common` | `null` |
+| `names.rules` | `null` |
+| `level` | `null` |
+| `source_tags` | `{"natural": "cliff", "ref:linz:place_id": "12318", "wikipedia": "en:Dismal Buttress"}` |
+| `wikidata` | `Q5282342` |
diff --git a/docs/schema/reference/base/land_cover.md b/docs/schema/reference/base/land_cover.md
new file mode 100644
index 00000000..da55573a
--- /dev/null
+++ b/docs/schema/reference/base/land_cover.md
@@ -0,0 +1,66 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# LandCover
+
+Land cover features indicate the primary natural or artificial surface material covering a land
+area on the earth, including vegetation types like forests and crops, built environments like
+cities, and natural surfaces like wetlands or barren ground.
+
+Land cover features relate to `LandUse` features in the following way: land cover is the
+physical thing covering the land, while land use is the human use to which the land is being
+put.
+
+TODO: Explain relationship to `Land` features.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Shape of the covered land area, which may be a polygon or multi-polygon.
*Allowed geometry types: MultiPolygon, Polygon* |
+| `theme` | `"base"` | |
+| `type` | `"land_cover"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `subtype` | [`LandCoverSubtype`](types/land_cover_subtype.md) | |
+| `cartography` | [`CartographicHints`](../core/cartographic_hints.md) (optional) | |
+| `cartography.prominence` | [`Prominence`](../core/prominence.md) (optional) | Subjective scale of feature significance or importance, with 1 being the least, and 100 being the most, significant.
This value can be used to help drive decisions about how and when to display a feature, and how to treat it relative to neighboring features.
When populated by Overture, this value is derived from various factors including, but not limited to: feature and subtype, population, and capital status. |
+| `cartography.min_zoom` | [`MinZoom`](../core/min_zoom.md) (optional) | Recommended minimum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels below this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
+| `cartography.max_zoom` | [`MaxZoom`](../core/max_zoom.md) (optional) | Recommended maximum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels above this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
+| `cartography.sort_key` | [`SortKey`](../core/sort_key.md) (optional) | Integer indicating the recommended order in which to draw features.
Features with a lower number should be drawn "in front" of features with a higher number. |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `c347312d-012b-5e73-8bd3-a10d04b2981d` |
+| `bbox.xmin` | `-180.0001983642578` |
+| `bbox.xmax` | `-179.99313354492188` |
+| `bbox.ymin` | `65.95172119140625` |
+| `bbox.ymax` | `65.96218872070312` |
+| `geometry` | `POLYGON ((-179.99877531181616 65.95172539425603, -179.99740705536922 65.95265577758867, -179.9975...` |
+| `theme` | `base` |
+| `type` | `land_cover` |
+| `version` | `0` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `ESA WorldCover` |
+| `sources[0].record_id` | `null` |
+| `sources[0].update_time` | `2024-11-07T00:00:00.000Z` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `subtype` | `barren` |
+| `cartography.prominence` | `null` |
+| `cartography.min_zoom` | `8` |
+| `cartography.max_zoom` | `15` |
+| `cartography.sort_key` | `3` |
diff --git a/docs/schema/reference/base/land_use.md b/docs/schema/reference/base/land_use.md
new file mode 100644
index 00000000..dfdf1cf8
--- /dev/null
+++ b/docs/schema/reference/base/land_use.md
@@ -0,0 +1,82 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# LandUse
+
+Land use features specify the predominant human use of an area of land, for example commercial
+activity, recreation, farming, housing, education, or military use.
+
+Land use features relate to `LandCover` features in the following way: land use is the human
+human activity being done with the land, while land cover is the physical thing that covers it.
+
+TODO: Explain relationship to `Land` features.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Geometry of the land use area, which may be a point, line string, polygon, or multi-polygon.
*Allowed geometry types: LineString, MultiPolygon, Point, Polygon* |
+| `theme` | `"base"` | |
+| `type` | `"land_use"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `class` | [`LandUseClass`](types/land_use_class.md) | |
+| `subtype` | [`LandUseSubtype`](types/land_use_subtype.md) | |
+| `elevation` | [`Elevation`](types/elevation.md) (optional) | Elevation above sea level of the feature in meters. |
+| `surface` | [`SurfaceMaterial`](types/surface_material.md) (optional) | |
+| `names` | [`Names`](../core/names.md) (optional) | |
+| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
+| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
+| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
+| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
+| `source_tags` | [`SourceTags`](types/source_tags.md) (map, optional) | Key-value pairs imported directly from the source data without change.
This field provides access to raw OSM entity tags for features sourced from OpenStreetMap. |
+| `wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `1e1f6095-5bd2-3fdb-a422-41351b848e9d` |
+| `bbox.xmin` | `-176.56825256347656` |
+| `bbox.xmax` | `-176.56231689453125` |
+| `bbox.ymin` | `-43.96001052856445` |
+| `bbox.ymax` | `-43.95420837402344` |
+| `geometry` | `POLYGON ((-176.5623454 -43.9567812, -176.5627644 -43.9561272, -176.5626898 -43.9557432, -176.5624...` |
+| `theme` | `base` |
+| `type` | `land_use` |
+| `version` | `0` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenStreetMap` |
+| `sources[0].record_id` | `w56117029@3` |
+| `sources[0].update_time` | `2010-04-24T22:35:13.000Z` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `class` | `golf_course` |
+| `subtype` | `golf` |
+| `elevation` | `null` |
+| `surface` | `null` |
+| `names.primary` | `Chatham Islands Golf Club` |
+| `names.common` | `null` |
+| `names.rules` | `null` |
+| `level` | `null` |
+| `source_tags` | `{"LINZ:source_version": "V16", "attribution": "http://wiki.osm.org/wiki/Attribution#LINZ", "leisu...` |
+| `wikidata` | `null` |
diff --git a/docs/schema/reference/base/types/_category_.json b/docs/schema/reference/base/types/_category_.json
new file mode 100644
index 00000000..a3ec0897
--- /dev/null
+++ b/docs/schema/reference/base/types/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Types"
+}
diff --git a/docs/schema/reference/base/types/depth.md b/docs/schema/reference/base/types/depth.md
new file mode 100644
index 00000000..f6b96f3e
--- /dev/null
+++ b/docs/schema/reference/base/types/depth.md
@@ -0,0 +1,15 @@
+# Depth
+
+Depth below surface level of the feature in meters.
+
+Underlying type: `int32`
+
+## Constraints
+
+- `β₯ 0`
+- `β₯ -2147483648` (from [`int32`](../../system/primitive/primitives.md))
+- `β€ 2147483647` (from [`int32`](../../system/primitive/primitives.md))
+
+## Used By
+
+- [`Bathymetry`](../bathymetry.md)
diff --git a/docs/schema/reference/base/types/elevation.md b/docs/schema/reference/base/types/elevation.md
new file mode 100644
index 00000000..2bfb7d12
--- /dev/null
+++ b/docs/schema/reference/base/types/elevation.md
@@ -0,0 +1,16 @@
+# Elevation
+
+Elevation above sea level of the feature in meters.
+
+Underlying type: `int32`
+
+## Constraints
+
+- `β€ 9000`
+- `β₯ -2147483648` (from [`int32`](../../system/primitive/primitives.md))
+- `β€ 2147483647` (from [`int32`](../../system/primitive/primitives.md))
+
+## Used By
+
+- [`Land`](../land.md)
+- [`LandUse`](../land_use.md)
diff --git a/docs/schema/reference/base/types/height.md b/docs/schema/reference/base/types/height.md
new file mode 100644
index 00000000..6a4b542f
--- /dev/null
+++ b/docs/schema/reference/base/types/height.md
@@ -0,0 +1,13 @@
+# Height
+
+Height of the feature in meters.
+
+Underlying type: `float64`
+
+## Constraints
+
+- `> 0`
+
+## Used By
+
+- [`Infrastructure`](../infrastructure.md)
diff --git a/docs/schema/reference/base/types/infrastructure_class.md b/docs/schema/reference/base/types/infrastructure_class.md
new file mode 100644
index 00000000..b8cc4043
--- /dev/null
+++ b/docs/schema/reference/base/types/infrastructure_class.md
@@ -0,0 +1,176 @@
+# InfrastructureClass
+
+Further classification of the type of infrastructure.
+
+The infrastructure class adds detail to the broad classification of `InfrastructureSubtype`.
+
+## Values
+
+- `aerialway_station`
+- `airport`
+- `airport_gate`
+- `airstrip`
+- `apron`
+- `aqueduct`
+- `artwork`
+- `atm`
+- `barrier`
+- `bell_tower`
+- `bench`
+- `bicycle_parking`
+- `bicycle_rental`
+- `block`
+- `boardwalk`
+- `bollard`
+- `border_control`
+- `breakwater`
+- `bridge`
+- `bridge_support`
+- `bump_gate`
+- `bus_route`
+- `bus_station`
+- `bus_stop`
+- `bus_trap`
+- `cable`
+- `cable_barrier`
+- `cable_car`
+- `cable_distribution`
+- `camp_site`
+- `cantilever`
+- `catenary_mast`
+- `cattle_grid`
+- `chain`
+- `chair_lift`
+- `charging_station`
+- `city_wall`
+- `communication_line`
+- `communication_pole`
+- `communication_tower`
+- `connection`
+- `cooling`
+- `covered`
+- `crossing`
+- `cutline`
+- `cycle_barrier`
+- `dam`
+- `defensive`
+- `ditch`
+- `diving`
+- `drag_lift`
+- `drain`
+- `drinking_water`
+- `entrance`
+- `fence`
+- `ferry_terminal`
+- `fire_hydrant`
+- `fountain`
+- `full-height_turnstile`
+- `gasometer`
+- `gate`
+- `generator`
+- `give_way`
+- `gondola`
+- `goods`
+- `guard_rail`
+- `hampshire_gate`
+- `handrail`
+- `hedge`
+- `height_restrictor`
+- `heliostat`
+- `helipad`
+- `heliport`
+- `hose`
+- `information`
+- `insulator`
+- `international_airport`
+- `j-bar`
+- `jersey_barrier`
+- `kerb`
+- `kissing_gate`
+- `launchpad`
+- `lift_gate`
+- `lighting`
+- `lightning_protection`
+- `magic_carpet`
+- `manhole`
+- `milestone`
+- `military_airport`
+- `minaret`
+- `minor_line`
+- `mixed_lift`
+- `mobile_phone_tower`
+- `monitoring`
+- `motorcycle_parking`
+- `motorway_junction`
+- `movable`
+- `municipal_airport`
+- `observation`
+- `parking`
+- `parking_entrance`
+- `parking_space`
+- `pedestrian_crossing`
+- `picnic_table`
+- `pier`
+- `pipeline`
+- `plant`
+- `planter`
+- `platform`
+- `platter`
+- `portal`
+- `post_box`
+- `power_line`
+- `power_pole`
+- `power_tower`
+- `private_airport`
+- `pylon`
+- `quay`
+- `radar`
+- `railway_halt`
+- `railway_station`
+- `recycling`
+- `regional_airport`
+- `reservoir_covered`
+- `retaining_wall`
+- `roller_coaster`
+- `rope_tow`
+- `runway`
+- `sally_port`
+- `seaplane_airport`
+- `sewer`
+- `silo`
+- `siren`
+- `stile`
+- `stop`
+- `stop_position`
+- `stopway`
+- `storage_tank`
+- `street_cabinet`
+- `street_lamp`
+- `substation`
+- `subway_station`
+- `swing_gate`
+- `switch`
+- `t-bar`
+- `taxilane`
+- `taxiway`
+- `terminal`
+- `toilets`
+- `toll_booth`
+- `traffic_signals`
+- `transformer`
+- `trestle`
+- `utility_pole`
+- `vending_machine`
+- `viaduct`
+- `viewpoint`
+- `wall`
+- `waste_basket`
+- `waste_disposal`
+- `watchtower`
+- `water_tower`
+- `weir`
+- `zip_line`
+
+## Used By
+
+- [`Infrastructure`](../infrastructure.md)
diff --git a/docs/schema/reference/base/types/infrastructure_subtype.md b/docs/schema/reference/base/types/infrastructure_subtype.md
new file mode 100644
index 00000000..c7432d70
--- /dev/null
+++ b/docs/schema/reference/base/types/infrastructure_subtype.md
@@ -0,0 +1,30 @@
+# InfrastructureSubtype
+
+Broadest classification of the type of infrastructure.
+
+This broad classification can be refined by `InfrastructureClass`.
+
+## Values
+
+- `aerialway`
+- `airport`
+- `barrier`
+- `bridge`
+- `communication`
+- `emergency`
+- `manhole`
+- `pedestrian`
+- `pier`
+- `power`
+- `quay`
+- `recreation`
+- `tower`
+- `transit`
+- `transportation`
+- `utility`
+- `waste_management`
+- `water`
+
+## Used By
+
+- [`Infrastructure`](../infrastructure.md)
diff --git a/docs/schema/reference/base/types/land_class.md b/docs/schema/reference/base/types/land_class.md
new file mode 100644
index 00000000..8c63ddaf
--- /dev/null
+++ b/docs/schema/reference/base/types/land_class.md
@@ -0,0 +1,54 @@
+# LandClass
+
+Further classification of the land.
+
+The land class adds detail to the broad classification of `LandSubtype`.
+
+## Values
+
+- `archipelago`
+- `bare_rock`
+- `beach`
+- `cave_entrance`
+- `cliff`
+- `desert`
+- `dune`
+- `fell`
+- `forest`
+- `glacier`
+- `grass`
+- `grassland`
+- `heath`
+- `hill`
+- `island`
+- `islet`
+- `land`
+- `meadow`
+- `meteor_crater`
+- `mountain_range`
+- `peak`
+- `peninsula`
+- `plateau`
+- `reef`
+- `ridge`
+- `rock`
+- `saddle`
+- `sand`
+- `scree`
+- `scrub`
+- `shingle`
+- `shrub`
+- `shrubbery`
+- `stone`
+- `tree`
+- `tree_row`
+- `tundra`
+- `valley`
+- `volcanic_caldera_rim`
+- `volcano`
+- `wetland`
+- `wood`
+
+## Used By
+
+- [`Land`](../land.md)
diff --git a/docs/schema/reference/base/types/land_cover_subtype.md b/docs/schema/reference/base/types/land_cover_subtype.md
new file mode 100644
index 00000000..8a9676ae
--- /dev/null
+++ b/docs/schema/reference/base/types/land_cover_subtype.md
@@ -0,0 +1,20 @@
+# LandCoverSubtype
+
+Primary or dominant material covering the land.
+
+## Values
+
+- `barren`
+- `crop`
+- `forest`
+- `grass`
+- `mangrove`
+- `moss`
+- `shrub`
+- `snow`
+- `urban`
+- `wetland`
+
+## Used By
+
+- [`LandCover`](../land_cover.md)
diff --git a/docs/schema/reference/base/types/land_subtype.md b/docs/schema/reference/base/types/land_subtype.md
new file mode 100644
index 00000000..9e92c91a
--- /dev/null
+++ b/docs/schema/reference/base/types/land_subtype.md
@@ -0,0 +1,25 @@
+# LandSubtype
+
+Broadest classification of the land.
+
+This broad classification can be refined by `LandClass`.
+
+## Values
+
+- `crater`
+- `desert`
+- `forest`
+- `glacier`
+- `grass`
+- `land`
+- `physical`
+- `reef`
+- `rock`
+- `sand`
+- `shrub`
+- `tree`
+- `wetland`
+
+## Used By
+
+- [`Land`](../land.md)
diff --git a/docs/schema/reference/base/types/land_use_class.md b/docs/schema/reference/base/types/land_use_class.md
new file mode 100644
index 00000000..5c9531d8
--- /dev/null
+++ b/docs/schema/reference/base/types/land_use_class.md
@@ -0,0 +1,121 @@
+# LandUseClass
+
+Further classification of the land use.
+
+The land use class adds detail to the broad classification of `LandUseSubtype`.
+
+## Values
+
+- `aboriginal_land`
+- `airfield`
+- `allotments`
+- `animal_keeping`
+- `aquaculture`
+- `barracks`
+- `base`
+- `beach_resort`
+- `brownfield`
+- `bunker`
+- `camp_site`
+- `cemetery`
+- `clinic`
+- `college`
+- `commercial`
+- `connection`
+- `construction`
+- `danger_area`
+- `doctors`
+- `dog_park`
+- `downhill`
+- `driving_range`
+- `driving_school`
+- `education`
+- `environmental`
+- `fairway`
+- `farmland`
+- `farmyard`
+- `fatbike`
+- `flowerbed`
+- `forest`
+- `garages`
+- `garden`
+- `golf_course`
+- `grass`
+- `grave_yard`
+- `green`
+- `greenfield`
+- `greenhouse_horticulture`
+- `highway`
+- `hike`
+- `hospital`
+- `ice_skate`
+- `industrial`
+- `institutional`
+- `kindergarten`
+- `landfill`
+- `lateral_water_hazard`
+- `logging`
+- `marina`
+- `meadow`
+- `military`
+- `military_hospital`
+- `military_school`
+- `music_school`
+- `national_park`
+- `natural_monument`
+- `nature_reserve`
+- `naval_base`
+- `nordic`
+- `nuclear_explosion_site`
+- `obstacle_course`
+- `orchard`
+- `park`
+- `peat_cutting`
+- `pedestrian`
+- `pitch`
+- `plant_nursery`
+- `playground`
+- `plaza`
+- `protected`
+- `protected_landscape_seascape`
+- `quarry`
+- `railway`
+- `range`
+- `recreation_ground`
+- `religious`
+- `residential`
+- `resort`
+- `retail`
+- `rough`
+- `salt_pond`
+- `school`
+- `schoolyard`
+- `ski_jump`
+- `skitour`
+- `sled`
+- `sleigh`
+- `snow_park`
+- `species_management_area`
+- `stadium`
+- `state_park`
+- `static_caravan`
+- `strict_nature_reserve`
+- `tee`
+- `theme_park`
+- `track`
+- `traffic_island`
+- `training_area`
+- `trench`
+- `university`
+- `village_green`
+- `vineyard`
+- `water_hazard`
+- `water_park`
+- `wilderness_area`
+- `winter_sports`
+- `works`
+- `zoo`
+
+## Used By
+
+- [`LandUse`](../land_use.md)
diff --git a/docs/schema/reference/base/types/land_use_subtype.md b/docs/schema/reference/base/types/land_use_subtype.md
new file mode 100644
index 00000000..3acc75d2
--- /dev/null
+++ b/docs/schema/reference/base/types/land_use_subtype.md
@@ -0,0 +1,36 @@
+# LandUseSubtype
+
+Broadest classification of the land use.
+
+This broad classification can be refined by `LandUseClass`.
+
+## Values
+
+- `agriculture`
+- `aquaculture`
+- `campground`
+- `cemetery`
+- `construction`
+- `developed`
+- `education`
+- `entertainment`
+- `golf`
+- `grass`
+- `horticulture`
+- `landfill`
+- `managed`
+- `medical`
+- `military`
+- `park`
+- `pedestrian`
+- `protected`
+- `recreation`
+- `religious`
+- `residential`
+- `resource_extraction`
+- `transportation`
+- `winter_sports`
+
+## Used By
+
+- [`LandUse`](../land_use.md)
diff --git a/docs/schema/reference/base/types/source_tags.md b/docs/schema/reference/base/types/source_tags.md
new file mode 100644
index 00000000..aaac9760
--- /dev/null
+++ b/docs/schema/reference/base/types/source_tags.md
@@ -0,0 +1,15 @@
+# SourceTags
+
+Key-value pairs imported directly from the source data without change.
+
+This field provides access to raw OSM entity tags for features sourced from
+OpenStreetMap.
+
+Underlying type: `map`
+
+## Used By
+
+- [`Infrastructure`](../infrastructure.md)
+- [`Land`](../land.md)
+- [`LandUse`](../land_use.md)
+- [`Water`](../water.md)
diff --git a/docs/schema/reference/base/types/surface_material.md b/docs/schema/reference/base/types/surface_material.md
new file mode 100644
index 00000000..707f5a6a
--- /dev/null
+++ b/docs/schema/reference/base/types/surface_material.md
@@ -0,0 +1,36 @@
+# SurfaceMaterial
+
+Material that makes up the surface of `Infrastructure` and `Land` features.
+
+## Values
+
+- `asphalt`
+- `cobblestone`
+- `compacted`
+- `concrete`
+- `concrete_plates`
+- `dirt`
+- `earth`
+- `fine_gravel`
+- `grass`
+- `gravel`
+- `ground`
+- `paved`
+- `paving_stones`
+- `pebblestone`
+- `recreation_grass`
+- `recreation_paved`
+- `recreation_sand`
+- `rubber`
+- `sand`
+- `sett`
+- `tartan`
+- `unpaved`
+- `wood`
+- `woodchips`
+
+## Used By
+
+- [`Infrastructure`](../infrastructure.md)
+- [`Land`](../land.md)
+- [`LandUse`](../land_use.md)
diff --git a/docs/schema/reference/base/types/water_class.md b/docs/schema/reference/base/types/water_class.md
new file mode 100644
index 00000000..def472f9
--- /dev/null
+++ b/docs/schema/reference/base/types/water_class.md
@@ -0,0 +1,47 @@
+# WaterClass
+
+Further description of the type of water body.
+
+The water class adds detail to the broad classification of `WaterSubtype`.
+
+## Values
+
+- `basin`
+- `bay`
+- `blowhole`
+- `canal`
+- `cape`
+- `ditch`
+- `dock`
+- `drain`
+- `fairway`
+- `fish_pass`
+- `fishpond`
+- `geyser`
+- `hot_spring`
+- `lagoon`
+- `lake`
+- `moat`
+- `ocean`
+- `oxbow`
+- `pond`
+- `reflecting_pool`
+- `reservoir`
+- `river`
+- `salt_pond`
+- `sea`
+- `sewage`
+- `shoal`
+- `spring`
+- `strait`
+- `stream`
+- `swimming_pool`
+- `tidal_channel`
+- `wastewater`
+- `water`
+- `water_storage`
+- `waterfall`
+
+## Used By
+
+- [`Water`](../water.md)
diff --git a/docs/schema/reference/base/types/water_subtype.md b/docs/schema/reference/base/types/water_subtype.md
new file mode 100644
index 00000000..987dc1af
--- /dev/null
+++ b/docs/schema/reference/base/types/water_subtype.md
@@ -0,0 +1,24 @@
+# WaterSubtype
+
+The broad classification of water body such as river, ocean or lake.
+
+This broad classification can be refined using `WaterClass`.
+
+## Values
+
+- `canal`
+- `human_made`
+- `lake`
+- `ocean`
+- `physical`
+- `pond`
+- `reservoir`
+- `river`
+- `spring`
+- `stream`
+- `wastewater`
+- `water`
+
+## Used By
+
+- [`Water`](../water.md)
diff --git a/docs/schema/reference/base/water.md b/docs/schema/reference/base/water.md
new file mode 100644
index 00000000..57cab194
--- /dev/null
+++ b/docs/schema/reference/base/water.md
@@ -0,0 +1,98 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# Water
+
+Water features represent ocean and inland water bodies.
+
+In Overture data releases, water features are sourced from OpenStreetMap. There are two main
+categories of water feature: ocean and inland water bodies.
+
+Ocean
+-----
+The `subytpe` value `"ocean"` indicates an ocean area feature whose geometry represents the
+surface area of an ocean or part of an ocean. Ocean area may be tiled into many small polygons
+of consistent complexity to ensure manageable geometry. In Overture data releases, ocean area
+features are created from OpenStreetMap coastlines data (`natural=coastline`) using a QA'd
+version of the output from the OSMCoastline tool. In aggregate, all the ocean area features
+represent the inverse of the land features with subtype `"land"` and class `"land"`.
+
+The names and recommended label position for oceans and seas can be found in features with the
+subtype `"physical"` and the class `"ocean"` or `"sea"`.
+
+Inland Water
+------------
+Subtypes other than `"ocean"` (and `"physical"`) represent inland water bodies. In Overture data
+releases, these features are sourced from the OpenStreetMap tag `natural=*` where the tag value
+indicates a water body, as well as the tags `natural=water`, `waterway=*`,
+and `water=*`.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Geometry of the water feature, which may be a point, line string, polygon, or multi-polygon.
*Allowed geometry types: LineString, MultiPolygon, Point, Polygon* |
+| `theme` | `"base"` | |
+| `type` | `"water"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `class` | [`WaterClass`](types/water_class.md) (optional) | |
+| `subtype` | [`WaterSubtype`](types/water_subtype.md) (optional) | |
+| `is_intermittent` | `boolean` (optional) | Whether the water body exists intermittently, not permanently
*`strict=True`* |
+| `is_salt` | `boolean` (optional) | Whether the water body contains salt water
*`strict=True`* |
+| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
+| `names` | [`Names`](../core/names.md) (optional) | |
+| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
+| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
+| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
+| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+| `source_tags` | [`SourceTags`](types/source_tags.md) (map, optional) | Key-value pairs imported directly from the source data without change.
This field provides access to raw OSM entity tags for features sourced from OpenStreetMap. |
+| `wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `6bbb5fe5-bf26-3efa-b120-0a7079b60840` |
+| `bbox.xmin` | `-177.03179931640625` |
+| `bbox.xmax` | `-177.0317840576172` |
+| `bbox.ymin` | `-84.93480682373047` |
+| `bbox.ymax` | `-84.9347915649414` |
+| `geometry` | `POINT (-177.031799 -84.934793)` |
+| `theme` | `base` |
+| `type` | `water` |
+| `version` | `0` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenStreetMap` |
+| `sources[0].record_id` | `n11109190647@2` |
+| `sources[0].update_time` | `2024-02-11T05:52:05.000Z` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `class` | `cape` |
+| `subtype` | `physical` |
+| `is_intermittent` | `null` |
+| `is_salt` | `null` |
+| `level` | `null` |
+| `names.primary` | `Thanksgiving Point` |
+| `names.common` | `null` |
+| `names.rules` | `null` |
+| `source_tags` | `{"natural": "cape", "ref:linz:place_id": "13433"}` |
+| `wikidata` | `Q33140589` |
diff --git a/docs/schema/reference/buildings/_category_.json b/docs/schema/reference/buildings/_category_.json
new file mode 100644
index 00000000..3e85a3e7
--- /dev/null
+++ b/docs/schema/reference/buildings/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Buildings",
+ "position": 3
+}
diff --git a/docs/schema/reference/buildings/building.md b/docs/schema/reference/buildings/building.md
new file mode 100644
index 00000000..4d455505
--- /dev/null
+++ b/docs/schema/reference/buildings/building.md
@@ -0,0 +1,102 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# Building
+
+Buildings are man-made structures with roofs that exist permanently in one place.
+
+A building's geometry represents the two-dimensional footprint of the building as viewed from
+directly above, looking down. Fields such as `height` and `num_floors` allow the
+three-dimensional shape to be approximated. Some buildings, identified by the `has_parts` field,
+have associated `BuildingPart` features which can be used to generate a more representative 3D
+model of the building.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | The building's footprint or roofprint (if traced from aerial/satellite imagery).
*Allowed geometry types: MultiPolygon, Polygon* |
+| `theme` | `"buildings"` | |
+| `type` | `"building"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `subtype` | [`BuildingSubtype`](types/building_subtype.md) (optional) | A broad classification of the current use and purpose of the building.
If the current use of the building no longer accords with the original built purpose, the current use should be specified. For example, a building built as a train station but later converted into a shopping mall would have the value `"commercial"` rather than `"transportation"`. |
+| `class` | [`BuildingClass`](types/building_class.md) (optional) | A more specific classification of the current use and purpose of the building.
If the current use of the building no longer accords with the original built purpose, the current use should be specified. |
+| `has_parts` | `boolean` (optional) | Whether the building has associated building part features
*`strict=True`* |
+| `names` | [`Names`](../core/names.md) (optional) | |
+| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
+| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
+| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
+| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
+| `height` | [`float64`](../system/primitive/primitives.md) (optional) | Height of the building or part in meters.
This is the distance from the lowest point to the highest point.
*`> 0`* |
+| `is_underground` | `boolean` (optional) | Whether the entire building or part is completely below ground.
The underground flag is useful for display purposes. Buildings and building parts that are entirely below ground can be styled differently or omitted from the rendered image.
This flag is conceptually different from the `level` field, which indicates relative z-ordering and, notably, can be negative even if the building is entirely above-ground.
*`strict=True`* |
+| `num_floors` | [`int32`](../system/primitive/primitives.md) (optional) | Number of above-ground floors of the building or part.
*`> 0`* |
+| `num_floors_underground` | [`int32`](../system/primitive/primitives.md) (optional) | Number of below-ground floors of the building or part.
*`> 0`* |
+| `min_height` | [`float64`](../system/primitive/primitives.md) (optional) | Altitude above ground where the bottom of the building or building part starts.
If present, this value indicates that the lowest part of the building or building part starts is above ground level. |
+| `min_floor` | [`int32`](../system/primitive/primitives.md) (optional) | Start floor of this building or part.
If present, this value indicates that the building or part is "floating" and its bottom-most floor is above ground level, usually because it is part of a larger building in which some parts do reach down to ground level. An example is a building that has an entry road or driveway at ground level into an interior courtyard, where part of the building bridges above the entry road. This property may sometimes be populated when `min_height` is missing and in these cases can be used as a proxy for `min_height`.
*`> 0`* |
+| `facade_color` | [`HexColor`](../system/hex_color.md) (optional) | Facade color in `#rgb` or `#rrggbb` hex notation |
+| `facade_material` | [`FacadeMaterial`](types/facade_material.md) (optional) | Outer surface material of the facade |
+| `roof_material` | [`RoofMaterial`](types/roof_material.md) (optional) | Outer surface material of the roof |
+| `roof_shape` | [`RoofShape`](types/roof_shape.md) (optional) | Shape of the roof |
+| `roof_direction` | [`float64`](../system/primitive/primitives.md) (optional) | Bearing of the roof ridge line in degrees
*`β₯ 0`*
*`< 360`* |
+| `roof_orientation` | [`RoofOrientation`](types/roof_orientation.md) (optional) | Orientation of the roof shape relative to the footprint shape |
+| `roof_color` | [`HexColor`](../system/hex_color.md) (optional) | The roof color in `#rgb` or `#rrggbb` hex notation |
+| `roof_height` | [`float64`](../system/primitive/primitives.md) (optional) | Height of the roof in meters.
This is the distance from the base of the roof to its highest point. |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `148f35b1-7bc1-4180-9280-10d39b13883b` |
+| `bbox.xmin` | `-176.643798828125` |
+| `bbox.xmax` | `-176.64349365234375` |
+| `bbox.ymin` | `-43.9938850402832` |
+| `bbox.ymax` | `-43.993709564208984` |
+| `geometry` | `POLYGON ((-176.6435004 -43.9938042, -176.6435738 -43.9937107, -176.6437726 -43.9937913, -176.6436...` |
+| `theme` | `buildings` |
+| `type` | `building` |
+| `version` | `1` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenStreetMap` |
+| `sources[0].record_id` | `w519166507@1` |
+| `sources[0].update_time` | `2017-08-27T21:39:50.000Z` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `subtype` | `null` |
+| `class` | `null` |
+| `has_parts` | `false` |
+| `names` | `null` |
+| `level` | `null` |
+| `height` | `null` |
+| `is_underground` | `false` |
+| `num_floors` | `null` |
+| `num_floors_underground` | `null` |
+| `min_height` | `null` |
+| `min_floor` | `null` |
+| `facade_color` | `null` |
+| `facade_material` | `null` |
+| `roof_material` | `null` |
+| `roof_shape` | `null` |
+| `roof_direction` | `null` |
+| `roof_orientation` | `null` |
+| `roof_color` | `null` |
+| `roof_height` | `null` |
diff --git a/docs/schema/reference/buildings/building_part.md b/docs/schema/reference/buildings/building_part.md
new file mode 100644
index 00000000..acbcfd05
--- /dev/null
+++ b/docs/schema/reference/buildings/building_part.md
@@ -0,0 +1,101 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# BuildingPart
+
+Building parts represent parts of larger building features. They allow buildings to be modeled
+in rich detail suitable for creating realistic 3D models.
+
+Every building part is associated with a parent `Building` feature via the `building_id` field.
+In addition, a building part has a footprint geometry and may include additional details such as
+its height, the number of floors, and the color and material of its facade and roof.
+
+Building parts can float or be stacked on top of each other. The `min_height`, `min_floor`,
+`height`, and `num_floors`, fields can be used to arrange the parts correctly along the
+vertical dimension.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | The footprint or roofprint of the building part.
*Allowed geometry types: MultiPolygon, Polygon* |
+| `theme` | `"buildings"` | |
+| `type` | `"building_part"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `building_id` | [`Id`](../system/ref/id.md) | The building to which this part belongs
*References [`Building`](building.md) (belongs to)* |
+| `names` | [`Names`](../core/names.md) (optional) | |
+| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
+| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
+| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
+| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+| `level` | [`Level`](../core/level.md) (optional) | Z-order of the feature where 0 is visual level |
+| `height` | [`float64`](../system/primitive/primitives.md) (optional) | Height of the building or part in meters.
This is the distance from the lowest point to the highest point.
*`> 0`* |
+| `is_underground` | `boolean` (optional) | Whether the entire building or part is completely below ground.
The underground flag is useful for display purposes. Buildings and building parts that are entirely below ground can be styled differently or omitted from the rendered image.
This flag is conceptually different from the `level` field, which indicates relative z-ordering and, notably, can be negative even if the building is entirely above-ground.
*`strict=True`* |
+| `num_floors` | [`int32`](../system/primitive/primitives.md) (optional) | Number of above-ground floors of the building or part.
*`> 0`* |
+| `num_floors_underground` | [`int32`](../system/primitive/primitives.md) (optional) | Number of below-ground floors of the building or part.
*`> 0`* |
+| `min_height` | [`float64`](../system/primitive/primitives.md) (optional) | Altitude above ground where the bottom of the building or building part starts.
If present, this value indicates that the lowest part of the building or building part starts is above ground level. |
+| `min_floor` | [`int32`](../system/primitive/primitives.md) (optional) | Start floor of this building or part.
If present, this value indicates that the building or part is "floating" and its bottom-most floor is above ground level, usually because it is part of a larger building in which some parts do reach down to ground level. An example is a building that has an entry road or driveway at ground level into an interior courtyard, where part of the building bridges above the entry road. This property may sometimes be populated when `min_height` is missing and in these cases can be used as a proxy for `min_height`.
*`> 0`* |
+| `facade_color` | [`HexColor`](../system/hex_color.md) (optional) | Facade color in `#rgb` or `#rrggbb` hex notation |
+| `facade_material` | [`FacadeMaterial`](types/facade_material.md) (optional) | Outer surface material of the facade |
+| `roof_material` | [`RoofMaterial`](types/roof_material.md) (optional) | Outer surface material of the roof |
+| `roof_shape` | [`RoofShape`](types/roof_shape.md) (optional) | Shape of the roof |
+| `roof_direction` | [`float64`](../system/primitive/primitives.md) (optional) | Bearing of the roof ridge line in degrees
*`β₯ 0`*
*`< 360`* |
+| `roof_orientation` | [`RoofOrientation`](types/roof_orientation.md) (optional) | Orientation of the roof shape relative to the footprint shape |
+| `roof_color` | [`HexColor`](../system/hex_color.md) (optional) | The roof color in `#rgb` or `#rrggbb` hex notation |
+| `roof_height` | [`float64`](../system/primitive/primitives.md) (optional) | Height of the roof in meters.
This is the distance from the base of the roof to its highest point. |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `19412d64-51ac-3d6a-ac2f-8a8c8b91bb60` |
+| `bbox.xmin` | `-73.24630737304688` |
+| `bbox.xmax` | `-73.24613952636719` |
+| `bbox.ymin` | `-39.81101608276367` |
+| `bbox.ymax` | `-39.81088638305664` |
+| `geometry` | `POLYGON ((-73.2462509 -39.8108937, -73.2462755 -39.8109047, -73.246291 -39.8109182, -73.2463022 -...` |
+| `theme` | `buildings` |
+| `type` | `building_part` |
+| `version` | `0` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenStreetMap` |
+| `sources[0].record_id` | `w223076787@2` |
+| `sources[0].update_time` | `2014-10-31T22:55:36.000Z` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `building_id` | `bd663bd4-1844-4d7d-a400-114de051cf49` |
+| `names` | `null` |
+| `level` | `3` |
+| `height` | `null` |
+| `is_underground` | `false` |
+| `num_floors` | `null` |
+| `num_floors_underground` | `null` |
+| `min_height` | `null` |
+| `min_floor` | `null` |
+| `facade_color` | `null` |
+| `facade_material` | `null` |
+| `roof_material` | `null` |
+| `roof_shape` | `null` |
+| `roof_direction` | `null` |
+| `roof_orientation` | `null` |
+| `roof_color` | `null` |
+| `roof_height` | `null` |
diff --git a/docs/schema/reference/buildings/types/_category_.json b/docs/schema/reference/buildings/types/_category_.json
new file mode 100644
index 00000000..a3ec0897
--- /dev/null
+++ b/docs/schema/reference/buildings/types/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Types"
+}
diff --git a/docs/schema/reference/buildings/types/building_class.md b/docs/schema/reference/buildings/types/building_class.md
new file mode 100644
index 00000000..ed62867d
--- /dev/null
+++ b/docs/schema/reference/buildings/types/building_class.md
@@ -0,0 +1,103 @@
+---
+hide_table_of_contents: true
+---
+
+# BuildingClass
+
+Further classification of the type and purpose of a building.
+
+The building class adds detail to the broad classification of `BuildingSubtype`.
+
+## Values
+
+- `agricultural`
+- `allotment_house`
+- `apartments`
+- `barn`
+- `beach_hut`
+- `boathouse`
+- `bridge_structure`
+- `bungalow`
+- `bunker`
+- `cabin`
+- `carport`
+- `cathedral`
+- `chapel`
+- `church`
+- `civic`
+- `college`
+- `commercial`
+- `cowshed`
+- `detached`
+- `digester`
+- `dormitory`
+- `dwelling_house`
+- `factory`
+- `farm`
+- `farm_auxiliary`
+- `fire_station`
+- `garage`
+- `garages`
+- `ger`
+- `glasshouse`
+- `government`
+- `grandstand`
+- `greenhouse`
+- `guardhouse`
+- `hangar`
+- `hospital`
+- `hotel`
+- `house`
+- `houseboat`
+- `hut`
+- `industrial`
+- `kindergarten`
+- `kiosk`
+- `library`
+- `manufacture`
+- `military`
+- `monastery`
+- `mosque`
+- `office`
+- `outbuilding`
+- `parking`
+- `pavilion`
+- `post_office`
+- `presbytery`
+- `public`
+- `religious`
+- `residential`
+- `retail`
+- `roof`
+- `school`
+- `semi`
+- `semidetached_house`
+- `service`
+- `shed`
+- `shrine`
+- `silo`
+- `slurry_tank`
+- `sports_centre`
+- `sports_hall`
+- `stable`
+- `stadium`
+- `static_caravan`
+- `stilt_house`
+- `storage_tank`
+- `sty`
+- `supermarket`
+- `synagogue`
+- `temple`
+- `terrace`
+- `toilets`
+- `train_station`
+- `transformer_tower`
+- `transportation`
+- `trullo`
+- `university`
+- `warehouse`
+- `wayside_shrine`
+
+## Used By
+
+- [`Building`](../building.md)
diff --git a/docs/schema/reference/buildings/types/building_subtype.md b/docs/schema/reference/buildings/types/building_subtype.md
new file mode 100644
index 00000000..07f476b5
--- /dev/null
+++ b/docs/schema/reference/buildings/types/building_subtype.md
@@ -0,0 +1,29 @@
+---
+hide_table_of_contents: true
+---
+
+# BuildingSubtype
+
+Broadest classification of the type and purpose of a building.
+
+This broad classification can be refined by `BuildingClass`.
+
+## Values
+
+- `agricultural`
+- `civic`
+- `commercial`
+- `education`
+- `entertainment`
+- `industrial`
+- `medical`
+- `military`
+- `outbuilding`
+- `religious`
+- `residential`
+- `service`
+- `transportation`
+
+## Used By
+
+- [`Building`](../building.md)
diff --git a/docs/schema/reference/buildings/types/facade_material.md b/docs/schema/reference/buildings/types/facade_material.md
new file mode 100644
index 00000000..e702ea2f
--- /dev/null
+++ b/docs/schema/reference/buildings/types/facade_material.md
@@ -0,0 +1,26 @@
+---
+hide_table_of_contents: true
+---
+
+# FacadeMaterial
+
+The outer surface material of building facade.
+
+## Values
+
+- `brick`
+- `cement_block`
+- `clay`
+- `concrete`
+- `glass`
+- `metal`
+- `plaster`
+- `plastic`
+- `stone`
+- `timber_framing`
+- `wood`
+
+## Used By
+
+- [`Building`](../building.md)
+- [`BuildingPart`](../building_part.md)
diff --git a/docs/schema/reference/buildings/types/roof_material.md b/docs/schema/reference/buildings/types/roof_material.md
new file mode 100644
index 00000000..f6a6fd30
--- /dev/null
+++ b/docs/schema/reference/buildings/types/roof_material.md
@@ -0,0 +1,29 @@
+---
+hide_table_of_contents: true
+---
+
+# RoofMaterial
+
+The outermost material of the roof.
+
+## Values
+
+- `concrete`
+- `copper`
+- `eternit`
+- `glass`
+- `grass`
+- `gravel`
+- `metal`
+- `plastic`
+- `roof_tiles`
+- `slate`
+- `solar_panels`
+- `tar_paper`
+- `thatch`
+- `wood`
+
+## Used By
+
+- [`Building`](../building.md)
+- [`BuildingPart`](../building_part.md)
diff --git a/docs/schema/reference/buildings/types/roof_orientation.md b/docs/schema/reference/buildings/types/roof_orientation.md
new file mode 100644
index 00000000..38ee37a6
--- /dev/null
+++ b/docs/schema/reference/buildings/types/roof_orientation.md
@@ -0,0 +1,20 @@
+---
+hide_table_of_contents: true
+---
+
+# RoofOrientation
+
+Orientation of the roof shape relative to the footprint shape.
+
+The members of this enumeration, `"across"` and `"along"`, are borrowed from the OpenStreetMap
+`roof:orientation=*` tag and have the same meanings as they do in OSM.
+
+## Values
+
+- `across` - The roof ridge runs perpendicular to the longer of the two building edges, parallel to the shorter
+- `along` - The roof ridge runs parallel to the longer of the two building edges
+
+## Used By
+
+- [`Building`](../building.md)
+- [`BuildingPart`](../building_part.md)
diff --git a/docs/schema/reference/buildings/types/roof_shape.md b/docs/schema/reference/buildings/types/roof_shape.md
new file mode 100644
index 00000000..cac6716a
--- /dev/null
+++ b/docs/schema/reference/buildings/types/roof_shape.md
@@ -0,0 +1,29 @@
+---
+hide_table_of_contents: true
+---
+
+# RoofShape
+
+The shape of the roof.
+
+## Values
+
+- `dome`
+- `flat`
+- `gabled`
+- `gambrel`
+- `half_hipped`
+- `hipped`
+- `mansard`
+- `onion`
+- `pyramidal`
+- `round`
+- `saltbox`
+- `sawtooth`
+- `skillion`
+- `spherical`
+
+## Used By
+
+- [`Building`](../building.md)
+- [`BuildingPart`](../building_part.md)
diff --git a/docs/schema/reference/core/_category_.json b/docs/schema/reference/core/_category_.json
new file mode 100644
index 00000000..5adbbd20
--- /dev/null
+++ b/docs/schema/reference/core/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Core",
+ "position": 7
+}
diff --git a/docs/schema/reference/core/cartographic_hints.md b/docs/schema/reference/core/cartographic_hints.md
new file mode 100644
index 00000000..33c58438
--- /dev/null
+++ b/docs/schema/reference/core/cartographic_hints.md
@@ -0,0 +1,18 @@
+# CartographicHints
+
+Cartographic hints for optimal use of Overture features in map-making.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `prominence` | [`Prominence`](prominence.md) (optional) | Subjective scale of feature significance or importance, with 1 being the least, and 100 being the most, significant.
This value can be used to help drive decisions about how and when to display a feature, and how to treat it relative to neighboring features.
When populated by Overture, this value is derived from various factors including, but not limited to: feature and subtype, population, and capital status. |
+| `min_zoom` | [`MinZoom`](min_zoom.md) (optional) | Recommended minimum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels below this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
+| `max_zoom` | [`MaxZoom`](max_zoom.md) (optional) | Recommended maximum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels above this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
+| `sort_key` | [`SortKey`](sort_key.md) (optional) | Integer indicating the recommended order in which to draw features.
Features with a lower number should be drawn "in front" of features with a higher number. |
+
+## Used By
+
+- [`Bathymetry`](../base/bathymetry.md)
+- [`Division`](../divisions/division.md)
+- [`LandCover`](../base/land_cover.md)
diff --git a/docs/schema/reference/core/common_names.md b/docs/schema/reference/core/common_names.md
new file mode 100644
index 00000000..2d1950d7
--- /dev/null
+++ b/docs/schema/reference/core/common_names.md
@@ -0,0 +1,10 @@
+# CommonNames
+
+A mapping from language to the most commonly used or recognized name in that language.
+
+Underlying type: `map<`[`LanguageTag`](../system/language_tag.md)`,`[`StrippedString`](../system/stripped_string.md)`>`
+
+## Used By
+
+- [`Division`](../divisions/division.md)
+- [`Names`](names.md)
diff --git a/docs/schema/reference/core/confidence_score.md b/docs/schema/reference/core/confidence_score.md
new file mode 100644
index 00000000..42256524
--- /dev/null
+++ b/docs/schema/reference/core/confidence_score.md
@@ -0,0 +1,15 @@
+# ConfidenceScore
+
+Confidence score between 0.0 and 1.0
+
+Underlying type: `float64`
+
+## Constraints
+
+- `β₯ 0.0`
+- `β€ 1.0`
+
+## Used By
+
+- [`Place`](../places/place.md)
+- [`SourceItem`](source_item.md)
diff --git a/docs/schema/reference/core/feature_version.md b/docs/schema/reference/core/feature_version.md
new file mode 100644
index 00000000..96939448
--- /dev/null
+++ b/docs/schema/reference/core/feature_version.md
@@ -0,0 +1,27 @@
+# FeatureVersion
+
+Underlying type: `int32`
+
+## Constraints
+
+- `β₯ 0`
+- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
+- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
+
+## Used By
+
+- [`Address`](../addresses/address.md)
+- [`Bathymetry`](../base/bathymetry.md)
+- [`Building`](../buildings/building.md)
+- [`BuildingPart`](../buildings/building_part.md)
+- [`Connector`](../transportation/connector.md)
+- [`Division`](../divisions/division.md)
+- [`DivisionArea`](../divisions/division_area.md)
+- [`DivisionBoundary`](../divisions/division_boundary.md)
+- [`Infrastructure`](../base/infrastructure.md)
+- [`Land`](../base/land.md)
+- [`LandCover`](../base/land_cover.md)
+- [`LandUse`](../base/land_use.md)
+- [`Place`](../places/place.md)
+- [`Segment`](../transportation/segment.md)
+- [`Water`](../base/water.md)
diff --git a/docs/schema/reference/core/length_unit.md b/docs/schema/reference/core/length_unit.md
new file mode 100644
index 00000000..44750a38
--- /dev/null
+++ b/docs/schema/reference/core/length_unit.md
@@ -0,0 +1,19 @@
+# LengthUnit
+
+Unit of length.
+
+## Values
+
+- `in` - One inch in the imperial and US customary systems
+- `ft` - One foot in the imperial and US customary systems (12 inches)
+- `yd` - One yard in the imperial and US customary systems (three feet)
+- `mi` - One mile in the imperial and US customary systems (1,760 yards)
+- `cm` - One centimeter in the metric and SI systems
+- `m` - One meter in the metric and SI systems
+- `km` - One kilometer in the metric and SI systems
+
+## Used By
+
+- [`VehicleHeightSelector`](scoping/vehicle_height_selector.md)
+- [`VehicleLengthSelector`](scoping/vehicle_length_selector.md)
+- [`VehicleWidthSelector`](scoping/vehicle_width_selector.md)
diff --git a/docs/schema/reference/core/level.md b/docs/schema/reference/core/level.md
new file mode 100644
index 00000000..dff9ca8a
--- /dev/null
+++ b/docs/schema/reference/core/level.md
@@ -0,0 +1,20 @@
+# Level
+
+Z-order of the feature where 0 is visual level
+
+Underlying type: `int32`
+
+## Constraints
+
+- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
+- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
+
+## Used By
+
+- [`Building`](../buildings/building.md)
+- [`BuildingPart`](../buildings/building_part.md)
+- [`Infrastructure`](../base/infrastructure.md)
+- [`Land`](../base/land.md)
+- [`LandUse`](../base/land_use.md)
+- [`LevelRule`](../transportation/types/level_rule.md)
+- [`Water`](../base/water.md)
diff --git a/docs/schema/reference/core/max_zoom.md b/docs/schema/reference/core/max_zoom.md
new file mode 100644
index 00000000..6f06fba0
--- /dev/null
+++ b/docs/schema/reference/core/max_zoom.md
@@ -0,0 +1,23 @@
+# MaxZoom
+
+Recommended maximum tile zoom level in which this feature should be displayed.
+
+It is recommended that the feature be hidden at zoom levels above this value.
+
+Zoom levels follow the Slippy Maps convention, documented in the following
+references:
+- [https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames](https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames)
+- [https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection](https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection)
+
+Underlying type: `int32`
+
+## Constraints
+
+- `β₯ 0`
+- `β€ 23`
+- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
+- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
+
+## Used By
+
+- [`CartographicHints`](cartographic_hints.md)
diff --git a/docs/schema/reference/core/min_zoom.md b/docs/schema/reference/core/min_zoom.md
new file mode 100644
index 00000000..f309c1e0
--- /dev/null
+++ b/docs/schema/reference/core/min_zoom.md
@@ -0,0 +1,23 @@
+# MinZoom
+
+Recommended minimum tile zoom level in which this feature should be displayed.
+
+It is recommended that the feature be hidden at zoom levels below this value.
+
+Zoom levels follow the Slippy Maps convention, documented in the following
+references:
+- [https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames](https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames)
+- [https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection](https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection)
+
+Underlying type: `int32`
+
+## Constraints
+
+- `β₯ 0`
+- `β€ 23`
+- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
+- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
+
+## Used By
+
+- [`CartographicHints`](cartographic_hints.md)
diff --git a/docs/schema/reference/core/name_rule.md b/docs/schema/reference/core/name_rule.md
new file mode 100644
index 00000000..4b1c0308
--- /dev/null
+++ b/docs/schema/reference/core/name_rule.md
@@ -0,0 +1,32 @@
+# NameRule
+
+A rule that can be evaluated to determine the name in advanced scenarios.
+
+Name rules are used for cases where the primary name is not sufficient; the common name is not
+the right fit for the use case and another variant is needed; or where the name only applies in
+certain specific circumstances.
+
+Examples might include:
+- An official, alternate, or short name.
+- A name that only applies to part of a linear path like a road segment (geometric range
+ scoping).
+- A name that only applies to the left or right side of a linear path like a road segment (side
+ scoping).
+- A name that is only accepted by some political perspectives.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `value` | [`StrippedString`](../system/stripped_string.md) | The actual name value.
*Minimum length: 1* |
+| `variant` | [`NameVariant`](name_variant.md) | The name variant for this name rule. |
+| `language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `perspectives` | [`Perspectives`](perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `perspectives.mode` | [`PerspectiveMode`](perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `between` | [`LinearlyReferencedRange`](scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `side` | [`Side`](scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+
+## Used By
+
+- [`Names`](names.md)
diff --git a/docs/schema/reference/core/name_variant.md b/docs/schema/reference/core/name_variant.md
new file mode 100644
index 00000000..ea9fa475
--- /dev/null
+++ b/docs/schema/reference/core/name_variant.md
@@ -0,0 +1,22 @@
+# NameVariant
+
+Name variant used in a `NameRule`.
+
+## Values
+
+- `common` - The most commonly used or recognized name for a feature in the specified language.
+
+In a `Names` value, most common names will appear in the `Names.common` field and will
+not need to be specified as `NameRule` values in `Names.rules`. This member of the
+enumeration should only be used to construct a `NameRule` if the common name needs to
+be scoped in some way and therefore cannot be accurately represented in `CommonNames`.
+- `official` - The legally or administratively recognized name, often used by government agencies or
+official documents.
+- `alternate` - An alternative name, which may be a historical name, a local colloquial name, or some
+other well-known name is not the common name.
+- `short` - An abbreviated or shortened version of the name, which may be an acronym or some other
+commonly-used short form. An example is "NYC" for New York City.
+
+## Used By
+
+- [`NameRule`](name_rule.md)
diff --git a/docs/schema/reference/core/names.md b/docs/schema/reference/core/names.md
new file mode 100644
index 00000000..220658c5
--- /dev/null
+++ b/docs/schema/reference/core/names.md
@@ -0,0 +1,33 @@
+# Names
+
+Multilingual names container.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name.
*Minimum length: 1* |
+| `common` | [`CommonNames`](common_names.md) (map, optional) | |
+| `rules[]` | `list<`[`NameRule`](name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `rules[].variant` | [`NameVariant`](name_variant.md) | The name variant for this name rule. |
+| `rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `rules[].perspectives` | [`Perspectives`](perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `rules[].perspectives.mode` | [`PerspectiveMode`](perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `rules[].between` | [`LinearlyReferencedRange`](scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `rules[].side` | [`Side`](scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+
+## Used By
+
+- [`Brand`](../places/types/brand.md)
+- [`Building`](../buildings/building.md)
+- [`BuildingPart`](../buildings/building_part.md)
+- [`Division`](../divisions/division.md)
+- [`DivisionArea`](../divisions/division_area.md)
+- [`Infrastructure`](../base/infrastructure.md)
+- [`Land`](../base/land.md)
+- [`LandUse`](../base/land_use.md)
+- [`Place`](../places/place.md)
+- [`Segment`](../transportation/segment.md)
+- [`Water`](../base/water.md)
diff --git a/docs/schema/reference/core/perspective_mode.md b/docs/schema/reference/core/perspective_mode.md
new file mode 100644
index 00000000..af2f597f
--- /dev/null
+++ b/docs/schema/reference/core/perspective_mode.md
@@ -0,0 +1,12 @@
+# PerspectiveMode
+
+Perspective mode for disputed names.
+
+## Values
+
+- `accepted_by`
+- `disputed_by`
+
+## Used By
+
+- [`Perspectives`](perspectives.md)
diff --git a/docs/schema/reference/core/perspectives.md b/docs/schema/reference/core/perspectives.md
new file mode 100644
index 00000000..b5e634d9
--- /dev/null
+++ b/docs/schema/reference/core/perspectives.md
@@ -0,0 +1,16 @@
+# Perspectives
+
+Political perspectives container.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `mode` | [`PerspectiveMode`](perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+
+## Used By
+
+- [`Division`](../divisions/division.md)
+- [`DivisionBoundary`](../divisions/division_boundary.md)
+- [`NameRule`](name_rule.md)
diff --git a/docs/schema/reference/core/prominence.md b/docs/schema/reference/core/prominence.md
new file mode 100644
index 00000000..524ec979
--- /dev/null
+++ b/docs/schema/reference/core/prominence.md
@@ -0,0 +1,23 @@
+# Prominence
+
+Subjective scale of feature significance or importance, with 1 being the least, and
+100 being the most, significant.
+
+This value can be used to help drive decisions about how and when to display a
+feature, and how to treat it relative to neighboring features.
+
+When populated by Overture, this value is derived from various factors including,
+but not limited to: feature and subtype, population, and capital status.
+
+Underlying type: `int32`
+
+## Constraints
+
+- `β₯ 1`
+- `β€ 100`
+- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
+- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
+
+## Used By
+
+- [`CartographicHints`](cartographic_hints.md)
diff --git a/docs/schema/reference/core/scoping/_category_.json b/docs/schema/reference/core/scoping/_category_.json
new file mode 100644
index 00000000..155d669b
--- /dev/null
+++ b/docs/schema/reference/core/scoping/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Scoping"
+}
diff --git a/docs/schema/reference/core/scoping/heading.md b/docs/schema/reference/core/scoping/heading.md
new file mode 100644
index 00000000..e59a4600
--- /dev/null
+++ b/docs/schema/reference/core/scoping/heading.md
@@ -0,0 +1,17 @@
+# Heading
+
+Travel direction along an oriented path: forward or backward.
+
+## Values
+
+- `forward`
+- `backward`
+
+## Used By
+
+- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
+- [`DestinationRule`](../../transportation/types/destination_rule.md)
+- [`DestinationRule.When`](../../transportation/types/destination_rule.when.md)
+- [`ProhibitedTransitionRule`](../../transportation/types/prohibited_transition_rule.md)
+- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
+- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/linearly_referenced_position.md b/docs/schema/reference/core/scoping/linearly_referenced_position.md
new file mode 100644
index 00000000..605af6ee
--- /dev/null
+++ b/docs/schema/reference/core/scoping/linearly_referenced_position.md
@@ -0,0 +1,15 @@
+# LinearlyReferencedPosition
+
+Represents a linearly-referenced position between 0% and 100% of the distance along a path such as a road segment or a river center-line segment.
+
+Underlying type: `float64`
+
+## Constraints
+
+- `β₯ 0.0`
+- `β€ 1.0`
+
+## Used By
+
+- [`ConnectorReference`](../../transportation/types/connector_reference.md)
+- [`LinearlyReferencedRange`](linearly_referenced_range.md)
diff --git a/docs/schema/reference/core/scoping/linearly_referenced_range.md b/docs/schema/reference/core/scoping/linearly_referenced_range.md
new file mode 100644
index 00000000..b08f0491
--- /dev/null
+++ b/docs/schema/reference/core/scoping/linearly_referenced_range.md
@@ -0,0 +1,26 @@
+# LinearlyReferencedRange
+
+Represents a non-empty range of positions along a path as a pair linearly-referenced positions. For example, the pair [0.25, 0.5] represents the range beginning 25% of the distance from the start of the path and ending 50% of the distance from the path
+
+Underlying type: `list`
+
+## Constraints
+
+- Linear reference range constraint (0.0 to 1.0). (`LinearReferenceRangeConstraint`)
+- `β₯ 0.0` (from [`LinearlyReferencedPosition`](linearly_referenced_position.md))
+- `β€ 1.0` (from [`LinearlyReferencedPosition`](linearly_referenced_position.md))
+
+## Used By
+
+- [`AccessRestrictionRule`](../../transportation/types/access_restriction_rule.md)
+- [`LevelRule`](../../transportation/types/level_rule.md)
+- [`NameRule`](../name_rule.md)
+- [`ProhibitedTransitionRule`](../../transportation/types/prohibited_transition_rule.md)
+- [`RailFlagRule`](../../transportation/types/rail_flag_rule.md)
+- [`RoadFlagRule`](../../transportation/types/road_flag_rule.md)
+- [`RouteReference`](../../transportation/types/route_reference.md)
+- [`SourceItem`](../source_item.md)
+- [`SpeedLimitRule`](../../transportation/types/speed_limit_rule.md)
+- [`SubclassRule`](../../transportation/types/subclass_rule.md)
+- [`SurfaceRule`](../../transportation/types/surface_rule.md)
+- [`WidthRule`](../../transportation/types/width_rule.md)
diff --git a/docs/schema/reference/core/scoping/opening_hours.md b/docs/schema/reference/core/scoping/opening_hours.md
new file mode 100644
index 00000000..da30697e
--- /dev/null
+++ b/docs/schema/reference/core/scoping/opening_hours.md
@@ -0,0 +1,12 @@
+# OpeningHours
+
+Time span or time spans during which something is open or active, specified in the OpenStreetMap
+opening hours specification: [https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification](https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification).
+
+Underlying type: `string`
+
+## Used By
+
+- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
+- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
+- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/purpose_of_use.md b/docs/schema/reference/core/scoping/purpose_of_use.md
new file mode 100644
index 00000000..a91e74f9
--- /dev/null
+++ b/docs/schema/reference/core/scoping/purpose_of_use.md
@@ -0,0 +1,18 @@
+# PurposeOfUse
+
+Reason why a person or entity travelling on the transportation network is using a particular
+location.
+
+## Values
+
+- `as_customer`
+- `at_destination`
+- `to_deliver`
+- `to_farm`
+- `for_forestry`
+
+## Used By
+
+- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
+- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
+- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/recognized_status.md b/docs/schema/reference/core/scoping/recognized_status.md
new file mode 100644
index 00000000..52ce0c78
--- /dev/null
+++ b/docs/schema/reference/core/scoping/recognized_status.md
@@ -0,0 +1,18 @@
+# RecognizedStatus
+
+Status of the person or entity travelling as recognized by authorities controlling the particular
+location.
+
+## Values
+
+- `as_permitted`
+- `as_private`
+- `as_disabled`
+- `as_employee`
+- `as_student`
+
+## Used By
+
+- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
+- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
+- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/side.md b/docs/schema/reference/core/scoping/side.md
new file mode 100644
index 00000000..bc8390a1
--- /dev/null
+++ b/docs/schema/reference/core/scoping/side.md
@@ -0,0 +1,15 @@
+# Side
+
+The side, left or right, on which something appears relative to a facing or heading direction
+(*e.g.*, the side of a road relative to the road orientation), or relative to the direction of
+travel of a person or vehicle.
+
+## Values
+
+- `left` - On the left relative to the facing direction
+- `right` - On the right side relative to the facing direction
+
+## Used By
+
+- [`NameRule`](../name_rule.md)
+- [`Norms`](../../divisions/types/division/norms.md)
diff --git a/docs/schema/reference/core/scoping/travel_mode.md b/docs/schema/reference/core/scoping/travel_mode.md
new file mode 100644
index 00000000..1a2aa0b5
--- /dev/null
+++ b/docs/schema/reference/core/scoping/travel_mode.md
@@ -0,0 +1,25 @@
+# TravelMode
+
+Enumerates possible travel modes.
+
+Some modes represent groups of modes.
+
+## Values
+
+- `vehicle`
+- `motor_vehicle`
+- `car`
+- `truck`
+- `motorcycle`
+- `foot`
+- `bicycle`
+- `bus`
+- `hgv`
+- `hov`
+- `emergency`
+
+## Used By
+
+- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
+- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
+- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_axle_count_selector.md b/docs/schema/reference/core/scoping/vehicle_axle_count_selector.md
new file mode 100644
index 00000000..461dd926
--- /dev/null
+++ b/docs/schema/reference/core/scoping/vehicle_axle_count_selector.md
@@ -0,0 +1,17 @@
+# VehicleAxleCountSelector
+
+Selects vehicles based on the number of axles they have.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `dimension` | `"axle_count"` | |
+| `comparison` | [`VehicleRelation`](vehicle_relation.md) | |
+| `value` | [`uint8`](../../system/primitive/primitives.md) | Number of axles on the vehicle |
+
+## Used By
+
+- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
+- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
+- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_height_selector.md b/docs/schema/reference/core/scoping/vehicle_height_selector.md
new file mode 100644
index 00000000..ba56f33d
--- /dev/null
+++ b/docs/schema/reference/core/scoping/vehicle_height_selector.md
@@ -0,0 +1,18 @@
+# VehicleHeightSelector
+
+Selects vehicles based on their height.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `dimension` | `"height"` | |
+| `comparison` | [`VehicleRelation`](vehicle_relation.md) | |
+| `value` | [`float64`](../../system/primitive/primitives.md) | Vehicle height selection threshold in the given `unit`
*`β₯ 0`* |
+| `unit` | [`LengthUnit`](../length_unit.md) | Height unit in which `value` is expressed |
+
+## Used By
+
+- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
+- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
+- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_length_selector.md b/docs/schema/reference/core/scoping/vehicle_length_selector.md
new file mode 100644
index 00000000..5a6e1c01
--- /dev/null
+++ b/docs/schema/reference/core/scoping/vehicle_length_selector.md
@@ -0,0 +1,18 @@
+# VehicleLengthSelector
+
+Selects vehicles based on their length.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `dimension` | `"length"` | |
+| `comparison` | [`VehicleRelation`](vehicle_relation.md) | |
+| `value` | [`float64`](../../system/primitive/primitives.md) | Vehicle length selection threshold in the given `unit`
*`β₯ 0`* |
+| `unit` | [`LengthUnit`](../length_unit.md) | Length unit in which `value` is expressed |
+
+## Used By
+
+- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
+- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
+- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_relation.md b/docs/schema/reference/core/scoping/vehicle_relation.md
new file mode 100644
index 00000000..0ac89edd
--- /dev/null
+++ b/docs/schema/reference/core/scoping/vehicle_relation.md
@@ -0,0 +1,19 @@
+# VehicleRelation
+
+Relational operator, such as less than or equal to.
+
+## Values
+
+- `greater_than`
+- `greater_than_equal`
+- `equal`
+- `less_than`
+- `less_than_equal`
+
+## Used By
+
+- [`VehicleAxleCountSelector`](vehicle_axle_count_selector.md)
+- [`VehicleHeightSelector`](vehicle_height_selector.md)
+- [`VehicleLengthSelector`](vehicle_length_selector.md)
+- [`VehicleWeightSelector`](vehicle_weight_selector.md)
+- [`VehicleWidthSelector`](vehicle_width_selector.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_weight_selector.md b/docs/schema/reference/core/scoping/vehicle_weight_selector.md
new file mode 100644
index 00000000..3e42bdce
--- /dev/null
+++ b/docs/schema/reference/core/scoping/vehicle_weight_selector.md
@@ -0,0 +1,18 @@
+# VehicleWeightSelector
+
+Selects vehicles based on their weight.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `dimension` | `"weight"` | |
+| `comparison` | [`VehicleRelation`](vehicle_relation.md) | |
+| `value` | [`float64`](../../system/primitive/primitives.md) | Vehicle weight selection threshold in the given `unit`
*`β₯ 0`* |
+| `unit` | [`WeightUnit`](../weight_unit.md) | Weight unit in which `value` is expressed |
+
+## Used By
+
+- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
+- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
+- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/scoping/vehicle_width_selector.md b/docs/schema/reference/core/scoping/vehicle_width_selector.md
new file mode 100644
index 00000000..f86e41b3
--- /dev/null
+++ b/docs/schema/reference/core/scoping/vehicle_width_selector.md
@@ -0,0 +1,18 @@
+# VehicleWidthSelector
+
+Selects vehicles based on their width.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `dimension` | `"width"` | |
+| `comparison` | [`VehicleRelation`](vehicle_relation.md) | |
+| `value` | [`float64`](../../system/primitive/primitives.md) | Vehicle width selection threshold in the given `unit`
*`β₯ 0`* |
+| `unit` | [`LengthUnit`](../length_unit.md) | Width unit in which `value` is expressed |
+
+## Used By
+
+- [`AccessRestrictionRule.When`](../../transportation/types/access_restriction_rule.when.md)
+- [`ProhibitedTransitionRule.When`](../../transportation/types/prohibited_transition_rule.when.md)
+- [`SpeedLimitRule.When`](../../transportation/types/speed_limit_rule.when.md)
diff --git a/docs/schema/reference/core/sort_key.md b/docs/schema/reference/core/sort_key.md
new file mode 100644
index 00000000..1c118716
--- /dev/null
+++ b/docs/schema/reference/core/sort_key.md
@@ -0,0 +1,17 @@
+# SortKey
+
+Integer indicating the recommended order in which to draw features.
+
+Features with a lower number should be drawn "in front" of features with a higher
+number.
+
+Underlying type: `int32`
+
+## Constraints
+
+- `β₯ -2147483648` (from [`int32`](../system/primitive/primitives.md))
+- `β€ 2147483647` (from [`int32`](../system/primitive/primitives.md))
+
+## Used By
+
+- [`CartographicHints`](cartographic_hints.md)
diff --git a/docs/schema/reference/core/source_item.md b/docs/schema/reference/core/source_item.md
new file mode 100644
index 00000000..c4acca0d
--- /dev/null
+++ b/docs/schema/reference/core/source_item.md
@@ -0,0 +1,34 @@
+# SourceItem
+
+Specifies the source of the data used for a feature or one of its properties.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `dataset` | `string` | Name of the dataset where the source data can be found. |
+| `license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `confidence` | [`ConfidenceScore`](confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `between` | [`LinearlyReferencedRange`](scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+
+## Used By
+
+- [`Address`](../addresses/address.md)
+- [`Bathymetry`](../base/bathymetry.md)
+- [`Building`](../buildings/building.md)
+- [`BuildingPart`](../buildings/building_part.md)
+- [`Connector`](../transportation/connector.md)
+- [`Division`](../divisions/division.md)
+- [`DivisionArea`](../divisions/division_area.md)
+- [`DivisionBoundary`](../divisions/division_boundary.md)
+- [`Infrastructure`](../base/infrastructure.md)
+- [`Land`](../base/land.md)
+- [`LandCover`](../base/land_cover.md)
+- [`LandUse`](../base/land_use.md)
+- [`Place`](../places/place.md)
+- [`Segment`](../transportation/segment.md)
+- [`Water`](../base/water.md)
+- [`Sources`](sources.md)
diff --git a/docs/schema/reference/core/sources.md b/docs/schema/reference/core/sources.md
new file mode 100644
index 00000000..ac48419e
--- /dev/null
+++ b/docs/schema/reference/core/sources.md
@@ -0,0 +1,28 @@
+# Sources
+
+Information about the source data used to assemble the feature.
+
+Underlying type: `list<`[`SourceItem`](source_item.md)`>`
+
+## Constraints
+
+- Minimum length: 1
+- All items must be unique. (`UniqueItemsConstraint`)
+
+## Used By
+
+- [`Address`](../addresses/address.md)
+- [`Bathymetry`](../base/bathymetry.md)
+- [`Building`](../buildings/building.md)
+- [`BuildingPart`](../buildings/building_part.md)
+- [`Connector`](../transportation/connector.md)
+- [`Division`](../divisions/division.md)
+- [`DivisionArea`](../divisions/division_area.md)
+- [`DivisionBoundary`](../divisions/division_boundary.md)
+- [`Infrastructure`](../base/infrastructure.md)
+- [`Land`](../base/land.md)
+- [`LandCover`](../base/land_cover.md)
+- [`LandUse`](../base/land_use.md)
+- [`Place`](../places/place.md)
+- [`Segment`](../transportation/segment.md)
+- [`Water`](../base/water.md)
diff --git a/docs/schema/reference/core/speed_unit.md b/docs/schema/reference/core/speed_unit.md
new file mode 100644
index 00000000..acfd44ac
--- /dev/null
+++ b/docs/schema/reference/core/speed_unit.md
@@ -0,0 +1,12 @@
+# SpeedUnit
+
+Unit of speed.
+
+## Values
+
+- `mph` - Miles per hour
+- `km/h` - Kilometers per hour
+
+## Used By
+
+- [`Speed`](../transportation/types/speed.md)
diff --git a/docs/schema/reference/core/weight_unit.md b/docs/schema/reference/core/weight_unit.md
new file mode 100644
index 00000000..f53cb297
--- /dev/null
+++ b/docs/schema/reference/core/weight_unit.md
@@ -0,0 +1,17 @@
+# WeightUnit
+
+Unit of weight.
+
+## Values
+
+- `oz` - One ounce in the imperial and US customary systems
+- `lb` - One pound in the imperial and US customary systems
+- `st` - One short ton, or one ton in the US customary system (2,000 pounds)
+- `lt` - One long ton, or one ton in the imperial system (2,400 pounds)
+- `g` - One gram in the metric and SI systems
+- `kg` - One kilogram in the metric and SI systems
+- `t` - One tonne in the metric and SI systems
+
+## Used By
+
+- [`VehicleWeightSelector`](scoping/vehicle_weight_selector.md)
diff --git a/docs/schema/reference/divisions/_category_.json b/docs/schema/reference/divisions/_category_.json
new file mode 100644
index 00000000..51eecd25
--- /dev/null
+++ b/docs/schema/reference/divisions/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Divisions",
+ "position": 4
+}
diff --git a/docs/schema/reference/divisions/division.md b/docs/schema/reference/divisions/division.md
new file mode 100644
index 00000000..2bd5aad5
--- /dev/null
+++ b/docs/schema/reference/divisions/division.md
@@ -0,0 +1,131 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# Division
+
+Divisions are recognized official or non-official organizations of people as seen
+from a given political perspective.
+
+Examples include countries, provinces, cities, towns, neighborhoods, etc.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `cartography` | [`CartographicHints`](../core/cartographic_hints.md) (optional) | |
+| `cartography.prominence` | [`Prominence`](../core/prominence.md) (optional) | Subjective scale of feature significance or importance, with 1 being the least, and 100 being the most, significant.
This value can be used to help drive decisions about how and when to display a feature, and how to treat it relative to neighboring features.
When populated by Overture, this value is derived from various factors including, but not limited to: feature and subtype, population, and capital status. |
+| `cartography.min_zoom` | [`MinZoom`](../core/min_zoom.md) (optional) | Recommended minimum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels below this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
+| `cartography.max_zoom` | [`MaxZoom`](../core/max_zoom.md) (optional) | Recommended maximum tile zoom level in which this feature should be displayed.
It is recommended that the feature be hidden at zoom levels above this value.
Zoom levels follow the Slippy Maps convention, documented in the following references: - https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames - https://www.maptiler.com/google-maps-coordinates-tile-bounds-projection |
+| `cartography.sort_key` | [`SortKey`](../core/sort_key.md) (optional) | Integer indicating the recommended order in which to draw features.
Features with a lower number should be drawn "in front" of features with a higher number. |
+| `names` | [`Names`](../core/names.md) | |
+| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
+| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
+| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
+| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Approximate location of a position commonly associated with the real-world entity modeled by the division feature.
*Allowed geometry types: Point* |
+| `theme` | `"divisions"` | |
+| `type` | `"division"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `subtype` | [`PlaceType`](types/place_type.md) | *`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`*
*`parent_division_id` is required when `subtype` β `country`*
*`parent_division_id` is forbidden when `subtype` = `country`* |
+| `country` | [`CountryCodeAlpha2`](../system/country_code_alpha2.md) | ISO 3166-1 alpha-2 country code of the country or country-like entity, that this division represents or belongs to.
If the entity this division represents has a country code, the country property contains it. If it does not, the country property contains the country code of the first division encountered by traversing the parent_division_id chain to the root.
For example: - The country value for the United States is 'US' - The country value for New York City is 'US' - The country value for Puerto Rico, a dependency of the US, is 'PR'. - The country value for San Juan, Puerto Rico is 'PR'.
If an entity has an internationally-recognized ISO 3166-1 alpha-2 country code, it should always be used. In cases where the schema requires the code but no internationally-recognized code is available, a synthetic code may be used provided it does not conflict with any internationally-recognized codes. |
+| `hierarchies[][]` | `list<`[`Hierarchy`](types/hierarchy.md)`>` | Hierarchies in which this division participates.
Every division participates in at least one hierarchy. Most participate in only one. Some divisions may participate in more than one hierarchy, for example if they are claimed by different parent divisions from different political perspectives; or if there are other real-world reasons why the division or one of its ancestors has multiple parents.
The first hierarchy in the list is the default hierarchy, and the second-to-last entry in the default hierarchy (if there is such an entry) always corresponds to the `parent_division_id' property. The ordering of hierarchies after the first one is arbitrary.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `hierarchies[][].division_id` | [`DivisionId`](types/division_id.md) | ID of the division |
+| `hierarchies[][].subtype` | [`PlaceType`](types/place_type.md) | |
+| `hierarchies[][].name` | [`StrippedString`](../system/stripped_string.md) | Primary name of the division |
+| `parent_division_id` | [`Id`](../system/ref/id.md) (optional) | Division ID of this division's parent division.
Not allowed for top-level divisions (countries) and required for all other divisions.
The default parent division is the parent division as seen from the default political perspective, if there is one, and is otherwise chosen somewhat arbitrarily. The hierarchies property can be used to inspect the exhaustive list of parent divisions.
*Minimum length: 1*
*`parent_division_id` is required when `subtype` β `country`*
*`parent_division_id` is forbidden when `subtype` = `country`* |
+| `admin_level` | [`AdminLevel`](types/admin_level.md) (optional) | Integer representing the division's position in its country's administrative hierarchy, where lower numbers correspond to higher level administrative units.
*`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`* |
+| `class` | [`DivisionClass`](types/division_class.md) (optional) | |
+| `local_type` | [`CommonNames`](../core/common_names.md) (map, optional) | Local name for the subtype property, optionally localized.
For example, the Canadian province of Quebec has the subtype 'region', but in the local administrative hierarchy it is referred to as a 'province'. Similarly, the Canadian Yukon territory also has subtype 'region', but is locally called a 'territory'.
This property is localized using a standard Overture names structure. So for example, in Switzerland the top-level administrative subdivision corresponding to subtype 'region' is the canton, which is may be translated in each of Switzerland's official languages as, 'canton' in French, 'kanton' in German, 'cantone' in Italian, and 'chantun' in Romansh. |
+| `region` | [`RegionCode`](../system/region_code.md) (optional) | ISO 3166-2 principal subdivision code of the subdivision-like entity this division represents or belongs to.
If the entity this division represents has a principal subdivision code, the region property contains it. If it does not, the region property contains the principal subdivision code of the first division encountered by traversing the parent_division_id chain to the root.
For example: - The region value for the United States is omitted. - The region value for the U.S. state of New York is 'US-NY'. - The region value for New York City is 'US-NY', which it inherits from the state of New York. - The region value for Puerto Rico is 'US-PR'. |
+| `perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which this division is considered to be an accurate representation.
If this property is absent, then this division is not known to be disputed from any political perspective. Consequently, there is only one division feature representing the entire real world entity.
If this property is present, it means the division represents one of several alternative perspectives on the same real-world entity.
There are two modes of perspective:
1. `accepted_by` means the representation of the division is accepted by the listed entities and would be included on a map drawn from their perspective.
2. `disputed_by` means the representation of the division is disputed by the listed entities and would be excluded from a map drawn from their perspective.
When drawing a map from the perspective of a given country, one would start by gathering all the undisputed divisions (with no `perspectives` property), and then adding to that first all divisions explicitly accepted by the country, and second all divisions not explicitly disputed by the country. |
+| `perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `norms` | [`Norms`](types/division/norms.md) (optional) | Collects information about local norms and rules within the division that are generally useful for mapping and map-related use cases.
If the norms property or a desired sub-property of the norms property is missing on a division, but at least one of its ancestor divisions has the norms property and the desired sub-property, then the value from the nearest ancestor division may be assumed. |
+| `norms.driving_side` | [`Side`](../core/scoping/side.md) (optional) | Side of the road on which vehicles drive in the division. |
+| `population` | [`int32`](../system/primitive/primitives.md) (optional) | Population of the division
*`β₯ 0`* |
+| `capital_division_ids` | `list<`[`Id`](../system/ref/id.md)`>` (optional) | Division IDs of this division's capital divisions. If present, this property will refer to the division IDs of the capital cities, county seats, etc. of a division.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `capital_of_divisions[]` | `list<`[`CapitalOfDivisionItem`](types/capital_of_division_item.md)`>` (optional) | Division IDs and subtypes of divisions this division is a capital of.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `capital_of_divisions[].division_id` | [`DivisionId`](types/division_id.md) | ID of the division |
+| `capital_of_divisions[].subtype` | [`PlaceType`](types/place_type.md) | |
+| `wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
+
+## Constraints
+
+- `admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`
+- `parent_division_id` is required when `subtype` β `country`
+- `parent_division_id` is forbidden when `subtype` = `country`
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `cartography.prominence` | `29` |
+| `cartography.min_zoom` | `null` |
+| `cartography.max_zoom` | `null` |
+| `cartography.sort_key` | `null` |
+| `names.primary` | `Sia'atoutai` |
+| `names.common` | `null` |
+| `id` | `350e85f6-68ba-4114-9906-c2844815988b` |
+| `bbox.xmin` | `-175.25515747070312` |
+| `bbox.xmax` | `-175.255126953125` |
+| `bbox.ymin` | `-21.1353702545166` |
+| `bbox.ymax` | `-21.13536834716797` |
+| `geometry` | `POINT (-175.2551522 -21.1353686)` |
+| `theme` | `divisions` |
+| `type` | `division` |
+| `version` | `1` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenStreetMap` |
+| `sources[0].record_id` | `n3173231082@4` |
+| `sources[0].update_time` | `2014-12-18T09:17:03Z` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `subtype` | `locality` |
+| `country` | `TO` |
+| `hierarchies[0][0].division_id` | `fef8748b-0c91-46ad-9f2d-976d8d2de3e9` |
+| `hierarchies[0][0].subtype` | `country` |
+| `hierarchies[0][0].name` | `Tonga` |
+| `hierarchies[0][1].division_id` | `4d67561a-2292-41bd-8996-7853d276a42c` |
+| `hierarchies[0][1].subtype` | `region` |
+| `hierarchies[0][1].name` | `Tongatapu` |
+| `hierarchies[0][2].division_id` | `8730f0cc-d436-4f11-a7d3-49085813ef44` |
+| `hierarchies[0][2].subtype` | `county` |
+| `hierarchies[0][2].name` | `Vahe Kolomotu'a` |
+| `hierarchies[0][3].division_id` | `350e85f6-68ba-4114-9906-c2844815988b` |
+| `hierarchies[0][3].subtype` | `locality` |
+| `hierarchies[0][3].name` | `Sia'atoutai` |
+| `parent_division_id` | `8730f0cc-d436-4f11-a7d3-49085813ef44` |
+| `class` | `village` |
+| `local_type` | `{"en": "village"}` |
+| `region` | `TO-04` |
+| `perspectives` | `null` |
+| `norms` | `null` |
+| `population` | `534` |
+| `capital_division_ids` | `null` |
+| `capital_of_divisions` | `null` |
+| `wikidata` | `null` |
+| `names.rules[0].variant` | `alternate` |
+| `names.rules[0].language` | `null` |
+| `names.rules[0].perspectives` | `null` |
+| `names.rules[0].value` | `Nafualu` |
+| `names.rules[0].between` | `null` |
+| `names.rules[0].side` | `null` |
diff --git a/docs/schema/reference/divisions/division_area.md b/docs/schema/reference/divisions/division_area.md
new file mode 100644
index 00000000..cfa311ef
--- /dev/null
+++ b/docs/schema/reference/divisions/division_area.md
@@ -0,0 +1,88 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# DivisionArea
+
+Division areas are polygons that represent the land or maritime area covered by a
+division.
+
+Each division area belongs to a division which it references by ID, and for which
+the division area provides an area polygon. For ease of use, every division area
+repeats the subtype, names, country, and region properties of the division it
+belongs to.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `names` | [`Names`](../core/names.md) | |
+| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
+| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
+| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
+| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | The area covered by the division with which this area feature is associated
*Allowed geometry types: MultiPolygon, Polygon* |
+| `theme` | `"divisions"` | |
+| `type` | `"division_area"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `subtype` | [`PlaceType`](types/place_type.md) | *`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`* |
+| `class` | [`AreaClass`](types/division_area/area_class.md) | |
+| `is_land` | `boolean` (optional) | A boolean to indicate whether or not the feature geometry represents the land-clipped, non-maritime boundary. The geometry can be used for map rendering, cartographic display, and similar purposes.
*`strict=True`*
*Exactly one of `is_land`, `is_territorial` must be `true`* |
+| `is_territorial` | `boolean` (optional) | A boolean to indicate whether or not the feature geometry represents Overture's best approximation of this place's maritime boundary. For coastal places, this would tend to include the water area. The geometry can be used for data processing, reverse-geocoding, and similar purposes.
*`strict=True`*
*Exactly one of `is_land`, `is_territorial` must be `true`* |
+| `division_id` | [`Id`](../system/ref/id.md) | Division ID of the division this area belongs to.
*References [`Division`](division.md) (belongs to)* |
+| `country` | [`CountryCodeAlpha2`](../system/country_code_alpha2.md) | ISO 3166-1 alpha-2 country code of the division this area belongs to. |
+| `region` | [`RegionCode`](../system/region_code.md) (optional) | ISO 3166-2 principal subdivision code of the division this area belongs to. |
+| `admin_level` | [`AdminLevel`](types/admin_level.md) (optional) | Integer representing the division's position in its country's administrative hierarchy, where lower numbers correspond to higher level administrative units.
*`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`* |
+
+## Constraints
+
+- Exactly one of `is_land`, `is_territorial` must be `true`
+- `admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `names.primary` | `Κ»Eua` |
+| `names.common` | `null` |
+| `names.rules` | `null` |
+| `id` | `eb9b112f-ec3c-47f7-b519-6f9f2e6fc2bd` |
+| `bbox.xmin` | `-174.97535705566406` |
+| `bbox.xmax` | `-174.90040588378906` |
+| `bbox.ymin` | `-21.473018646240234` |
+| `bbox.ymax` | `-21.283489227294922` |
+| `geometry` | `MULTIPOLYGON (((-174.9553949 -21.4730179, -174.9514163 -21.4719978, -174.9520108 -21.4681253, -17...` |
+| `theme` | `divisions` |
+| `type` | `division_area` |
+| `version` | `2` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenStreetMap` |
+| `sources[0].record_id` | `r7247527@3` |
+| `sources[0].update_time` | `2020-12-30T18:41:56Z` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `subtype` | `region` |
+| `class` | `land` |
+| `is_land` | `true` |
+| `is_territorial` | `false` |
+| `division_id` | `21597af0-b564-463c-a356-42c29e712b7d` |
+| `country` | `TO` |
+| `region` | `TO-01` |
diff --git a/docs/schema/reference/divisions/division_boundary.md b/docs/schema/reference/divisions/division_boundary.md
new file mode 100644
index 00000000..39bcd519
--- /dev/null
+++ b/docs/schema/reference/divisions/division_boundary.md
@@ -0,0 +1,83 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# DivisionBoundary
+
+Boundaries represent borders between divisions of the same subtype.
+
+Some boundaries may be disputed by the divisions on one or both sides.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Boundary line or lines
*Allowed geometry types: LineString, MultiLineString* |
+| `theme` | `"divisions"` | |
+| `type` | `"division_boundary"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `subtype` | [`PlaceType`](types/place_type.md) | *`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`*
*`country` is required when `subtype` β `country`*
*`country` is forbidden when `subtype` = `country`* |
+| `class` | [`BoundaryClass`](types/division_boundary/boundary_class.md) | |
+| `is_land` | `boolean` (optional) | A boolean to indicate whether or not the feature geometry represents the land-clipped, non-maritime boundary. The geometry can be used for map rendering, cartographic display, and similar purposes.
*`strict=True`*
*Exactly one of `is_land`, `is_territorial` must be `true`* |
+| `is_territorial` | `boolean` (optional) | A boolean to indicate whether or not the feature geometry represents Overture's best approximation of this place's maritime boundary. For coastal places, this would tend to include the water area. The geometry can be used for data processing, reverse-geocoding, and similar purposes.
*`strict=True`*
*Exactly one of `is_land`, `is_territorial` must be `true`* |
+| `division_ids` | `list<`[`Id`](../system/ref/id.md)`>` | Identifies the two divisions to the left and right, respectively, of the boundary line. The left- and right-hand sides of the boundary are considered from the perspective of a person standing on the line facing in the direction in which the geometry is oriented, i.e. facing toward the end of the line.
The first array element is the Overture ID of the left division. The second element is the Overture ID of the right division.
*References [`Division`](division.md) (boundary of)*
*Minimum length: 2*
*Maximum length: 2*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `country` | [`CountryCodeAlpha2`](../system/country_code_alpha2.md) (optional) | ISO 3166-1 alpha-2 country code of the country or country-like entity that both sides of the boundary share.
This property will be present on boundaries between two regions, counties, or similar entities within the same country, but will not be present on boundaries between two countries or country-like entities.
*`country` is required when `subtype` β `country`*
*`country` is forbidden when `subtype` = `country`* |
+| `region` | [`RegionCode`](../system/region_code.md) (optional) | ISO 3166-2 principal subdivision code of the subdivision-like entity that both sides of the boundary share.
This property will be present on boundaries between two counties, localadmins or similar entities within the same principal subdivision, but will not be present on boundaries between different principal subdivisions or countries. |
+| `admin_level` | [`AdminLevel`](types/admin_level.md) (optional) | Integer representing the division's position in its country's administrative hierarchy, where lower numbers correspond to higher level administrative units.
*`admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`* |
+| `is_disputed` | `boolean` (optional) | Indicator if there are entities disputing this division boundary. Information about entities disputing this boundary should be included in perspectives property.
This property should also be true if boundary between two entities is unclear and this is "best guess". So having it true and no perspectives gives map creators reason not to fully trust the boundary, but use it if they have no other.
*`strict=True`* |
+| `perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which this division boundary is considered to be an accurate representation.
If this property is absent, then this boundary is not known to be disputed from any political perspective. Consequently, there is only one boundary feature representing the entire real world entity.
If this property is present, it means the boundary represents one of several alternative perspectives on the same real-world entity.
There are two modes of perspective:
1. `accepted_by` means the representation of the boundary is accepted by the listed entities and would be included on a map drawn from their perspective.
2. `disputed_by` means the representation of the boundary is disputed by the listed entities and would be excluded from a map drawn from their perspective.
When drawing a map from the perspective of a given country, one would start by gathering all the undisputed boundary (with no `perspectives` property), and then adding to that first all boundary explicitly accepted by the country, and second all boundary not explicitly disputed by the country. |
+| `perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+
+## Constraints
+
+- Exactly one of `is_land`, `is_territorial` must be `true`
+- `admin_level` is required when `subtype` is one of: `county`, `macrocounty`, `region`, `macroregion`, `dependency`, `country`
+- `country` is required when `subtype` β `country`
+- `country` is forbidden when `subtype` = `country`
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `2bdf68e4-860d-3d8c-a472-ccf439a5302a` |
+| `bbox.xmin` | `-147.06483459472656` |
+| `bbox.xmax` | `-147.04847717285156` |
+| `bbox.ymin` | `-15.4231538772583` |
+| `bbox.ymax` | `-15.151169776916504` |
+| `geometry` | `LINESTRING (-147.064823 -15.4231537, -147.0519131 -15.2885069, -147.048482 -15.1511701)` |
+| `theme` | `divisions` |
+| `type` | `division_boundary` |
+| `version` | `1` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenStreetMap` |
+| `sources[0].record_id` | `r6063055@9` |
+| `sources[0].update_time` | `2023-07-20T00:28:40Z` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `sources[1].property` | |
+| `sources[1].dataset` | `OpenStreetMap` |
+| `sources[1].record_id` | `r6063063@12` |
+| `sources[1].update_time` | `2023-07-20T00:28:40Z` |
+| `sources[1].confidence` | `null` |
+| `sources[1].between` | `null` |
+| `subtype` | `county` |
+| `class` | `maritime` |
+| `is_land` | `false` |
+| `is_territorial` | `true` |
+| `division_ids` | `["ae266459-63a4-4508-8295-0101e27d039b", "d4a6873d-885a-4f2a-bc0f-37e9d9e874e4"]` |
+| `country` | `PF` |
+| `region` | `null` |
+| `is_disputed` | `false` |
+| `perspectives` | `null` |
diff --git a/docs/schema/reference/divisions/types/_category_.json b/docs/schema/reference/divisions/types/_category_.json
new file mode 100644
index 00000000..a3ec0897
--- /dev/null
+++ b/docs/schema/reference/divisions/types/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Types"
+}
diff --git a/docs/schema/reference/divisions/types/admin_level.md b/docs/schema/reference/divisions/types/admin_level.md
new file mode 100644
index 00000000..7b36f057
--- /dev/null
+++ b/docs/schema/reference/divisions/types/admin_level.md
@@ -0,0 +1,16 @@
+# AdminLevel
+
+Integer representing the division's position in its country's administrative hierarchy, where lower numbers correspond to higher level administrative units.
+
+Underlying type: `uint8`
+
+## Constraints
+
+- `β₯ 0` (from [`uint8`](../../system/primitive/primitives.md))
+- `β€ 255` (from [`uint8`](../../system/primitive/primitives.md))
+
+## Used By
+
+- [`Division`](../division.md)
+- [`DivisionArea`](../division_area.md)
+- [`DivisionBoundary`](../division_boundary.md)
diff --git a/docs/schema/reference/divisions/types/capital_of_division_item.md b/docs/schema/reference/divisions/types/capital_of_division_item.md
new file mode 100644
index 00000000..2b3c5250
--- /dev/null
+++ b/docs/schema/reference/divisions/types/capital_of_division_item.md
@@ -0,0 +1,14 @@
+# CapitalOfDivisionItem
+
+One division that has capital.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `division_id` | [`DivisionId`](division_id.md) | ID of the division |
+| `subtype` | [`PlaceType`](place_type.md) | |
+
+## Used By
+
+- [`Division`](../division.md)
diff --git a/docs/schema/reference/divisions/types/division/_category_.json b/docs/schema/reference/divisions/types/division/_category_.json
new file mode 100644
index 00000000..e35ad267
--- /dev/null
+++ b/docs/schema/reference/divisions/types/division/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Division"
+}
diff --git a/docs/schema/reference/divisions/types/division/norms.md b/docs/schema/reference/divisions/types/division/norms.md
new file mode 100644
index 00000000..9f0c4347
--- /dev/null
+++ b/docs/schema/reference/divisions/types/division/norms.md
@@ -0,0 +1,13 @@
+# Norms
+
+Local norms and standards.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `driving_side` | [`Side`](../../../core/scoping/side.md) (optional) | Side of the road on which vehicles drive in the division. |
+
+## Used By
+
+- [`Division`](../../division.md)
diff --git a/docs/schema/reference/divisions/types/division_area/_category_.json b/docs/schema/reference/divisions/types/division_area/_category_.json
new file mode 100644
index 00000000..beafbd10
--- /dev/null
+++ b/docs/schema/reference/divisions/types/division_area/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Division Area"
+}
diff --git a/docs/schema/reference/divisions/types/division_area/area_class.md b/docs/schema/reference/divisions/types/division_area/area_class.md
new file mode 100644
index 00000000..22ec4d13
--- /dev/null
+++ b/docs/schema/reference/divisions/types/division_area/area_class.md
@@ -0,0 +1,12 @@
+# AreaClass
+
+Area and boundary class designations.
+
+## Values
+
+- `land`
+- `maritime`
+
+## Used By
+
+- [`DivisionArea`](../../division_area.md)
diff --git a/docs/schema/reference/divisions/types/division_boundary/_category_.json b/docs/schema/reference/divisions/types/division_boundary/_category_.json
new file mode 100644
index 00000000..e7a1d5c2
--- /dev/null
+++ b/docs/schema/reference/divisions/types/division_boundary/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Division Boundary"
+}
diff --git a/docs/schema/reference/divisions/types/division_boundary/boundary_class.md b/docs/schema/reference/divisions/types/division_boundary/boundary_class.md
new file mode 100644
index 00000000..55c0ccaa
--- /dev/null
+++ b/docs/schema/reference/divisions/types/division_boundary/boundary_class.md
@@ -0,0 +1,10 @@
+# BoundaryClass
+
+## Values
+
+- `land`
+- `maritime`
+
+## Used By
+
+- [`DivisionBoundary`](../../division_boundary.md)
diff --git a/docs/schema/reference/divisions/types/division_class.md b/docs/schema/reference/divisions/types/division_class.md
new file mode 100644
index 00000000..ec5489a1
--- /dev/null
+++ b/docs/schema/reference/divisions/types/division_class.md
@@ -0,0 +1,15 @@
+# DivisionClass
+
+Division-specific class designations.
+
+## Values
+
+- `megacity`
+- `city`
+- `town`
+- `village`
+- `hamlet`
+
+## Used By
+
+- [`Division`](../division.md)
diff --git a/docs/schema/reference/divisions/types/division_id.md b/docs/schema/reference/divisions/types/division_id.md
new file mode 100644
index 00000000..dcbedc0e
--- /dev/null
+++ b/docs/schema/reference/divisions/types/division_id.md
@@ -0,0 +1,16 @@
+# DivisionId
+
+ID of the division
+
+Underlying type: `string`
+
+## Constraints
+
+- Minimum length: 1
+- Minimum length: 1 (from [`Id`](../../system/ref/id.md))
+- Allows only strings that contain no whitespace characters. (`NoWhitespaceConstraint`, pattern: `^\S+$`) (from [`NoWhitespaceString`](../../system/no_whitespace_string.md))
+
+## Used By
+
+- [`CapitalOfDivisionItem`](capital_of_division_item.md)
+- [`HierarchyItem`](hierarchy_item.md)
diff --git a/docs/schema/reference/divisions/types/hierarchy.md b/docs/schema/reference/divisions/types/hierarchy.md
new file mode 100644
index 00000000..73ed6a45
--- /dev/null
+++ b/docs/schema/reference/divisions/types/hierarchy.md
@@ -0,0 +1,16 @@
+# Hierarchy
+
+A hierarchy of divisions, with the first entry being a country; each subsequent entry, if any, being a division that is a direct child of the previous entry; and the last entry representing the division that contains the hierarchy.
+
+For example, a hierarchy for the United States is simply [United States]. A hierarchy for the U.S. state of New Hampshire would be [United States, New Hampshire], and a hierarchy for the city of Concord, NH would be [United States, New Hampshire, Merrimack County, Concord].
+
+Underlying type: `list<`[`HierarchyItem`](hierarchy_item.md)`>`
+
+## Constraints
+
+- Minimum length: 1
+- All items must be unique. (`UniqueItemsConstraint`)
+
+## Used By
+
+- [`Division`](../division.md)
diff --git a/docs/schema/reference/divisions/types/hierarchy_item.md b/docs/schema/reference/divisions/types/hierarchy_item.md
new file mode 100644
index 00000000..53ef5641
--- /dev/null
+++ b/docs/schema/reference/divisions/types/hierarchy_item.md
@@ -0,0 +1,16 @@
+# HierarchyItem
+
+One division in a hierarchy.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `division_id` | [`DivisionId`](division_id.md) | ID of the division |
+| `subtype` | [`PlaceType`](place_type.md) | |
+| `name` | [`StrippedString`](../../system/stripped_string.md) | Primary name of the division
*Minimum length: 1* |
+
+## Used By
+
+- [`Division`](../division.md)
+- [`Hierarchy`](hierarchy.md)
diff --git a/docs/schema/reference/divisions/types/place_type.md b/docs/schema/reference/divisions/types/place_type.md
new file mode 100644
index 00000000..641bf299
--- /dev/null
+++ b/docs/schema/reference/divisions/types/place_type.md
@@ -0,0 +1,27 @@
+# PlaceType
+
+Category of the division from a finite, hierarchical, ordered list of categories (e.g., country,
+region, locality, etc.) similar to a Who's on First placetype.
+
+## Values
+
+- `country`
+- `dependency`
+- `macroregion`
+- `region`
+- `macrocounty`
+- `county`
+- `localadmin`
+- `locality`
+- `borough`
+- `macrohood`
+- `neighborhood`
+- `microhood`
+
+## Used By
+
+- [`CapitalOfDivisionItem`](capital_of_division_item.md)
+- [`Division`](../division.md)
+- [`DivisionArea`](../division_area.md)
+- [`DivisionBoundary`](../division_boundary.md)
+- [`HierarchyItem`](hierarchy_item.md)
diff --git a/docs/schema/reference/places/_category_.json b/docs/schema/reference/places/_category_.json
new file mode 100644
index 00000000..69d3715d
--- /dev/null
+++ b/docs/schema/reference/places/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Places",
+ "position": 5
+}
diff --git a/docs/schema/reference/places/place.md b/docs/schema/reference/places/place.md
new file mode 100644
index 00000000..65c00f51
--- /dev/null
+++ b/docs/schema/reference/places/place.md
@@ -0,0 +1,113 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# Place
+
+Places are point representations of real-world facilities, businesses, services, or amenities.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Position of the place. Places are point geometries.
*Allowed geometry types: Point* |
+| `theme` | `"places"` | |
+| `type` | `"place"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `operating_status` | [`OperatingStatus`](types/operating_status.md) | An indication of whether a place is: in continued operation, in a temporary operating hiatus, or closed permanently.
This is not an indication of opening hours or that the place is open/closed at the current time-of-day or day-of-week.
When `operating_status` is `"permanently_closed"`, the `confidence` field will be set to 0. |
+| `categories` | [`Categories`](types/categories.md) (optional) | |
+| `categories.primary` | [`SnakeCaseString`](../system/snake_case_string.md) | The primary or main category of the place. |
+| `categories.alternate` | `list<`[`SnakeCaseString`](../system/snake_case_string.md)`>` (optional) | Alternate categories of the place.
Some places might fit into two categories, e.g., a book store and a coffee shop. In these cases, the primary category can be augmented with additional categories. |
+| `basic_category` | [`SnakeCaseString`](../system/snake_case_string.md) (optional) | The basic level category of a place.
This field classifies places into categories at a level that most people find intuitive. The full list of possible values it may hold can be found at (TODO).
The basic level category, or simply basic category, is based on a cognitive science model use in taxonomy and ontology development. The idea is to provide the category name at the level of generality that is preferred by humans in learning and memory tasks. This category to be roughly in the middle of the general-to-specific category hierarchy.
The full list of basic level categories is available at https://docs.overturemaps.org/guides/places/ |
+| `taxonomy` | [`Taxonomy`](types/taxonomy.md) (optional) | A structured representation of the place's category within the Overture taxonomy.
Provides the primary classification, full hierarchy path, and alternate categories. |
+| `taxonomy.primary` | [`SnakeCaseString`](../system/snake_case_string.md) | The primary, or most specific, category known about this place.
The `primary` category value must always equal the last or rightmost entry in the `hierarchy` field. |
+| `taxonomy.hierarchy` | `list<`[`SnakeCaseString`](../system/snake_case_string.md)`>` | The full primary hierarchy of categories known for this place, ordered from most general to most specific. An example hierarchy might be: `["food_and_drink", "restaurant", "casual_eatery", "gas_station_sushi"]`.
The rightmost, or most specific, value in the `hierarchy` must always be equal to the `primary` field. The basic level category of the place will typically be found in the middle of the primary hierarchy. The primary hierarchy does not include any of the alternate categories found in the `alternates` field. |
+| `taxonomy.alternates` | `list<`[`SnakeCaseString`](../system/snake_case_string.md)`>` (optional) | Unordered list of additional categories that are known for this place but that are not part of the primary category hierarchy.
Alternate categories allow a more complete picture of the place to be surfaced when it fits multiple unconnected branches in the taxonomy. For example a gas station that also sells groceries might have primary category of "gas_station" with an alternate of "grocery_store".
Alternate categories are not part of the primary hierarchy or another alternate category's hierarchy. In other words, if a category is a parent in the hierarchy of another category, that category can't be a primary or alternate category itself.
Note as well that this field is an unordered list of extra categories and does not represent a hierarchy. |
+| `confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | A score between 0 and 1 indicating how confident we are that the place exists.
A confidence score of 0 indicates that we are certain the place doesn't exist anymore and will always be paired with an `operating_status` of `"permanently_closed"`.
A confidence score of 1 indicates that we are certain the place does exist.
If there is no value for confidence, it means we don't have enough information on which to estimate our confidence level. |
+| `websites` | `list<`[`HttpUrl`](../pydantic/networks/http_url.md)`>` (optional) | The sites of the place.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `socials` | `list<`[`HttpUrl`](../pydantic/networks/http_url.md)`>` (optional) | The social media URLs of the place.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `emails` | `list<`[`EmailStr`](../pydantic/networks/email_str.md)`>` (optional) | The email addresses of the place.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `phones` | `list<`[`PhoneNumber`](../system/phone_number.md)`>` (optional) | The phone numbers of the place.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `brand` | [`Brand`](types/brand.md) (optional) | The brand associated with the place. |
+| `brand.names` | [`Names`](../core/names.md) (optional) | |
+| `brand.names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
+| `brand.names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
+| `brand.names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `brand.names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `brand.names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
+| `brand.names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `brand.names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `brand.names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `brand.names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `brand.names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `brand.names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+| `brand.wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
+| `addresses[]` | `list<`[`Address`](types/address.md)`>` (optional) | The address or addresses of the place
*Minimum length: 1* |
+| `addresses[].freeform` | `string` (optional) | Free-form address that contains street name, house number and other address info |
+| `addresses[].locality` | `string` (optional) | City, town, or neighborhood component of the place address |
+| `addresses[].postcode` | `string` (optional) | Postal code component of the place address |
+| `addresses[].region` | [`RegionCode`](../system/region_code.md) (optional) | An ISO 3166-2 principal subdivision code |
+| `addresses[].country` | [`CountryCodeAlpha2`](../system/country_code_alpha2.md) (optional) | An ISO 3166-1 alpha-2 country code |
+| `names` | [`Names`](../core/names.md) (optional) | |
+| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
+| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
+| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
+| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `99003ee6-e75b-4dd6-8a8a-53a5a716c50d` |
+| `bbox.xmin` | `-150.46875` |
+| `bbox.xmax` | `-150.46875` |
+| `bbox.ymin` | `-79.17134094238281` |
+| `bbox.ymax` | `-79.17133331298828` |
+| `geometry` | `POINT (-150.46875 -79.1713346)` |
+| `theme` | `places` |
+| `type` | `place` |
+| `version` | `1` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `meta` |
+| `sources[0].record_id` | `107663894904826` |
+| `sources[0].update_time` | `2025-06-30T07:00:00.000Z` |
+| `sources[0].confidence` | `0.7337175792507205` |
+| `sources[0].between` | `null` |
+| `operating_status` | `open` |
+| `categories.primary` | `hotel` |
+| `categories.alternate` | `null` |
+| `confidence` | `0.7337175792507205` |
+| `websites` | `["https://www.superhotel.co.jp/s_hotels/beppu/"]` |
+| `socials` | `["https://www.facebook.com/107663894904826"]` |
+| `emails` | `null` |
+| `phones` | `["+81977009000"]` |
+| `brand.wikidata` | `null` |
+| `brand.names.primary` | `SUPER HOTEL` |
+| `brand.names.common` | `null` |
+| `brand.names.rules` | `null` |
+| `addresses[0].freeform` | `η§η°ηζ¨ͺζεΈι§
εηΊοΌοΌβοΌ` |
+| `addresses[0].locality` | `ζ¨ͺζεΈ` |
+| `addresses[0].postcode` | `013-0036` |
+| `addresses[0].region` | `null` |
+| `addresses[0].country` | `JP` |
+| `names.primary` | `γΉγΌγγΌγγγ«ε₯εΊι§
ε` |
+| `names.common` | `null` |
+| `names.rules` | `null` |
diff --git a/docs/schema/reference/places/types/_category_.json b/docs/schema/reference/places/types/_category_.json
new file mode 100644
index 00000000..a3ec0897
--- /dev/null
+++ b/docs/schema/reference/places/types/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Types"
+}
diff --git a/docs/schema/reference/places/types/address.md b/docs/schema/reference/places/types/address.md
new file mode 100644
index 00000000..b64d5be1
--- /dev/null
+++ b/docs/schema/reference/places/types/address.md
@@ -0,0 +1,17 @@
+# Address
+
+An address associated with a place.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `freeform` | `string` (optional) | Free-form address that contains street name, house number and other address info |
+| `locality` | `string` (optional) | City, town, or neighborhood component of the place address |
+| `postcode` | `string` (optional) | Postal code component of the place address |
+| `region` | [`RegionCode`](../../system/region_code.md) (optional) | An ISO 3166-2 principal subdivision code |
+| `country` | [`CountryCodeAlpha2`](../../system/country_code_alpha2.md) (optional) | An ISO 3166-1 alpha-2 country code |
+
+## Used By
+
+- [`Place`](../place.md)
diff --git a/docs/schema/reference/places/types/brand.md b/docs/schema/reference/places/types/brand.md
new file mode 100644
index 00000000..8064e958
--- /dev/null
+++ b/docs/schema/reference/places/types/brand.md
@@ -0,0 +1,27 @@
+# Brand
+
+A brand associated with a place.
+
+A location with multiple brands is modeled as multiple separate places, each with its own brand.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `names` | [`Names`](../../core/names.md) (optional) | |
+| `names.primary` | [`StrippedString`](../../system/stripped_string.md) | The most commonly used name. |
+| `names.common` | [`CommonNames`](../../core/common_names.md) (map, optional) | |
+| `names.rules[]` | `list<`[`NameRule`](../../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `names.rules[].value` | [`StrippedString`](../../system/stripped_string.md) | The actual name value. |
+| `names.rules[].variant` | [`NameVariant`](../../core/name_variant.md) | The name variant for this name rule. |
+| `names.rules[].language` | [`LanguageTag`](../../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `names.rules[].perspectives` | [`Perspectives`](../../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `names.rules[].between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `names.rules[].side` | [`Side`](../../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+| `wikidata` | [`WikidataId`](../../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
+
+## Used By
+
+- [`Place`](../place.md)
diff --git a/docs/schema/reference/places/types/categories.md b/docs/schema/reference/places/types/categories.md
new file mode 100644
index 00000000..fbb5a64d
--- /dev/null
+++ b/docs/schema/reference/places/types/categories.md
@@ -0,0 +1,16 @@
+# Categories
+
+Categories a place belongs to.
+
+Complete list is available on GitHub: [https://github.com/OvertureMaps/schema/blob/main/docs/schema/concepts/by-theme/places/overture_categories.csv](https://github.com/OvertureMaps/schema/blob/main/docs/schema/concepts/by-theme/places/overture_categories.csv)
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `primary` | [`SnakeCaseString`](../../system/snake_case_string.md) | The primary or main category of the place. |
+| `alternate` | `list<`[`SnakeCaseString`](../../system/snake_case_string.md)`>` (optional) | Alternate categories of the place.
Some places might fit into two categories, e.g., a book store and a coffee shop. In these cases, the primary category can be augmented with additional categories.
*All items must be unique. (`UniqueItemsConstraint`)* |
+
+## Used By
+
+- [`Place`](../place.md)
diff --git a/docs/schema/reference/places/types/operating_status.md b/docs/schema/reference/places/types/operating_status.md
new file mode 100644
index 00000000..61b17c7f
--- /dev/null
+++ b/docs/schema/reference/places/types/operating_status.md
@@ -0,0 +1,19 @@
+# OperatingStatus
+
+General indication of whether a place is: in continued operation, in a temporary operating
+hiatus, or closed permanently.
+
+Operating status should not be confused with opening hours or operating hours. In particular,
+the status `"open"` does not mean the place is open *right now*, it means that in general the
+place is continuing to operate normally, as opposed to being in an operating hiatus
+(`"temporarily_closed"`) or shuttered (`"permanently_closed"`).
+
+## Values
+
+- `open`
+- `permanently_closed`
+- `temporarily_closed`
+
+## Used By
+
+- [`Place`](../place.md)
diff --git a/docs/schema/reference/places/types/taxonomy.md b/docs/schema/reference/places/types/taxonomy.md
new file mode 100644
index 00000000..33f5b4da
--- /dev/null
+++ b/docs/schema/reference/places/types/taxonomy.md
@@ -0,0 +1,17 @@
+# Taxonomy
+
+A structured representation of the place's category within the Overture taxonomy.
+
+Provides the primary classification, full hierarchy path, and alternate categories.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `primary` | [`SnakeCaseString`](../../system/snake_case_string.md) | The primary, or most specific, category known about this place.
The `primary` category value must always equal the last or rightmost entry in the `hierarchy` field. |
+| `hierarchy` | `list<`[`SnakeCaseString`](../../system/snake_case_string.md)`>` | The full primary hierarchy of categories known for this place, ordered from most general to most specific. An example hierarchy might be: `["food_and_drink", "restaurant", "casual_eatery", "gas_station_sushi"]`.
The rightmost, or most specific, value in the `hierarchy` must always be equal to the `primary` field. The basic level category of the place will typically be found in the middle of the primary hierarchy. The primary hierarchy does not include any of the alternate categories found in the `alternates` field.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `alternates` | `list<`[`SnakeCaseString`](../../system/snake_case_string.md)`>` (optional) | Unordered list of additional categories that are known for this place but that are not part of the primary category hierarchy.
Alternate categories allow a more complete picture of the place to be surfaced when it fits multiple unconnected branches in the taxonomy. For example a gas station that also sells groceries might have primary category of "gas_station" with an alternate of "grocery_store".
Alternate categories are not part of the primary hierarchy or another alternate category's hierarchy. In other words, if a category is a parent in the hierarchy of another category, that category can't be a primary or alternate category itself.
Note as well that this field is an unordered list of extra categories and does not represent a hierarchy.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+
+## Used By
+
+- [`Place`](../place.md)
diff --git a/docs/schema/reference/pydantic/_category_.json b/docs/schema/reference/pydantic/_category_.json
new file mode 100644
index 00000000..6bc65c37
--- /dev/null
+++ b/docs/schema/reference/pydantic/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Pydantic",
+ "position": 8
+}
diff --git a/docs/schema/reference/pydantic/networks/_category_.json b/docs/schema/reference/pydantic/networks/_category_.json
new file mode 100644
index 00000000..8dc67bc4
--- /dev/null
+++ b/docs/schema/reference/pydantic/networks/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Networks"
+}
diff --git a/docs/schema/reference/pydantic/networks/email_str.md b/docs/schema/reference/pydantic/networks/email_str.md
new file mode 100644
index 00000000..3bf99260
--- /dev/null
+++ b/docs/schema/reference/pydantic/networks/email_str.md
@@ -0,0 +1,7 @@
+# EmailStr
+
+See: [Pydantic docs](https://docs.pydantic.dev/latest/api/networks/#pydantic.networks.EmailStr)
+
+## Used By
+
+- [`Place`](../../places/place.md)
diff --git a/docs/schema/reference/pydantic/networks/http_url.md b/docs/schema/reference/pydantic/networks/http_url.md
new file mode 100644
index 00000000..b4b25f0e
--- /dev/null
+++ b/docs/schema/reference/pydantic/networks/http_url.md
@@ -0,0 +1,9 @@
+# HttpUrl
+
+A type that will accept any http or https URL.
+
+See: [Pydantic docs](https://docs.pydantic.dev/latest/api/networks/#pydantic.networks.HttpUrl)
+
+## Used By
+
+- [`Place`](../../places/place.md)
diff --git a/docs/schema/reference/system/_category_.json b/docs/schema/reference/system/_category_.json
new file mode 100644
index 00000000..22378997
--- /dev/null
+++ b/docs/schema/reference/system/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "System",
+ "position": 9
+}
diff --git a/docs/schema/reference/system/country_code_alpha2.md b/docs/schema/reference/system/country_code_alpha2.md
new file mode 100644
index 00000000..62980aca
--- /dev/null
+++ b/docs/schema/reference/system/country_code_alpha2.md
@@ -0,0 +1,18 @@
+# CountryCodeAlpha2
+
+An ISO-3166-1 alpha-2 country code.
+
+Underlying type: `string`
+
+## Constraints
+
+- Allows only ISO 3166-1 alpha-2 country codes. (`CountryCodeAlpha2Constraint`, pattern: `^[A-Z]{2}$`)
+
+## Used By
+
+- [`Address`](../addresses/address.md)
+- [`Address`](../places/types/address.md)
+- [`Division`](../divisions/division.md)
+- [`DivisionArea`](../divisions/division_area.md)
+- [`DivisionBoundary`](../divisions/division_boundary.md)
+- [`Perspectives`](../core/perspectives.md)
diff --git a/docs/schema/reference/system/hex_color.md b/docs/schema/reference/system/hex_color.md
new file mode 100644
index 00000000..a22c9c1f
--- /dev/null
+++ b/docs/schema/reference/system/hex_color.md
@@ -0,0 +1,20 @@
+# HexColor
+
+A color represented as an #RRGGBB or #RGB hexadecimal string.
+
+For example:
+
+- `"#ff0000"` or `#f00` for pure red π₯
+- `"#ffa500"` for bright orange π§
+- `"#000000"` or `"#000"` for black β¬
+
+Underlying type: `string`
+
+## Constraints
+
+- Allows only hexadecimal color codes (e.g., #FF0000 or #FFF). (`HexColorConstraint`, pattern: `^#[0-9A-Fa-f]{3}([0-9A-Fa-f]{3})?$`)
+
+## Used By
+
+- [`Building`](../buildings/building.md)
+- [`BuildingPart`](../buildings/building_part.md)
diff --git a/docs/schema/reference/system/json_pointer.md b/docs/schema/reference/system/json_pointer.md
new file mode 100644
index 00000000..b4f4cbb1
--- /dev/null
+++ b/docs/schema/reference/system/json_pointer.md
@@ -0,0 +1,23 @@
+# JsonPointer
+
+A JSON Pointer
+
+As described in `the JSON Pointer specification, RFC-6901`_.
+
+.. _the JSON Pointer specification, RFC-6901: [https://rfc-editor.org/rfc/rfc6901.html](https://rfc-editor.org/rfc/rfc6901.html)
+
+For example:
+
+- `""` (root value)
+- `"/connectors/"`
+- `"/connectors/0/at"`
+
+Underlying type: `string`
+
+## Constraints
+
+- Allows only valid JSON Pointer values (RFC 6901). (`JsonPointerConstraint`)
+
+## Used By
+
+- [`SourceItem`](../core/source_item.md)
diff --git a/docs/schema/reference/system/language_tag.md b/docs/schema/reference/system/language_tag.md
new file mode 100644
index 00000000..9daab5db
--- /dev/null
+++ b/docs/schema/reference/system/language_tag.md
@@ -0,0 +1,27 @@
+# LanguageTag
+
+A BCP-47 language tag.
+
+As described in `Tags for Identifying Languages, BCP-47`_.
+
+.. _Tags for Identifying Languages, BCP-47: [https://www.rfc-editor.org/rfc/bcp/bcp47.txt](https://www.rfc-editor.org/rfc/bcp/bcp47.txt)
+
+For example:
+
+- `"en"`
+- `"en-US"`
+- `"fr-CA"`
+- `"zh-Hant-TW"`
+
+Underlying type: `string`
+
+## Constraints
+
+- Allows only `BCP-47`_ language tags. (`LanguageTagConstraint`, pattern: `^(?:(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}?)|(?:[A-Za-z]{4,8}))(?:-[A-Za-z]{4})?(?:-[A-Za-z]{2}|[0-9]{3})?(?:-(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(?:-[A-WY-Za-wy-z0-9](?:-[A-Za-z0-9]{2,8})+)*$`)
+
+## Used By
+
+- [`Division`](../divisions/division.md)
+- [`NameRule`](../core/name_rule.md)
+- [`Names`](../core/names.md)
+- [`CommonNames`](../core/common_names.md)
diff --git a/docs/schema/reference/system/no_whitespace_string.md b/docs/schema/reference/system/no_whitespace_string.md
new file mode 100644
index 00000000..f3e298b8
--- /dev/null
+++ b/docs/schema/reference/system/no_whitespace_string.md
@@ -0,0 +1,14 @@
+# NoWhitespaceString
+
+A string that contains no whitespace characters.
+
+Underlying type: `string`
+
+## Constraints
+
+- Allows only strings that contain no whitespace characters. (`NoWhitespaceConstraint`, pattern: `^\S+$`)
+
+## Used By
+
+- [`DivisionId`](../divisions/types/division_id.md)
+- [`Id`](ref/id.md)
diff --git a/docs/schema/reference/system/phone_number.md b/docs/schema/reference/system/phone_number.md
new file mode 100644
index 00000000..8bfed046
--- /dev/null
+++ b/docs/schema/reference/system/phone_number.md
@@ -0,0 +1,13 @@
+# PhoneNumber
+
+An international phone number.
+
+Underlying type: `string`
+
+## Constraints
+
+- Allows only international phone numbers. (`PhoneNumberConstraint`, pattern: `^\+\d{1,3}[\s\-\(\)0-9]+$`)
+
+## Used By
+
+- [`Place`](../places/place.md)
diff --git a/docs/schema/reference/system/primitive/_category_.json b/docs/schema/reference/system/primitive/_category_.json
new file mode 100644
index 00000000..ee6c4309
--- /dev/null
+++ b/docs/schema/reference/system/primitive/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Primitive"
+}
diff --git a/docs/schema/reference/system/primitive/geometry.md b/docs/schema/reference/system/primitive/geometry.md
new file mode 100644
index 00000000..25d26fde
--- /dev/null
+++ b/docs/schema/reference/system/primitive/geometry.md
@@ -0,0 +1,11 @@
+# Geometry Types
+
+Spatial types for representing geographic features.
+
+## Types
+
+| Type | Description |
+| -----: | ------------- |
+| `Geometry` | GeoJSON geometry value (Point, LineString, Polygon, etc.) |
+| `BBox` | Bounding box as 4 or 6 coordinate values: [west, south, east, north] or [west, south, min-altitude, east, north, max-altitude] |
+| `GeometryType` | Enumeration of geometry types: `geometry_collection`, `line_string`, `multi_line_string`, `multi_point`, `multi_polygon`, `point`, `polygon` |
\ No newline at end of file
diff --git a/docs/schema/reference/system/primitive/primitives.md b/docs/schema/reference/system/primitive/primitives.md
new file mode 100644
index 00000000..8b0415a7
--- /dev/null
+++ b/docs/schema/reference/system/primitive/primitives.md
@@ -0,0 +1,27 @@
+# Primitive Types
+
+Numeric types used for schema field definitions.
+
+## Integer Types
+
+| Type | Range | Description |
+| -----: | :-----: | ------------- |
+| `int8` | -128 to 127 | Portable 8-bit signed integer. |
+| `int16` | -32,768 to 32,767 | Portable 16-bit signed integer. |
+| `int32` | -2,147,483,648 to 2,147,483,647 | Portable 32-bit signed integer. |
+| `int64` | -2^63 to 2^63-1 | Portable 64-bit signed integer. |
+
+## Unsigned Integer Types
+
+| Type | Range | Description |
+| -----: | :-----: | ------------- |
+| `uint8` | 0 to 255 | Portable 8-bit unsigned integer. |
+| `uint16` | 0 to 65,535 | Portable 16-bit unsigned integer. |
+| `uint32` | 0 to 4,294,967,295 | Portable 32-bit unsigned integer. |
+
+## Floating Point Types
+
+| Type | Precision | Description |
+| -----: | :---------: | ------------- |
+| `float32` | ~7 decimal digits | Portable IEEE 32-bit floating point number. |
+| `float64` | ~15 decimal digits | Portable IEEE 64-bit floating point number. |
diff --git a/docs/schema/reference/system/ref/_category_.json b/docs/schema/reference/system/ref/_category_.json
new file mode 100644
index 00000000..a3d90fc8
--- /dev/null
+++ b/docs/schema/reference/system/ref/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Ref"
+}
diff --git a/docs/schema/reference/system/ref/id.md b/docs/schema/reference/system/ref/id.md
new file mode 100644
index 00000000..0925e857
--- /dev/null
+++ b/docs/schema/reference/system/ref/id.md
@@ -0,0 +1,32 @@
+# ID
+
+A unique identifier.
+
+Underlying type: `string`
+
+## Constraints
+
+- Minimum length: 1
+- Allows only strings that contain no whitespace characters. (`NoWhitespaceConstraint`, pattern: `^\S+$`) (from [`NoWhitespaceString`](../no_whitespace_string.md))
+
+## Used By
+
+- [`Address`](../../addresses/address.md)
+- [`Bathymetry`](../../base/bathymetry.md)
+- [`Building`](../../buildings/building.md)
+- [`BuildingPart`](../../buildings/building_part.md)
+- [`Connector`](../../transportation/connector.md)
+- [`ConnectorReference`](../../transportation/types/connector_reference.md)
+- [`DestinationRule`](../../transportation/types/destination_rule.md)
+- [`Division`](../../divisions/division.md)
+- [`DivisionArea`](../../divisions/division_area.md)
+- [`DivisionBoundary`](../../divisions/division_boundary.md)
+- [`Infrastructure`](../../base/infrastructure.md)
+- [`Land`](../../base/land.md)
+- [`LandCover`](../../base/land_cover.md)
+- [`LandUse`](../../base/land_use.md)
+- [`Place`](../../places/place.md)
+- [`Segment`](../../transportation/segment.md)
+- [`SequenceEntry`](../../transportation/types/sequence_entry.md)
+- [`Water`](../../base/water.md)
+- [`DivisionId`](../../divisions/types/division_id.md)
diff --git a/docs/schema/reference/system/region_code.md b/docs/schema/reference/system/region_code.md
new file mode 100644
index 00000000..bf2f016e
--- /dev/null
+++ b/docs/schema/reference/system/region_code.md
@@ -0,0 +1,16 @@
+# RegionCode
+
+An ISO 3166-2 principal subdivision code.
+
+Underlying type: `string`
+
+## Constraints
+
+- Allows only ISO 3166-2 principal subdivision codes. (`RegionCodeConstraint`, pattern: `^[A-Z]{2}-[A-Z0-9]{1,3}$`)
+
+## Used By
+
+- [`Address`](../places/types/address.md)
+- [`Division`](../divisions/division.md)
+- [`DivisionArea`](../divisions/division_area.md)
+- [`DivisionBoundary`](../divisions/division_boundary.md)
diff --git a/docs/schema/reference/system/snake_case_string.md b/docs/schema/reference/system/snake_case_string.md
new file mode 100644
index 00000000..b74d51f0
--- /dev/null
+++ b/docs/schema/reference/system/snake_case_string.md
@@ -0,0 +1,15 @@
+# SnakeCaseString
+
+A string that looks like a snake_case identifier, like a Python variable name (*e.g.*, `foo_bar`).
+
+Underlying type: `string`
+
+## Constraints
+
+- Allows only strings that look like snake_case identifiers, *e.g.* `"foo_bar"`. (`SnakeCaseConstraint`, pattern: `^[a-z0-9]+(_[a-z0-9]+)*$`)
+
+## Used By
+
+- [`Categories`](../places/types/categories.md)
+- [`Place`](../places/place.md)
+- [`Taxonomy`](../places/types/taxonomy.md)
diff --git a/docs/schema/reference/system/stripped_string.md b/docs/schema/reference/system/stripped_string.md
new file mode 100644
index 00000000..64220b5f
--- /dev/null
+++ b/docs/schema/reference/system/stripped_string.md
@@ -0,0 +1,22 @@
+# StrippedString
+
+A string without leading or trailing whitespace.
+
+Underlying type: `string`
+
+## Constraints
+
+- Allows only strings that have no leading/trailing whitespace. (`StrippedConstraint`)
+
+## Used By
+
+- [`Address`](../addresses/address.md)
+- [`AddressLevel`](../addresses/types/address_level.md)
+- [`DestinationLabels`](../transportation/types/destination_labels.md)
+- [`Division`](../divisions/division.md)
+- [`HierarchyItem`](../divisions/types/hierarchy_item.md)
+- [`NameRule`](../core/name_rule.md)
+- [`Names`](../core/names.md)
+- [`RouteReference`](../transportation/types/route_reference.md)
+- [`SourceItem`](../core/source_item.md)
+- [`CommonNames`](../core/common_names.md)
diff --git a/docs/schema/reference/system/wikidata_id.md b/docs/schema/reference/system/wikidata_id.md
new file mode 100644
index 00000000..ebef7cee
--- /dev/null
+++ b/docs/schema/reference/system/wikidata_id.md
@@ -0,0 +1,23 @@
+# WikidataId
+
+A wikidata ID, as found on [https://www.wikidata.org/](https://www.wikidata.org/).
+
+- `"Q42"`
+- `"Q11643"`
+- `"Q116257497"`
+
+Underlying type: `string`
+
+## Constraints
+
+- Allows only Wikidata identifiers (Q followed by digits). (`WikidataIdConstraint`, pattern: `^Q\d+$`)
+
+## Used By
+
+- [`Brand`](../places/types/brand.md)
+- [`Division`](../divisions/division.md)
+- [`Infrastructure`](../base/infrastructure.md)
+- [`Land`](../base/land.md)
+- [`LandUse`](../base/land_use.md)
+- [`RouteReference`](../transportation/types/route_reference.md)
+- [`Water`](../base/water.md)
diff --git a/docs/schema/reference/transportation/_category_.json b/docs/schema/reference/transportation/_category_.json
new file mode 100644
index 00000000..597025ad
--- /dev/null
+++ b/docs/schema/reference/transportation/_category_.json
@@ -0,0 +1,4 @@
+{
+ "label": "Transportation",
+ "position": 6
+}
diff --git a/docs/schema/reference/transportation/connector.md b/docs/schema/reference/transportation/connector.md
new file mode 100644
index 00000000..b03127e6
--- /dev/null
+++ b/docs/schema/reference/transportation/connector.md
@@ -0,0 +1,49 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# Connector
+
+Connectors create physical connections between segments.
+
+Connectors are compatible with GeoJSON Point features.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Position of the connector
*Allowed geometry types: Point* |
+| `theme` | `"transportation"` | |
+| `type` | `"connector"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `39542bee-230f-4b91-b7e5-a9b58e0c59b1` |
+| `bbox.xmin` | `-176.54730224609375` |
+| `bbox.xmax` | `-176.54727172851562` |
+| `bbox.ymin` | `-43.96794891357422` |
+| `bbox.ymax` | `-43.96794128417969` |
+| `geometry` | `POINT (-176.5472979 -43.9679472)` |
+| `theme` | `transportation` |
+| `type` | `connector` |
+| `version` | `1` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenStreetMap` |
+| `sources[0].record_id` | `null` |
+| `sources[0].update_time` | `null` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
diff --git a/docs/schema/reference/transportation/segment.md b/docs/schema/reference/transportation/segment.md
new file mode 100644
index 00000000..f1f5cec3
--- /dev/null
+++ b/docs/schema/reference/transportation/segment.md
@@ -0,0 +1,168 @@
+---
+sidebar_position: 1
+hide_table_of_contents: true
+---
+
+# Segment
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `id` | [`Id`](../system/ref/id.md) | A feature ID. This may be an ID associated with the Global Entity Reference System (GERS) ifβand-only-if the feature represents an entity that is part of GERS. |
+| `bbox` | [`bbox`](../system/primitive/geometry.md) (optional) | An optional bounding box for the feature |
+| `geometry` | [`geometry`](../system/primitive/geometry.md) | Segment centerline
*Allowed geometry types: LineString* |
+| `theme` | `"transportation"` | |
+| `type` | `"segment"` | |
+| `version` | [`FeatureVersion`](../core/feature_version.md) | |
+| `sources[]` | [`Sources`](../core/sources.md) (list, optional) | Information about the source data used to assemble the feature. |
+| `sources[].property` | [`JsonPointer`](../system/json_pointer.md) | A JSON Pointer identifying the property (field) that this source information applies to.
The root document value `""` indicates that this source information applies to the entire feature, excepting properties (fields) for which a dedicated source information record exists.
Any other JSON Pointer apart from `""` indicates that this source record provides dedicated source information for the property at the path in the JSON Pointer. As an example, the value `"/names/common/en"` indicates that the source information applies to the English common name of a named feature, while the value `"/geometry"` indicates that it applies to the feature geometry. |
+| `sources[].dataset` | `string` | Name of the dataset where the source data can be found. |
+| `sources[].license` | [`StrippedString`](../system/stripped_string.md) (optional) | Source data license name.
This should be a valid SPDX license identifier when available.
If omitted, contact the data provider for more license information. |
+| `sources[].record_id` | `string` (optional) | Identifies the specific record within the source dataset where the source data can be found.
The format of record identifiers is dataset-specific. |
+| `sources[].update_time` | `datetime` (optional) | Last update time of the source data record. |
+| `sources[].confidence` | [`ConfidenceScore`](../core/confidence_score.md) (optional) | Confidence value from the source dataset.
This is a value between 0.0 and 1.0 and is particularly relevant for ML-derived data. |
+| `sources[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SourceItem applies to. |
+| `subtype` | [`Subtype`](types/subtype.md) | Broad category of transportation segment. |
+| `access_restrictions[]` | [`AccessRules`](types/access_rules.md) (list, optional) | Rules governing access to this road segment |
+| `access_restrictions[].access_type` | [`AccessType`](types/access_type.md) | |
+| `access_restrictions[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing AccessRestrictionRule applies to. |
+| `access_restrictions[].when` | [`AccessRestrictionRule.When`](types/access_restriction_rule.when.md) (optional) | Scopes for AccessRestrictionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
+| `access_restrictions[].when.heading` | [`Heading`](../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing AccessRestrictionRule applies to. |
+| `access_restrictions[].when.during` | [`OpeningHours`](../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing AccessRestrictionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
+| `access_restrictions[].when.mode` | `list<`[`TravelMode`](../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing AccessRestrictionRule applies to. |
+| `access_restrictions[].when.using` | `list<`[`PurposeOfUse`](../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing AccessRestrictionRule applies to. |
+| `access_restrictions[].when.recognized` | `list<`[`RecognizedStatus`](../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing AccessRestrictionRule applies to. |
+| `access_restrictions[].when.vehicle` | [`VehicleAxleCountSelector`](../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing AccessRestrictionRule applies to. |
+| `connectors[]` | `list<`[`ConnectorReference`](types/connector_reference.md)`>` (optional) | List of connectors which this segment is physically connected to and their relative location. Each connector is a possible routing decision point, meaning it defines a place along the segment in which there is possibility to transition to other segments which share the same connector.
*Minimum length: 2*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `connectors[].connector_id` | [`Id`](../system/ref/id.md) | A unique identifier |
+| `connectors[].at` | [`LinearlyReferencedPosition`](../core/scoping/linearly_referenced_position.md) (optional) | The linearly-referenced position on the geometry, specified as a percentage displacement from the start of the geometry, that the containing ConnectorReference applies to. |
+| `level_rules[]` | [`LevelRules`](types/level_rules.md) (list, optional) | Defines the Z-order, i.e. stacking order, of the road segment. |
+| `level_rules[].value` | [`Level`](../core/level.md) | Z-order of the feature where 0 is visual level |
+| `level_rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing LevelRule applies to. |
+| `routes[]` | [`Routes`](types/routes.md) (list, optional) | Routes this segment belongs to |
+| `routes[].name` | [`StrippedString`](../system/stripped_string.md) (optional) | Full name of the route |
+| `routes[].network` | [`StrippedString`](../system/stripped_string.md) (optional) | Name of the highway system this route belongs to |
+| `routes[].ref` | [`StrippedString`](../system/stripped_string.md) (optional) | Code or number used to reference the route |
+| `routes[].symbol` | [`StrippedString`](../system/stripped_string.md) (optional) | URL or description of route signage |
+| `routes[].wikidata` | [`WikidataId`](../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
+| `routes[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RouteReference applies to. |
+| `subclass_rules[]` | [`SubclassRules`](types/subclass_rules.md) (list, optional) | Set of subclasses scoped along segment |
+| `subclass_rules[].value` | [`Subclass`](types/subclass.md) | |
+| `subclass_rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SubclassRule applies to. |
+| `names` | [`Names`](../core/names.md) (optional) | |
+| `names.primary` | [`StrippedString`](../system/stripped_string.md) | The most commonly used name. |
+| `names.common` | [`CommonNames`](../core/common_names.md) (map, optional) | |
+| `names.rules[]` | `list<`[`NameRule`](../core/name_rule.md)`>` (optional) | Rules for names that cannot be specified in the simple common names property. These rules can cover other name variants such as official, alternate, and short; and they can optionally include geometric scoping (linear referencing) and side-of-road scoping for complex cases. |
+| `names.rules[].value` | [`StrippedString`](../system/stripped_string.md) | The actual name value. |
+| `names.rules[].variant` | [`NameVariant`](../core/name_variant.md) | The name variant for this name rule. |
+| `names.rules[].language` | [`LanguageTag`](../system/language_tag.md) (optional) | The language in which the name `value` is specified, if known, as an IETF BCP 47 language tag. |
+| `names.rules[].perspectives` | [`Perspectives`](../core/perspectives.md) (optional) | Political perspectives from which a named feature is viewed. |
+| `names.rules[].perspectives.mode` | [`PerspectiveMode`](../core/perspective_mode.md) | Whether the perspective holder accepts or disputes this name. |
+| `names.rules[].perspectives.countries` | `list<`[`CountryCodeAlpha2`](../system/country_code_alpha2.md)`>` | Countries holding the given mode of perspective. |
+| `names.rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing NameRule applies to. |
+| `names.rules[].side` | [`Side`](../core/scoping/side.md) (optional) | The side, either left or right, that the containing NameRule applies to. |
+| `class` *(Road)* | [`RoadClass`](types/road_class.md) | |
+| `destinations[]` *(Road)* | [`Destinations`](types/destinations.md) (list, optional) | Describes objects that can be reached by following a transportation segment in the same way those objects are described on signposts or ground writing that a traveller following the segment would observe in the real world. This allows navigation systems to refer to signs and observable writing that a traveller actually sees. |
+| `destinations[].from_connector_id` | [`Id`](../system/ref/id.md) | Identifies the point of physical connection on this segment before which the destination sign or marking is visible. |
+| `destinations[].to_connector_id` | [`Id`](../system/ref/id.md) | Identifies the point of physical connection on the segment identified by 'to_segment_id' to transition to for reaching the destination(s). |
+| `destinations[].to_segment_id` | [`Id`](../system/ref/id.md) | Identifies the segment to transition to reach the destination(s) labeled on the sign or marking. |
+| `destinations[].final_heading` | [`Heading`](../core/scoping/heading.md) | Direction of travel on the segment identified by 'to_segment_id' that leads to the destination. |
+| `destinations[].labels[]` | `list<`[`DestinationLabels`](types/destination_labels.md)`>` (optional) | Labeled destinations that can be reached by following the segment. |
+| `destinations[].labels[].value` | [`StrippedString`](../system/stripped_string.md) | Names the object that is reached |
+| `destinations[].labels[].type` | [`DestinationLabelType`](types/destination_label_type.md) | |
+| `destinations[].symbols` | `list<`[`DestinationSignSymbol`](types/destination_sign_symbol.md)`>` (optional) | A collection of symbols or icons present on the sign next to current destination label. |
+| `destinations[].when` | [`DestinationRule.When`](types/destination_rule.when.md) (optional) | Scope for DestinationRule: |
+| `destinations[].when.heading` | [`Heading`](../core/scoping/heading.md) | The heading, either forward or backward, that the containing DestinationRule applies to. |
+| `prohibited_transitions[]` *(Road)* | [`ProhibitedTransitions`](types/prohibited_transitions.md) (list, optional) | Rules preventing transitions from this segment to another segment. |
+| `prohibited_transitions[].sequence[]` | `list<`[`SequenceEntry`](types/sequence_entry.md)`>` | Ordered sequence of connector/segment pairs that it is prohibited to follow from this segment. |
+| `prohibited_transitions[].sequence[].connector_id` | [`Id`](../system/ref/id.md) | Identifies the point of physical connection between the previous segment in the sequence and the segment in this sequence entry. |
+| `prohibited_transitions[].sequence[].segment_id` | [`Id`](../system/ref/id.md) | Identifies the segment that the previous segment in the sequence is physically connected to via the sequence entry's connector. |
+| `prohibited_transitions[].final_heading` | [`Heading`](../core/scoping/heading.md) | Direction of travel that is prohibited on the destination segment of the sequence. |
+| `prohibited_transitions[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing ProhibitedTransitionRule applies to. |
+| `prohibited_transitions[].when` | [`ProhibitedTransitionRule.When`](types/prohibited_transition_rule.when.md) (optional) | Scopes for ProhibitedTransitionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
+| `prohibited_transitions[].when.heading` | [`Heading`](../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing ProhibitedTransitionRule applies to. |
+| `prohibited_transitions[].when.during` | [`OpeningHours`](../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing ProhibitedTransitionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
+| `prohibited_transitions[].when.mode` | `list<`[`TravelMode`](../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing ProhibitedTransitionRule applies to. |
+| `prohibited_transitions[].when.using` | `list<`[`PurposeOfUse`](../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing ProhibitedTransitionRule applies to. |
+| `prohibited_transitions[].when.recognized` | `list<`[`RecognizedStatus`](../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing ProhibitedTransitionRule applies to. |
+| `prohibited_transitions[].when.vehicle` | [`VehicleAxleCountSelector`](../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing ProhibitedTransitionRule applies to. |
+| `road_flags[]` *(Road)* | [`RoadFlags`](types/road_flags.md) (list, optional) | Set of boolean attributes applicable to roads. May be specified either as a single flag array of flag values, or as an array of flag rules. |
+| `road_flags[].values` | `list<`[`RoadFlag`](types/road_flag.md)`>` | |
+| `road_flags[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RoadFlagRule applies to. |
+| `road_surface[]` *(Road)* | [`Surfaces`](types/surfaces.md) (list, optional) | Physical surface of the road. May either be specified as a single global value for the segment, or as an array of surface rules. |
+| `road_surface[].value` | [`RoadSurface`](types/road_surface.md) | |
+| `road_surface[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SurfaceRule applies to. |
+| `speed_limits[]` *(Road)* | [`SpeedLimits`](types/speed_limits.md) (list, optional) | Rules governing speed on this road segment |
+| `speed_limits[].max_speed` | [`Speed`](types/speed.md) (optional) | |
+| `speed_limits[].max_speed.value` | [`SpeedValue`](types/speed_value.md) | Speed value |
+| `speed_limits[].max_speed.unit` | [`SpeedUnit`](../core/speed_unit.md) | |
+| `speed_limits[].min_speed` | [`Speed`](types/speed.md) (optional) | |
+| `speed_limits[].min_speed.value` | [`SpeedValue`](types/speed_value.md) | Speed value |
+| `speed_limits[].min_speed.unit` | [`SpeedUnit`](../core/speed_unit.md) | |
+| `speed_limits[].is_max_speed_variable` | `boolean` (optional) | Indicates a variable speed corridor |
+| `speed_limits[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SpeedLimitRule applies to. |
+| `speed_limits[].when` | [`SpeedLimitRule.When`](types/speed_limit_rule.when.md) (optional) | Scopes for SpeedLimitRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
+| `speed_limits[].when.heading` | [`Heading`](../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing SpeedLimitRule applies to. |
+| `speed_limits[].when.during` | [`OpeningHours`](../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing SpeedLimitRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
+| `speed_limits[].when.mode` | `list<`[`TravelMode`](../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing SpeedLimitRule applies to. |
+| `speed_limits[].when.using` | `list<`[`PurposeOfUse`](../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing SpeedLimitRule applies to. |
+| `speed_limits[].when.recognized` | `list<`[`RecognizedStatus`](../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing SpeedLimitRule applies to. |
+| `speed_limits[].when.vehicle` | [`VehicleAxleCountSelector`](../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing SpeedLimitRule applies to. |
+| `subclass` *(Road)* | [`Subclass`](types/subclass.md) (optional) | |
+| `width_rules[]` *(Road)* | [`WidthRules`](types/width_rules.md) (list, optional) | Edge-to-edge width of the road modeled by this segment, in meters.
Examples: (1) If this segment models a carriageway without sidewalk, this value represents the edge-to-edge width of the carriageway, inclusive of any shoulder. (2) If this segment models a sidewalk by itself, this value represents the edge-to-edge width of the sidewalk. (3) If this segment models a combined sidewalk and carriageway, this value represents the edge-to-edge width inclusive of sidewalk. |
+| `width_rules[].value` | [`Width`](types/width.md) | |
+| `width_rules[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing WidthRule applies to. |
+| `class` *(Rail)* | [`RailClass`](types/rail_class.md) | |
+| `rail_flags[]` *(Rail)* | [`RailFlags`](types/rail_flags.md) (list, optional) | Set of boolean attributes applicable to railways. May be specified either as a single flag array of flag values, or as an array of flag rules. |
+| `rail_flags[].values` | `list<`[`RailFlag`](types/rail_flag.md)`>` | |
+| `rail_flags[].between` | [`LinearlyReferencedRange`](../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RailFlagRule applies to. |
+
+## Examples
+
+| Column | Value |
+| -------: | ------- |
+| `id` | `1bc62f3b-08b5-42b8-89fe-36f685f60455` |
+| `bbox.xmin` | `-176.5650177001953` |
+| `bbox.xmax` | `-176.56361389160156` |
+| `bbox.ymin` | `-43.954410552978516` |
+| `bbox.ymax` | `-43.953250885009766` |
+| `geometry` | `LINESTRING (-176.5636191 -43.954404, -176.5643637 -43.9538145, -176.5647264 -43.9535274, -176.564...` |
+| `theme` | `transportation` |
+| `type` | `segment` |
+| `version` | `1` |
+| `sources[0].property` | |
+| `sources[0].dataset` | `OpenStreetMap` |
+| `sources[0].record_id` | `w53435546@6` |
+| `sources[0].update_time` | `2021-05-03T06:37:03Z` |
+| `sources[0].confidence` | `null` |
+| `sources[0].between` | `null` |
+| `subtype` | `road` |
+| `access_restrictions` | `null` |
+| `connectors[0].connector_id` | `15b2c131-9137-4add-88c6-2acd3fa61355` |
+| `connectors[0].at` | `0.0` |
+| `connectors[1].connector_id` | `23ae2702-ef77-4d2e-b39d-77360b696d20` |
+| `connectors[1].at` | `0.523536154` |
+| `connectors[2].connector_id` | `8e944ce1-4b81-49eb-a823-7d98779c855c` |
+| `connectors[2].at` | `1.0` |
+| `level_rules` | `null` |
+| `routes` | `null` |
+| `subclass_rules` | `null` |
+| `names.primary` | `Meteorological Lane` |
+| `names.common` | `null` |
+| `destinations` | `null` |
+| `prohibited_transitions` | `null` |
+| `road_flags` | `null` |
+| `road_surface[0].value` | `gravel` |
+| `road_surface[0].between` | `null` |
+| `speed_limits` | `null` |
+| `subclass` | `null` |
+| `width_rules` | `null` |
+| `class` | `residential` |
+| `rail_flags` | `null` |
+| `names.rules[0].variant` | `common` |
+| `names.rules[0].language` | `null` |
+| `names.rules[0].perspectives` | `null` |
+| `names.rules[0].value` | `Meteorological Lane` |
+| `names.rules[0].between` | `null` |
+| `names.rules[0].side` | `null` |
diff --git a/docs/schema/reference/transportation/types/_category_.json b/docs/schema/reference/transportation/types/_category_.json
new file mode 100644
index 00000000..a3ec0897
--- /dev/null
+++ b/docs/schema/reference/transportation/types/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "Types"
+}
diff --git a/docs/schema/reference/transportation/types/access_restriction_rule.md b/docs/schema/reference/transportation/types/access_restriction_rule.md
new file mode 100644
index 00000000..d1f8c014
--- /dev/null
+++ b/docs/schema/reference/transportation/types/access_restriction_rule.md
@@ -0,0 +1,20 @@
+# AccessRestrictionRule
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `access_type` | [`AccessType`](access_type.md) | |
+| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing AccessRestrictionRule applies to. |
+| `when` | [`AccessRestrictionRule.When`](access_restriction_rule.when.md) (optional) | Scopes for AccessRestrictionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
+| `when.heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing AccessRestrictionRule applies to. |
+| `when.during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing AccessRestrictionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
+| `when.mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing AccessRestrictionRule applies to. |
+| `when.using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing AccessRestrictionRule applies to. |
+| `when.recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing AccessRestrictionRule applies to. |
+| `when.vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing AccessRestrictionRule applies to. |
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`AccessRules`](access_rules.md)
diff --git a/docs/schema/reference/transportation/types/access_restriction_rule.when.md b/docs/schema/reference/transportation/types/access_restriction_rule.when.md
new file mode 100644
index 00000000..a28cf64b
--- /dev/null
+++ b/docs/schema/reference/transportation/types/access_restriction_rule.when.md
@@ -0,0 +1,22 @@
+# AccessRestrictionRule.When
+
+Scopes for AccessRestrictionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing AccessRestrictionRule applies to.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing AccessRestrictionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing AccessRestrictionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing AccessRestrictionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing AccessRestrictionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing AccessRestrictionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+
+## Constraints
+
+- At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set
+
+## Used By
+
+- [`AccessRestrictionRule`](access_restriction_rule.md)
diff --git a/docs/schema/reference/transportation/types/access_rules.md b/docs/schema/reference/transportation/types/access_rules.md
new file mode 100644
index 00000000..1f3341a7
--- /dev/null
+++ b/docs/schema/reference/transportation/types/access_rules.md
@@ -0,0 +1,14 @@
+# AccessRules
+
+Rules governing access to this road segment
+
+Underlying type: `list<`[`AccessRestrictionRule`](access_restriction_rule.md)`>`
+
+## Constraints
+
+- Minimum length: 1
+- All items must be unique. (`UniqueItemsConstraint`)
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/access_type.md b/docs/schema/reference/transportation/types/access_type.md
new file mode 100644
index 00000000..e77c8ab8
--- /dev/null
+++ b/docs/schema/reference/transportation/types/access_type.md
@@ -0,0 +1,11 @@
+# AccessType
+
+## Values
+
+- `allowed`
+- `denied`
+- `designated`
+
+## Used By
+
+- [`AccessRestrictionRule`](access_restriction_rule.md)
diff --git a/docs/schema/reference/transportation/types/connector_reference.md b/docs/schema/reference/transportation/types/connector_reference.md
new file mode 100644
index 00000000..32a547d7
--- /dev/null
+++ b/docs/schema/reference/transportation/types/connector_reference.md
@@ -0,0 +1,15 @@
+# ConnectorReference
+
+Contains the GERS ID and relative position between 0 and 1 of a connector feature along the
+segment.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `connector_id` | [`Id`](../../system/ref/id.md) | A unique identifier
*References [`Connector`](../connector.md) (connects to)* |
+| `at` | [`LinearlyReferencedPosition`](../../core/scoping/linearly_referenced_position.md) (optional) | The linearly-referenced position on the geometry, specified as a percentage displacement from the start of the geometry, that the containing ConnectorReference applies to. |
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/destination_label_type.md b/docs/schema/reference/transportation/types/destination_label_type.md
new file mode 100644
index 00000000..cf2ccb11
--- /dev/null
+++ b/docs/schema/reference/transportation/types/destination_label_type.md
@@ -0,0 +1,16 @@
+# DestinationLabelType
+
+Indicates what special symbol/icon is present on a signpost, visible as road marking or
+similar.
+
+## Values
+
+- `street`
+- `country`
+- `route_ref`
+- `toward_route_ref`
+- `unknown`
+
+## Used By
+
+- [`DestinationLabels`](destination_labels.md)
diff --git a/docs/schema/reference/transportation/types/destination_labels.md b/docs/schema/reference/transportation/types/destination_labels.md
new file mode 100644
index 00000000..578aaaac
--- /dev/null
+++ b/docs/schema/reference/transportation/types/destination_labels.md
@@ -0,0 +1,14 @@
+# DestinationLabels
+
+The type of object of the destination label.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `value` | [`StrippedString`](../../system/stripped_string.md) | Names the object that is reached
*Minimum length: 1* |
+| `type` | [`DestinationLabelType`](destination_label_type.md) | |
+
+## Used By
+
+- [`DestinationRule`](destination_rule.md)
diff --git a/docs/schema/reference/transportation/types/destination_rule.md b/docs/schema/reference/transportation/types/destination_rule.md
new file mode 100644
index 00000000..34cab4b5
--- /dev/null
+++ b/docs/schema/reference/transportation/types/destination_rule.md
@@ -0,0 +1,25 @@
+# DestinationRule
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `from_connector_id` | [`Id`](../../system/ref/id.md) | Identifies the point of physical connection on this segment before which the destination sign or marking is visible. |
+| `to_connector_id` | [`Id`](../../system/ref/id.md) | Identifies the point of physical connection on the segment identified by 'to_segment_id' to transition to for reaching the destination(s). |
+| `to_segment_id` | [`Id`](../../system/ref/id.md) | Identifies the segment to transition to reach the destination(s) labeled on the sign or marking. |
+| `final_heading` | [`Heading`](../../core/scoping/heading.md) | Direction of travel on the segment identified by 'to_segment_id' that leads to the destination. |
+| `labels[]` | `list<`[`DestinationLabels`](destination_labels.md)`>` (optional) | Labeled destinations that can be reached by following the segment.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `labels`, `symbols` must be set* |
+| `labels[].value` | [`StrippedString`](../../system/stripped_string.md) | Names the object that is reached |
+| `labels[].type` | [`DestinationLabelType`](destination_label_type.md) | |
+| `symbols` | `list<`[`DestinationSignSymbol`](destination_sign_symbol.md)`>` (optional) | A collection of symbols or icons present on the sign next to current destination label.
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `labels`, `symbols` must be set* |
+| `when` | [`DestinationRule.When`](destination_rule.when.md) (optional) | Scope for DestinationRule: |
+| `when.heading` | [`Heading`](../../core/scoping/heading.md) | The heading, either forward or backward, that the containing DestinationRule applies to. |
+
+## Constraints
+
+- At least one of `labels`, `symbols` must be set
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`Destinations`](destinations.md)
diff --git a/docs/schema/reference/transportation/types/destination_rule.when.md b/docs/schema/reference/transportation/types/destination_rule.when.md
new file mode 100644
index 00000000..9b0b063f
--- /dev/null
+++ b/docs/schema/reference/transportation/types/destination_rule.when.md
@@ -0,0 +1,13 @@
+# DestinationRule.When
+
+Scope for DestinationRule:
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `heading` | [`Heading`](../../core/scoping/heading.md) | The heading, either forward or backward, that the containing DestinationRule applies to. |
+
+## Used By
+
+- [`DestinationRule`](destination_rule.md)
diff --git a/docs/schema/reference/transportation/types/destination_sign_symbol.md b/docs/schema/reference/transportation/types/destination_sign_symbol.md
new file mode 100644
index 00000000..ec81dbe1
--- /dev/null
+++ b/docs/schema/reference/transportation/types/destination_sign_symbol.md
@@ -0,0 +1,31 @@
+# DestinationSignSymbol
+
+Indicates what special symbol/icon is present on a signpost, visible as road marking or
+similar.
+
+## Values
+
+- `motorway`
+- `airport`
+- `hospital`
+- `center`
+- `industrial`
+- `parking`
+- `bus`
+- `train_station`
+- `rest_area`
+- `ferry`
+- `motorroad`
+- `fuel`
+- `viewpoint`
+- `fuel_diesel`
+- `food`
+- `lodging`
+- `info`
+- `camp_site`
+- `interchange`
+- `restrooms`
+
+## Used By
+
+- [`DestinationRule`](destination_rule.md)
diff --git a/docs/schema/reference/transportation/types/destinations.md b/docs/schema/reference/transportation/types/destinations.md
new file mode 100644
index 00000000..d2c434eb
--- /dev/null
+++ b/docs/schema/reference/transportation/types/destinations.md
@@ -0,0 +1,9 @@
+# Destinations
+
+Describes objects that can be reached by following a transportation segment in the same way those objects are described on signposts or ground writing that a traveller following the segment would observe in the real world. This allows navigation systems to refer to signs and observable writing that a traveller actually sees.
+
+Underlying type: `list<`[`DestinationRule`](destination_rule.md)`>`
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/level_rule.md b/docs/schema/reference/transportation/types/level_rule.md
new file mode 100644
index 00000000..52c92f55
--- /dev/null
+++ b/docs/schema/reference/transportation/types/level_rule.md
@@ -0,0 +1,16 @@
+# LevelRule
+
+A single level rule defining the Z-order, i.e. stacking order, applicable within a given scope
+on the road segment.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `value` | [`Level`](../../core/level.md) | Z-order of the feature where 0 is visual level |
+| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing LevelRule applies to. |
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`LevelRules`](level_rules.md)
diff --git a/docs/schema/reference/transportation/types/level_rules.md b/docs/schema/reference/transportation/types/level_rules.md
new file mode 100644
index 00000000..f95284be
--- /dev/null
+++ b/docs/schema/reference/transportation/types/level_rules.md
@@ -0,0 +1,9 @@
+# LevelRules
+
+Defines the Z-order, i.e. stacking order, of the road segment.
+
+Underlying type: `list<`[`LevelRule`](level_rule.md)`>`
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/prohibited_transition_rule.md b/docs/schema/reference/transportation/types/prohibited_transition_rule.md
new file mode 100644
index 00000000..40c3e965
--- /dev/null
+++ b/docs/schema/reference/transportation/types/prohibited_transition_rule.md
@@ -0,0 +1,23 @@
+# ProhibitedTransitionRule
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `sequence[]` | `list<`[`SequenceEntry`](sequence_entry.md)`>` | Ordered sequence of connector/segment pairs that it is prohibited to follow from this segment.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `sequence[].connector_id` | [`Id`](../../system/ref/id.md) | Identifies the point of physical connection between the previous segment in the sequence and the segment in this sequence entry. |
+| `sequence[].segment_id` | [`Id`](../../system/ref/id.md) | Identifies the segment that the previous segment in the sequence is physically connected to via the sequence entry's connector. |
+| `final_heading` | [`Heading`](../../core/scoping/heading.md) | Direction of travel that is prohibited on the destination segment of the sequence. |
+| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing ProhibitedTransitionRule applies to. |
+| `when` | [`ProhibitedTransitionRule.When`](prohibited_transition_rule.when.md) (optional) | Scopes for ProhibitedTransitionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
+| `when.heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing ProhibitedTransitionRule applies to. |
+| `when.during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing ProhibitedTransitionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
+| `when.mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing ProhibitedTransitionRule applies to. |
+| `when.using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing ProhibitedTransitionRule applies to. |
+| `when.recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing ProhibitedTransitionRule applies to. |
+| `when.vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing ProhibitedTransitionRule applies to. |
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`ProhibitedTransitions`](prohibited_transitions.md)
diff --git a/docs/schema/reference/transportation/types/prohibited_transition_rule.when.md b/docs/schema/reference/transportation/types/prohibited_transition_rule.when.md
new file mode 100644
index 00000000..0a6d14d6
--- /dev/null
+++ b/docs/schema/reference/transportation/types/prohibited_transition_rule.when.md
@@ -0,0 +1,22 @@
+# ProhibitedTransitionRule.When
+
+Scopes for ProhibitedTransitionRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing ProhibitedTransitionRule applies to.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing ProhibitedTransitionRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing ProhibitedTransitionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing ProhibitedTransitionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing ProhibitedTransitionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing ProhibitedTransitionRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+
+## Constraints
+
+- At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set
+
+## Used By
+
+- [`ProhibitedTransitionRule`](prohibited_transition_rule.md)
diff --git a/docs/schema/reference/transportation/types/prohibited_transitions.md b/docs/schema/reference/transportation/types/prohibited_transitions.md
new file mode 100644
index 00000000..2a4a5179
--- /dev/null
+++ b/docs/schema/reference/transportation/types/prohibited_transitions.md
@@ -0,0 +1,9 @@
+# ProhibitedTransitions
+
+Rules preventing transitions from this segment to another segment.
+
+Underlying type: `list<`[`ProhibitedTransitionRule`](prohibited_transition_rule.md)`>`
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/rail_class.md b/docs/schema/reference/transportation/types/rail_class.md
new file mode 100644
index 00000000..c43bb6a6
--- /dev/null
+++ b/docs/schema/reference/transportation/types/rail_class.md
@@ -0,0 +1,18 @@
+# RailClass
+
+Captures the kind of rail segment.
+
+## Values
+
+- `funicular`
+- `light_rail`
+- `monorail`
+- `narrow_gauge`
+- `standard_gauge`
+- `subway`
+- `tram`
+- `unknown`
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/rail_flag.md b/docs/schema/reference/transportation/types/rail_flag.md
new file mode 100644
index 00000000..9316a812
--- /dev/null
+++ b/docs/schema/reference/transportation/types/rail_flag.md
@@ -0,0 +1,20 @@
+# RailFlag
+
+Simple flags that can be on or off for a railway segment.
+
+Specifies physical characteristics and can overlap.
+
+## Values
+
+- `is_bridge`
+- `is_tunnel`
+- `is_under_construction`
+- `is_abandoned`
+- `is_covered`
+- `is_passenger`
+- `is_freight`
+- `is_disused`
+
+## Used By
+
+- [`RailFlagRule`](rail_flag_rule.md)
diff --git a/docs/schema/reference/transportation/types/rail_flag_rule.md b/docs/schema/reference/transportation/types/rail_flag_rule.md
new file mode 100644
index 00000000..06bf91cc
--- /dev/null
+++ b/docs/schema/reference/transportation/types/rail_flag_rule.md
@@ -0,0 +1,15 @@
+# RailFlagRule
+
+Rail-specific flag rule with geometric scoping only.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `values` | `list<`[`RailFlag`](rail_flag.md)`>` | *Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RailFlagRule applies to. |
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`RailFlags`](rail_flags.md)
diff --git a/docs/schema/reference/transportation/types/rail_flags.md b/docs/schema/reference/transportation/types/rail_flags.md
new file mode 100644
index 00000000..80633185
--- /dev/null
+++ b/docs/schema/reference/transportation/types/rail_flags.md
@@ -0,0 +1,14 @@
+# RailFlags
+
+Set of boolean attributes applicable to railways. May be specified either as a single flag array of flag values, or as an array of flag rules.
+
+Underlying type: `list<`[`RailFlagRule`](rail_flag_rule.md)`>`
+
+## Constraints
+
+- Minimum length: 1
+- All items must be unique. (`UniqueItemsConstraint`)
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/road_class.md b/docs/schema/reference/transportation/types/road_class.md
new file mode 100644
index 00000000..d18b7735
--- /dev/null
+++ b/docs/schema/reference/transportation/types/road_class.md
@@ -0,0 +1,27 @@
+# RoadClass
+
+Captures the kind of road and its position in the road network hierarchy.
+
+## Values
+
+- `motorway`
+- `primary`
+- `secondary`
+- `tertiary`
+- `residential`
+- `living_street`
+- `trunk`
+- `unclassified`
+- `service`
+- `pedestrian`
+- `footway`
+- `steps`
+- `path`
+- `track`
+- `cycleway`
+- `bridleway`
+- `unknown`
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/road_flag.md b/docs/schema/reference/transportation/types/road_flag.md
new file mode 100644
index 00000000..a2448e72
--- /dev/null
+++ b/docs/schema/reference/transportation/types/road_flag.md
@@ -0,0 +1,19 @@
+# RoadFlag
+
+Simple flags that can be on or off for a road segment.
+
+Specifies physical characteristics and can overlap.
+
+## Values
+
+- `is_bridge`
+- `is_link`
+- `is_tunnel`
+- `is_under_construction`
+- `is_abandoned`
+- `is_covered`
+- `is_indoor`
+
+## Used By
+
+- [`RoadFlagRule`](road_flag_rule.md)
diff --git a/docs/schema/reference/transportation/types/road_flag_rule.md b/docs/schema/reference/transportation/types/road_flag_rule.md
new file mode 100644
index 00000000..d7a823ee
--- /dev/null
+++ b/docs/schema/reference/transportation/types/road_flag_rule.md
@@ -0,0 +1,15 @@
+# RoadFlagRule
+
+Road-specific flag rule with geometric scoping only.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `values` | `list<`[`RoadFlag`](road_flag.md)`>` | *Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)* |
+| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RoadFlagRule applies to. |
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`RoadFlags`](road_flags.md)
diff --git a/docs/schema/reference/transportation/types/road_flags.md b/docs/schema/reference/transportation/types/road_flags.md
new file mode 100644
index 00000000..88445c57
--- /dev/null
+++ b/docs/schema/reference/transportation/types/road_flags.md
@@ -0,0 +1,14 @@
+# RoadFlags
+
+Set of boolean attributes applicable to roads. May be specified either as a single flag array of flag values, or as an array of flag rules.
+
+Underlying type: `list<`[`RoadFlagRule`](road_flag_rule.md)`>`
+
+## Constraints
+
+- Minimum length: 1
+- All items must be unique. (`UniqueItemsConstraint`)
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/road_surface.md b/docs/schema/reference/transportation/types/road_surface.md
new file mode 100644
index 00000000..6ac83776
--- /dev/null
+++ b/docs/schema/reference/transportation/types/road_surface.md
@@ -0,0 +1,17 @@
+# RoadSurface
+
+Physical surface of the road.
+
+## Values
+
+- `unknown`
+- `paved`
+- `unpaved`
+- `gravel`
+- `dirt`
+- `paving_stones`
+- `metal`
+
+## Used By
+
+- [`SurfaceRule`](surface_rule.md)
diff --git a/docs/schema/reference/transportation/types/route_reference.md b/docs/schema/reference/transportation/types/route_reference.md
new file mode 100644
index 00000000..e3a9f7c2
--- /dev/null
+++ b/docs/schema/reference/transportation/types/route_reference.md
@@ -0,0 +1,19 @@
+# RouteReference
+
+Route reference with linear referencing support.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `name` | [`StrippedString`](../../system/stripped_string.md) (optional) | Full name of the route
*Minimum length: 1* |
+| `network` | [`StrippedString`](../../system/stripped_string.md) (optional) | Name of the highway system this route belongs to
*Minimum length: 1* |
+| `ref` | [`StrippedString`](../../system/stripped_string.md) (optional) | Code or number used to reference the route
*Minimum length: 1* |
+| `symbol` | [`StrippedString`](../../system/stripped_string.md) (optional) | URL or description of route signage
*Minimum length: 1* |
+| `wikidata` | [`WikidataId`](../../system/wikidata_id.md) (optional) | A wikidata ID, as found on https://www.wikidata.org/ |
+| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing RouteReference applies to. |
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`Routes`](routes.md)
diff --git a/docs/schema/reference/transportation/types/routes.md b/docs/schema/reference/transportation/types/routes.md
new file mode 100644
index 00000000..72143b25
--- /dev/null
+++ b/docs/schema/reference/transportation/types/routes.md
@@ -0,0 +1,9 @@
+# Routes
+
+Routes this segment belongs to
+
+Underlying type: `list<`[`RouteReference`](route_reference.md)`>`
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/sequence_entry.md b/docs/schema/reference/transportation/types/sequence_entry.md
new file mode 100644
index 00000000..859b96c5
--- /dev/null
+++ b/docs/schema/reference/transportation/types/sequence_entry.md
@@ -0,0 +1,14 @@
+# SequenceEntry
+
+A segment/connector pair in a prohibited transition sequence.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `connector_id` | [`Id`](../../system/ref/id.md) | Identifies the point of physical connection between the previous segment in the sequence and the segment in this sequence entry. |
+| `segment_id` | [`Id`](../../system/ref/id.md) | Identifies the segment that the previous segment in the sequence is physically connected to via the sequence entry's connector. |
+
+## Used By
+
+- [`ProhibitedTransitionRule`](prohibited_transition_rule.md)
diff --git a/docs/schema/reference/transportation/types/speed.md b/docs/schema/reference/transportation/types/speed.md
new file mode 100644
index 00000000..d7ac28d4
--- /dev/null
+++ b/docs/schema/reference/transportation/types/speed.md
@@ -0,0 +1,14 @@
+# Speed
+
+A speed value, i.e. a certain number of distance units travelled per unit time.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `value` | [`SpeedValue`](speed_value.md) | Speed value |
+| `unit` | [`SpeedUnit`](../../core/speed_unit.md) | |
+
+## Used By
+
+- [`SpeedLimitRule`](speed_limit_rule.md)
diff --git a/docs/schema/reference/transportation/types/speed_limit_rule.md b/docs/schema/reference/transportation/types/speed_limit_rule.md
new file mode 100644
index 00000000..cad040b2
--- /dev/null
+++ b/docs/schema/reference/transportation/types/speed_limit_rule.md
@@ -0,0 +1,32 @@
+# SpeedLimitRule
+
+An individual speed limit rule.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `max_speed` | [`Speed`](speed.md) (optional) | *At least one of `max_speed`, `min_speed` must be set* |
+| `max_speed.value` | [`SpeedValue`](speed_value.md) | Speed value |
+| `max_speed.unit` | [`SpeedUnit`](../../core/speed_unit.md) | |
+| `min_speed` | [`Speed`](speed.md) (optional) | *At least one of `max_speed`, `min_speed` must be set* |
+| `min_speed.value` | [`SpeedValue`](speed_value.md) | Speed value |
+| `min_speed.unit` | [`SpeedUnit`](../../core/speed_unit.md) | |
+| `is_max_speed_variable` | `boolean` (optional) | Indicates a variable speed corridor
*`strict=True`* |
+| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SpeedLimitRule applies to. |
+| `when` | [`SpeedLimitRule.When`](speed_limit_rule.when.md) (optional) | Scopes for SpeedLimitRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE |
+| `when.heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing SpeedLimitRule applies to. |
+| `when.during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing SpeedLimitRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification. |
+| `when.mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing SpeedLimitRule applies to. |
+| `when.using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing SpeedLimitRule applies to. |
+| `when.recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing SpeedLimitRule applies to. |
+| `when.vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing SpeedLimitRule applies to. |
+
+## Constraints
+
+- At least one of `max_speed`, `min_speed` must be set
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`SpeedLimits`](speed_limits.md)
diff --git a/docs/schema/reference/transportation/types/speed_limit_rule.when.md b/docs/schema/reference/transportation/types/speed_limit_rule.when.md
new file mode 100644
index 00000000..3d243123
--- /dev/null
+++ b/docs/schema/reference/transportation/types/speed_limit_rule.when.md
@@ -0,0 +1,22 @@
+# SpeedLimitRule.When
+
+Scopes for SpeedLimitRule: Scope.HEADING, Scope.TEMPORAL, Scope.TRAVEL MODE, Scope.PURPOSE OF USE, Scope.RECOGNIZED STATUS and Scope.VEHICLE
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `heading` | [`Heading`](../../core/scoping/heading.md) (optional) | The heading, either forward or backward, that the containing SpeedLimitRule applies to.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `during` | [`OpeningHours`](../../core/scoping/opening_hours.md) (optional) | The recurring time span, in the OpenStreetMap opening hours format, that the containing SpeedLimitRule applies to. For the OSM opening hours specification, see https://wiki.openstreetmap.org/wiki/Key:opening_hours/specification.
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `mode` | `list<`[`TravelMode`](../../core/scoping/travel_mode.md)`>` (optional) | A list of one or more travel modes, such as car, truck, or foot, that the containing SpeedLimitRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `using` | `list<`[`PurposeOfUse`](../../core/scoping/purpose_of_use.md)`>` (optional) | A list of one or more usage purposes, such as delivery or arrival at final destination, that the containing SpeedLimitRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `recognized` | `list<`[`RecognizedStatus`](../../core/scoping/recognized_status.md)`>` (optional) | A list of one or more recognized status values, such as employee or student, that the containing SpeedLimitRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+| `vehicle` | [`VehicleAxleCountSelector`](../../core/scoping/vehicle_axle_count_selector.md) \| [`VehicleHeightSelector`](../../core/scoping/vehicle_height_selector.md) \| [`VehicleLengthSelector`](../../core/scoping/vehicle_length_selector.md) \| [`VehicleWeightSelector`](../../core/scoping/vehicle_weight_selector.md) \| [`VehicleWidthSelector`](../../core/scoping/vehicle_width_selector.md) (list, optional) | A list of one or more vehicle parameters that limit the vehicles the containing SpeedLimitRule applies to.
*Minimum length: 1*
*All items must be unique. (`UniqueItemsConstraint`)*
*At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set* |
+
+## Constraints
+
+- At least one of `heading`, `during`, `mode`, `using`, `recognized`, `vehicle` must be set
+
+## Used By
+
+- [`SpeedLimitRule`](speed_limit_rule.md)
diff --git a/docs/schema/reference/transportation/types/speed_limits.md b/docs/schema/reference/transportation/types/speed_limits.md
new file mode 100644
index 00000000..c42f4726
--- /dev/null
+++ b/docs/schema/reference/transportation/types/speed_limits.md
@@ -0,0 +1,14 @@
+# SpeedLimits
+
+Rules governing speed on this road segment
+
+Underlying type: `list<`[`SpeedLimitRule`](speed_limit_rule.md)`>`
+
+## Constraints
+
+- Minimum length: 1
+- All items must be unique. (`UniqueItemsConstraint`)
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/speed_value.md b/docs/schema/reference/transportation/types/speed_value.md
new file mode 100644
index 00000000..8b4983f6
--- /dev/null
+++ b/docs/schema/reference/transportation/types/speed_value.md
@@ -0,0 +1,16 @@
+# SpeedValue
+
+Speed value
+
+Underlying type: `int32`
+
+## Constraints
+
+- `β₯ 1`
+- `β€ 350`
+- `β₯ -2147483648` (from [`int32`](../../system/primitive/primitives.md))
+- `β€ 2147483647` (from [`int32`](../../system/primitive/primitives.md))
+
+## Used By
+
+- [`Speed`](speed.md)
diff --git a/docs/schema/reference/transportation/types/subclass.md b/docs/schema/reference/transportation/types/subclass.md
new file mode 100644
index 00000000..f91d5d42
--- /dev/null
+++ b/docs/schema/reference/transportation/types/subclass.md
@@ -0,0 +1,18 @@
+# Subclass
+
+Refines expected usage of the segment, must not overlap.
+
+## Values
+
+- `link`
+- `sidewalk`
+- `crosswalk`
+- `parking_aisle`
+- `driveway`
+- `alley`
+- `cycle_crossing`
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`SubclassRule`](subclass_rule.md)
diff --git a/docs/schema/reference/transportation/types/subclass_rule.md b/docs/schema/reference/transportation/types/subclass_rule.md
new file mode 100644
index 00000000..c2552370
--- /dev/null
+++ b/docs/schema/reference/transportation/types/subclass_rule.md
@@ -0,0 +1,15 @@
+# SubclassRule
+
+Set of subclasses scoped along segment.
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `value` | [`Subclass`](subclass.md) | |
+| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SubclassRule applies to. |
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`SubclassRules`](subclass_rules.md)
diff --git a/docs/schema/reference/transportation/types/subclass_rules.md b/docs/schema/reference/transportation/types/subclass_rules.md
new file mode 100644
index 00000000..a8322e9e
--- /dev/null
+++ b/docs/schema/reference/transportation/types/subclass_rules.md
@@ -0,0 +1,9 @@
+# SubclassRules
+
+Set of subclasses scoped along segment
+
+Underlying type: `list<`[`SubclassRule`](subclass_rule.md)`>`
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/subtype.md b/docs/schema/reference/transportation/types/subtype.md
new file mode 100644
index 00000000..e24c2f7e
--- /dev/null
+++ b/docs/schema/reference/transportation/types/subtype.md
@@ -0,0 +1,13 @@
+# Subtype
+
+Transportation segment subtype classification.
+
+## Values
+
+- `road`
+- `rail`
+- `water`
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/surface_rule.md b/docs/schema/reference/transportation/types/surface_rule.md
new file mode 100644
index 00000000..3300da9d
--- /dev/null
+++ b/docs/schema/reference/transportation/types/surface_rule.md
@@ -0,0 +1,13 @@
+# SurfaceRule
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `value` | [`RoadSurface`](road_surface.md) | |
+| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing SurfaceRule applies to. |
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`Surfaces`](surfaces.md)
diff --git a/docs/schema/reference/transportation/types/surfaces.md b/docs/schema/reference/transportation/types/surfaces.md
new file mode 100644
index 00000000..846f4882
--- /dev/null
+++ b/docs/schema/reference/transportation/types/surfaces.md
@@ -0,0 +1,14 @@
+# Surfaces
+
+Physical surface of the road. May either be specified as a single global value for the segment, or as an array of surface rules.
+
+Underlying type: `list<`[`SurfaceRule`](surface_rule.md)`>`
+
+## Constraints
+
+- Minimum length: 1
+- All items must be unique. (`UniqueItemsConstraint`)
+
+## Used By
+
+- [`Segment`](../segment.md)
diff --git a/docs/schema/reference/transportation/types/width.md b/docs/schema/reference/transportation/types/width.md
new file mode 100644
index 00000000..c7e6d5ec
--- /dev/null
+++ b/docs/schema/reference/transportation/types/width.md
@@ -0,0 +1,11 @@
+# Width
+
+Underlying type: `float64`
+
+## Constraints
+
+- `> 0`
+
+## Used By
+
+- [`WidthRule`](width_rule.md)
diff --git a/docs/schema/reference/transportation/types/width_rule.md b/docs/schema/reference/transportation/types/width_rule.md
new file mode 100644
index 00000000..42aa4de5
--- /dev/null
+++ b/docs/schema/reference/transportation/types/width_rule.md
@@ -0,0 +1,13 @@
+# WidthRule
+
+## Fields
+
+| Name | Type | Description |
+| -----: | :----: | ------------- |
+| `value` | [`Width`](width.md) | |
+| `between` | [`LinearlyReferencedRange`](../../core/scoping/linearly_referenced_range.md) (list, optional) | The linearly-referenced sub-segment of the geometry, specified as a range (pair) of percentage displacements from the start of the geometry, that the containing WidthRule applies to. |
+
+## Used By
+
+- [`Segment`](../segment.md)
+- [`WidthRules`](width_rules.md)
diff --git a/docs/schema/reference/transportation/types/width_rules.md b/docs/schema/reference/transportation/types/width_rules.md
new file mode 100644
index 00000000..1c5cbf03
--- /dev/null
+++ b/docs/schema/reference/transportation/types/width_rules.md
@@ -0,0 +1,16 @@
+# WidthRules
+
+Edge-to-edge width of the road modeled by this segment, in meters.
+
+Examples: (1) If this segment models a carriageway without sidewalk, this value represents the edge-to-edge width of the carriageway, inclusive of any shoulder. (2) If this segment models a sidewalk by itself, this value represents the edge-to-edge width of the sidewalk. (3) If this segment models a combined sidewalk and carriageway, this value represents the edge-to-edge width inclusive of sidewalk.
+
+Underlying type: `list<`[`WidthRule`](width_rule.md)`>`
+
+## Constraints
+
+- Minimum length: 1
+- All items must be unique. (`UniqueItemsConstraint`)
+
+## Used By
+
+- [`Segment`](../segment.md)
From fa3a505a0a91c42063d8c0556073e4b48cd0add9 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Wed, 18 Mar 2026 16:39:44 -0400
Subject: [PATCH 31/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 76 ++++++++++++++++++++++-----
1 file changed, 63 insertions(+), 13 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index af706f28..ddbab964 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -18,10 +18,12 @@ permissions:
env:
DOCS_PATH: docs
PREVIEW_PATH: /${{ github.event.repository.name }}/pr/${{ github.event.number }}
+ PREVIEW_PATH_NO_AUTOGEN: /${{ github.event.repository.name }}/pr/${{ github.event.number }}-no-autogen
STAGING_URL: https://staging.overturemaps.org
SCHEMA_PREVIEW: false # Set to true to only publish Schema reference docs
AWS_ROLE_ARN: arn:aws:iam::763944545891:role/pages-staging-oidc-overturemaps
AWS_REGION: us-west-2
+
jobs:
check-fork:
name: Check fork
@@ -33,7 +35,7 @@ jobs:
echo "::warning title=Staging deploy not supported for fork PRs::Staging previews are only available for PRs from branches within this repository, not forks. Please open your PR from a branch in OvertureMaps/docs instead."
build:
- name: Build
+ name: Build (auto-gen schema)
if: github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
needs: check-fork
@@ -58,7 +60,7 @@ jobs:
uses: OvertureMaps/workflows/.github/actions/generate-schema-docs@main
with:
output-dir: ${{ github.workspace }}/docs/schema/reference
- schema-ref: 'main'
+ schema-ref: 'dev' # Temporary until we feel confident in the generated schema sans human review, then should be 'main'
- name: Build Docusaurus website
run: npm run build
@@ -73,10 +75,41 @@ jobs:
path: build
name: build-artifact
+ build-no-autogen:
+ name: Build (repo schema files)
+ if: github.event.pull_request.head.repo.full_name == github.repository
+ runs-on: ubuntu-latest
+ needs: check-fork
+ steps:
+ - name: Check out the main docs repo repository and build.
+ uses: actions/checkout@v6
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v6
+ with:
+ node-version-file: 'package.json'
+
+ - uses: lowlydba/sustainable-npm@v2
+
+ - run: npm ci --omit=dev
+
+ - name: Build Docusaurus website (using existing /schema/reference files)
+ run: npm run build
+ env:
+ DOCUSAURUS_URL: ${{ env.STAGING_URL }}/
+ DOCUSAURUS_BASE_URL: ${{ env.PREVIEW_PATH_NO_AUTOGEN }}/
+ SCHEMA_PREVIEW: ${{ env.SCHEMA_PREVIEW }}
+
+ - name: Upload docs build as an artifact π¦
+ uses: actions/upload-artifact@v7
+ with:
+ path: build
+ name: build-artifact-no-autogen
+
deploy:
name: Deploy
runs-on: ubuntu-slim
- needs: [check-fork, build]
+ needs: [check-fork, build, build-no-autogen]
environment:
name: staging
url: ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html
@@ -88,18 +121,26 @@ jobs:
role-to-assume: ${{ env.AWS_ROLE_ARN }}
aws-region: ${{ env.AWS_REGION }}
- - name: Download artifacts π₯
+ - name: Download auto-gen artifact π₯
uses: actions/download-artifact@v8
with:
name: build-artifact
- path: build
+ path: build-autogen
+
+ - name: Download repo schema artifact π₯
+ uses: actions/download-artifact@v8
+ with:
+ name: build-artifact-no-autogen
+ path: build-no-autogen
- name: Copy to S3
run: |
- aws s3 sync --delete --quiet build s3://overture-managed-staging-usw2/gh-pages${{ env.PREVIEW_PATH }}/
+ aws s3 sync --delete --quiet build-autogen s3://overture-managed-staging-usw2/gh-pages${{ env.PREVIEW_PATH }}/
+ aws s3 sync --delete --quiet build-no-autogen s3://overture-managed-staging-usw2/gh-pages${{ env.PREVIEW_PATH_NO_AUTOGEN }}/
- name: Bust the Cache
- run: aws cloudfront create-invalidation --distribution-id E1KP2IN0H2RGGT --paths "${{ env.PREVIEW_PATH }}/*"
+ run: |
+ aws cloudfront create-invalidation --distribution-id E1KP2IN0H2RGGT --paths "${{ env.PREVIEW_PATH }}/*" "${{ env.PREVIEW_PATH_NO_AUTOGEN }}/*"
- name: Gather metadata for PR comment
id: deploy-metadata
@@ -113,14 +154,23 @@ jobs:
uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3.0.2
with:
message: |
- ## πΊοΈ OMF Docs preview is live!
+ ## πΊοΈ OMF Docs previews are live!
- | | |
- |-----------------|----------------------------------------------------------|
- | π **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
- | π **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
- | π **Commit** | [${{ steps.deploy-metadata.outputs.short-sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
+ ### Auto-generated schema docs
+ | | |
+ |---------------------|----------------------------------------------------------------------|
+ | π **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
| ποΈ **Schema Ref** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ steps.deploy-metadata.outputs.schema-short-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build.outputs.schema-sha }}) |
+ ### Repo schema files (`/schema/reference`)
+ | | |
+ |---------------------|----------------------------------------------------------------------|
+ | π **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH_NO_AUTOGEN }}/index.html |
+
+ | | |
+ |---------------------|----------------------------------------------------------------------|
+ | π **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
+ | π **Commit** | [${{ steps.deploy-metadata.outputs.short-sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
+
> [!NOTE]
> β»οΈ This preview updates automatically with each push to this PR.
From d798b38b01c645aa0009a893237799bc012073c7 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Wed, 18 Mar 2026 16:47:12 -0400
Subject: [PATCH 32/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 36 +++++++++++----------------
1 file changed, 14 insertions(+), 22 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index ddbab964..bb36816c 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -34,8 +34,8 @@ jobs:
run: |
echo "::warning title=Staging deploy not supported for fork PRs::Staging previews are only available for PRs from branches within this repository, not forks. Please open your PR from a branch in OvertureMaps/docs instead."
- build:
- name: Build (auto-gen schema)
+ build-auto-gen:
+ name: build
if: github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
needs: check-fork
@@ -75,8 +75,8 @@ jobs:
path: build
name: build-artifact
- build-no-autogen:
- name: Build (repo schema files)
+ build-repo-schema:
+ name: build
if: github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
needs: check-fork
@@ -109,7 +109,7 @@ jobs:
deploy:
name: Deploy
runs-on: ubuntu-slim
- needs: [check-fork, build, build-no-autogen]
+ needs: [check-fork, build-auto-gen, build-repo-schema]
environment:
name: staging
url: ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html
@@ -147,8 +147,8 @@ jobs:
run: |
echo "time=$(date -u +'%b %d, %Y %H:%M UTC')" >> $GITHUB_OUTPUT
echo "short-sha=$(echo '${{ github.event.pull_request.head.sha }}' | cut -c1-7)" >> $GITHUB_OUTPUT
- echo "schema-ref-short=$(echo '${{ needs.build.outputs.schema-ref }}' | sed 's|refs/heads/||;s|refs/tags/||')" >> $GITHUB_OUTPUT
- echo "schema-short-sha=$(echo '${{ needs.build.outputs.schema-sha }}' | cut -c1-7)" >> $GITHUB_OUTPUT
+ echo "schema-ref-short=$(echo '${{ needs.build-auto-gen.outputs.schema-ref }}' | sed 's|refs/heads/||;s|refs/tags/||')" >> $GITHUB_OUTPUT
+ echo "schema-short-sha=$(echo '${{ needs.build-auto-gen.outputs.schema-sha }}' | cut -c1-7)" >> $GITHUB_OUTPUT
- name: Comment on PR
uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3.0.2
@@ -156,21 +156,13 @@ jobs:
message: |
## πΊοΈ OMF Docs previews are live!
- ### Auto-generated schema docs
- | | |
- |---------------------|----------------------------------------------------------------------|
- | π **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
- | ποΈ **Schema Ref** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ steps.deploy-metadata.outputs.schema-short-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build.outputs.schema-sha }}) |
-
- ### Repo schema files (`/schema/reference`)
- | | |
- |---------------------|----------------------------------------------------------------------|
- | π **Preview** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH_NO_AUTOGEN }}/index.html |
-
- | | |
- |---------------------|----------------------------------------------------------------------|
- | π **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
- | π **Commit** | [${{ steps.deploy-metadata.outputs.short-sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
+ | | |
+ |-------------------------|----------------------------------------------------------------------|
+ | π **Auto-gen schema** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
+ | ποΈ **Schema Ref** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ steps.deploy-metadata.outputs.schema-short-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build-auto-gen.outputs.schema-sha }}) |
+ | π **Repo schema** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH_NO_AUTOGEN }}/index.html |
+ | π **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
+ | π **Commit** | [${{ steps.deploy-metadata.outputs.short-sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
> [!NOTE]
> β»οΈ This preview updates automatically with each push to this PR.
From 5e9e18bd466c000c4828ccce89bfaf55567d74c4 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Wed, 18 Mar 2026 16:49:31 -0400
Subject: [PATCH 33/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index bb36816c..a97f7d2f 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -35,7 +35,7 @@ jobs:
echo "::warning title=Staging deploy not supported for fork PRs::Staging previews are only available for PRs from branches within this repository, not forks. Please open your PR from a branch in OvertureMaps/docs instead."
build-auto-gen:
- name: build
+ name: Build (auto-gen schema)
if: github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
needs: check-fork
@@ -76,7 +76,8 @@ jobs:
name: build-artifact
build-repo-schema:
- name: build
+ # Branch ruleset set to this job name to require this status check
+ name: Build
if: github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
needs: check-fork
From 8cfbff47b985bbb28e357fcf060bf78673fc9bf7 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Wed, 18 Mar 2026 16:56:47 -0400
Subject: [PATCH 34/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index a97f7d2f..e3627c63 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -159,11 +159,19 @@ jobs:
| | |
|-------------------------|----------------------------------------------------------------------|
- | π **Auto-gen schema** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
- | ποΈ **Schema Ref** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ steps.deploy-metadata.outputs.schema-short-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build-auto-gen.outputs.schema-sha }}) |
- | π **Repo schema** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH_NO_AUTOGEN }}/index.html |
+ | π **Auto-gen schema site (beta)** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH }}/index.html |
+ | ποΈ **Auto-gen schema ref** | [${{ steps.deploy-metadata.outputs.schema-ref-short }}@${{ steps.deploy-metadata.outputs.schema-short-sha }}](https://github.com/OvertureMaps/schema/commit/${{ needs.build-auto-gen.outputs.schema-sha }}) |
+ | π **Repo schema site** | ${{ env.STAGING_URL }}${{ env.PREVIEW_PATH_NO_AUTOGEN }}/index.html |
| π **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
| π **Commit** | [${{ steps.deploy-metadata.outputs.short-sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
+ Auto-gen schema site is now available for testing and feedback!
+ This is an early preview of a future workflow where we will automatically generate and
+ publish reference docs for the Overture Maps Format schema with every change to the schema repo,
+ without needing to manually review and merge changes to the docs repo.
+ The auto-gen schema site may contain incomplete or inaccurate information as we are still refining the
+ generation process, so please compare against the repo schema site and refer to the linked commit for the
+ most up-to-date source of truth.
+
> [!NOTE]
> β»οΈ This preview updates automatically with each push to this PR.
From 7aaf4155a7805480f2d29a33ab828252ee0fa320 Mon Sep 17 00:00:00 2001
From: John McCall
Date: Wed, 18 Mar 2026 17:01:39 -0400
Subject: [PATCH 35/35] Update staging_deploy.yaml
Signed-off-by: John McCall
---
.github/workflows/staging_deploy.yaml | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml
index e3627c63..4e42c551 100644
--- a/.github/workflows/staging_deploy.yaml
+++ b/.github/workflows/staging_deploy.yaml
@@ -165,13 +165,8 @@ jobs:
| π **Updated** | ${{ steps.deploy-metadata.outputs.time }} |
| π **Commit** | [${{ steps.deploy-metadata.outputs.short-sha }}](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}) |
- Auto-gen schema site is now available for testing and feedback!
- This is an early preview of a future workflow where we will automatically generate and
- publish reference docs for the Overture Maps Format schema with every change to the schema repo,
- without needing to manually review and merge changes to the docs repo.
- The auto-gen schema site may contain incomplete or inaccurate information as we are still refining the
- generation process, so please compare against the repo schema site and refer to the linked commit for the
- most up-to-date source of truth.
+ Auto-gen schema site is now available. This is an early preview of a future workflow where we will automatically generate and publish reference docs for the Overture Maps Format schema with every change to the schema repo.
+ The auto-gen schema site may contain incomplete or inaccurate information as we are still refining the generation process, so please compare against the repo schema site and refer to the linked commit for the most up-to-date source of truth.
> [!NOTE]
> β»οΈ This preview updates automatically with each push to this PR.