public LogicLooperCoroutineFrameAwaitable(LogicLooperCoroutine coroutine, int waitFrames)
 {
     _coroutine  = coroutine ?? throw new ArgumentNullException(nameof(coroutine));
     _waitFrames = (waitFrames > 0) ? waitFrames - 1 : throw new ArgumentOutOfRangeException(nameof(waitFrames));
 }
 private LogicLooperCoroutineAsyncValueTaskMethodBuilder(LogicLooperCoroutine coroutine)
 {
     _coroutine = coroutine ?? throw new ArgumentNullException(nameof(coroutine));
 }