Key design goal: Implement everything using functions and files (i.e., there is no need to change existing shells or existing user code).

As the result, a user can adopt gobash as needed without being forced to rewrite any of their code. Rather, a user can benefit by using some/all of gobash features, which can be introduced gradually. Additionally, gobash should work with any bash version and OS that runs bash.