public Builder mergeFrom(main.Messages.Message other) {
        if (other == main.Messages.Message.getDefaultInstance()) return this;
        if (other.hasMessageType()) {
          setMessageType(other.getMessageType());
        }
        if (other.hasMessageId()) {
          setMessageId(other.getMessageId());
        }
        if (other.hasExecutionStartingRequest()) {
          mergeExecutionStartingRequest(other.getExecutionStartingRequest());
        }
        if (other.hasSpecExecutionStartingRequest()) {
          mergeSpecExecutionStartingRequest(other.getSpecExecutionStartingRequest());
        }
        if (other.hasSpecExecutionEndingRequest()) {
          mergeSpecExecutionEndingRequest(other.getSpecExecutionEndingRequest());
        }
        if (other.hasScenarioExecutionStartingRequest()) {
          mergeScenarioExecutionStartingRequest(other.getScenarioExecutionStartingRequest());
        }
        if (other.hasScenarioExecutionEndingRequest()) {
          mergeScenarioExecutionEndingRequest(other.getScenarioExecutionEndingRequest());
        }
        if (other.hasExecuteStepRequest()) {
          mergeExecuteStepRequest(other.getExecuteStepRequest());
        }
        if (other.hasExecuteStepResponse()) {
          mergeExecuteStepResponse(other.getExecuteStepResponse());
        }
        if (other.hasExecutionEndingRequest()) {
          mergeExecutionEndingRequest(other.getExecutionEndingRequest());
        }
        if (other.hasStepValidateRequest()) {
          mergeStepValidateRequest(other.getStepValidateRequest());
        }
        if (other.hasStepValidateResponse()) {
          mergeStepValidateResponse(other.getStepValidateResponse());
        }
        if (other.hasExecutionStatusResponse()) {
          mergeExecutionStatusResponse(other.getExecutionStatusResponse());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }