anchor.diff:  include::sample[dir="java-feature-variant/requiring-features/kotlin/consumer",files="build.gradle.kts[tags=consumer]"]
   ====
   
  -This will automatically bring the `mysql-connector-java` dependency on runtime classpath.
  +This will automatically bring the `mysql-connector-java` dependency on the runtime classpath.
   If there were more than one dependencies, all of them would be brought, meaning that a feature can be used to group dependencies which contribute to a feature together.
   
   Similarly, if the experimental Gradle metadata feature is enabled, it is possible to depend on an external dependency providing feature variants:
  
positive.code: include::sample[dir="java-feature-variant/incompatible-variants/kotlin/producer",files="build.gradle.kts[tags=producer]"]
  ====
  
  Where, the producer declares 3 variants, one for each database runtime support:
  
  - `mysql-support` provides both the `db-support` and `mysql-support` capabilities
  - `postgres-support` provides both the `db-support` and `postgres-support` capabilities
  
negative.code: - "I provide runtime support for MySQL"
  - "I provide a Groovy runtime"
  
  And in general, having two components that provide the _same thing_ in the graph is a problem (they conflict).
  ====
  
  This is an important concept because:
  