have you thought of letting the "app" create a new world and then searching your system for that? Like creating a new world called "I_am_here" and then searching for a folder of that name as the world folder may get created only if it is needed. This need not be within the same folder structure the executable resides in but could be a shared folder or whatever your system considers useful. Maybe this
table made from information found in the
CMakeLists.txt on github.
If you only use the "app" to connect to online servers and never host an own world, all you run is the client part. Only the server part creates a "worlds" folder when it is needed.