urrgh. this was rather tough to get right. Main problem is avoiding switch-on-type.
While I don't want to target this complex now, I designed some of the fundamental aspects as far as needed to be able to add Objects to the EDL and build a render graph from them.