+std::vector<SubgameSpec> getAvailableGames();
+
+bool getWorldExists(const std::string &world_path);
+std::string getWorldGameId(const std::string &world_path,
+ bool can_be_legacy=false);
+
+struct WorldSpec
+{
+ std::string path;
+ std::string name;
+ std::string gameid;
+
+ WorldSpec(
+ const std::string &path_="",
+ const std::string &name_="",
+ const std::string &gameid_=""
+ ):
+ path(path_),
+ name(name_),
+ gameid(gameid_)
+ {}
+
+ bool isValid() const
+ {
+ return (name != "" && path != "" && gameid != "");
+ }
+};
+
+std::vector<WorldSpec> getAvailableWorlds();