This implementation does not handle convoys nor account for circular movement and convoy paradoxes.
For now, just the parts that can be decided with validation are run. The tests and parts of tests requiring movement adjudication will be implemented fully when movement adjudication is implemented.