open class GameplayCallbacks<T : Any> {
open fun startState(setStateCallback: (GameSituationState) -> Unit) {/* empty by default */}
open fun startedState(playerCount: Int, config: Any, state: GameSituationState) {/* empty by default */}
open fun onPreMove(actionIndex: Int, action: Actionable<T, Any>, setStateCallback: (GameSituationState) -> Unit) {/* empty by default */}
open fun onMove(actionIndex: Int, action: Actionable<T, Any>, actionReplay: ActionReplay) {/* empty by default */}