I store .svg files in games/svg/. They can’t be added to the actual collection, so I bundle them separately when building the project. I’ve added them to bundle_resources/web/game/svg/ and they’re copied into this folder on export to HTML5.
No, sys.load_resources() is for resources bundled using the Custom Resources field in game.project. Resources put in Custom Resources will be included in the game archive (ie not as individual files on disk), and you read them using sys.load_resource().
io.open() and io.read() should be used when loading from filesystem. The root directory would be the location of the exe and you work from there. If you want files to be copied into your application bundle (ie inside the apk, ipa, app or the target folder when bundling for windows, linux and html5) you use Bundle Resources and the folder structure mentioned in the documentation.
Do note that the Bundle Resources will only be copied when you Bundle the application. When you do Project->Build the files will not be copied.
It is also a bit annoying that in the game.project I specify assets/definitions as a custom resource but I need to load it like sys.load_resource("/assets/definitions/file.json")
In the project it shouldn’t start with a slash but when loading the file it have to.