What you explain is pretty much exactly seed.
I’ve actually thought about this some as at times I really want a very simple way to go from a declarative build definition to Bloop files. Ironically in Metals we have something called QuickBuild that we use for testing that sort of does this. That’s what originally made me interested in exploring this. As coursier continues to expand, gain more functionality and become even more of a main stream tool for Scala developers, I can see how this comes into mind.
With that being said, even after playing around with this myself, I always come back to the same thing: For simple projects, especially for newcomers, sbt is actually pretty simple. From my experience most of the time when you hit on crazy stuff in sbt it’s because you’re doing crazy things. Not always, but more often than not. I think sbt is a good example of “make easy things easy and hard things possible”.
but I have to say sbt doesn’t meet my expectation in many ways.
I’d be curious to know in what ways sbt doesn’t meet your needs that you think a TOML file would be able to meet?