docs: public ActivityImpl parseSendTask(Element sendTaskElement, ScopeImpl scope) {
      if (isServiceTaskLike(sendTaskElement)) {
        // CAM-942: If expression or class is set on a SendTask it behaves like a service task
        // to allow implementing the send handling yourself
        return parseServiceTaskLike("sendTask", sendTaskElement, scope);
      } else {
        ActivityImpl activity = createActivityOnScope(sendTaskElement, scope);
  
        parseAsynchronousContinuationForActivity(sendTaskElement, activity);
        parseExecutionListenersOnScope(sendTaskElement, activity);
  
        for (BpmnParseListener parseListener : parseListeners) {
          parseListener.parseSendTask(sendTaskElement, scope, activity);
        }
  
        // activity behavior could be set by a listener; thus, check is after listener invocation
        if (activity.getActivityBehavior() == null) {
          addError("One of the attributes 'class', 'delegateExpression', 'type', or 'expression' is mandatory on sendTask.", sendTaskElement);
        }
  
        return activity;
      }
    }