@adam How much flexibility will be allowed in the declarative DSL? Although the JVM sample is more complex than the typical JVM project (using targets), it’s still just a single dimension. Things becomes complicated very fast when adding more dimensions. The first issue that a real project hits is wanting to configure variant unevenly across dimensions, ex: x64 but not Windows (assuming Linux/macOS/Windows). Or configure using attributes of the dimension: any CPU with pointer size of 64-bit. For this, some kind of conditional/boolean logic will have to be executed.