Joe
class PhaseDefinition<T: GamePhaseBase<C: GameContextBase>>(val init: PhaseDefinition<T>.() -> Unit) {...}