public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasMessageType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasMessageId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasExecutionStartingRequest()) {
        if (!getExecutionStartingRequest().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasSpecExecutionStartingRequest()) {
        if (!getSpecExecutionStartingRequest().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasSpecExecutionEndingRequest()) {
        if (!getSpecExecutionEndingRequest().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasExecuteStepRequest()) {
        if (!getExecuteStepRequest().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasExecuteStepResponse()) {
        if (!getExecuteStepResponse().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStepValidateRequest()) {
        if (!getStepValidateRequest().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasStepValidateResponse()) {
        if (!getStepValidateResponse().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasExecutionStatusResponse()) {
        if (!getExecutionStatusResponse().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }