docs: protected boolean isAbleToTerminate(CmmnActivityExecution execution) {
      List<? extends CmmnExecution> children = execution.getCaseExecutions();
  
      if (children != null && !children.isEmpty()) {
  
        for (CmmnExecution child : children) {
          // the guard "!child.isCompleted()" is needed,
          // when an exitCriteria is triggered on a stage, and
          // the referenced sentry contains an onPart to a child
          // case execution which has defined as standardEvent "complete".
          // In that case the completed child case execution is still
          // in the list of child case execution of the parent case execution.
          if (!child.isTerminated() && !child.isCompleted()) {
            return false;
          }
        }
      }
  
      return true;
    }