code: public Response apply(Response response) {
          if (when instanceof ConditionWithApplicables) {
              for (Applicable applicable : ((ConditionWithApplicables) when).getApplicables()) {
                  response = applicable.apply(response);
              }
          }
  
          Applicable chosenAction;
  
          if (actionSequence.isEmpty()) {
              chosenAction = action;
          } else if (actionSequence.size() > appliedTimes) {
              chosenAction = composite(action, actionSequence.get(appliedTimes));
          } else if(exceededAction != null) {
              chosenAction = exceededAction;
          } else {
              chosenAction = action;
          }
  
          response = chosenAction.apply(response);
          appliedTimes++;
          return response;
      }
docs: Executes all actions against the response.