{ "$id": "dictionaryTermBankV3", "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "structuredContent": { "oneOf": [ { "type": "string", "description": "Represents a text node." }, { "type": "array", "items": { "$ref": "#/definitions/structuredContent", "description": "An array of child content." } }, { "type": "object", "oneOf": [ { "type": "object", "description": "Empty tags.", "required": [ "tag" ], "additionalProperties": false, "properties": { "tag": { "type": "string", "const": "br" }, "data": { "$ref": "#/definitions/structuredContentData" } } }, { "type": "object", "description": "Generic container tags.", "required": [ "tag" ], "additionalProperties": false, "properties": { "tag": { "type": "string", "enum": ["ruby", "rt", "rp", "table", "thead", "tbody", "tfoot", "tr"] }, "content": { "$ref": "#/definitions/structuredContent" }, "data": { "$ref": "#/definitions/structuredContentData" }, "lang": { "type": "string", "description": "Defines the language of an element in the format defined by RFC 5646." } } }, { "type": "object", "description": "Table tags.", "required": [ "tag" ], "additionalProperties": false, "properties": { "tag": { "type": "string", "enum": ["td", "th"] }, "content": { "$ref": "#/definitions/structuredContent" }, "data": { "$ref": "#/definitions/structuredContentData" }, "colSpan": { "type": "integer", "minimum": 1 }, "rowSpan": { "type": "integer", "minimum": 1 }, "style": { "$ref": "#/definitions/structuredContentStyle" }, "lang": { "type": "string", "description": "Defines the language of an element in the format defined by RFC 5646." } } }, { "type": "object", "description": "Container tags supporting configurable styles.", "required": [ "tag" ], "additionalProperties": false, "properties": { "tag": { "type": "string", "enum": ["span", "div", "ol", "ul", "li"] }, "content": { "$ref": "#/definitions/structuredContent" }, "data": { "$ref": "#/definitions/structuredContentData" }, "style": { "$ref": "#/definitions/structuredContentStyle" }, "title": { "type": "string", "description": "Hover text for the element." }, "lang": { "type": "string", "description": "Defines the language of an element in the format defined by RFC 5646." } } }, { "type": "object", "description": "Image tag.", "required": [ "tag", "path" ], "additionalProperties": false, "properties": { "tag": { "type": "string", "const": "img" }, "data": { "$ref": "#/definitions/structuredContentData" }, "path": { "type": "string", "description": "Path to the image file in the archive." }, "width": { "type": "number", "description": "Preferred width of the image.", "minimum": 0 }, "height": { "type": "number", "description": "Preferred width of the image.", "minimum": 0 }, "title": { "type": "string", "description": "Hover text for the image." }, "alt": { "type": "string", "description": "Alt text for the image." }, "description": { "type": "string", "description": "Description of the image." }, "pixelated": { "type": "boolean", "description": "Whether or not the image should appear pixelated at sizes larger than the image's native resolution.", "default": false }, "imageRendering": { "type": "string", "description": "Controls how the image is rendered. The value of this field supersedes the pixelated field.", "enum": ["auto", "pixelated", "crisp-edges"], "default": "auto" }, "appearance": { "type": "string", "description": "Controls the appearance of the image. The \"monochrome\" value will mask the opaque parts of the image using the current text color.", "enum": ["auto", "monochrome"], "default": "auto" }, "background": { "type": "boolean", "description": "Whether or not a background color is displayed behind the image.", "default": true }, "collapsed": { "type": "boolean", "description": "Whether or not the image is collapsed by default.", "default": false }, "collapsible": { "type": "boolean", "description": "Whether or not the image can be collapsed.", "default": false }, "verticalAlign": { "type": "string", "description": "The vertical alignment of the image.", "enum": ["baseline", "sub", "super", "text-top", "text-bottom", "middle", "top", "bottom"] }, "sizeUnits": { "type": "string", "description": "The units for the width and height.", "enum": ["px", "em"] } } }, { "type": "object", "description": "Link tag.", "required": [ "tag", "href" ], "additionalProperties": false, "properties": { "tag": { "type": "string", "const": "a" }, "content": { "$ref": "#/definitions/structuredContent" }, "href": { "type": "string", "description": "The URL for the link. URLs starting with a ? are treated as internal links to other dictionary content.", "pattern": "^(?:https?:|\\?)[\\w\\W]*" }, "lang": { "type": "string", "description": "Defines the language of an element in the format defined by RFC 5646." } } } ] } ] }, "structuredContentData": { "type": "object", "description": "Generic data attributes that should be added to the element.", "additionalProperties": { "type": "string" } }, "structuredContentStyle": { "type": "object", "additionalProperties": false, "properties": { "fontStyle": { "type": "string", "enum": ["normal", "italic"], "default": "normal" }, "fontWeight": { "type": "string", "enum": ["normal", "bold"], "default": "normal" }, "fontSize": { "type": "string", "default": "medium" }, "color": { "type": "string" }, "backgroundColor": { "type": "string" }, "textDecorationLine": { "oneOf": [ { "type": "string", "enum": ["none", "underline", "overline", "line-through"], "default": "none" }, { "type": "array", "items": { "type": "string", "enum": ["underline", "overline", "line-through"], "default": "none" } } ] }, "textDecorationStyle": { "type": "string", "enum": ["solid", "double", "dotted", "dashed", "wavy"], "default": "solid" }, "textDecorationColor": { "type": "string" }, "borderColor": { "type": "string" }, "borderStyle": { "type": "string" }, "borderRadius": { "type": "string" }, "borderWidth": { "type": "string" }, "verticalAlign": { "type": "string", "enum": ["baseline", "sub", "super", "text-top", "text-bottom", "middle", "top", "bottom"], "default": "baseline" }, "textAlign": { "type": "string", "enum": ["start", "end", "left", "right", "center", "justify", "justify-all", "match-parent"], "default": "start" }, "textShadow": { "type": "string" }, "margin": { "type": "string" }, "marginTop": { "type": ["number", "string"], "default": 0 }, "marginLeft": { "type": ["number", "string"], "default": 0 }, "marginRight": { "type": ["number", "string"], "default": 0 }, "marginBottom": { "type": ["number", "string"], "default": 0 }, "padding": { "type": "string" }, "paddingTop": { "type": "string" }, "paddingLeft": { "type": "string" }, "paddingRight": { "type": "string" }, "paddingBottom": { "type": "string" }, "wordBreak": { "type": "string", "enum": ["normal", "break-all", "keep-all"], "default": "normal" }, "whiteSpace": { "type": "string", "default": "normal" }, "cursor": { "type": "string", "default": "auto" }, "listStyleType": { "type": "string", "default": "disc" } } } }, "type": "array", "description": "Data file containing term information.", "items": { "type": "array", "description": "Information about a single term.", "minItems": 8, "maxItems": 8, "additionalItems": false, "items": [ { "type": "string", "description": "The text for the term." }, { "type": "string", "description": "Reading of the term, or an empty string if the reading is the same as the term." }, { "type": ["string", "null"], "description": "String of space-separated tags for the definition. An empty string is treated as no tags." }, { "type": "string", "description": "String of space-separated rule identifiers for the definition which is used to validate deinflection. An empty string should be used for words which aren't inflected." }, { "type": "number", "description": "Score used to determine popularity. Negative values are more rare and positive values are more frequent. This score is also used to sort search results." }, { "type": "array", "description": "Array of definitions for the term.", "items": { "oneOf": [ { "type": "string", "description": "Single definition for the term." }, { "type": "object", "description": "Single detailed definition for the term.", "required": [ "type" ], "properties": { "type": { "type": "string", "description": "The type of the data for this definition.", "enum": ["text", "image", "structured-content"] } }, "oneOf": [ { "required": [ "type", "text" ], "additionalProperties": false, "properties": { "type": { "type": "string", "const": "text" }, "text": { "type": "string", "description": "Single definition for the term." } } }, { "required": [ "type", "content" ], "additionalProperties": false, "properties": { "type": { "type": "string", "const": "structured-content" }, "content": { "$ref": "#/definitions/structuredContent", "description": "Single definition for the term using a structured content object." } } }, { "required": [ "type", "path" ], "additionalProperties": false, "properties": { "type": { "type": "string", "const": "image" }, "path": { "type": "string", "description": "Path to the image file in the archive." }, "width": { "type": "integer", "description": "Preferred width of the image.", "minimum": 1 }, "height": { "type": "integer", "description": "Preferred width of the image.", "minimum": 1 }, "title": { "type": "string", "description": "Hover text for the image." }, "alt": { "type": "string", "description": "Alt text for the image." }, "description": { "type": "string", "description": "Description of the image." }, "pixelated": { "type": "boolean", "description": "Whether or not the image should appear pixelated at sizes larger than the image's native resolution.", "default": false }, "imageRendering": { "type": "string", "description": "Controls how the image is rendered. The value of this field supersedes the pixelated field.", "enum": ["auto", "pixelated", "crisp-edges"], "default": "auto" }, "appearance": { "type": "string", "description": "Controls the appearance of the image. The \"monochrome\" value will mask the opaque parts of the image using the current text color.", "enum": ["auto", "monochrome"], "default": "auto" }, "background": { "type": "boolean", "description": "Whether or not a background color is displayed behind the image.", "default": true }, "collapsed": { "type": "boolean", "description": "Whether or not the image is collapsed by default.", "default": false }, "collapsible": { "type": "boolean", "description": "Whether or not the image can be collapsed.", "default": true } } } ] }, { "type": "array", "description": "Deinflection of the term to an uninflected term.", "minItems": 2, "maxItems": 2, "items": [ { "type": "string", "description": "The uninflected term." }, { "type": "array", "description": "A chain of inflection rules that produced the inflected term", "items": { "type": "string", "description": "A single inflection rule." } } ] } ] } }, { "type": "integer", "description": "Sequence number for the term. Terms with the same sequence number can be shown together when the \"resultOutputMode\" option is set to \"merge\"." }, { "type": "string", "description": "String of space-separated tags for the term. An empty string is treated as no tags." } ] } }