define move types more like the other enumish things
assert assumption
treat captures properly and promotions at all in algebraic notation