Files
eleith 86cfa8c1ee
ci/woodpecker/pr/web-config Pipeline was successful
ci/woodpecker/pr/web-db Pipeline was successful
ci/woodpecker/pr/web-pieces Pipeline was successful
ci/woodpecker/pr/web-theme Pipeline was successful
ci/woodpecker/pr/web-worker Pipeline was successful
ci/woodpecker/pr/web Pipeline was successful
ci/woodpecker/push/web-config Pipeline was successful
ci/woodpecker/push/web-db Pipeline was successful
ci/woodpecker/push/web-pieces Pipeline was successful
ci/woodpecker/push/web-theme Pipeline was successful
ci/woodpecker/push/web-worker Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
[web] make attachment highlighting opt-in
2026-11-07 08:01:35 -08:00

10410 lines
432 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Luzzle web configuration",
"additionalProperties": false,
"type": "object",
"properties": {
"network": {
"default": {},
"description": "Internal service and development network settings.",
"type": "object",
"properties": {
"internal": {
"default": {},
"type": "object",
"properties": {
"explorer": {
"default": "http://luzzle-web:3000",
"description": "Explorer address used to allow its hostname in the development server.",
"type": "string"
},
"lsp": {
"default": "http://luzzle-lsp:9001",
"description": "Reserved LSP address. Proxy routing is configured separately with LUZZLE_PROXY_LSP_UPSTREAM.",
"type": "string"
},
"worker": {
"default": "http://luzzle-worker:9000",
"description": "Worker service address for health checks.",
"type": "string"
}
}
},
"public": {
"default": {},
"type": "object",
"properties": {
"host": {
"default": "0.0.0.0",
"description": "Development server bind address, not the public site URL.",
"type": "string"
},
"hmr_port": {
"description": "Vite hot-reload client port, when different from the server port.",
"type": "number"
}
}
}
}
},
"url": {
"default": {},
"additionalProperties": false,
"description": "Public site and asset URLs.",
"type": "object",
"properties": {
"app": {
"default": "${LUZZLE_APP_URL:-http://localhost:8080}",
"description": "Public Explorer URL. Supports an explicit environment reference.",
"type": "string"
},
"app_assets": {
"default": "",
"description": "App-owned static asset URL prefix, such as icons and social images. Empty uses same-origin paths; a CDN URL is allowed. Framework JavaScript and CSS use same-origin build paths independently.",
"type": "string"
},
"luzzle_assets": {
"default": "",
"description": "Published piece asset base URL. Empty uses same-origin paths; a CDN URL is allowed.",
"type": "string"
}
}
},
"auth": {
"description": "Configure exactly one authentication provider and a session secret. Omit auth for a public-only site with admin access disabled.",
"anyOf": [
{
"title": "Credentials",
"additionalProperties": false,
"type": "object",
"required": [
"secret",
"credentials"
],
"properties": {
"secret": {
"minLength": 1,
"description": "Session-signing secret. Supply a strong random value or an explicit environment reference; required whenever auth is configured.",
"examples": [
"${LUZZLE_AUTH_SECRET}"
],
"type": "string"
},
"credentials": {
"additionalProperties": false,
"description": "Local username/password authentication.",
"type": "object",
"required": [
"username",
"password"
],
"properties": {
"username": {
"minLength": 1,
"description": "Administrator username.",
"examples": [
"admin"
],
"type": "string"
},
"password": {
"minLength": 1,
"description": "Administrator password or an explicit environment reference.",
"examples": [
"${LUZZLE_AUTH_PASSWORD}"
],
"type": "string"
}
}
}
}
},
{
"title": "OIDC",
"additionalProperties": false,
"type": "object",
"required": [
"secret",
"oidc"
],
"properties": {
"secret": {
"minLength": 1,
"description": "Session-signing secret. Supply a strong random value or an explicit environment reference; required whenever auth is configured.",
"examples": [
"${LUZZLE_AUTH_SECRET}"
],
"type": "string"
},
"oidc": {
"additionalProperties": false,
"description": "OpenID Connect authentication.",
"type": "object",
"required": [
"issuer",
"clientId",
"clientSecret"
],
"properties": {
"name": {
"default": "Single Sign-On",
"description": "Label shown on the sign-in button.",
"type": "string"
},
"issuer": {
"minLength": 1,
"description": "OIDC issuer URL or an explicit environment reference.",
"examples": [
"https://identity.example.com",
"${OIDC_ISSUER}"
],
"type": "string"
},
"clientId": {
"minLength": 1,
"description": "OIDC client identifier.",
"type": "string"
},
"clientSecret": {
"minLength": 1,
"description": "OIDC client secret or an explicit environment reference.",
"examples": [
"${OIDC_CLIENT_SECRET}"
],
"type": "string"
}
}
}
}
}
]
},
"storage": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"root": {
"minLength": 1,
"default": "./archive",
"description": "Local Markdown archive directory.",
"type": "string"
}
}
},
"sync": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"config": {
"default": "/app/rclone/rclone.conf",
"description": "rclone configuration file used by the worker.",
"type": "string"
},
"archive": {
"default": {},
"additionalProperties": false,
"description": "Bidirectional archive synchronization using rclone bisync.",
"type": "object",
"properties": {
"remote": {
"default": "",
"description": "rclone remote name, not an s3:// URL. Empty remote or path skips archive synchronization.",
"type": "string"
},
"path": {
"default": "",
"description": "Remote archive path, combined with the remote name as remote:path.",
"type": "string"
},
"flags": {
"default": [],
"description": "Additional rclone arguments, one argument per array entry.",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"cdn": {
"default": {},
"additionalProperties": false,
"description": "Publish generated assets to a remote destination.",
"type": "object",
"properties": {
"remote": {
"default": "",
"description": "rclone remote name. Empty remote or path skips CDN synchronization.",
"type": "string"
},
"path": {
"default": "",
"description": "Remote published-assets path, combined as remote:path.",
"type": "string"
},
"flags": {
"default": [],
"description": "Additional rclone arguments, one argument per array entry.",
"type": "array",
"items": {
"type": "string"
}
},
"strategy": {
"default": "sync",
"description": "sync deletes destination-only files; copy does not.",
"anyOf": [
{
"const": "sync",
"type": "string"
},
{
"const": "copy",
"type": "string"
}
]
}
}
}
}
},
"worker": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"queue": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"path": {
"default": "./data/sidequest.sqlite",
"description": "Workflow queue database path. The legacy sidequest.sqlite filename is mapped to openworkflow.sqlite by the application.",
"type": "string"
}
}
}
}
},
"ai": {
"additionalProperties": false,
"description": "AI generation settings. Omit ai to disable generation; both provider and api_key must be supplied when configured.",
"type": "object",
"required": [
"provider",
"api_key"
],
"properties": {
"provider": {
"description": "Generation provider. Google is currently the supported provider; this field is required.",
"const": "google",
"type": "string"
},
"api_key": {
"minLength": 1,
"description": "Provider API key or an explicit environment reference.",
"examples": [
"${GOOGLE_API_KEY}"
],
"type": "string"
}
}
},
"paths": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"database": {
"default": "./data/luzzle.sqlite",
"description": "SQLite index path, resolved relative to the config directory.",
"type": "string"
},
"assets": {
"default": "./assets/pieces",
"description": "Generated piece assets directory. Worker generation uses its working directory for relative paths.",
"type": "string"
},
"cache": {
"default": "./nginx",
"description": "Proxy cache directory.",
"type": "string"
},
"static": {
"default": "./static",
"description": "Static render assets directory.",
"type": "string"
},
"config": {
"description": "Runtime metadata: loadConfig records the supplied config filename here.",
"readOnly": true,
"type": "string"
}
}
},
"assets": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"salt": {
"default": "${LUZZLE_ASSET_SALT:-}",
"description": "Salt for generated asset keys. Changing it changes published asset URLs.",
"type": "string"
}
}
},
"content": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"fonts": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"sans": {
"minLength": 1,
"pattern": "(?:^(?!\\s*(?:[a-zA-Z][a-zA-Z0-9+.-]*:|//))(?!.*://)(?!.*[\\u0000-\\u001f\\u007f-\\u009f?#]).*[^/]\\.(?:[wW][oO][fF][fF]2)$)|\\$\\{[^}:]+(?::-[^}]*)?\\}",
"description": "Local sans font filename (WOFF2), absolute or relative to the supplied config file. Supports explicit environment references. Omit to retain theme.globals.font-sans-url.",
"type": "string"
}
}
},
"images": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"favicon": {
"minLength": 1,
"pattern": "(?:^(?!\\s*(?:[a-zA-Z][a-zA-Z0-9+.-]*:|//))(?!.*://)(?!.*[\\u0000-\\u001f\\u007f-\\u009f?#]).*[^/]\\.(?:[pP][nN][gG]|[sS][vV][gG]|[iI][cC][oO])$)|\\$\\{[^}:]+(?::-[^}]*)?\\}",
"description": "Built-in static favicon by default; otherwise a local filename (PNG, SVG or ICO), absolute or relative to the supplied config file. Supports explicit environment references.",
"type": "string",
"default": "/images/favicon.png"
},
"opengraph": {
"minLength": 1,
"pattern": "(?:^(?!\\s*(?:[a-zA-Z][a-zA-Z0-9+.-]*:|//))(?!.*://)(?!.*[\\u0000-\\u001f\\u007f-\\u009f?#]).*[^/]\\.(?:[pP][nN][gG]|[jJ][pP][gG]|[jJ][pP][eE][gG]|[wW][eE][bB][pP]|[gG][iI][fF])$)|\\$\\{[^}:]+(?::-[^}]*)?\\}",
"description": "Built-in static site Open Graph image by default; otherwise a local filename (PNG, JPEG, WebP or GIF), absolute or relative to the supplied config file. Supports explicit environment references.",
"type": "string",
"default": "/images/opengraph.png"
}
}
},
"text": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"title": {
"default": "Luzzle Explorer",
"description": "Site title.",
"type": "string"
},
"description": {
"default": "A Luzzle Explorer instance",
"description": "Site description.",
"type": "string"
}
}
}
}
},
"pages": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"home": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"body": {
"minLength": 1,
"description": "Markdown file replacing the home introduction, relative to the supplied config file.",
"type": "string"
},
"latest": {
"default": true,
"description": "Show the latest published pieces.",
"type": "boolean"
},
"random": {
"default": false,
"description": "Show a random selection of published pieces.",
"type": "boolean"
}
}
},
"feed": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"about": {
"minLength": 1,
"description": "Markdown file for the feed explanation card. Omit to hide the card.",
"type": "string"
},
"links": {
"default": true,
"description": "Show feed format links and subscription copy controls.",
"type": "boolean"
}
}
},
"error": {
"default": {},
"additionalProperties": false,
"description": "Independent error presentations: 404 takes precedence over remaining 4xx; 500 presents all 5xx without changing the actual status.",
"type": "object",
"properties": {
"404": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"body": {
"minLength": 1,
"description": "Markdown file replacing the error body, relative to the supplied config file.",
"type": "string"
},
"home": {
"default": true,
"description": "Show a link back to the home page.",
"type": "boolean"
}
}
},
"500": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"body": {
"minLength": 1,
"description": "Markdown file replacing the error body, relative to the supplied config file.",
"type": "string"
},
"home": {
"default": true,
"description": "Show a link back to the home page.",
"type": "boolean"
}
}
},
"4xx": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"body": {
"minLength": 1,
"description": "Markdown file replacing the error body, relative to the supplied config file.",
"type": "string"
},
"home": {
"default": true,
"description": "Show a link back to the home page.",
"type": "boolean"
}
}
}
}
}
}
},
"pieces": {
"default": [],
"description": "Ordered presentation and frontmatter mappings for archive piece types.",
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"required": [
"type",
"fields"
],
"properties": {
"type": {
"description": "Archive piece type associated with this presentation.",
"examples": [
"books"
],
"type": "string"
},
"fields": {
"additionalProperties": false,
"type": "object",
"required": [
"title",
"date_consumed"
],
"properties": {
"media": {
"description": "Frontmatter selectors for media assets.",
"examples": [
[
"cover"
]
],
"type": "array",
"items": {
"type": "string"
}
},
"title": {
"description": "Frontmatter selector for the title, not a literal display title.",
"examples": [
"title"
],
"type": "string"
},
"summary": {
"description": "Frontmatter selector for a summary.",
"examples": [
"description"
],
"type": "string"
},
"date_consumed": {
"description": "Frontmatter selector for the consumed/read/viewed date.",
"examples": [
"date_read"
],
"type": "string"
},
"tags": {
"description": "Frontmatter selector for tags.",
"examples": [
"keywords"
],
"type": "string"
},
"attachments": {
"description": "Frontmatter selectors for attachments.",
"examples": [
[
"files[*].file"
]
],
"type": "array",
"items": {
"type": "string"
}
},
"highlight": {
"description": "Frontmatter selectors for published attachments to highlight as code or text. Omit to disable attachment highlighting.",
"examples": [
[
"files[*].file"
]
],
"type": "array",
"items": {
"type": "string"
}
}
}
},
"templates": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"icon": {
"default": {
"name": "default"
},
"anyOf": [
{
"additionalProperties": false,
"description": "The default piece icon: a poster image with a title fallback.",
"type": "object",
"properties": {
"name": {
"default": "default",
"const": "default",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "icon-default-image",
"description": "Image asset key displayed as the poster.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-default-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-default-image"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A three-dimensional book cover and spine with page-count thickness.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "book",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "icon-book-image",
"description": "Book cover image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-book-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-book-image"
}
}
}
}
}
]
},
"author": {
"$id": "icon-book-author",
"description": "Author text displayed on the spine.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-book-author"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-book-author"
}
}
}
}
}
]
},
"pages": {
"$id": "icon-book-pages",
"description": "Page count used to calculate spine thickness.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-book-pages"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-book-pages"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A browser window with address-bar text, an optional banner, title and summary.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "browser-window",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "icon-browser-window-image",
"description": "Article banner image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-browser-window-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-browser-window-image"
}
}
}
}
}
]
},
"url": {
"$id": "icon-browser-window-url",
"description": "Address-bar display text; defaults to the piece URL.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-browser-window-url"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-browser-window-url"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A dark terminal showing the first snippet asset highlight, or the piece summary.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "code-snippet",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"files": {
"$id": "icon-code-snippet-files",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-code-snippet-files"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-code-snippet-files"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A ruled, three-hole sheet displaying the normalized piece title and summary.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "lined-notebook-paper",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {}
}
}
},
{
"additionalProperties": false,
"description": "A fan of playing cards using the piece title, normalized tags and palette.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "playing-cards",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {}
}
}
},
{
"additionalProperties": false,
"description": "A poster image with a title fallback, maintained independently from the default icon.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "poster",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "icon-poster-image",
"description": "Image asset key displayed as the poster.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-poster-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-poster-image"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A recipe card with an ingredient checklist and ring-binding cutouts.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "recipe-card",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "icon-recipe-card-image",
"description": "Recipe image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-recipe-card-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-recipe-card-image"
}
}
}
}
}
]
},
"ingredients": {
"$id": "icon-recipe-card-ingredients",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-recipe-card-ingredients"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-recipe-card-ingredients"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A video-game cartridge with a title and optional label image.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "video-game-cartridge",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "icon-video-game-cartridge-image",
"description": "Cartridge label image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-video-game-cartridge-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-video-game-cartridge-image"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A grooved vinyl record with label artwork or a title fallback.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "vinyl-record",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "icon-vinyl-record-image",
"description": "Record label image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-vinyl-record-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "icon-vinyl-record-image"
}
}
}
}
}
]
}
}
}
}
}
]
},
"page": {
"default": {
"name": "default"
},
"anyOf": [
{
"additionalProperties": false,
"description": "An independent poster-style default piece page.",
"type": "object",
"properties": {
"name": {
"default": "default",
"const": "default",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "page-default-image",
"description": "Poster image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-image"
}
}
}
}
}
]
},
"backdrop": {
"$id": "page-default-backdrop",
"description": "Backdrop image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-backdrop"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-backdrop"
}
}
}
}
}
]
},
"dateReleased": {
"$id": "page-default-dateReleased",
"description": "Release date as text or epoch milliseconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-dateReleased"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-dateReleased"
}
}
}
}
}
]
},
"runtime": {
"$id": "page-default-runtime",
"description": "Duration in minutes.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-runtime"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-runtime"
}
}
}
}
}
]
},
"url": {
"$id": "page-default-url",
"description": "External link.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-url"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-url"
}
}
}
}
}
]
},
"isbn": {
"$id": "page-default-isbn",
"description": "ISBN used for an Open Library link when no URL is supplied.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-isbn"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-isbn"
}
}
}
}
}
]
},
"category": {
"$id": "page-default-category",
"description": "Display category, independent of the archive piece type.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-category"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-category"
}
}
}
}
}
]
},
"people": {
"$id": "page-default-people",
"description": "People as names or mapped objects with a name field.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-people"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-default-people"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "An article page with a browser preview, reading-time byline, notes and publication details.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "article",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "page-article-image",
"description": "Article banner image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-image"
}
}
}
}
}
]
},
"url": {
"$id": "page-article-url",
"description": "External article link and browser address text.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-url"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-url"
}
}
}
}
}
]
},
"author": {
"$id": "page-article-author",
"description": "Author text displayed in the byline.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-author"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-author"
}
}
}
}
}
]
},
"wordCount": {
"$id": "page-article-wordCount",
"description": "Word count used to estimate reading time.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-wordCount"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-wordCount"
}
}
}
}
}
]
},
"datePublished": {
"$id": "page-article-datePublished",
"description": "Publication date as text or epoch milliseconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-datePublished"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-datePublished"
}
}
}
}
}
]
},
"isActive": {
"$id": "page-article-isActive",
"description": "Whether the article link is still active.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-isActive"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-isActive"
}
}
}
}
}
]
},
"isPaywalled": {
"$id": "page-article-isPaywalled",
"description": "Whether the article requires a subscription.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-isPaywalled"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-article-isPaywalled"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A book page with author/page-count byline, notes, publication details and cover.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "book",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "page-book-image",
"description": "Cover image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-image"
}
}
}
}
}
]
},
"author": {
"$id": "page-book-author",
"description": "Author text displayed in the byline and cover spine.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-author"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-author"
}
}
}
}
}
]
},
"pages": {
"$id": "page-book-pages",
"description": "Page count displayed in the byline.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-pages"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-pages"
}
}
}
}
}
]
},
"publicationYear": {
"$id": "page-book-publicationYear",
"description": "Year displayed under Published.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-publicationYear"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-publicationYear"
}
}
}
}
}
]
},
"url": {
"$id": "page-book-url",
"description": "External link.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-url"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-url"
}
}
}
}
}
]
},
"isbn": {
"$id": "page-book-isbn",
"description": "ISBN used for an Open Library link when no URL is supplied.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-isbn"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-book-isbn"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A film page with poster, year/runtime byline, notes, people and backdrop, independent of the default page.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "film",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "page-film-image",
"description": "Poster image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-image"
}
}
}
}
}
]
},
"backdrop": {
"$id": "page-film-backdrop",
"description": "Backdrop image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-backdrop"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-backdrop"
}
}
}
}
}
]
},
"dateReleased": {
"$id": "page-film-dateReleased",
"description": "Release date as text or epoch milliseconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-dateReleased"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-dateReleased"
}
}
}
}
}
]
},
"runtime": {
"$id": "page-film-runtime",
"description": "Duration in minutes.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-runtime"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-runtime"
}
}
}
}
}
]
},
"url": {
"$id": "page-film-url",
"description": "External link.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-url"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-url"
}
}
}
}
}
]
},
"isbn": {
"$id": "page-film-isbn",
"description": "ISBN used for an Open Library link when no URL is supplied.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-isbn"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-isbn"
}
}
}
}
}
]
},
"category": {
"$id": "page-film-category",
"description": "Display category, independent of the archive piece type.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-category"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-category"
}
}
}
}
}
]
},
"people": {
"$id": "page-film-people",
"description": "People as names or mapped objects with a name field.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-people"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-film-people"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A music page with vinyl artwork, track details, notes and service links.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "music",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "page-music-image",
"description": "Cover art and vinyl label image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-image"
}
}
}
}
}
]
},
"artist": {
"$id": "page-music-artist",
"description": "Artist displayed in the byline.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-artist"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-artist"
}
}
}
}
}
]
},
"durationSeconds": {
"$id": "page-music-durationSeconds",
"description": "Track duration in seconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-durationSeconds"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-durationSeconds"
}
}
}
}
}
]
},
"album": {
"$id": "page-music-album",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-album"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-album"
}
}
}
}
}
]
},
"dateReleased": {
"$id": "page-music-dateReleased",
"description": "Release date as text or epoch milliseconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-dateReleased"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-dateReleased"
}
}
}
}
}
]
},
"language": {
"$id": "page-music-language",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-language"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-language"
}
}
}
}
}
]
},
"collaborators": {
"$id": "page-music-collaborators",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-collaborators"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-collaborators"
}
}
}
}
}
]
},
"url": {
"$id": "page-music-url",
"description": "External source URL.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-url"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-url"
}
}
}
}
}
]
},
"youtubeId": {
"$id": "page-music-youtubeId",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-youtubeId"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-youtubeId"
}
}
}
}
}
]
},
"spotifyId": {
"$id": "page-music-spotifyId",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-spotifyId"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-spotifyId"
}
}
}
}
}
]
},
"appleMusicUrl": {
"$id": "page-music-appleMusicUrl",
"description": "Apple Music URL.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-appleMusicUrl"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-appleMusicUrl"
}
}
}
}
}
]
},
"isrc": {
"$id": "page-music-isrc",
"description": "ISRC identifier (map legacy iscr metadata here).",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-isrc"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-music-isrc"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A text-first note page with a title, reading time, date and tags.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "note",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {}
}
}
},
{
"additionalProperties": false,
"description": "A recipe page with notes, ingredient checkboxes, instructions, timings and photo.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "recipe",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "page-recipe-image",
"description": "Recipe photo asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-image"
}
}
}
}
}
]
},
"url": {
"$id": "page-recipe-url",
"description": "External recipe source link.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-url"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-url"
}
}
}
}
}
]
},
"ingredients": {
"$id": "page-recipe-ingredients",
"description": "Ordered ingredient checklist.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-ingredients"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-ingredients"
}
}
}
}
}
]
},
"instructions": {
"$id": "page-recipe-instructions",
"description": "Ordered steps: authored HTML strings, explicit HTML objects, or escaped text objects.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-instructions"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-instructions"
}
}
}
}
}
]
},
"prepMinutes": {
"$id": "page-recipe-prepMinutes",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-prepMinutes"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-prepMinutes"
}
}
}
}
}
]
},
"cookMinutes": {
"$id": "page-recipe-cookMinutes",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-cookMinutes"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-cookMinutes"
}
}
}
}
}
]
},
"totalMinutes": {
"$id": "page-recipe-totalMinutes",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-totalMinutes"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-totalMinutes"
}
}
}
}
}
]
},
"dateUpdated": {
"$id": "page-recipe-dateUpdated",
"description": "Update date as text or epoch milliseconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-dateUpdated"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-recipe-dateUpdated"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A code snippet page with generated syntax highlighting and attachment downloads.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "snippet",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"files": {
"$id": "page-snippet-files",
"description": "Ordered files, supporting structured each/fields mappings.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-snippet-files"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-snippet-files"
}
}
}
}
}
]
},
"dateUpdated": {
"$id": "page-snippet-dateUpdated",
"description": "Last updated date as text or epoch milliseconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-snippet-dateUpdated"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-snippet-dateUpdated"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A tabletop-game page with a playing-card hero, minutes byline, player count, notes and cover.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "tabletop-game",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "page-tabletop-game-image",
"description": "Cover image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-image"
}
}
}
}
}
]
},
"url": {
"$id": "page-tabletop-game-url",
"description": "External link.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-url"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-url"
}
}
}
}
}
]
},
"isbn": {
"$id": "page-tabletop-game-isbn",
"description": "ISBN used for an Open Library link when no URL is supplied.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-isbn"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-isbn"
}
}
}
}
}
]
},
"publisher": {
"$id": "page-tabletop-game-publisher",
"description": "Publisher name.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-publisher"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-publisher"
}
}
}
}
}
]
},
"datePublished": {
"$id": "page-tabletop-game-datePublished",
"description": "Publication date as text or epoch milliseconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-datePublished"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-datePublished"
}
}
}
}
}
]
},
"playTimeMinutes": {
"$id": "page-tabletop-game-playTimeMinutes",
"description": "Play time in minutes.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-playTimeMinutes"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-playTimeMinutes"
}
}
}
}
}
]
},
"playerCount": {
"$id": "page-tabletop-game-playerCount",
"description": "Number of players.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-playerCount"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-tabletop-game-playerCount"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A video-game page with a cartridge hero, platform and hours byline, notes and cover.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "video-game",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "page-video-game-image",
"description": "Cover image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-image"
}
}
}
}
}
]
},
"url": {
"$id": "page-video-game-url",
"description": "External link.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-url"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-url"
}
}
}
}
}
]
},
"isbn": {
"$id": "page-video-game-isbn",
"description": "ISBN used for an Open Library link when no URL is supplied.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-isbn"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-isbn"
}
}
}
}
}
]
},
"publisher": {
"$id": "page-video-game-publisher",
"description": "Publisher name.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-publisher"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-publisher"
}
}
}
}
}
]
},
"datePublished": {
"$id": "page-video-game-datePublished",
"description": "Publication date as text or epoch milliseconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-datePublished"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-datePublished"
}
}
}
}
}
]
},
"playTimeMinutes": {
"$id": "page-video-game-playTimeMinutes",
"description": "Play time in minutes.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-playTimeMinutes"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-playTimeMinutes"
}
}
}
}
}
]
},
"platform": {
"$id": "page-video-game-platform",
"description": "Platform displayed in the byline.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-platform"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "page-video-game-platform"
}
}
}
}
}
]
}
}
}
}
}
]
},
"opengraph": {
"default": {
"name": "default"
},
"anyOf": [
{
"additionalProperties": false,
"description": "An independent poster-style default share card.",
"type": "object",
"properties": {
"name": {
"default": "default",
"const": "default",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "opengraph-default-image",
"description": "Poster image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-default-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-default-image"
}
}
}
}
}
]
},
"backdrop": {
"$id": "opengraph-default-backdrop",
"description": "Backdrop image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-default-backdrop"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-default-backdrop"
}
}
}
}
}
]
},
"director": {
"$id": "opengraph-default-director",
"description": "Director text displayed in the byline.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-default-director"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-default-director"
}
}
}
}
}
]
},
"dateReleased": {
"$id": "opengraph-default-dateReleased",
"description": "Release date as text or epoch milliseconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-default-dateReleased"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-default-dateReleased"
}
}
}
}
}
]
},
"runtime": {
"$id": "opengraph-default-runtime",
"description": "Duration in minutes.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-default-runtime"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-default-runtime"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A book cover and pages beside its title and author, with a page-count/date byline.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "book",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "opengraph-book-image",
"description": "Book cover image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-book-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-book-image"
}
}
}
}
}
]
},
"author": {
"$id": "opengraph-book-author",
"description": "Author displayed below the title.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-book-author"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-book-author"
}
}
}
}
}
]
},
"pages": {
"$id": "opengraph-book-pages",
"description": "Page count displayed in the byline.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-book-pages"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-book-pages"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A browser-window mockup beside the title and author, with a hostname/reading-time/date byline.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "browser-window",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "opengraph-browser-window-image",
"description": "Webpage banner image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-browser-window-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-browser-window-image"
}
}
}
}
}
]
},
"url": {
"$id": "opengraph-browser-window-url",
"description": "URL displayed in the browser address bar.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-browser-window-url"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-browser-window-url"
}
}
}
}
}
]
},
"author": {
"$id": "opengraph-browser-window-author",
"description": "Author displayed below the title.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-browser-window-author"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-browser-window-author"
}
}
}
}
}
]
},
"wordCount": {
"$id": "opengraph-browser-window-wordCount",
"description": "Word count used to estimate reading time.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-browser-window-wordCount"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-browser-window-wordCount"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A dark terminal displaying generated code highlighting or a summary, with a formats/file-count/date byline.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "code-snippet",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"files": {
"$id": "opengraph-code-snippet-files",
"description": "Source files in display order.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-code-snippet-files"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-code-snippet-files"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A lined notebook sheet on a dark backdrop, using the piece title, summary, note reading time and date.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "lined-notebook-paper",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {}
}
}
},
{
"additionalProperties": false,
"description": "Fanned playing cards using the title, summary and a deterministic symbol, with a publisher and play-time/date byline.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "playing-cards",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"backdrop": {
"$id": "opengraph-playing-cards-backdrop",
"description": "Background image asset key behind the playing cards.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-playing-cards-backdrop"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-playing-cards-backdrop"
}
}
}
}
}
]
},
"publisher": {
"$id": "opengraph-playing-cards-publisher",
"description": "Publisher displayed below the title.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-playing-cards-publisher"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-playing-cards-publisher"
}
}
}
}
}
]
},
"playTimeMinutes": {
"$id": "opengraph-playing-cards-playTimeMinutes",
"description": "Play time in minutes, displayed without conversion to hours.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-playing-cards-playTimeMinutes"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-playing-cards-playTimeMinutes"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A poster and optional backdrop beside the title/credits, independent of the default card.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "poster",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "opengraph-poster-image",
"description": "Poster image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-poster-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-poster-image"
}
}
}
}
}
]
},
"backdrop": {
"$id": "opengraph-poster-backdrop",
"description": "Backdrop image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-poster-backdrop"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-poster-backdrop"
}
}
}
}
}
]
},
"director": {
"$id": "opengraph-poster-director",
"description": "Director text displayed in the byline.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-poster-director"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-poster-director"
}
}
}
}
}
]
},
"dateReleased": {
"$id": "opengraph-poster-dateReleased",
"description": "Release date as text or epoch milliseconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-poster-dateReleased"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-poster-dateReleased"
}
}
}
}
}
]
},
"runtime": {
"$id": "opengraph-poster-runtime",
"description": "Duration in minutes.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-poster-runtime"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-poster-runtime"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "An ingredient checklist and optional photo backdrop beside the recipe title/source.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "recipe-card",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "opengraph-recipe-card-image",
"description": "Recipe backdrop image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-image"
}
}
}
}
}
]
},
"source": {
"$id": "opengraph-recipe-card-source",
"description": "Source label displayed under the title.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-source"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-source"
}
}
}
}
}
]
},
"ingredients": {
"$id": "opengraph-recipe-card-ingredients",
"description": "Ordered ingredient names displayed on the checklist.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-ingredients"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-ingredients"
}
}
}
}
}
]
},
"prepMinutes": {
"$id": "opengraph-recipe-card-prepMinutes",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-prepMinutes"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-prepMinutes"
}
}
}
}
}
]
},
"cookMinutes": {
"$id": "opengraph-recipe-card-cookMinutes",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-cookMinutes"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-cookMinutes"
}
}
}
}
}
]
},
"totalMinutes": {
"$id": "opengraph-recipe-card-totalMinutes",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-totalMinutes"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-recipe-card-totalMinutes"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A video game cartridge beside its title and publisher, with a platform/play-time/date byline.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "video-game-cartridge",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "opengraph-video-game-cartridge-image",
"description": "Image asset key for the cartridge label; also the backdrop when no backdrop is mapped.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-video-game-cartridge-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-video-game-cartridge-image"
}
}
}
}
}
]
},
"publisher": {
"$id": "opengraph-video-game-cartridge-publisher",
"description": "Publisher displayed below the title.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-video-game-cartridge-publisher"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-video-game-cartridge-publisher"
}
}
}
}
}
]
},
"platform": {
"$id": "opengraph-video-game-cartridge-platform",
"description": "Platform displayed in the byline.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-video-game-cartridge-platform"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-video-game-cartridge-platform"
}
}
}
}
}
]
},
"playTimeMinutes": {
"$id": "opengraph-video-game-cartridge-playTimeMinutes",
"description": "Play time in minutes, displayed as rounded whole hours.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-video-game-cartridge-playTimeMinutes"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-video-game-cartridge-playTimeMinutes"
}
}
}
}
}
]
},
"backdrop": {
"$id": "opengraph-video-game-cartridge-backdrop",
"description": "Independent background image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-video-game-cartridge-backdrop"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-video-game-cartridge-backdrop"
}
}
}
}
}
]
}
}
}
}
},
{
"additionalProperties": false,
"description": "A vinyl record beside its title and artist, with a duration/date byline.",
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"const": "vinyl-record",
"type": "string"
},
"mapping": {
"additionalProperties": false,
"type": "object",
"properties": {
"image": {
"$id": "opengraph-vinyl-record-image",
"description": "Vinyl label image asset key.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-vinyl-record-image"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-vinyl-record-image"
}
}
}
}
}
]
},
"artist": {
"$id": "opengraph-vinyl-record-artist",
"description": "Artist displayed below the title.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-vinyl-record-artist"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-vinyl-record-artist"
}
}
}
}
}
]
},
"durationSeconds": {
"$id": "opengraph-vinyl-record-durationSeconds",
"description": "Duration in seconds, displayed as minutes and seconds.",
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"additionalProperties": false,
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"minLength": 1,
"type": "string"
},
"default": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"value"
],
"properties": {
"value": {}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-vinyl-record-durationSeconds"
}
}
}
}
},
{
"additionalProperties": false,
"type": "object",
"required": [
"each",
"fields"
],
"properties": {
"each": {
"minLength": 1,
"type": "string"
},
"fields": {
"type": "object",
"patternProperties": {
"^(.*)$": {
"$ref": "opengraph-vinyl-record-durationSeconds"
}
}
}
}
}
]
}
}
}
}
}
]
}
}
}
}
}
},
"theme": {
"default": {},
"additionalProperties": false,
"description": "Theme overrides. Omit any defaulted tokens you do not need to customize.",
"type": "object",
"properties": {
"light": {
"default": {},
"additionalProperties": false,
"description": "Light palette CSS color values; hex, rgb, hsl and other CSS color syntax are supported.",
"type": "object",
"properties": {
"color-primary": {
"default": "#0d6efd",
"type": "string"
},
"color-on-primary": {
"default": "#ffffff",
"type": "string"
},
"color-primary-container": {
"default": "#cfe2ff",
"type": "string"
},
"color-on-primary-container": {
"default": "#084298",
"type": "string"
},
"color-secondary": {
"default": "#6c757d",
"type": "string"
},
"color-on-secondary": {
"default": "#ffffff",
"type": "string"
},
"color-secondary-container": {
"default": "#d3d3d4",
"type": "string"
},
"color-on-secondary-container": {
"default": "#41464b",
"type": "string"
},
"color-tertiary": {
"default": "#6c757d",
"type": "string"
},
"color-on-tertiary": {
"default": "#ffffff",
"type": "string"
},
"color-tertiary-container": {
"default": "#d3d3d4",
"type": "string"
},
"color-on-tertiary-container": {
"default": "#41464b",
"type": "string"
},
"color-error": {
"default": "#dc3545",
"type": "string"
},
"color-on-error": {
"default": "#ffffff",
"type": "string"
},
"color-error-container": {
"default": "#f8d7da",
"type": "string"
},
"color-on-error-container": {
"default": "#842029",
"type": "string"
},
"color-surface": {
"default": "#f8f9fa",
"type": "string"
},
"color-surface-dim": {
"default": "#e9ecef",
"type": "string"
},
"color-surface-bright": {
"default": "#ffffff",
"type": "string"
},
"color-surface-inverse": {
"default": "#212529",
"type": "string"
},
"color-on-surface": {
"default": "#212529",
"type": "string"
},
"color-on-surface-variant": {
"default": "#495057",
"type": "string"
},
"color-on-surface-inverse": {
"default": "#f8f9fa",
"type": "string"
},
"color-surface-container-lowest": {
"default": "#ffffff",
"type": "string"
},
"color-surface-container-low": {
"default": "#f8f9fa",
"type": "string"
},
"color-surface-container": {
"default": "#f4f6f8",
"type": "string"
},
"color-surface-container-high": {
"default": "#f0f2f5",
"type": "string"
},
"color-surface-container-highest": {
"default": "#eceff3",
"type": "string"
},
"color-shadow": {
"default": "hsla(0, 0%, 0%, 0.15)",
"type": "string"
},
"color-outline": {
"default": "#6c757d",
"type": "string"
},
"color-outline-variant": {
"default": "#ced4da",
"type": "string"
}
}
},
"dark": {
"default": {},
"additionalProperties": false,
"description": "Dark palette CSS color values.",
"type": "object",
"properties": {
"color-primary": {
"default": "#3b82f6",
"type": "string"
},
"color-on-primary": {
"default": "#ffffff",
"type": "string"
},
"color-primary-container": {
"default": "#0d6efd",
"type": "string"
},
"color-on-primary-container": {
"default": "#cfe2ff",
"type": "string"
},
"color-secondary": {
"default": "#adb5bd",
"type": "string"
},
"color-on-secondary": {
"default": "#212529",
"type": "string"
},
"color-secondary-container": {
"default": "#495057",
"type": "string"
},
"color-on-secondary-container": {
"default": "#d3d3d4",
"type": "string"
},
"color-tertiary": {
"default": "#adb5bd",
"type": "string"
},
"color-on-tertiary": {
"default": "#212529",
"type": "string"
},
"color-tertiary-container": {
"default": "#495057",
"type": "string"
},
"color-on-tertiary-container": {
"default": "#d3d3d4",
"type": "string"
},
"color-error": {
"default": "#f87171",
"type": "string"
},
"color-on-error": {
"default": "#4f0b0b",
"type": "string"
},
"color-error-container": {
"default": "#dc3545",
"type": "string"
},
"color-on-error-container": {
"default": "#f8d7da",
"type": "string"
},
"color-surface": {
"default": "#121212",
"type": "string"
},
"color-surface-dim": {
"default": "#1f1f1f",
"type": "string"
},
"color-surface-bright": {
"default": "#333333",
"type": "string"
},
"color-surface-inverse": {
"default": "#e9ecef",
"type": "string"
},
"color-on-surface": {
"default": "#e9ecef",
"type": "string"
},
"color-on-surface-variant": {
"default": "#adb5bd",
"type": "string"
},
"color-on-surface-inverse": {
"default": "#121212",
"type": "string"
},
"color-surface-container-lowest": {
"default": "#1f1f1f",
"type": "string"
},
"color-surface-container-low": {
"default": "#333333",
"type": "string"
},
"color-surface-container": {
"default": "#4f4f4f",
"type": "string"
},
"color-surface-container-high": {
"default": "#666666",
"type": "string"
},
"color-surface-container-highest": {
"default": "#7f7f7f",
"type": "string"
},
"color-shadow": {
"default": "hsla(0, 0%, 0%, 0.5)",
"type": "string"
},
"color-outline": {
"default": "#6c757d",
"type": "string"
},
"color-outline-variant": {
"default": "#495057",
"type": "string"
}
}
},
"globals": {
"default": {},
"additionalProperties": false,
"description": "Global CSS tokens. Sizes, spacing and radii are CSS-length strings unless a field explicitly uses a number.",
"type": "object",
"properties": {
"shadow-raised": {
"default": "0px 3px 1px -2px rgba(251 241 199 / 20%), 0px 2px 2px 0px rgba(251 241 199 / 14%), 0px 1px 5px 0px rgba(0 0 0 / 12%)",
"type": "string"
},
"font-mono-name": {
"default": "\"monaco, monospace\"",
"description": "CSS font-family value for monospace text.",
"type": "string"
},
"font-sans-name": {
"default": "\"Noto Sans\"",
"description": "CSS font-family value for sans-serif text.",
"type": "string"
},
"font-sans-url": {
"default": "\"/fonts/noto-sans.woff2\"",
"description": "CSS-quoted font URL.",
"type": "string"
},
"font-sans-weight": {
"default": "300 600",
"description": "Font-face weight or variable font weight range.",
"type": "string"
},
"font-size-xxs": {
"default": "0.7rem",
"type": "string"
},
"font-size-xs": {
"default": "0.825rem",
"type": "string"
},
"font-size-small": {
"default": "1rem",
"type": "string"
},
"font-size-normal": {
"default": "1.25rem",
"type": "string"
},
"font-size-medium": {
"default": "1.5rem",
"type": "string"
},
"font-size-large": {
"default": "1.75rem",
"type": "string"
},
"font-size-xl": {
"default": "2rem",
"type": "string"
},
"font-size-xxl": {
"default": "2.25rem",
"type": "string"
},
"font-size-mobile-responsive-factor": {
"default": 0.8,
"description": "Mobile font-size multiplier.",
"type": "number"
},
"font-size-root": {
"default": 22,
"description": "Root font size in pixels.",
"type": "number"
},
"font-weight-light": {
"default": 300,
"type": "number"
},
"font-weight-normal": {
"default": 400,
"type": "number"
},
"font-weight-medium": {
"default": 500,
"type": "number"
},
"font-weight-semibold": {
"default": 550,
"type": "number"
},
"font-weight-bold": {
"default": 600,
"type": "number"
},
"radius-none": {
"default": "0",
"type": "string"
},
"radius-small": {
"default": "0.25rem",
"type": "string"
},
"radius-medium": {
"default": "0.375rem",
"type": "string"
},
"radius-large": {
"default": "0.5rem",
"type": "string"
},
"radius-xl": {
"default": "0.75rem",
"type": "string"
},
"radius-x2l": {
"default": "1rem",
"type": "string"
},
"radius-x3l": {
"default": "1.5rem",
"type": "string"
},
"radius-x4l": {
"default": "2.5rem",
"type": "string"
},
"radius-full": {
"default": "9999px",
"type": "string"
},
"breakpoint-phone": {
"default": 640,
"description": "Phone breakpoint in pixels.",
"type": "number"
},
"breakpoint-tablet": {
"default": 768,
"description": "Tablet breakpoint in pixels.",
"type": "number"
},
"breakpoint-laptop": {
"default": 1024,
"description": "Laptop breakpoint in pixels.",
"type": "number"
},
"breakpoint-desktop": {
"default": 1280,
"description": "Desktop breakpoint in pixels.",
"type": "number"
},
"space-1": {
"default": "0.25rem",
"type": "string"
},
"space-2": {
"default": "0.5rem",
"type": "string"
},
"space-3": {
"default": "0.75rem",
"type": "string"
},
"space-4": {
"default": "1rem",
"type": "string"
},
"space-5": {
"default": "1.25rem",
"type": "string"
},
"space-6": {
"default": "1.5rem",
"type": "string"
},
"space-7": {
"default": "1.75rem",
"type": "string"
},
"space-8": {
"default": "2rem",
"type": "string"
},
"space-9": {
"default": "2.25rem",
"type": "string"
},
"space-10": {
"default": "2.5rem",
"type": "string"
},
"space-0-5": {
"default": "0.125rem",
"type": "string"
},
"space-1-5": {
"default": "0.375rem",
"type": "string"
},
"space-2-5": {
"default": "0.625rem",
"type": "string"
},
"space-3-5": {
"default": "0.875rem",
"type": "string"
}
}
},
"markdown": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"sidenote": {
"default": {},
"additionalProperties": false,
"description": "CSS content values for sidenotes; include CSS string quotes inside the YAML value.",
"type": "object",
"properties": {
"sidenote-callout-before-content": {
"default": "\"[ \"",
"type": "string"
},
"sidenote-callout-after-content": {
"default": "\" ]\"",
"type": "string"
},
"sidenote-citation-before-content": {
"default": "\"\"",
"type": "string"
},
"sidenote-citation-after-content": {
"default": "\":\"",
"type": "string"
}
}
},
"code": {
"default": {},
"additionalProperties": false,
"type": "object",
"properties": {
"light": {
"default": "github-light",
"description": "Shiki theme for light-mode code blocks and both editors.",
"anyOf": [
{
"const": "andromeeda",
"type": "string"
},
{
"const": "aurora-x",
"type": "string"
},
{
"const": "ayu-dark",
"type": "string"
},
{
"const": "catppuccin-frappe",
"type": "string"
},
{
"const": "catppuccin-latte",
"type": "string"
},
{
"const": "catppuccin-macchiato",
"type": "string"
},
{
"const": "catppuccin-mocha",
"type": "string"
},
{
"const": "dark-plus",
"type": "string"
},
{
"const": "dracula",
"type": "string"
},
{
"const": "dracula-soft",
"type": "string"
},
{
"const": "everforest-dark",
"type": "string"
},
{
"const": "everforest-light",
"type": "string"
},
{
"const": "github-dark",
"type": "string"
},
{
"const": "github-dark-default",
"type": "string"
},
{
"const": "github-dark-dimmed",
"type": "string"
},
{
"const": "github-dark-high-contrast",
"type": "string"
},
{
"const": "github-light",
"type": "string"
},
{
"const": "github-light-default",
"type": "string"
},
{
"const": "github-light-high-contrast",
"type": "string"
},
{
"const": "gruvbox-dark-hard",
"type": "string"
},
{
"const": "gruvbox-dark-medium",
"type": "string"
},
{
"const": "gruvbox-dark-soft",
"type": "string"
},
{
"const": "gruvbox-light-hard",
"type": "string"
},
{
"const": "gruvbox-light-medium",
"type": "string"
},
{
"const": "gruvbox-light-soft",
"type": "string"
},
{
"const": "houston",
"type": "string"
},
{
"const": "kanagawa-dragon",
"type": "string"
},
{
"const": "kanagawa-lotus",
"type": "string"
},
{
"const": "kanagawa-wave",
"type": "string"
},
{
"const": "laserwave",
"type": "string"
},
{
"const": "light-plus",
"type": "string"
},
{
"const": "material-theme",
"type": "string"
},
{
"const": "material-theme-darker",
"type": "string"
},
{
"const": "material-theme-lighter",
"type": "string"
},
{
"const": "material-theme-ocean",
"type": "string"
},
{
"const": "material-theme-palenight",
"type": "string"
},
{
"const": "min-dark",
"type": "string"
},
{
"const": "min-light",
"type": "string"
},
{
"const": "monokai",
"type": "string"
},
{
"const": "night-owl",
"type": "string"
},
{
"const": "nord",
"type": "string"
},
{
"const": "one-dark-pro",
"type": "string"
},
{
"const": "one-light",
"type": "string"
},
{
"const": "plastic",
"type": "string"
},
{
"const": "poimandres",
"type": "string"
},
{
"const": "red",
"type": "string"
},
{
"const": "rose-pine",
"type": "string"
},
{
"const": "rose-pine-dawn",
"type": "string"
},
{
"const": "rose-pine-moon",
"type": "string"
},
{
"const": "slack-dark",
"type": "string"
},
{
"const": "slack-ochin",
"type": "string"
},
{
"const": "snazzy-light",
"type": "string"
},
{
"const": "solarized-dark",
"type": "string"
},
{
"const": "solarized-light",
"type": "string"
},
{
"const": "synthwave-84",
"type": "string"
},
{
"const": "tokyo-night",
"type": "string"
},
{
"const": "vesper",
"type": "string"
},
{
"const": "vitesse-black",
"type": "string"
},
{
"const": "vitesse-dark",
"type": "string"
},
{
"const": "vitesse-light",
"type": "string"
}
]
},
"dark": {
"default": "github-dark",
"description": "Shiki theme for dark-mode code blocks and both editors.",
"anyOf": [
{
"const": "andromeeda",
"type": "string"
},
{
"const": "aurora-x",
"type": "string"
},
{
"const": "ayu-dark",
"type": "string"
},
{
"const": "catppuccin-frappe",
"type": "string"
},
{
"const": "catppuccin-latte",
"type": "string"
},
{
"const": "catppuccin-macchiato",
"type": "string"
},
{
"const": "catppuccin-mocha",
"type": "string"
},
{
"const": "dark-plus",
"type": "string"
},
{
"const": "dracula",
"type": "string"
},
{
"const": "dracula-soft",
"type": "string"
},
{
"const": "everforest-dark",
"type": "string"
},
{
"const": "everforest-light",
"type": "string"
},
{
"const": "github-dark",
"type": "string"
},
{
"const": "github-dark-default",
"type": "string"
},
{
"const": "github-dark-dimmed",
"type": "string"
},
{
"const": "github-dark-high-contrast",
"type": "string"
},
{
"const": "github-light",
"type": "string"
},
{
"const": "github-light-default",
"type": "string"
},
{
"const": "github-light-high-contrast",
"type": "string"
},
{
"const": "gruvbox-dark-hard",
"type": "string"
},
{
"const": "gruvbox-dark-medium",
"type": "string"
},
{
"const": "gruvbox-dark-soft",
"type": "string"
},
{
"const": "gruvbox-light-hard",
"type": "string"
},
{
"const": "gruvbox-light-medium",
"type": "string"
},
{
"const": "gruvbox-light-soft",
"type": "string"
},
{
"const": "houston",
"type": "string"
},
{
"const": "kanagawa-dragon",
"type": "string"
},
{
"const": "kanagawa-lotus",
"type": "string"
},
{
"const": "kanagawa-wave",
"type": "string"
},
{
"const": "laserwave",
"type": "string"
},
{
"const": "light-plus",
"type": "string"
},
{
"const": "material-theme",
"type": "string"
},
{
"const": "material-theme-darker",
"type": "string"
},
{
"const": "material-theme-lighter",
"type": "string"
},
{
"const": "material-theme-ocean",
"type": "string"
},
{
"const": "material-theme-palenight",
"type": "string"
},
{
"const": "min-dark",
"type": "string"
},
{
"const": "min-light",
"type": "string"
},
{
"const": "monokai",
"type": "string"
},
{
"const": "night-owl",
"type": "string"
},
{
"const": "nord",
"type": "string"
},
{
"const": "one-dark-pro",
"type": "string"
},
{
"const": "one-light",
"type": "string"
},
{
"const": "plastic",
"type": "string"
},
{
"const": "poimandres",
"type": "string"
},
{
"const": "red",
"type": "string"
},
{
"const": "rose-pine",
"type": "string"
},
{
"const": "rose-pine-dawn",
"type": "string"
},
{
"const": "rose-pine-moon",
"type": "string"
},
{
"const": "slack-dark",
"type": "string"
},
{
"const": "slack-ochin",
"type": "string"
},
{
"const": "snazzy-light",
"type": "string"
},
{
"const": "solarized-dark",
"type": "string"
},
{
"const": "solarized-light",
"type": "string"
},
{
"const": "synthwave-84",
"type": "string"
},
{
"const": "tokyo-night",
"type": "string"
},
{
"const": "vesper",
"type": "string"
},
{
"const": "vitesse-black",
"type": "string"
},
{
"const": "vitesse-dark",
"type": "string"
},
{
"const": "vitesse-light",
"type": "string"
}
]
}
}
}
}
}
}
}
}
}