Currently, global variables make it difficult to reason about and track settings, especially when using multiple Settings instances during testing. Each Settings instance should have its own unique project variable and settings struct, which is already possible.
To simplify the package and encourage users to instantiate Settings via the constructor instead of using load_settings(...), I propose removing support for load_settings(...) and eliminating global state. This will lead to clearer, more maintainable code and better testing practices.