{
    "$schema": "http://json-schema.org/draft-07/schema",
    "$id": "https://schemas.acrobits.net/core/requests/translation.json",
    "oneOf": [
        {
            "title": "Translation ID",
            "description": "Refers to a single-singular string with no parameters.",
            "$ref": "https://schemas.acrobits.net/core/ids/translation.json"
        },
        {
            "title": "Translation ID with parameters",
            "description": "Refers to a string with parameters.",
            "type": "object",
            "properties": {
                "key": {
                    "$ref": "https://schemas.acrobits.net/core/ids/translation.json"
                },
                "count": {
                    "type": "integer"
                },
                "args": {
                    "$ref": "#/$defs/args"
                }
            },
            "required": [
                "key"
            ],
            "additionalProperties": false
        },
        {
            "title": "Raw string",
            "description": "Defined a raw literal that will not be translated, but does support parameters.",
            "type": "object",
            "properties": {
                "raw": {
                    "type": "string"
                },
                "args": {
                    "$ref": "#/$defs/args"
                }
            },
            "required": [
                "raw"
            ],
            "additionalProperties": false
        }
    ],
    "$defs": {
        "args": {
            "title": "Arguments",
            "description": "Array of arguments that can be strings, numbers, or booleans.",
            "type": "array",
            "items": {
                "oneOf": [
                    {
                        "type": "string"
                    },
                    {
                        "type": "number"
                    },
                    {
                        "type": "boolean"
                    }
                ]
            }
        }
    }
}