namespace ScriptableObjectArchitecture { public interface IGameEvent { void Raise(T value); void AddListener(IGameEventListener listener); void RemoveListener(IGameEventListener listener); void RemoveAll(); } public interface IGameEvent { void Raise(); void AddListener(IGameEventListener listener); void RemoveListener(IGameEventListener listener); void RemoveAll(); } }