Re-runs the structural invariants of an anievent object on demand:
required columns (
channel,type,label,start,stop) are present with the expected types — hard errors;typeis a factor with levelsc("state", "point")— hard error;stop >= startfor every row — hard error;modifiers, if present, is a list-column whose cells are character vectors — hard error;within each
(identity + temporal-grouping)group, two bouts of the samechannelshould not overlap — warning only. Overlapping bouts within a channel are permitted on theanieventside; this is the form the data takes from coding tools that allow non-mutually-exclusive coding (e.g. BORIS without strict ethogram).