You can have as many files as you please or as few as your app needs allow.
- There is no need to do subfolders and that's likely counterproductive.
- You need one XML file per each custom component - that is necessary when modifying built-in behavior, e.g. to define `onKeyEvent()` handler for it or observer event handlers. Currently there is no way to create custom component w/o XML file - though minor things like adding or observing fields can be done from "outside" (another component/thread), using a "stock" component (no need to create custom)
- You don't need one BRS file per custom component, though that often is practical. Instead you could ostensibly include the brs code inside the xml. .brs files don't have to reside in the same folder, since you have to provide explicit URI anyway. And you can use more than one .brs per component (e.g. the same file included in multiple places like a library; but don't get carried away).