"Taking the bastion if an army moves there and there's no defending army": This would be hard to implement since when you call "move", you are not yet on the location. Thus, implementing that means you could take a location if there is no defending order just because you called move before someone else, not because you arrive before.
In this case I think the current flow works well: when an army arrives at a location and there is not defender it can call "take_location" and become the new defending order.
resolves issue https://github.com/BibliothecaDAO/realms-contracts/issues/304
Missing