Wow!
Thank you all very much for such an interesting discussion of this topic, because it helps beginners like me choose the right path or at least identify the main ones.

I will say right away that writing an engine, and then building UI on its basis is definitely not my path, because I want to separate UI from the engine and start with UI.
It is also important for me that UI looks the same on all three platforms. As I understand it, the BGRA library can help me with this, although there are also a couple of controllers that are missing, which means I will need to learn how to write my own controllers based on this library or assemble them like a constructor from existing ones.
As for the engine part of the program, it would be visible only in special viewports such as the scene view and camera view.
Well, as I understand it, the engine itself will be based on OpenGL and I will only need to decide whether to take one of the ready-made ones or write it from scratch.
I like the first way more because writing an engine from scratch is difficult and time-consuming, and there is probably no point in reinventing the wheel.

In any case, the engine is still a long way off
