Could you elaborate on the differences to HCL? It looks almost the same on first glance. Maybe minus functions and and nested blocks in HCL.
So the main differences are the ecosystem: a CLI to auto format - think go fmt) and validate SAN files, parsers for languages others than Go
Bazel have too it's own (turing complete ?) Programming configuration language
I'm a little bummed I was beat to it. I was going back and forth on allowing defining functions. Definitely no classes.