{
  "type": "object",
  "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
  "options": {
    "propertyEncodings": {
      "name": {
        "type": "string",
        "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
        "options": {
          "minimum": 0
        }
      },
      "on": {
        "type": "array",
        "encoding": "FLOOR_TYPED_LENGTH_PREFIX",
        "options": {
          "minimum": 0,
          "encoding": {
            "type": "string",
            "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
            "options": {
              "minimum": 0
            }
          },
          "prefixEncodings": []
        }
      },
      "jobs": {
        "type": "object",
        "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
        "options": {
          "propertyEncodings": {
            "build": {
              "type": "object",
              "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
              "options": {
                "propertyEncodings": {
                  "runs-on": {
                    "type": "string",
                    "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                    "options": {
                      "minimum": 0
                    }
                  },
                  "env": {
                    "type": "object",
                    "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
                    "options": {
                      "propertyEncodings": {
                        "build-suite-dir": {
                          "type": "string",
                          "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                          "options": {
                            "minimum": 0
                          }
                        }
                      },
                      "requiredProperties": [
                        "build-suite-dir"
                      ],
                      "booleanRequiredProperties": []
                    }
                  },
                  "steps": {
                    "type": "array",
                    "encoding": "FLOOR_TYPED_LENGTH_PREFIX",
                    "options": {
                      "minimum": 0,
                      "encoding": {
                        "type": "oneOf",
                        "encoding": "ONEOF_CHOICE_INDEX_PREFIX",
                        "options": {
                          "choices": [
                            {
                              "schema": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "uses"
                                ],
                                "properties": {
                                  "uses": {
                                    "type": "string",
                                    "minLength": 0
                                  }
                                },
                                "minProperties": 1
                              },
                              "encoding": {
                                "type": "object",
                                "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
                                "options": {
                                  "propertyEncodings": {
                                    "uses": {
                                      "type": "string",
                                      "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                                      "options": {
                                        "minimum": 0
                                      }
                                    }
                                  },
                                  "requiredProperties": [
                                    "uses"
                                  ],
                                  "booleanRequiredProperties": []
                                }
                              }
                            },
                            {
                              "schema": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "uses",
                                  "with"
                                ],
                                "properties": {
                                  "uses": {
                                    "type": "string",
                                    "minLength": 0
                                  },
                                  "with": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "required": [
                                      "node-version"
                                    ],
                                    "properties": {
                                      "node-version": {
                                        "type": "string",
                                        "minLength": 0
                                      }
                                    },
                                    "minProperties": 1
                                  }
                                },
                                "minProperties": 2
                              },
                              "encoding": {
                                "type": "object",
                                "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
                                "options": {
                                  "propertyEncodings": {
                                    "uses": {
                                      "type": "string",
                                      "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                                      "options": {
                                        "minimum": 0
                                      }
                                    },
                                    "with": {
                                      "type": "object",
                                      "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
                                      "options": {
                                        "propertyEncodings": {
                                          "node-version": {
                                            "type": "string",
                                            "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                                            "options": {
                                              "minimum": 0
                                            }
                                          }
                                        },
                                        "requiredProperties": [
                                          "node-version"
                                        ],
                                        "booleanRequiredProperties": []
                                      }
                                    }
                                  },
                                  "requiredProperties": [
                                    "uses",
                                    "with"
                                  ],
                                  "booleanRequiredProperties": []
                                }
                              }
                            },
                            {
                              "schema": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "name",
                                  "run"
                                ],
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 0
                                  },
                                  "run": {
                                    "type": "string",
                                    "minLength": 0
                                  }
                                },
                                "minProperties": 2
                              },
                              "encoding": {
                                "type": "object",
                                "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
                                "options": {
                                  "propertyEncodings": {
                                    "name": {
                                      "type": "string",
                                      "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                                      "options": {
                                        "minimum": 0
                                      }
                                    },
                                    "run": {
                                      "type": "string",
                                      "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                                      "options": {
                                        "minimum": 0
                                      }
                                    }
                                  },
                                  "requiredProperties": [
                                    "name",
                                    "run"
                                  ],
                                  "booleanRequiredProperties": []
                                }
                              }
                            },
                            {
                              "schema": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                  "name",
                                  "run",
                                  "working-directory"
                                ],
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "minLength": 0
                                  },
                                  "run": {
                                    "type": "string",
                                    "minLength": 0
                                  },
                                  "working-directory": {
                                    "type": "string",
                                    "minLength": 0
                                  }
                                },
                                "minProperties": 3
                              },
                              "encoding": {
                                "type": "object",
                                "encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
                                "options": {
                                  "propertyEncodings": {
                                    "name": {
                                      "type": "string",
                                      "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                                      "options": {
                                        "minimum": 0
                                      }
                                    },
                                    "run": {
                                      "type": "string",
                                      "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                                      "options": {
                                        "minimum": 0
                                      }
                                    },
                                    "working-directory": {
                                      "type": "string",
                                      "encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
                                      "options": {
                                        "minimum": 0
                                      }
                                    }
                                  },
                                  "requiredProperties": [
                                    "name",
                                    "run",
                                    "working-directory"
                                  ],
                                  "booleanRequiredProperties": []
                                }
                              }
                            }
                          ]
                        }
                      },
                      "prefixEncodings": []
                    }
                  }
                },
                "requiredProperties": [
                  "env",
                  "runs-on",
                  "steps"
                ],
                "booleanRequiredProperties": []
              }
            }
          },
          "requiredProperties": [
            "build"
          ],
          "booleanRequiredProperties": []
        }
      }
    },
    "requiredProperties": [
      "jobs",
      "name",
      "on"
    ],
    "booleanRequiredProperties": []
  }
}
