The browser comes in to play by defining in the test project definition and is reflected in GrapheneConfiguration.
But it also can be used to influence the test logic (decide what to do based on current browser).
Each Browser consists of it's BrowserMode (as execution mode of the given browser) and optional executable File.
Each BrowserMode also has to bind to one BrowserType, which actually represents the brand of given browser.
Note: To keep the things simple, you can still define the browser by it's string representation defined in Selenium API, this representation will be parsed to their object structure