{
    "type": "object",
    "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
    "options": {
        "propertyEncodings": {
            "rules": {
                "type": "object",
                "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
                "options": {
                    "propertyEncodings": {
                        "scope-case": {
                            "type": "array",
                            "encoding": "BOUNDED_8BITS_TYPED_LENGTH_PREFIX",
                            "options": {
                                "minimum": 3,
                                "maximum": 3,
                                "prefixEncodings": [
                                    {
                                        "type": "integer",
                                        "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
                                        "options": {
                                            "minimum": 0,
                                            "multiplier": 1
                                        }
                                    },
                                    {
                                        "type": "enum",
                                        "encoding": "BOUNDED_CHOICE_INDEX",
                                        "options": {
                                            "choices": [
                                                "always",
                                                "never"
                                            ]
                                        }
                                    },
                                    {
                                        "type": "array",
                                        "encoding": "FLOOR_TYPED_LENGTH_PREFIX",
                                        "options": {
                                            "minimum": 0,
                                            "encoding": {
                                                "type": "string",
                                                "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                                                "options": {
                                                    "minimum": 0
                                                }
                                            },
                                            "prefixEncodings": []
                                        }
                                    }
                                ],
                                "encoding": {
                                    "type": "any",
                                    "encoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
                                    "options": {}
                                }
                            }
                        },
                        "subject-case": {
                            "type": "array",
                            "encoding": "BOUNDED_8BITS_TYPED_LENGTH_PREFIX",
                            "options": {
                                "minimum": 3,
                                "maximum": 3,
                                "prefixEncodings": [
                                    {
                                        "type": "integer",
                                        "encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
                                        "options": {
                                            "minimum": 0,
                                            "multiplier": 1
                                        }
                                    },
                                    {
                                        "type": "enum",
                                        "encoding": "BOUNDED_CHOICE_INDEX",
                                        "options": {
                                            "choices": [
                                                "always",
                                                "never"
                                            ]
                                        }
                                    },
                                    {
                                        "type": "array",
                                        "encoding": "FLOOR_TYPED_LENGTH_PREFIX",
                                        "options": {
                                            "minimum": 0,
                                            "encoding": {
                                                "type": "string",
                                                "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                                                "options": {
                                                    "minimum": 0
                                                }
                                            },
                                            "prefixEncodings": []
                                        }
                                    }
                                ],
                                "encoding": {
                                    "type": "any",
                                    "encoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX",
                                    "options": {}
                                }
                            }
                        }
                    },
                    "requiredProperties": [
                        "scope-case",
                        "subject-case"
                    ],
                    "booleanRequiredProperties": []
                }
            }
        },
        "requiredProperties": [
            "rules"
        ],
        "booleanRequiredProperties": []
    }
}
