More descriptive API types
Bugs such as #436 (closed) can happen because the iTasks API does not always use the most descriptive types.
A set of identifiers was represented as
[Int] which is easily mistaken for a set of indices and even can make it seem that the ordering of the selection has meaning (e.g. what was selected first) when it hasn't.
If choice tasks and the
choiceComponent editor would use
Set ChoiceID where
ChoiceID is a newtype than it is clear that ordering has no meaning, and that the
ChoiceID values are not numbers that can be used as index.
The entire interaction API should be checked to see if more of these potentially dangerous types are used that can be easily replaced by more descriptive and restrictive types.