public main.Messages.Message buildPartial() {
        main.Messages.Message result = new main.Messages.Message(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.messageType_ = messageType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.messageId_ = messageId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (executionStartingRequestBuilder_ == null) {
          result.executionStartingRequest_ = executionStartingRequest_;
        } else {
          result.executionStartingRequest_ = executionStartingRequestBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (specExecutionStartingRequestBuilder_ == null) {
          result.specExecutionStartingRequest_ = specExecutionStartingRequest_;
        } else {
          result.specExecutionStartingRequest_ = specExecutionStartingRequestBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (specExecutionEndingRequestBuilder_ == null) {
          result.specExecutionEndingRequest_ = specExecutionEndingRequest_;
        } else {
          result.specExecutionEndingRequest_ = specExecutionEndingRequestBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (scenarioExecutionStartingRequestBuilder_ == null) {
          result.scenarioExecutionStartingRequest_ = scenarioExecutionStartingRequest_;
        } else {
          result.scenarioExecutionStartingRequest_ = scenarioExecutionStartingRequestBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (scenarioExecutionEndingRequestBuilder_ == null) {
          result.scenarioExecutionEndingRequest_ = scenarioExecutionEndingRequest_;
        } else {
          result.scenarioExecutionEndingRequest_ = scenarioExecutionEndingRequestBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (executeStepRequestBuilder_ == null) {
          result.executeStepRequest_ = executeStepRequest_;
        } else {
          result.executeStepRequest_ = executeStepRequestBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (executeStepResponseBuilder_ == null) {
          result.executeStepResponse_ = executeStepResponse_;
        } else {
          result.executeStepResponse_ = executeStepResponseBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        if (executionEndingRequestBuilder_ == null) {
          result.executionEndingRequest_ = executionEndingRequest_;
        } else {
          result.executionEndingRequest_ = executionEndingRequestBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        if (stepValidateRequestBuilder_ == null) {
          result.stepValidateRequest_ = stepValidateRequest_;
        } else {
          result.stepValidateRequest_ = stepValidateRequestBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        if (stepValidateResponseBuilder_ == null) {
          result.stepValidateResponse_ = stepValidateResponse_;
        } else {
          result.stepValidateResponse_ = stepValidateResponseBuilder_.build();
        }
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        if (executionStatusResponseBuilder_ == null) {
          result.executionStatusResponse_ = executionStatusResponse_;
        } else {
          result.executionStatusResponse_ = executionStatusResponseBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }