{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "array",
    "description": "Data file containing term and expression information.",
    "additionalItems": {
        "type": "array",
        "description": "Information about a single term/expression.",
        "minItems": 8,
        "items": [
            {
                "type": "string",
                "description": "Term or expression."
            },
            {
                "type": "string",
                "description": "Reading of the term/expression, or an empty string if the reading is the same as the term/expression."
            },
            {
                "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 delinflection. Valid rule identifiers are: v1: ichidan verb; v5: godan verb; vs: suru verb; vk: kuru verb; adj-i: i-adjective. An empty string corresponds to words which aren't inflected, such as nouns."
            },
            {
                "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/expression.",
                "items": {
                    "oneOf": [
                        {
                            "type": "string",
                            "description": "Single definition for the term/expression."
                        },
                        {
                            "type": "object",
                            "description": "Single detailed definition for the term/expression.",
                            "required": [
                                "type"
                            ],
                            "properties": {
                                "type": {
                                    "type": "string",
                                    "description": "The type of the data for this definition.",
                                    "enum": ["text", "image"]
                                }
                            },
                            "oneOf": [
                                {
                                    "required": [
                                        "type",
                                        "text"
                                    ],
                                    "additionalProperties": false,
                                    "properties": {
                                        "type": {
                                            "type": "string",
                                            "enum": ["text"]
                                        },
                                        "text": {
                                            "type": "string",
                                            "description": "Single definition for the term/expression."
                                        }
                                    }
                                },
                                {
                                    "required": [
                                        "type",
                                        "path"
                                    ],
                                    "additionalProperties": false,
                                    "properties": {
                                        "type": {
                                            "type": "string",
                                            "enum": ["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."
                                        },
                                        "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
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                }
            },
            {
                "type": "integer",
                "description": "Sequence number for the term/expression. Terms/expressions 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/expression. An empty string is treated as no tags."
            }
        ]
    }
}