casesOfModes method
The cases of the apps with every module for the other values of the
mode options (see RoleOption.mode): each case of casesOfAll once
more for every combination of the values of the mode options of the
roles of its app, but the combination of the first value of each,
which is the app of casesOfAll itself.
Each has the values of its combination other than the first of their
options among its ContractCase.roleOptions and after its name, such
as every module (riverpod) --clock-hours=12; an option with its
first value is left out, as in casesOfAll. An option of a role that
the app lacks has no cases, nor has one that roleOptions give a
value.
Implementation
List<ContractCase> casesOfModes() => [
for (final contractCase in casesOfAll())
for (final modes in _modeCombinations(
_openModesOf(_rolesOf(contractCase)),
).skip(1))
_withModes(contractCase, modes),
];