{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "definitions": {
        "cheer": {
            "type": [
                "object",
                "null"
            ],
            "properties": {
                "channel": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "userstate": {
                    "type": "object",
                    "properties": {
                        "bits": {
                            "type": "number"
                        },
                        "display-name": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "bits",
                        "display-name"
                    ]
                }
            },
            "required": [
                "channel",
                "message",
                "userstate"
            ]
        }
    },
    "default": {
        "monthly": {
            "channel": "none",
            "message": "",
            "userstate": {
                "bits": 0,
                "display-name": "N/A"
            }
        },
        "daily": {
            "channel": "none",
            "message": "",
            "userstate": {
                "bits": 0,
                "display-name": "N/A"
            }
        }
    },
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "daily": {
            "type": "object",
            "properties": {
                "channel": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "userstate": {
                    "type": "object",
                    "properties": {
                        "bits": {
                            "type": "number"
                        },
                        "display-name": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "bits",
                        "display-name"
                    ]
                }
            },
            "required": [
                "channel",
                "message",
                "userstate"
            ]
        },
        "monthly": {
            "type": "object",
            "properties": {
                "channel": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "userstate": {
                    "type": "object",
                    "properties": {
                        "bits": {
                            "type": "number"
                        },
                        "display-name": {
                            "type": "string"
                        }
                    },
                    "required": [
                        "bits",
                        "display-name"
                    ]
                }
            },
            "required": [
                "channel",
                "message",
                "userstate"
            ]
        }
    },
    "required": [
        "daily",
        "monthly"
    ]
}