docs: protected ActivityImpl parseDmnBusinessRuleTask(Element businessRuleTaskElement, ScopeImpl scope) {
      ActivityImpl activity = createActivityOnScope(businessRuleTaskElement, scope);
      // the activity is a scope since the result variable is stored as local variable
      activity.setScope(true);
  
      parseAsynchronousContinuationForActivity(businessRuleTaskElement, activity);
  
      String decisionRef = businessRuleTaskElement.attributeNS(CAMUNDA_BPMN_EXTENSIONS_NS, "decisionRef");
  
      BaseCallableElement callableElement = new BaseCallableElement();
      callableElement.setDeploymentId(deployment.getId());
  
      ParameterValueProvider definitionKeyProvider = createParameterValueProvider(decisionRef, expressionManager);
      callableElement.setDefinitionKeyValueProvider(definitionKeyProvider);
  
      parseBinding(businessRuleTaskElement, activity, callableElement, "decisionRefBinding");
      parseVersion(businessRuleTaskElement, activity, callableElement, "decisionRefBinding", "decisionRefVersion");
      parseVersionTag(businessRuleTaskElement, activity, callableElement, "decisionRefBinding", "decisionRefVersionTag");
      parseTenantId(businessRuleTaskElement, activity, callableElement, "decisionRefTenantId");
  
      String resultVariable = parseResultVariable(businessRuleTaskElement);
      DecisionResultMapper decisionResultMapper = parseDecisionResultMapper(businessRuleTaskElement);
  
      DmnBusinessRuleTaskActivityBehavior behavior = new DmnBusinessRuleTaskActivityBehavior(callableElement, resultVariable, decisionResultMapper);
      activity.setActivityBehavior(behavior);
  
      parseExecutionListenersOnScope(businessRuleTaskElement, activity);
  
      for (BpmnParseListener parseListener : parseListeners) {
        parseListener.parseBusinessRuleTask(businessRuleTaskElement, scope, activity);
      }
  
      return activity;
    }