content: # this project is licensed under LGPLv3.
  # DO NOT ADD any dependency which isn't compatible with LGPLv3, such as:
  #  - GPLv2, GPLv2+
  #  - GPLv3, GPLv3+
  #  - EPL 1.0
  #
  # The following licenses were checked for compatibility for use as libraries:
  #  - Apache 2.0
  #  - MIT
  #  - BSD licenses
  #  - EPL2.0 (see https://www.eclipse.org/legal/epl-2.0/faq.php#h.hsnsfg4e0htq)
  #  - LGPLv2, LGPLv2+, LGPLv3
  #  - GPLv2 with classpath exception
  #  - CC Attribution
  
  [versions]
  kotlin = '2.2.20'
  ksp = '2.2.20-2.0.3'
  kotlinx-coroutines = '1.10.+'
  logback = '1.5.+'
  moshi = '1.15.2'
  junit = '5.12.+'
  mockito = '5.2.+'
  otel = '1.54.1'
  
  [libraries]
  # kotlin stuff
  kotlin-stdlib = { module = 'org.jetbrains.kotlin:kotlin-stdlib', version.ref = 'kotlin' } # Apache 2.0
  kotlin-logging = { module = 'io.github.microutils:kotlin-logging', version = '3.0.5' } # Apache 2.0
  kotlin-reflect = { module = 'org.jetbrains.kotlin:kotlin-reflect', version.ref = 'kotlin' } # Apache 2.0
  kotlin-test = { module = 'org.jetbrains.kotlin:kotlin-test', version.ref = 'kotlin' } # Apache 2.0
  kotlinx-coroutines-core = { module = 'org.jetbrains.kotlinx:kotlinx-coroutines-core', version.ref = 'kotlinx-coroutines' } # Apache 2.0
  kotlinx-coroutines-test = { module = 'org.jetbrains.kotlinx:kotlinx-coroutines-test', version.ref = 'kotlinx-coroutines' } # Apache 2.0
  kotlinx-serialization-cbor = { module = 'org.jetbrains.kotlinx:kotlinx-serialization-cbor', version = '1.9.+' } # Apache 2.0
  kotlinx-serialization-core = { module = 'org.jetbrains.kotlinx:kotlinx-serialization-core', version = '1.9.+' } # Apache 2.0
  ksp-symbol-processing-api = { module = 'com.google.devtools.ksp:symbol-processing-api', version.ref = 'ksp' } # Apache 2.0
  
  # common
  logback-core = { module = 'ch.qos.logback:logback-core', version.ref = 'logback' } # EPL 1.0 (incompatible) and LGPL 2.1 (compatible)
  logback-classic = { module = 'ch.qos.logback:logback-classic', version.ref = 'logback' } # EPL 1.0 (incompatible) and LGPL 2.1 (compatible)
  
  # java stuff
  guava = { module = 'com.google.guava:guava', version = '33.4.0-jre' } # Apache 2.0
  jcommander = { module = 'com.beust:jcommander', version = '1.82' } # Apache 2.0
  hppc = { module = 'com.carrotsearch:hppc', version = '0.10.0' } # Apache 2.0
  moshi = { module = 'com.squareup.moshi:moshi', version.ref = 'moshi' } # Apache 2.0
  moshi-adapters = { module = 'com.squareup.moshi:moshi-adapters', version.ref = 'moshi' } # Apache 2.0
  moshi-kotlin = { module = 'com.squareup.moshi:moshi-kotlin', version.ref = 'moshi' } # Apache 2.0
  takes = { module = 'org.takes:takes', version = '1.24.4' } # MIT
  javax-json-api = { module = 'javax.json:javax.json-api', version = '1.1.4' } # GPLv2 with classpath exemption
  okhttp = { module = 'com.squareup.okhttp3:okhttp', version = '5.1.0' } # Apache 2.0
  classgraph = { module = 'io.github.classgraph:classgraph', version = '4.8.+' } # MIT
  jmathplot = { module = 'com.github.yannrichet:JMathPlot', version = '1.0.1' } # BSD
  slf4j = { module = 'org.slf4j:slf4j-api', version = '2.0.+' } # MIT
  junit-jupiter-api = { module = 'org.junit.jupiter:junit-jupiter-api', version.ref = 'junit' } # EPL 2.0
  junit-jupiter-params = { module = 'org.junit.jupiter:junit-jupiter-params', version.ref = 'junit' } # EPL 2.0
  junit-jupiter-engine = { module = 'org.junit.jupiter:junit-jupiter-engine', version.ref = 'junit' } # EPL 2.0
  assertj = { module = 'org.assertj:assertj-core', version = '3.27.4' } # Apache 2.0
  jqwik = { module = 'net.jqwik:jqwik', version = '1.9.+' } # EPL 2.0
  mockito-inline = { module = 'org.mockito:mockito-inline', version.ref = 'mockito' } # MIT
  mockito-junit-jupiter = { module = 'org.mockito:mockito-junit-jupiter', version.ref = 'mockito' } # MIT
  junit-platform-launcher = { module = 'org.junit.platform:junit-platform-launcher', version = '1.13.+' } # EPL 2.0
  jcip-annotations = { module = 'net.jcip:jcip-annotations', version = '1.0' } # CC Attribution
  spotbugs-annotations = { module = 'com.github.spotbugs:spotbugs-annotations', version = '4.9.+' } # LGPLv2.1
  jansi = { module = 'org.fusesource.jansi:jansi', version = '2.4.+' } # Apache 2.0
  
  opentelemetry-api = { module = 'io.opentelemetry:opentelemetry-api', version.ref = 'otel' }
  opentelemetry-instrumentation-annotations = { module = 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations', version = '2.18.1' }
  
  kaml = { module = 'com.charleskorn.kaml:kaml', version = '0.90.0' } # Apache 2.0
  
  amqp-client = { module = 'com.rabbitmq:amqp-client', version = '5.26.0' }
  
  [plugins]
  # kotlin
  ksp = { id = 'com.google.devtools.ksp', version.ref = 'ksp' }
  kotlin-jvm = { id = 'org.jetbrains.kotlin.jvm', version.ref = 'kotlin' }
  kotlin-serialization = { id = 'org.jetbrains.kotlin.plugin.serialization', version.ref = 'kotlin' }
  
  # java
  spotbugs = { id = 'com.github.spotbugs', version = '6.0.9' }
  spotless = { id = 'com.diffplug.spotless', version = '8.0.0' }
  shadow = { id = 'com.gradleup.shadow', version = '8.3.9' }
  versions = { id = 'com.github.ben-manes.versions', version = '0.52.0' }
  