dashes in the names of data definitions breaks things
If you have task with an integer data definition called "test-one" and a waitCondition of "test-one>20" then validate() will return two errors:
[
{
type: 'Error',
attribute: 'waitCondition',
path: 'task',
msg: 'Unknown component/predicate: test'
},
{
type: 'Error',
attribute: 'waitCondition',
path: 'task',
msg: 'Unknown component/predicate: one'
}
]