The current way of having a dedicated engine for the QML logic causes quite a bit of extra code, enum duplication and forces us to keep the API design of the two engines in sync. Also some if the QuickEngine's signals do not contain as much information as the ones from the code engine.
Because of that we sometimes have to call engine.engine to get the core engine, which is quite confusing API.
This involves:
- Unifying/standardizing API that is different from the engine
- Moving copied enums to classes where they originally belong
- Moving the properties from the QuickEngine to KNSCore::Engine
The QuickEngine is only loaded as a plugin, consequently we only have to worry about source-code compat.