{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "minProperties": 1,
    "patternProperties": {
        "^[a-zA-Z][a-zA-Z0-9_]*$": {
            "type": "array",
            "items": {
                "type": "object",
                "required": [
                    "contexts",
                    "attention_levels"
                ],
                "minProperties": 2,
                "maxProperties": 2,
                "properties": {
                    "contexts": {
                        "type": "object",
                        "minProperties": 1,
                        "patternProperties": {
                            "^[a-zA-Z][a-zA-Z0-9_]*$": {
                                "oneOf": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "integer"
                                    }
                                ]
                            }
                        }
                    },
                    "attention_levels": {
                        "type": "object",
                        "minProperties": 1,
                        "patternProperties": {
                            "^[a-zA-Z][a-zA-Z0-9_]*$": {
                                "type": "object",
                                "minProperties": 1,
                                "patternProperties": {
                                    "^[a-zA-Z][a-zA-Z0-9_]*$": {
                                        "type": "array",
                                        "minItems": 1,
                                        "_uniqueItems": true,
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}