The answer, as with everything in software development, is that it depends.
A god method with 100 optional params that is usually bad practice. But a common pattern is to allow for an options object to be passed, and that object may contain 0-n supported parameters. This pattern is used everywhere, see graphql as a widely used library that is based on this.
One click install that provides regional VPN, multi-index torrent searching, scheduling, auto downloading based on simple criteria, and then file and metadata management.
I do all this now with various apps, but a single package that does everything that I could install on a new machine and start downloading immediately.
This is my dream app.
Simple answer, unit tests.