We want our case to hold just the transactional data it needs to process a case. Moreover, even to read from decision table or dss, we would need "source" or some kind of "input", which is nothing but a parameter.
E.g. if passing parameter is possible, we could configure case type to pass parameter for each step as below
StartTask [parameter: task1]
StartTask [parameter: task2]
Internally, StartTask when rule can look at decision table or even a data page to decide whether task1 or task2 should be started.