fleshed out some player API, move validation, and tests, but validation is wrong and I need a Move class/transaction/API/thingy