As we know the UnityEngine API can be executed only on the main thread. The IJobExtensions.Run() perform the job's Execute() method immediately on the same thread, so if we invoke Time.deltaTime for example within a burstified job using the OnCreate, OnUpdate, or OnDestroy in JobComponentSystem it's being executed on the main thread, but we still get: UnityException: get_deltaTime can only be called from the main thread. Therefore, we can't benefit from LLVM-compiled code by Burst which supports native methods that are UnityEngine API essentially is. So my question is, this is the Unity runtime checking a thread ID or a call-stack incorrectly or this is an intended restriction? It prevents me from using the Burst possibilities to build a native framework for Unity, reduce interoperability overhead, and keep stuff away from Mono.