protected virtual void OnGenerationEnded(EventArgs e) => GenerationEnded?.Invoke(this, e);
protected void OnGenerationEnded(EventArgs e) { GenerationEnded?.Invoke(this, e); }