content: [versions]
  kotlin = "2.2.20"
  kotlinx = "1.10.2"
  spring-boot = "2.7.18"
  spring-boot-3x = "3.5.6"
  spring-dependency-management = "1.1.7"
  spring-kafka = "2.9.13"
  spring-kafka-3x = "3.3.10"
  couchbase-client = "3.9.2"
  couchbase-client-metrics = "3.9.2"
  couchbase-kotlin = "3.9.2"
  jackson = "2.20.0"
  arrow = "2.1.2"
  io-reactor = "3.7.12"
  io-reactor-extensions = "1.2.4"
  slf4j = "2.0.17"
  kafka = "4.1.0"
  kafka-kotlin = "0.4.1"
  kafka-embedded = "4.1.0"
  kafka-streams-registry = "8.1.0"
  kover = "0.9.2"
  ktor = "3.3.1"
  koin = "4.1.0-Beta8"
  r2dbc-postgresql = "0.8.13.RELEASE"
  elastic = "8.19.5"
  mongodb = "5.6.1"
  wiremock = "3.13.1"
  testcontainers = "2.0.0"
  spotless = "8.0.0"
  detekt = "1.23.8"
  wire = "5.4.0"
  io-grpc = "1.76.0"
  io-grpc-kotlin = "1.5.0"
  google-protobuf = "3.25.8"
  hoplite = "2.9.0"
  kotest = "6.0.4"
  mockito = "6.1.0"
  kotlinx-serialization = "1.9.0"
  kotlinBinaryCompatibilityValidator = "0.18.1"
  snakeyaml = "2.5"
  micronaut = "4.10.4"
  micronaut-platform = "4.9.4"
  micronaut-micrometer = "1.3.1"
  ktlint = "1.7.1"
  
  [libraries]
  kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" }
  kotlinx-reactor = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", version.ref = "kotlinx" }
  kotlinx-reactive = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-reactive", version.ref = "kotlinx" }
  kotlinx-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx" }
  kotlinx-jdk8 = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8", version.ref = "kotlinx" }
  kotlinx-slf4j = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-slf4j", version.ref = "kotlinx" }
  kotlinx-io-reactor = { module = "io.projectreactor:reactor-core", version.ref = "io-reactor" }
  kotlinx-io-reactor-extensions = { module = "io.projectreactor.kotlin:reactor-kotlin-extensions", version.ref = "io-reactor-extensions" }
  kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm", version.ref = "kotlinx-serialization" }
  
  # Micronaut
  snakeyaml = { module = "org.yaml:snakeyaml", version.ref = "snakeyaml" }
  micronaut-platform = { module = "io.micronaut.platform:micronaut-platform", version.ref = "micronaut-platform" }
  micronaut-kotlin-runtime = { module = "io.micronaut.kotlin:micronaut-kotlin-runtime", version = "4.7.0" }
  micronaut-serde-jackson = { module = "io.micronaut.serde:micronaut-serde-jackson", version = "2.15.5" }
  micronaut-http-client = { module = "io.micronaut:micronaut-http-client", version.ref = "micronaut" }
  micronaut-http-server-netty = { module = "io.micronaut:micronaut-http-server-netty", version.ref = "micronaut" }
  micronaut-inject = { module = "io.micronaut:micronaut-inject", version.ref = "micronaut" }
  micronaut-inject-kotlin = { module = "io.micronaut:micronaut-inject-kotlin", version.ref = "micronaut" }
  micronaut-core = { module = "io.micronaut:micronaut-core", version.ref = "micronaut" }
  micronaut-test-kotest = { module = "io.micronaut.test:micronaut-test-kotest5", version = "4.9.0" }
  micronaut-micrometer-core = { module = "io.micronaut.configuration:micronaut-micrometer-core", version.ref = "micronaut-micrometer" }
  
  # Arrow
  arrow-core = { module = "io.arrow-kt:arrow-core", version.ref = "arrow" }
  
  # Kafka
  kafka = { module = "org.apache.kafka:kafka-clients", version.ref = "kafka" }
  kafkaKotlin = { module = "io.github.nomisrev:kotlin-kafka", version.ref = "kafka-kotlin" }
  kafka-streams = { module = "org.apache.kafka:kafka-streams", version.ref = "kafka" }
  kafka-streams-protobuf-serde = { module = "io.confluent:kafka-streams-protobuf-serde", version.ref = "kafka-streams-registry" }
  kafka-embedded = { module = "io.github.embeddedkafka:embedded-kafka_2.13", version.ref = "kafka-embedded" }
  
  # Couchbase
  couchbase-kotlin = { module = "com.couchbase.client:kotlin-client", version.ref = "couchbase-kotlin" }
  couchbase-client = { module = "com.couchbase.client:java-client", version.ref = "couchbase-client" }
  couchbase-client-metrics = { module = "com.couchbase.client:metrics-micrometer", version.ref = "couchbase-client-metrics" }
  
  # Jackson
  jackson-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin", version.ref = "jackson" }
  jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson" }
  jackson-arrow = { module = "io.arrow-kt:arrow-integrations-jackson-module", version = "0.15.1" }
  jackson-jsr310 = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", version.ref = "jackson" }
  
  # Slfj4
  slf4j-simple = { module = "org.slf4j:slf4j-simple", version.ref = "slf4j" }
  
  # Ktor
  ktor-server-host-common = { module = "io.ktor:ktor-server-host-common", version.ref = "ktor" }
  ktor-server = { module = "io.ktor:ktor-server", version.ref = "ktor" }
  ktor-server-call-logging = { module = "io.ktor:ktor-server-call-logging", version.ref = "ktor" }
  ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" }
  ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
  ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
  ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
  ktor-client-plugins-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }
  ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
  ktor-serialization-jackson-json = { module = "io.ktor:ktor-serialization-jackson", version.ref = "ktor" }
  
  # koin
  koin-ktor = { module = "io.insert-koin:koin-ktor3", version.ref = "koin" }
  koin-logger-slf4j = { module = "io.insert-koin:koin-logger-slf4j", version.ref = "koin" }
  
  # r2dbc
  r2dbc-postgresql = { module = "io.r2dbc:r2dbc-postgresql", version.ref = "r2dbc-postgresql" }
  kotliquery = { module = "com.github.seratch:kotliquery", version = "1.9.1" }
  h2Database = { module = "com.h2database:h2", version = "2.4.240" }
  
  # postgres
  postgresql = { module = "org.postgresql:postgresql", version = "42.7.8" }
  
  # elastic
  elastic = { module = "co.elastic.clients:elasticsearch-java", version.ref = "elastic" }
  
  # mongo
  mongodb-kotlin-coroutine = { module = "org.mongodb:mongodb-driver-kotlin-coroutine", version.ref = "mongodb" }
  
  # misc
  lettuce-core = { module = "io.lettuce:lettuce-core", version = "6.8.1.RELEASE" }
  logback-classic = { module = "ch.qos.logback:logback-classic", version = "1.5.19" }
  microsoft-sqlserver-jdbc = { module = "com.microsoft.sqlserver:mssql-jdbc", version = "13.2.1.jre11" }
  
  ### Testing
  wiremock-standalone = { module = "org.wiremock:wiremock-standalone", version.ref = "wiremock" }
  testcontainers = { module = "org.testcontainers:testcontainers", version.ref = "testcontainers" }
  testcontainers-jdbc = { module = "org.testcontainers:testcontainers-jdbc", version.ref = "testcontainers" }
  testcontainers-kafka = { module = "org.testcontainers:testcontainers-kafka", version.ref = "testcontainers" }
  testcontainers-couchbase = { module = "org.testcontainers:testcontainers-couchbase", version.ref = "testcontainers" }
  testcontainers-postgres = { module = "org.testcontainers:testcontainers-postgresql", version.ref = "testcontainers" }
  testcontainers-elasticsearch = { module = "org.testcontainers:testcontainers-elasticsearch", version.ref = "testcontainers" }
  testcontainers-mongodb = { module = "org.testcontainers:testcontainers-mongodb", version.ref = "testcontainers" }
  testcontainers-mssql = { module = "org.testcontainers:testcontainers-mssqlserver", version.ref = "testcontainers" }
  testcontainers-redis = { module = "com.redis.testcontainers:testcontainers-redis", version = "1.6.4" }
  
  # spring-boot 2x
  spring-boot = { module = "org.springframework.boot:spring-boot", version.ref = "spring-boot" }
  spring-boot-autoconfigure = { module = "org.springframework.boot:spring-boot-autoconfigure", version.ref = "spring-boot" }
  spring-boot-annotationProcessor = { module = "org.springframework.boot:spring-boot-configuration-processor", version.ref = "spring-boot" }
  spring-boot-kafka = { module = "org.springframework.kafka:spring-kafka", version.ref = "spring-kafka" }
  
  # spring-boot 3x
  spring-boot-three = { module = "org.springframework.boot:spring-boot", version.ref = "spring-boot-3x" }
  spring-boot-three-webflux = { module = "org.springframework.boot:spring-boot-starter-webflux", version.ref = "spring-boot-3x" }
  spring-boot-three-actuator = { module = "org.springframework.boot:spring-boot-starter-actuator", version.ref = "spring-boot-3x" }
  spring-boot-three-autoconfigure = { module = "org.springframework.boot:spring-boot-autoconfigure", version.ref = "spring-boot-3x" }
  spring-boot-three-annotationProcessor = { module = "org.springframework.boot:spring-boot-configuration-processor", version.ref = "spring-boot-3x" }
  spring-boot-three-kafka = { module = "org.springframework.kafka:spring-kafka", version.ref = "spring-kafka-3x" }
  
  detekt-formatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" }
  wire-grpc-server = { module = "com.squareup.wiregrpcserver:server", version = "1.0.0-alpha04" }
  wire-grpc-server-generator = { module = "com.squareup.wiregrpcserver:server-generator", version = "1.0.0-alpha04" }
  wire-grpc-client = { module = "com.squareup.wire:wire-grpc-client", version.ref = "wire" }
  wire-grpc-runtime = { module = "com.squareup.wire:wire-runtime", version.ref = "wire" }
  io-grpc = { module = "io.grpc:grpc-core", version.ref = "io-grpc" }
  io-grpc-stub = { module = "io.grpc:grpc-stub", version.ref = "io-grpc" }
  io-grpc-protobuf = { module = "io.grpc:grpc-protobuf", version.ref = "io-grpc" }
  io-grpc-netty = { module = "io.grpc:grpc-netty", version.ref = "io-grpc" }
  io-grpc-kotlin = { module = "io.grpc:grpc-kotlin-stub", version.ref = "io-grpc-kotlin" }
  google-protobuf-kotlin = { module = "com.google.protobuf:protobuf-kotlin", version.ref = "google-protobuf" }
  protoc = { module = "com.google.protobuf:protoc", version.ref = "google-protobuf" }
  hoplite-yaml = { module = "com.sksamuel.hoplite:hoplite-yaml", version.ref = "hoplite" }
  google-gson = { module = "com.google.code.gson:gson", version = "2.13.2" }
  caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version = "3.2.2" }
  pprint = { module = "io.exoquery:pprint-kotlin", version = "3.0.0" }
  ktlint-cli = { module = "com.pinterest.ktlint:ktlint-cli", version.ref = "ktlint" }
  
  # testing
  mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockito" }
  kotest-runner-junit5 = { module = "io.kotest:kotest-runner-junit5", version.ref = "kotest" }
  kotest-framework-engine = { module = "io.kotest:kotest-property", version.ref = "kotest" }
  kotest-assertions-core = { module = "io.kotest:kotest-property", version.ref = "kotest" }
  kotest-arrow = { module = "io.kotest.extensions:kotest-assertions-arrow", version = "2.0.0" }
  
  [plugins]
  allopen = { id = "org.jetbrains.kotlin.plugin.allopen", version.ref = "kotlin" }
  spring-plugin = { id = "org.jetbrains.kotlin.plugin.spring", version.ref = "kotlin" }
  spring-boot = { id = "org.springframework.boot", version.ref = "spring-boot" }
  spring-boot-three = { id = "org.springframework.boot", version.ref = "spring-boot-3x" }
  spring-dependencyManagement = { id = "io.spring.dependency-management", version.ref = "spring-dependency-management" }
  kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" }
  spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
  detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
  wire = { id = "com.squareup.wire", version.ref = "wire" }
  testLogger = { id = "com.adarshr.test-logger", version = "4.0.0" }
  protobuf = { id = "com.google.protobuf", version = "0.9.5" }
  kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
  binaryCompatibilityValidator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "kotlinBinaryCompatibilityValidator" }
  google-ksp = { id = "com.google.devtools.ksp", version = "2.2.20-2.0.4" }
  micronaut-application = { id = "io.micronaut.application", version = "4.5.5" }
  micronaut-aot = { id = "io.micronaut.aot", version = "4.5.5" }
  micronaut-library = { id = "io.micronaut.library", version = "4.5.5" }
  maven-publish = { id = "com.vanniktech.maven.publish", version = "0.34.0" }
  