{
  "type": "object",
  "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
  "options": {
    "propertyEncodings": {
      "foo": {
        "type": "array",
        "encoding": "FLOOR_TYPED_LENGTH_PREFIX",
        "options": {
          "minimum": 0,
          "encoding": {
            "type": "string",
            "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
            "options": {
              "minimum": 0
            }
          },
          "prefixEncodings": []
        }
      },
      "main": {
        "type": "object",
        "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
        "options": {
          "propertyEncodings": {
            "files": {
              "type": "object",
              "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
              "options": {
                "propertyEncodings": {},
                "requiredProperties": [],
                "booleanRequiredProperties": []
              }
            },
            "src": {
              "type": "array",
              "encoding": "FLOOR_TYPED_LENGTH_PREFIX",
              "options": {
                "minimum": 0,
                "encoding": {
                  "type": "string",
                  "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                  "options": {
                    "minimum": 0
                  }
                },
                "prefixEncodings": []
              }
            }
          },
          "requiredProperties": [
            "files",
            "src"
          ],
          "booleanRequiredProperties": []
        }
      },
      "options": {
        "type": "enum",
        "encoding": "BOUNDED_CHOICE_INDEX",
        "options": {
          "choices": [
            {
              "force": false,
              "no-write": false
            },
            {
              "force": false,
              "no-write": true
            },
            {
              "force": true,
              "no-write": false
            },
            {
              "force": true,
              "no-write": true
            }
          ]
        }
      }
    },
    "requiredProperties": [
      "foo",
      "main",
      "options"
    ],
    "booleanRequiredProperties": []
  }
}
