Currently I see IAsyncOperation is still heavily dependent on the yield-waiting paradigm. The core of everything came from the coroutine runner system which utilize enumeration of a function and wait a frame or mutiple of frames on each return. This applies to IEnumerator Start() where there is an invisible hand enumerating the method. Addressables is a new package that is coming out just when we will get the latest Roslyn update for Unity. Isn't this a good opportunity for transition? Reading the source code seems like Unity is very committed to the old yield waiting pattern already, so I would like to ask if Unity is considering moving away from yielding to more C# natural async/await at some point? Addressables could be the package most benefit from C# async becuase of its asynchronous-only concept. A lot of changes will be required but I thought it might be better in the (very) long run. For example allowing declaration of `async Task Start()`. Also it will enable us to try catch + return value more reasonably where C# prevents us from using them with the enumeration. I have tried to hack yield wait to interface with async before, that is yield return null infinite loop until the Task is done, then from that point I can go async/await with full try catch + easy return value support. But it goes against too many of Unity's yield-wait tools it is not worth it and I reverted the hack. (Mainly the test runner API is kinda yield-wait, but what I am testing is the Firebase Unity SDK which utilized Task) If it is in async pattern from the start we might be able to program much leaner code together with all these async asset loading from Addressables transformed into a linear and easy to follow code.