validation & file tests

#362 #359
validate timeline rows

and a test for it. closes #361, updates #362