Depends on how robust we want to be. An invalid state stored in the database (somehow) may still want to be validated here. The ```dataSubset``` is probably fine since it calls ```getDataSubset```, but maybe we want some checking on ```conditions```? I think the ```forEach``` could fail if it's not an array, other than that ```Condition``` should do the rest of the validation.