diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index 229f1d3449..7be402da6f 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -912,4 +912,4 @@
-
+
\ No newline at end of file
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index 1a3fc8a647..6496c646c3 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -36,9 +36,6 @@ plugins {
java
groovy
`kotlin-dsl`
-
- // https://github.com/jk1/Gradle-License-Report/releases
- id("com.github.jk1.dependency-license-report").version("2.9")
}
repositories {
@@ -65,7 +62,12 @@ val jacksonVersion = "2.18.3"
*/
val googleAuthToolVersion = "2.1.5"
-val licenseReportVersion = "2.7"
+/**
+ * Generates reports about the licenses of the dependencies for a Gradle project.
+ *
+ * https://github.com/jk1/Gradle-License-Report
+ */
+val licenseReportVersion = "3.1.2"
val grGitVersion = "4.1.1"
@@ -113,7 +115,7 @@ val protobufPluginVersion = "0.9.6"
* @see
* Dokka Releases
*/
-val dokkaVersion = "2.1.0"
+val dokkaVersion = "2.2.0"
/**
* The version of Detekt Gradle Plugin.
@@ -139,7 +141,7 @@ val koverVersion = "0.9.1"
*
* @see Shadow Plugin releases
*/
-val shadowVersion = "9.2.2"
+val shadowVersion = "9.4.1"
/**
* The version of JUnit used to test the build scripts.
diff --git a/buildSrc/src/main/kotlin/ForcePlugins.kt b/buildSrc/src/main/kotlin/ForcePlugins.kt
index 10d3f2f5cf..35c247b163 100644
--- a/buildSrc/src/main/kotlin/ForcePlugins.kt
+++ b/buildSrc/src/main/kotlin/ForcePlugins.kt
@@ -43,7 +43,7 @@ fun ScriptHandlerScope.forceCodegenPlugins() {
dependencies {
CoreJvmCompiler.run {
- classpath(pluginLibNew(version))
+ classpath(pluginLib(version))
}
spineCompiler.run {
classpath(pluginLib(version))
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/build/Dokka.kt b/buildSrc/src/main/kotlin/io/spine/dependency/build/Dokka.kt
index ba0433aaf0..858731b3fc 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/build/Dokka.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/build/Dokka.kt
@@ -26,6 +26,9 @@
package io.spine.dependency.build
+import io.spine.dependency.build.Dokka.GradlePlugin.id
+import io.spine.dependency.local.Spine
+
// https://github.com/Kotlin/dokka
@Suppress("unused", "ConstPropertyName")
object Dokka {
@@ -35,7 +38,7 @@ object Dokka {
* When changing the version, also change the version used in the
* `buildSrc/build.gradle.kts`.
*/
- const val version = "2.1.0"
+ const val version = "2.2.0"
object GradlePlugin {
const val id = "org.jetbrains.dokka"
@@ -76,7 +79,7 @@ object Dokka {
* Custom Dokka Plugins
*/
object SpineExtensions {
- private const val group = "io.spine.tools"
+ private const val group = Spine.toolsGroup
const val version = "2.0.0-SNAPSHOT.7"
const val lib = "$group:spine-dokka-extensions:$version"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/lib/JetBrainsAnnotations.kt b/buildSrc/src/main/kotlin/io/spine/dependency/lib/JetBrainsAnnotations.kt
new file mode 100644
index 0000000000..f1a66e2a53
--- /dev/null
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/lib/JetBrainsAnnotations.kt
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2026, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package io.spine.dependency.lib
+
+/**
+ * Annotations library from JetBrains.
+ *
+ * https://github.com/JetBrains/java-annotations
+ */
+object JetBrainsAnnotations {
+ /**
+ * The version of the library transitively used.
+ */
+ const val version = "23.0.0"
+ const val groupId = "org.jetbrains"
+ const val artifactId = "annotations"
+ const val lib = "$groupId:$artifactId:$version"
+}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt
index 31cbfb3fac..330917d7c1 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Compiler.kt
@@ -60,7 +60,7 @@ import io.spine.dependency.Dependency
)
object Compiler : Dependency() {
const val pluginGroup = Spine.group
- override val group = "io.spine.tools"
+ override val group = Spine.toolsGroup
const val pluginId = "io.spine.compiler"
/**
@@ -72,7 +72,7 @@ object Compiler : Dependency() {
* The version of the Compiler dependencies.
*/
override val version: String
- private const val fallbackVersion = "2.0.0-SNAPSHOT.041"
+ private const val fallbackVersion = "2.0.0-SNAPSHOT.043"
/**
* The distinct version of the Compiler used by other build tools.
@@ -81,7 +81,7 @@ object Compiler : Dependency() {
* transitive dependencies, this is the version used to build the project itself.
*/
val dogfoodingVersion: String
- private const val fallbackDfVersion = "2.0.0-SNAPSHOT.041"
+ private const val fallbackDfVersion = "2.0.0-SNAPSHOT.043"
/**
* The artifact for the Compiler Gradle plugin.
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt
index 2e0b6973b5..1f95edc473 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvm.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,7 +39,7 @@ typealias CoreJava = CoreJvm
@Suppress("ConstPropertyName", "unused")
object CoreJvm {
const val group = Spine.group
- const val version = "2.0.0-SNAPSHOT.372"
+ const val version = "2.0.0-SNAPSHOT.373"
const val coreArtifact = "spine-core"
const val clientArtifact = "spine-client"
@@ -50,9 +50,9 @@ object CoreJvm {
const val server = "$group:$serverArtifact:$version"
@Deprecated("Use `serverTestLib` instead.", ReplaceWith("serverTestLib"))
- const val testUtilServer = "${Spine.toolsGroup}:spine-server-testlib:$version"
+ const val testUtilServer = "${Spine.toolsGroup}:server-testlib:$version"
- const val coreTestLib = "${Spine.toolsGroup}:spine-core-testlib:$version"
- const val clientTestLib = "${Spine.toolsGroup}:spine-client-testlib:$version"
- const val serverTestLib = "${Spine.toolsGroup}:spine-server-testlib:$version"
+ const val coreTestLib = "${Spine.toolsGroup}:core-testlib:$version"
+ const val clientTestLib = "${Spine.toolsGroup}:client-testlib:$version"
+ const val serverTestLib = "${Spine.toolsGroup}:server-testlib:$version"
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt
index 344e8a13fc..dfdaf95357 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/CoreJvmCompiler.kt
@@ -46,12 +46,12 @@ object CoreJvmCompiler {
/**
* The version used to in the build classpath.
*/
- const val dogfoodingVersion = "2.0.0-SNAPSHOT.058"
+ const val dogfoodingVersion = "2.0.0-SNAPSHOT.062"
/**
* The version to be used for integration tests.
*/
- const val version = "2.0.0-SNAPSHOT.058"
+ const val version = "2.0.0-SNAPSHOT.062"
/**
* The ID of the Gradle plugin.
@@ -61,33 +61,20 @@ object CoreJvmCompiler {
/**
* The library with the [dogfoodingVersion].
*/
- val pluginLib = pluginLibNew(dogfoodingVersion)
+ val pluginLib = pluginLib(dogfoodingVersion)
/**
- * The library with the given [version].
- *
- * This is the notation before the version `2.0.0-SNAPSHOT.013`
+ * The name of the published fat JAR artifact.
*/
- @Deprecated("Use `pluginLibNew()` instead.")
- fun pluginLib(version: String): String = "$group:core-jvm-plugins:$version:all"
+ const val fatJarArtifact = "core-jvm-plugins"
/**
* The library with the given [version].
- *
- * @since 2.0.0-SNAPSHOT.013
- */
- fun pluginLibNew(version: String): String = "$group:core-jvm-plugins:$version"
-
- /** The artifact reference for forcing in configurations. */
- const val pluginsArtifact: String = "$group:core-jvm-plugins:$version"
-
- /**
- * The `core-jvm-base` artifact with the [version].
*/
- val base = base(version)
+ fun pluginLib(version: String): String = "$group:core-jvm-plugins:$version"
/**
- * The `core-jvm-base` artifact with the given [version].
+ * The artifact reference for forcing in configurations.
*/
- fun base(version: String): String = "$group:core-jvm-base:$version"
+ val pluginsArtifact: String = pluginLib(version)
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt
index 3bb11408c1..04d19ea52d 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Logging.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,7 +33,7 @@ package io.spine.dependency.local
*/
@Suppress("ConstPropertyName", "unused")
object Logging {
- const val version = "2.0.0-SNAPSHOT.411"
+ const val version = "2.0.0-SNAPSHOT.417"
const val group = Spine.group
const val loggingArtifact = "spine-logging"
@@ -46,7 +46,7 @@ object Logging {
const val grpcContext = "$group:spine-logging-grpc-context:$version"
const val smokeTest = "$group:spine-logging-smoke-test:$version"
- const val testLib = "${Spine.toolsGroup}:spine-logging-testlib:$version"
+ const val testLib = "${Spine.toolsGroup}:logging-testlib:$version"
// Transitive dependencies.
// Make `public` and use them to force a version in a particular repository, if needed.
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoTap.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoTap.kt
index 3b4df10097..8ead987800 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoTap.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/ProtoTap.kt
@@ -37,7 +37,7 @@ package io.spine.dependency.local
"MemberVisibilityCanBePrivate" /* The properties are used directly by other subprojects. */,
)
object ProtoTap {
- const val group = "io.spine.tools"
+ const val group = Spine.toolsGroup
const val version = "0.14.0"
const val gradlePluginId = "io.spine.prototap"
const val api = "$group:prototap-api:$version"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/TestLib.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/TestLib.kt
index d3fe7c6937..355399a525 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/TestLib.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/TestLib.kt
@@ -33,8 +33,8 @@ package io.spine.dependency.local
*/
@Suppress("ConstPropertyName")
object TestLib {
- const val version = "2.0.0-SNAPSHOT.211"
+ const val version = "2.0.0-SNAPSHOT.213"
const val group = Spine.toolsGroup
- const val artifact = "spine-testlib"
+ const val artifact = "base-testlib"
const val lib = "$group:$artifact:$version"
}
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt
index c4b9b6dc7e..12f3e0d274 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/ToolBase.kt
@@ -34,8 +34,8 @@ package io.spine.dependency.local
@Suppress("ConstPropertyName", "unused")
object ToolBase {
const val group = Spine.toolsGroup
- const val version = "2.0.0-SNAPSHOT.376"
- const val dogfoodingVersion = "2.0.0-SNAPSHOT.376"
+ const val version = "2.0.0-SNAPSHOT.378"
+ const val dogfoodingVersion = "2.0.0-SNAPSHOT.378"
const val lib = "$group:tool-base:$version"
const val classicCodegen = "$group:classic-codegen:$version"
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt b/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt
index 3917eeb972..549ed2c1b1 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt
@@ -36,7 +36,7 @@ object Validation {
/**
* The version of the Validation library artifacts.
*/
- const val version = "2.0.0-SNAPSHOT.409"
+ const val version = "2.0.0-SNAPSHOT.411"
/**
* The last version of Validation compatible with ProtoData.
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt b/buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt
index 58fb528762..f857bcd888 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/test/Kotest.kt
@@ -35,29 +35,23 @@ package io.spine.dependency.test
*/
@Suppress("unused", "ConstPropertyName")
object Kotest {
- const val version = "6.1.10"
+ const val version = "6.1.11"
const val group = "io.kotest"
const val gradlePluginId = "io.kotest"
const val assertions = "$group:kotest-assertions-core:$version"
const val runnerJUnit5 = "$group:kotest-runner-junit5:$version"
const val runnerJUnit5Jvm = "$group:kotest-runner-junit5-jvm:$version"
- const val frameworkApi = "$group:kotest-framework-api:$version"
- const val datatest = "$group:kotest-framework-datatest:$version"
const val frameworkEngine = "$group:kotest-framework-engine:$version"
+ const val common = "$group:kotest-common:$version"
- // https://plugins.gradle.org/plugin/io.kotest.multiplatform
- @Deprecated("The plugin is deprecated. Use `io.kotest` plugin instead.")
- object MultiplatformGradlePlugin {
- const val version = "6.0.0.M4"
- const val id = "io.kotest.multiplatform"
- const val classpath = "$group:kotest-framework-multiplatform-plugin-gradle:$version"
- }
-
- // https://github.com/kotest/kotest-gradle-plugin
- @Deprecated("The repository is archived. Use `io.kotest.multiplatform` plugin instead.")
- object JvmGradlePlugin {
- const val version = "0.4.11"
- const val id = "io.kotest"
- const val classpath = "$group:kotest-gradle-plugin:$version"
- }
+ /**
+ * @deprecated Use `frameworkEngine` instead.
+ */
+ @Deprecated("Use `frameworkEngine` instead.", ReplaceWith("frameworkEngine"))
+ const val frameworkApi = "$group:kotest-framework-api:$version"
+ /**
+ * @deprecated The dependency was merged into the core framework.
+ */
+ @Deprecated("The dependency was merged into the core framework.")
+ const val datatest = "$group:kotest-framework-datatest:$version"
}
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/github/pages/UpdateGitHubPages.kt b/buildSrc/src/main/kotlin/io/spine/gradle/github/pages/UpdateGitHubPages.kt
index cdfd2c4698..860dfbed1e 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/github/pages/UpdateGitHubPages.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/github/pages/UpdateGitHubPages.kt
@@ -107,15 +107,7 @@ class UpdateGitHubPages : Plugin {
override fun apply(project: Project) {
val extension = UpdateGitHubPagesExtension.createIn(project)
project.afterEvaluate {
- //TODO:2025-11-20:alexander.yevsyukov: Remove this line and uncomment the below block
- // when new publishing procedure is finalized.
registerTasks(extension)
-// val projectVersion = project.version.toString()
-// if (projectVersion.isSnapshot()) {
-// registerNoOpTask()
-// } else {
-// registerTasks(extension)
-// }
}
}
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/publish/PublicationHandler.kt b/buildSrc/src/main/kotlin/io/spine/gradle/publish/PublicationHandler.kt
index 8a212b7ca4..5dd8dc54ef 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/publish/PublicationHandler.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/publish/PublicationHandler.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,6 +26,7 @@
package io.spine.gradle.publish
+import DocumentationSettings
import LicenseSettings
import io.spine.gradle.artifactId
import io.spine.gradle.isSnapshot
@@ -133,8 +134,14 @@ sealed class PublicationHandler(
* * [version][Project.getVersion];
* * [description][Project.getDescription].
*
- * The [artifactId] of the publication is copied from the project
- * [extension property][io.spine.gradle.artifactId] of the same name.
+ * The [artifactId] is derived from the project
+ * [extension property][io.spine.gradle.artifactId] of the same name, combined with
+ * the platform-specific suffix already present in the publication's artifact ID.
+ * This preserves Kotlin Multiplatform suffixes such as `-jvm`.
+ *
+ * For example, if the project artifact ID is `spine-logging` and the publication's
+ * current artifact ID is `logging-jvm` (set by the KMP plugin), the resulting
+ * artifact ID will be `spine-logging-jvm`.
*
* The Apache Software License 2.0 is set as the only license
* under which the published artifact is distributed via [LicenseSettings]
@@ -146,7 +153,24 @@ sealed class PublicationHandler(
*/
protected fun MavenPublication.copyProjectAttributes() {
groupId = project.group.toString()
- artifactId = project.artifactId
+ // Add the proper prefix to the `artifactId`.
+ // The default `artifactId` is either `project.name` or
+ // the `project.name` with the platform suffix of a KMM distribution.
+ artifactId = if (artifactId.startsWith(project.name)) {
+ val platformSuffix = artifactId.removePrefix(project.name)
+ val replacedId = project.artifactId + platformSuffix
+ project.logger.info(
+ "The project `${project.name}` got modified artifact: `$replacedId`."
+ )
+ replacedId
+ } else {
+ project.logger.info(
+ "The `artifactId` for the project `${project.name}` stays: `$artifactId`."
+ )
+ // This is an unlikely case of `artifactId` being set to something unrelated
+ // to the project name. Let's keep it as is.
+ artifactId
+ }
version = project.version.toString()
pom.description.set(project.description)
pom.inceptionYear.set(InceptionYear.value)
@@ -154,7 +178,9 @@ sealed class PublicationHandler(
license {
name.set(LicenseSettings.name)
url.set(LicenseSettings.url)
- distribution.set(LicenseSettings.url)
+ // It's either `"repo"` or `"manual"`.
+ // https://maven.apache.org/ref/3.9.15/maven-model/apidocs/org/apache/maven/model/License.html#setDistribution(java.lang.String)
+ distribution.set("repo")
}
}
pom.scm {
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/publish/ShadowJarExts.kt b/buildSrc/src/main/kotlin/io/spine/gradle/publish/ShadowJarExts.kt
index 87157fdf60..0fa60fdc0c 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/publish/ShadowJarExts.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/publish/ShadowJarExts.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,54 +24,59 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+@file:Suppress("ConstPropertyName")
+
package io.spine.gradle.publish
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+import org.gradle.api.file.DuplicatesStrategy
/**
- * Calls [ShadowJar.mergeServiceFiles] for the files we use in the Spine SDK.
+ * Configures a `ShadowJar` task for Spine SDK publishing.
*/
-fun ShadowJar.handleMergingServiceFiles() {
- ServiceFiles.all.forEach {
- append(it)
- }
+@Suppress("unused")
+fun ShadowJar.setup() {
+ duplicatesStrategy = DuplicatesStrategy.INCLUDE // Required for service-file merging.
+ mergeServiceFiles()
+ append(DESC_REF)
+ deduplicateEntries()
}
-@Suppress("ConstPropertyName")
-private object ServiceFiles {
-
- /**
- * Files containing references to descriptor set files.
- */
- private const val descriptorSetReferences = "desc.ref"
-
- private const val servicesDir = "META-INF/services"
- /**
- * Providers of custom Protobuf options introduced by the libraries.
- */
- private const val optionProviders = "$servicesDir/io.spine.option.OptionsProvider"
+/**
+ * The name of a descriptor set reference file.
+ */
+private const val DESC_REF = "desc.ref"
- /**
- * KSP symbol processor provider.
- */
- private const val kspSymbolProcessorProviders =
- "$servicesDir/com.google.devtools.ksp.KspSymbolProcessorProvider"
+/**
+ * Installs a first-copy-wins exclusion predicate for all JAR entries except those
+ * registered for merging, such as service files, descriptor set references, etc.
+ *
+ * Shadow's [org.gradle.api.file.DuplicatesStrategy.INCLUDE] must remain on the task so
+ * that every copy of a merged file reaches its
+ * [AppendingTransformer][com.github.jengelman.gradle.plugins.shadow.transformers.AppendingTransformer].
+ * All other entries — `.class` files, settings JSONs, Kotlin module descriptors,
+ * Maven metadata, etc. — are deduplicated here to suppress duplicate-entry warnings
+ * and keep the fat JAR size minimal.
+ */
+private fun ShadowJar.deduplicateEntries() {
+ val seenPaths = mutableSetOf()
+ doFirst { seenPaths.clear() }
+ eachFile {
+ val needsMerging = path.isServiceFile || path.isDescriptorSetReference
+ if (!needsMerging && !seenPaths.add(path)) {
+ exclude()
+ }
+ }
+}
- /**
- * Message routing setup classes generated by the Compiler for JVM.
- */
- private const val routeSetupPackage = "io.spine.server.route.setup"
- private const val routeSetupPrefix = "$servicesDir/$routeSetupPackage"
- private const val commandRoutingSetupClasses = "$routeSetupPrefix.CommandRoutingSetup"
- private const val eventRoutingSetupClasses = "$routeSetupPrefix.EventRoutingSetup"
- private const val stateRoutingSetupClasses = "$routeSetupPrefix.StateRoutingSetup"
+/**
+ * Returns `true` for file paths containing references to descriptor set files.
+ */
+private val String.isDescriptorSetReference: Boolean
+ get() = contains(DESC_REF)
- val all = arrayOf(
- descriptorSetReferences,
- optionProviders,
- kspSymbolProcessorProviders,
- commandRoutingSetupClasses,
- eventRoutingSetupClasses,
- stateRoutingSetupClasses
- )
-}
+/**
+ * Tells if the path belongs to a service file.
+ */
+private val String.isServiceFile: Boolean
+ get() = contains("META-INF/services")
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/publish/SpinePublishing.kt b/buildSrc/src/main/kotlin/io/spine/gradle/publish/SpinePublishing.kt
index c065198e92..a12c1d20ff 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/publish/SpinePublishing.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/publish/SpinePublishing.kt
@@ -28,6 +28,7 @@
package io.spine.gradle.publish
+import io.spine.dependency.local.Spine
import io.spine.gradle.repo.Repository
import java.util.Locale
import org.gradle.api.Project
@@ -148,10 +149,8 @@ import org.gradle.kotlin.dsl.findByType
*/
fun Project.spinePublishing(block: SpinePublishing.() -> Unit): SpinePublishing {
apply()
- val name = SpinePublishing::class.java.simpleName
- .replaceFirstChar { it.lowercase(Locale.getDefault()) }
val extension = with(extensions) {
- findByType() ?: create(name, project)
+ findByType() ?: create(SpinePublishing.extensionName, project)
}
extension.run {
block()
@@ -191,6 +190,12 @@ open class SpinePublishing(private val project: Project) {
* to a tool module's artifact ID.
*/
const val NONE_PREFIX = "NONE"
+
+ /**
+ * The name of the extension registered in a Gradle project.
+ */
+ public val extensionName: String = SpinePublishing::class.java.simpleName
+ .replaceFirstChar { it.lowercase(Locale.ROOT) }
}
private val testJar = TestJar()
@@ -345,13 +350,14 @@ open class SpinePublishing(private val project: Project) {
*
* @see modules
*/
- private fun projectsToPublish(): Collection {
+ fun projectsToPublish(): Set {
if (project.subprojects.isEmpty()) {
return setOf(project)
}
return modules.union(modulesWithCustomPublishing)
.map { name -> project.project(name) }
.ifEmpty { setOf(project) }
+ .toSet()
}
/**
@@ -435,7 +441,7 @@ open class SpinePublishing(private val project: Project) {
}
private val Project.isTool: Boolean
- get() = group == "io.spine.tools"
+ get() = group == Spine.toolsGroup
/**
* Ensures that all modules, marked as included into [testJar] publishing,
diff --git a/buildSrc/src/main/kotlin/io/spine/gradle/report/license/LicenseReporter.kt b/buildSrc/src/main/kotlin/io/spine/gradle/report/license/LicenseReporter.kt
index 5f18b9575f..8ede9919a6 100644
--- a/buildSrc/src/main/kotlin/io/spine/gradle/report/license/LicenseReporter.kt
+++ b/buildSrc/src/main/kotlin/io/spine/gradle/report/license/LicenseReporter.kt
@@ -29,6 +29,7 @@ package io.spine.gradle.report.license
import com.github.jk1.license.LicenseReportExtension
import com.github.jk1.license.LicenseReportExtension.ALL
import com.github.jk1.license.LicenseReportPlugin
+import io.spine.dependency.local.Spine
import io.spine.gradle.applyPlugin
import io.spine.gradle.getTask
import java.io.File
@@ -85,10 +86,10 @@ object LicenseReporter {
with(project.the()) {
outputDir = reportOutputDir.absolutePath
excludeGroups = arrayOf(
- "io.spine",
+ Spine.group,
"io.spine.gcloud",
"io.spine.protodata",
- "io.spine.tools",
+ Spine.toolsGroup,
"io.spine.validation"
)
configurations = ALL
diff --git a/buildSrc/src/main/kotlin/jvm-module.gradle.kts b/buildSrc/src/main/kotlin/jvm-module.gradle.kts
index 11696c1aa6..a7b2cd44ae 100644
--- a/buildSrc/src/main/kotlin/jvm-module.gradle.kts
+++ b/buildSrc/src/main/kotlin/jvm-module.gradle.kts
@@ -30,6 +30,8 @@ import io.spine.dependency.build.Dokka
import io.spine.dependency.build.ErrorProne
import io.spine.dependency.build.JSpecify
import io.spine.dependency.lib.Guava
+import io.spine.dependency.lib.Jackson
+import io.spine.dependency.lib.Kotlin
import io.spine.dependency.lib.Protobuf
import io.spine.dependency.local.Reflect
import io.spine.dependency.test.Jacoco
@@ -130,7 +132,13 @@ fun Module.forceConfigurations() {
excludeProtobufLite()
all {
resolutionStrategy {
+ val cfg = this@all
+ val rs = this@resolutionStrategy
+ Jackson.forceArtifacts(project, cfg, rs)
+ Jackson.DataFormat.forceArtifacts(project, cfg, rs)
force(
+ Jackson.annotations,
+ Kotlin.bom,
Dokka.BasePlugin.lib,
Reflect.lib,
)
diff --git a/buildSrc/src/main/kotlin/kmp-module.gradle.kts b/buildSrc/src/main/kotlin/kmp-module.gradle.kts
index 4f7ec63982..9bc0fd34b3 100644
--- a/buildSrc/src/main/kotlin/kmp-module.gradle.kts
+++ b/buildSrc/src/main/kotlin/kmp-module.gradle.kts
@@ -25,6 +25,8 @@
*/
import io.spine.dependency.boms.BomsPlugin
+import io.spine.dependency.lib.Jackson
+import io.spine.dependency.lib.Kotlin
import io.spine.dependency.local.Reflect
import io.spine.dependency.local.TestLib
import io.spine.dependency.test.JUnit
@@ -82,7 +84,12 @@ fun Project.forceConfigurations() {
forceVersions()
all {
resolutionStrategy {
+ val cfg = this@all
+ val rs = this@resolutionStrategy
+ Jackson.forceArtifacts(project, cfg, rs)
+ Jackson.DataFormat.forceArtifacts(project, cfg, rs)
force(
+ Kotlin.bom,
Reflect.lib
)
}
@@ -123,7 +130,6 @@ kotlin {
implementation(kotlin("test-annotations-common"))
implementation(Kotest.assertions)
implementation(Kotest.frameworkEngine)
- implementation(Kotest.datatest)
}
}
val jvmTest by getting {
diff --git a/buildSrc/src/test/kotlin/io/spine/gradle/publish/SpinePublishingTest.kt b/buildSrc/src/test/kotlin/io/spine/gradle/publish/SpinePublishingTest.kt
index 37f58e0403..52663c2e61 100644
--- a/buildSrc/src/test/kotlin/io/spine/gradle/publish/SpinePublishingTest.kt
+++ b/buildSrc/src/test/kotlin/io/spine/gradle/publish/SpinePublishingTest.kt
@@ -156,10 +156,9 @@ class SpinePublishingTest {
// Let's use it instead of creating a second one with a different name.
extension.modules = setOf("sub")
- // Subproject's extension must be named 'SpinePublishing'
- // to be found by SpinePublishing::class.java.simpleName
- val extensionName = SpinePublishing::class.java.simpleName
- val subExtension = subproject.extensions.create(extensionName, subproject)
+ val extensionName = SpinePublishing.extensionName
+ val subExtension =
+ subproject.extensions.create(extensionName, subproject)
val exception = shouldThrow {
subExtension.configured()
diff --git a/config b/config
index 688b3c7924..948243e0b9 160000
--- a/config
+++ b/config
@@ -1 +1 @@
-Subproject commit 688b3c792415f3abc532fb6e4e2b030781b6fff2
+Subproject commit 948243e0b9158d918f67c40b9b61bac8689e2698
diff --git a/context-tests/build.gradle.kts b/context-tests/build.gradle.kts
index a3c95d01ee..1945652df9 100644
--- a/context-tests/build.gradle.kts
+++ b/context-tests/build.gradle.kts
@@ -32,7 +32,8 @@ import io.spine.dependency.test.JUnit.Jupiter
import io.spine.gradle.report.license.LicenseReporter
plugins {
- java
+ kotlin("jvm")
+ id("module-testing")
protobuf
`java-test-fixtures`
prototap
@@ -40,7 +41,8 @@ plugins {
LicenseReporter.generateReportIn(project)
dependencies {
- implementation(project(":context"))
+ val contextProject = project(":context")
+ implementation(contextProject)
implementation(project(":jvm-runtime"))
testImplementation(Logging.testLib)?.because("We need `tapConsole`.")
@@ -49,6 +51,7 @@ dependencies {
testFixturesImplementation(Compiler.api)
testFixturesImplementation(Compiler.testlib)
testFixturesImplementation(Jupiter.artifact { params })
+ testFixturesImplementation(contextProject)
}
protobuf {
diff --git a/context-tests/src/test/kotlin/io/spine/tools/validation/OptionNamesSpec.kt b/context-tests/src/test/kotlin/io/spine/tools/validation/OptionNamesSpec.kt
index f9c4ff942d..25cceee5ca 100644
--- a/context-tests/src/test/kotlin/io/spine/tools/validation/OptionNamesSpec.kt
+++ b/context-tests/src/test/kotlin/io/spine/tools/validation/OptionNamesSpec.kt
@@ -28,7 +28,6 @@ package io.spine.tools.validation
import io.kotest.matchers.shouldBe
import io.spine.option.OptionsProto
-import io.spine.time.validation.TimeOptionsProto
import io.spine.tools.validation.option.DISTINCT
import io.spine.tools.validation.option.IS_REQUIRED
import io.spine.tools.validation.option.MAX
@@ -38,7 +37,6 @@ import io.spine.tools.validation.option.RANGE
import io.spine.tools.validation.option.REQUIRED
import io.spine.tools.validation.option.SET_ONCE
import io.spine.tools.validation.option.VALIDATE
-import io.spine.tools.validation.option.WHEN
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Test
@@ -90,8 +88,4 @@ internal class OptionNamesSpec {
VALIDATE shouldBe OptionsProto.validate.descriptor.name
}
- @Test
- fun `when`() {
- WHEN shouldBe TimeOptionsProto.`when`.descriptor.name
- }
}
diff --git a/context/build.gradle.kts b/context/build.gradle.kts
index 521f084a52..cf422e1fa2 100644
--- a/context/build.gradle.kts
+++ b/context/build.gradle.kts
@@ -34,6 +34,7 @@ buildscript {
resolutionStrategy {
force(
io.spine.dependency.local.Logging.grpcContext,
+ io.spine.dependency.lib.JetBrainsAnnotations.lib,
)
}
}
diff --git a/context/src/main/kotlin/io/spine/tools/validation/DefaultErrorMessage.kt b/context/src/main/kotlin/io/spine/tools/validation/DefaultErrorMessage.kt
index 2ce2f999cf..b2505870e3 100644
--- a/context/src/main/kotlin/io/spine/tools/validation/DefaultErrorMessage.kt
+++ b/context/src/main/kotlin/io/spine/tools/validation/DefaultErrorMessage.kt
@@ -37,7 +37,7 @@ import io.spine.tools.compiler.protobuf.descriptor
* The descriptor should be marked with the `(default_message)` option.
* If the option is absent, an empty message is returned.
*/
-internal val Descriptor.defaultMessage: String
+public val Descriptor.defaultMessage: String
get() = options.getExtension(OptionsProto.defaultMessage)
/**
diff --git a/context/src/main/kotlin/io/spine/tools/validation/ErrorPlaceholders.kt b/context/src/main/kotlin/io/spine/tools/validation/ErrorPlaceholders.kt
index eb46b0ffde..c4f1497de9 100644
--- a/context/src/main/kotlin/io/spine/tools/validation/ErrorPlaceholders.kt
+++ b/context/src/main/kotlin/io/spine/tools/validation/ErrorPlaceholders.kt
@@ -89,12 +89,12 @@ internal fun String.checkPlaceholders(
* @param file The file that contains the [field] declaration.
* @param option The name of the option with which the message template was specified.
*/
-internal fun String.checkPlaceholders(
+public fun String.checkPlaceholders(
supported: Set,
field: Field,
file: File,
option: String
-) = checkPlaceholders(
+): Unit = checkPlaceholders(
supported,
"`${field.qualifiedName}` field",
field.span,
diff --git a/context/src/main/kotlin/io/spine/tools/validation/ValidationPlugin.kt b/context/src/main/kotlin/io/spine/tools/validation/ValidationPlugin.kt
index 53d05b136e..00cb483a7e 100644
--- a/context/src/main/kotlin/io/spine/tools/validation/ValidationPlugin.kt
+++ b/context/src/main/kotlin/io/spine/tools/validation/ValidationPlugin.kt
@@ -55,8 +55,6 @@ import io.spine.tools.validation.option.SetOnceFieldView
import io.spine.tools.validation.option.SetOnceReaction
import io.spine.tools.validation.option.ValidateReaction
import io.spine.tools.validation.option.ValidatedFieldView
-import io.spine.tools.validation.option.WhenFieldView
-import io.spine.tools.validation.option.WhenReaction
import io.spine.tools.validation.option.required.IfMissingReaction
import io.spine.tools.validation.option.required.RequiredFieldView
import io.spine.tools.validation.option.required.RequiredReaction
@@ -86,7 +84,6 @@ public abstract class ValidationPlugin(
MinFieldView::class.java,
SetOnceFieldView::class.java,
ChoiceGroupView::class.java,
- WhenFieldView::class.java,
RequireMessageView::class.java,
),
viewRepositories = viewRepositories,
@@ -103,7 +100,6 @@ public abstract class ValidationPlugin(
PatternReaction(),
ChoiceReaction(),
IsRequiredReaction(),
- WhenReaction(),
GoesReaction(),
SetOnceReaction(),
IfSetAgainReaction(),
diff --git a/context/src/main/kotlin/io/spine/tools/validation/option/OptionNames.kt b/context/src/main/kotlin/io/spine/tools/validation/option/OptionNames.kt
index 3e8b4a54d6..9b0c7b4d58 100644
--- a/context/src/main/kotlin/io/spine/tools/validation/option/OptionNames.kt
+++ b/context/src/main/kotlin/io/spine/tools/validation/option/OptionNames.kt
@@ -93,11 +93,6 @@ public const val VALIDATE: String = "validate"
*/
public const val IF_INVALID: String = "if_invalid"
-/**
- * The name of the `(when)` option.
- */
-public const val WHEN: String = "when"
-
/**
* The name of the `(goes)` option.
*/
diff --git a/context/src/main/proto/spine/validation/events.proto b/context/src/main/proto/spine/validation/events.proto
index 6aa54f7afa..d8d2b57cfc 100644
--- a/context/src/main/proto/spine/validation/events.proto
+++ b/context/src/main/proto/spine/validation/events.proto
@@ -36,9 +36,7 @@ option java_outer_classname = "EventsProto";
option java_multiple_files = true;
import "spine/compiler/ast.proto";
-import "spine/validation/time_field_type.proto";
import "spine/validation/field_group.proto";
-import "spine/time_options.proto";
// A required field has been discovered.
//
@@ -162,25 +160,6 @@ message IfSetAgainOptionDiscovered {
string custom_error_message = 3;
}
-// The event emitted whenever a field with `(when)` option is discovered
-// and has passed the necessary checks to confirm the option is applied correctly.
-message WhenFieldDiscovered {
-
- compiler.FieldRef id = 1;
-
- // The field in which the option was discovered.
- compiler.Field subject = 2;
-
- // The error message template.
- string error_message = 3;
-
- // Defines a restriction for the timestamp.
- Time bound = 4;
-
- // The type of the field.
- spine.validation.TimeFieldType type = 5;
-}
-
// The event emitted whenever a `oneof` group with `(choice).required = true` option is
// discovered and has passed the necessary checks to confirm the option is applied correctly.
message ChoiceOneofDiscovered {
diff --git a/context/src/main/proto/spine/validation/views.proto b/context/src/main/proto/spine/validation/views.proto
index e53356f3f9..f4bf2e7c4b 100644
--- a/context/src/main/proto/spine/validation/views.proto
+++ b/context/src/main/proto/spine/validation/views.proto
@@ -36,8 +36,6 @@ option java_outer_classname = "ViewsProto";
option java_multiple_files = true;
import "spine/compiler/ast.proto";
-import "spine/time_options.proto";
-import "spine/validation/time_field_type.proto";
import "spine/validation/field_group.proto";
// A view on a field that is recognized as required.
@@ -130,25 +128,6 @@ message DistinctField {
string error_message = 3;
}
-// A view of a field that is marked with `(when)` option.
-message WhenField {
- option (entity).kind = PROJECTION;
-
- compiler.FieldRef id = 1;
-
- // The field in which the option was discovered.
- compiler.Field subject = 2;
-
- // The error message template.
- string error_message = 3;
-
- // Defines a restriction for the timestamp.
- Time bound = 4;
-
- // The type of the field.
- spine.validation.TimeFieldType type = 5;
-}
-
// A view of a `oneof` group that is marked with `(choice).required = true` option.
message ChoiceOneof {
option (entity).kind = PROJECTION;
diff --git a/dependencies.md b/dependencies.md
index b4ae29fbfa..77e818ca12 100644
--- a/dependencies.md
+++ b/dependencies.md
@@ -1,6 +1,6 @@
-# Dependencies of `io.spine.tools:validation-context:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-context:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
@@ -335,11 +335,11 @@
* **Project URL:** [https://github.com/google/gson](https://github.com/google/gson)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
+1. **Group** : com.google.devtools.ksp. **Name** : com.google.devtools.ksp.gradle.plugin. **Version** : 2.3.6.
* **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-aa-embeddable. **Version** : 2.3.6.
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
* **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -461,10 +461,6 @@
* **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next)
* **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt)
-1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0.
- * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/)
- * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.2.0.
* **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -473,10 +469,6 @@
* **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.squareup. **Name** : kotlinpoet-ksp. **Version** : 2.2.0.
- * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : commons-codec. **Name** : commons-codec. **Version** : 1.16.0.
* **Project URL:** [https://commons.apache.org/proper/commons-codec/](https://commons.apache.org/proper/commons-codec/)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -640,27 +632,27 @@
* **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
@@ -764,14 +756,6 @@
1. **Group** : org.jacoco. **Name** : org.jacoco.report. **Version** : 0.8.14.
* **License:** [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/)
-1. **Group** : org.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.29.0.Final.
- * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html)
- * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt)
-
-1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.29.0.Final.
- * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html)
- * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt)
-
1. **Group** : org.jcommander. **Name** : jcommander. **Version** : 1.85.
* **Project URL:** [https://jcommander.org](https://jcommander.org)
* **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -788,31 +772,31 @@
* **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-symbols. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-symbols. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : templating-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : templating-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -820,14 +804,6 @@
* **Project URL:** [https://github.com/JetBrains/intellij-deps-trove4j](https://github.com/JetBrains/intellij-deps-trove4j)
* **License:** [GNU LESSER GENERAL PUBLIC LICENSE 2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)
-1. **Group** : org.jetbrains.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.8.0-intellij-14.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0-intellij-14.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -1114,19 +1090,20 @@
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-context-tests:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-context-tests:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
* **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.20.
* **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
@@ -1355,6 +1332,7 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
* **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.20.
* **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
@@ -1452,7 +1430,7 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.4.8-jre.
+1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.5.0-jre.
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
@@ -1503,6 +1481,9 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile)
* **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)
+1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.16.
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -1542,27 +1523,27 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
@@ -1614,22 +1595,106 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
1. **Group** : org.hamcrest. **Name** : hamcrest-core. **Version** : 1.3.
* **License:** [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
+ * **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 23.0.0.
* **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools-api. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-compat. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-cri-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-abi-reader. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-metadata-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 1.6.10.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-tooling-core. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.29.0.
* **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -1650,6 +1715,10 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -1674,19 +1743,19 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [http://jspecify.org/](http://jspecify.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.junit. **Name** : junit-bom. **Version** : 6.0.0.
+1. **Group** : org.junit. **Name** : junit-bom. **Version** : 6.0.3.
* **Project URL:** [https://junit.org/](https://junit.org/)
* **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
-1. **Group** : org.junit. **Name** : junit-bom. **Version** : 6.0.3.
- * **Project URL:** [https://junit.org/](https://junit.org/)
+1. **Group** : org.junit-pioneer. **Name** : junit-pioneer. **Version** : 2.3.0.
+ * **Project URL:** [https://junit-pioneer.org/](https://junit-pioneer.org/)
* **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
-1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 6.0.0.
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 6.0.3.
* **Project URL:** [https://junit.org/](https://junit.org/)
* **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
-1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 6.0.3.
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 6.0.3.
* **Project URL:** [https://junit.org/](https://junit.org/)
* **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
@@ -1694,11 +1763,15 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://junit.org/](https://junit.org/)
* **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
-1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 6.0.0.
+1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 6.0.3.
* **Project URL:** [https://junit.org/](https://junit.org/)
* **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
-1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 6.0.3.
+1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.platform. **Name** : junit-platform-launcher. **Version** : 6.0.3.
* **Project URL:** [https://junit.org/](https://junit.org/)
* **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
@@ -1718,28 +1791,28 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-docs:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-docs:2.0.0-SNAPSHOT.412`
## Runtime
## Compile, tests, and tooling
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:14:11 WEST 2026** using
+This report was generated on **Thu Apr 23 20:08:09 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-gradle-plugin:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-gradle-plugin:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
@@ -2317,27 +2390,27 @@ This report was generated on **Fri Apr 03 20:14:11 WEST 2026** using
* **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
@@ -2453,31 +2526,31 @@ This report was generated on **Fri Apr 03 20:14:11 WEST 2026** using
* **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-symbols. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-symbols. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : templating-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : templating-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -2791,14 +2864,14 @@ This report was generated on **Fri Apr 03 20:14:11 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-java:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-java:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
@@ -3133,6 +3206,26 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/google/gson](https://github.com/google/gson)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : com.google.devtools.ksp. **Name** : com.google.devtools.ksp.gradle.plugin. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-api. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-common-deps. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-gradle-plugin. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : com.google.errorprone. **Name** : error_prone_annotation. **Version** : 2.36.0.
* **Project URL:** [https://errorprone.info/error_prone_annotation](https://errorprone.info/error_prone_annotation)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -3168,6 +3261,10 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
1. **Group** : com.google.googlejavaformat. **Name** : google-java-format. **Version** : 1.19.1.
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : com.google.gradle. **Name** : osdetector-gradle-plugin. **Version** : 1.7.3.
+ * **Project URL:** [https://github.com/google/osdetector-gradle-plugin](https://github.com/google/osdetector-gradle-plugin)
+ * **License:** [Apache License 2.0](http://opensource.org/licenses/Apache-2.0)
+
1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
* **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -3186,6 +3283,10 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : com.google.protobuf. **Name** : protobuf-gradle-plugin. **Version** : 0.9.6.
+ * **Project URL:** [https://github.com/google/protobuf-gradle-plugin](https://github.com/google/protobuf-gradle-plugin)
+ * **License:** [BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause)
+
1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1.
* **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
* **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
@@ -3231,6 +3332,14 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/korlibs/korge-next](https://github.com/korlibs/korge-next)
* **License:** [MIT](https://raw.githubusercontent.com/korlibs/korge-next/master/korge/LICENSE.txt)
+1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.2.0.
+ * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.squareup. **Name** : kotlinpoet-jvm. **Version** : 2.2.0.
+ * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : commons-codec. **Name** : commons-codec. **Version** : 1.16.0.
* **Project URL:** [https://commons.apache.org/proper/commons-codec/](https://commons.apache.org/proper/commons-codec/)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -3243,6 +3352,10 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/drewhamilton/Poko](https://github.com/drewhamilton/Poko)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : dev.zacsweers.autoservice. **Name** : auto-service-ksp. **Version** : 1.2.0.
+ * **Project URL:** [https://github.com/ZacSweers/auto-service-ksp](https://github.com/ZacSweers/auto-service-ksp)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : io.github.davidburstrom.contester. **Name** : contester-breakpoint. **Version** : 0.2.0.
* **Project URL:** [https://github.com/davidburstrom/contester](https://github.com/davidburstrom/contester)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -3390,27 +3503,27 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
@@ -3430,6 +3543,10 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [http://junit.org](http://junit.org)
* **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html)
+1. **Group** : kr.motd.maven. **Name** : os-maven-plugin. **Version** : 1.7.1.
+ * **Project URL:** [https://github.com/trustin/os-maven-plugin/](https://github.com/trustin/os-maven-plugin/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
1. **Group** : net.sf.saxon. **Name** : Saxon-HE. **Version** : 12.5.
* **Project URL:** [http://www.saxonica.com/](http://www.saxonica.com/)
* **License:** [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/2.0/)
@@ -3526,31 +3643,31 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-symbols. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-symbols. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : templating-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : templating-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -3844,14 +3961,14 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-java-bundle:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-java-bundle:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
@@ -3898,14 +4015,14 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:22 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine:spine-validation-jvm-runtime:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine:spine-validation-jvm-runtime:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -4271,27 +4388,27 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://detekt.dev](https://detekt.dev)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
@@ -4391,31 +4508,31 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/JetBrains/markdown](https://github.com/JetBrains/markdown)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-symbols. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : analysis-kotlin-symbols. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : analysis-markdown. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : dokka-base. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : dokka-core. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : javadoc-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : kotlin-as-java-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.dokka. **Name** : templating-plugin. **Version** : 2.1.0.
+1. **Group** : org.jetbrains.dokka. **Name** : templating-plugin. **Version** : 2.2.0.
* **Project URL:** [https://github.com/Kotlin/dokka](https://github.com/Kotlin/dokka)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -4705,14 +4822,14 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-consumer:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-time-validation-tests:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
@@ -5021,10 +5138,6 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/google/gson](https://github.com/google/gson)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.8.9.
- * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
* **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5049,7 +5162,7 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.4.8-jre.
+1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.5.0-jre.
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
@@ -5100,6 +5213,9 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile)
* **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)
+1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.16.
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5139,27 +5255,27 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.0.3.
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
@@ -5175,6 +5291,14 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [http://junit.org](http://junit.org)
* **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html)
+1. **Group** : org.apache.logging.log4j. **Name** : log4j-api. **Version** : 2.20.0.
+ * **Project URL:** [https://www.apache.org/](https://www.apache.org/)
+ * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.apache.logging.log4j. **Name** : log4j-core. **Version** : 2.20.0.
+ * **Project URL:** [https://www.apache.org/](https://www.apache.org/)
+ * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.apiguardian. **Name** : apiguardian-api. **Version** : 1.1.2.
* **Project URL:** [https://github.com/apiguardian-team/apiguardian](https://github.com/apiguardian-team/apiguardian)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5211,59 +5335,143 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools-api. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-compat. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.29.0.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-cri-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu-jvm. **Version** : 0.29.0.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.2.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.2.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test. **Version** : 1.10.2.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-abi-reader. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test-jvm. **Version** : 1.10.2.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1.
- * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-metadata-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1.
- * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 1.6.10.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-tooling-core. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.29.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu-jvm. **Version** : 0.29.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test-jvm. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0.
* **Project URL:** [http://jspecify.org/](http://jspecify.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5271,14 +5479,34 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://junit.org/](https://junit.org/)
* **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+1. **Group** : org.junit-pioneer. **Name** : junit-pioneer. **Version** : 2.3.0.
+ * **Project URL:** [https://junit-pioneer.org/](https://junit-pioneer.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 6.0.3.
* **Project URL:** [https://junit.org/](https://junit.org/)
* **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 6.0.3.
* **Project URL:** [https://junit.org/](https://junit.org/)
* **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.platform. **Name** : junit-platform-launcher. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
1. **Group** : org.opentest4j. **Name** : opentest4j. **Version** : 1.3.0.
* **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j)
* **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5295,80 +5523,16 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-consumer-dependency:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-consumer:2.0.0-SNAPSHOT.412`
## Runtime
-1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
- * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/)
- * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.8.9.
- * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
- * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
- * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
- * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
- * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre.
- * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
- * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
- * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 3.1.
- * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
- * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1.
- * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
- * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
-
-1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.34.1.
- * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
- * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
-
-1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.34.1.
- * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
- * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
-
-1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
- * **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
- * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0.
- * **Project URL:** [http://jspecify.org/](http://jspecify.org/)
- * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-## Compile, tests, and tooling
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
* **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5442,42 +5606,10 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/google/gson](https://github.com/google/gson)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.8.9.
- * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
- * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
- * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
- * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-aa-embeddable. **Version** : 2.3.6.
- * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
- * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-api. **Version** : 2.3.6.
- * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
- * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-common-deps. **Version** : 2.3.6.
- * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
- * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-gradle-plugin. **Version** : 2.3.6.
- * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
- * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
* **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.errorprone. **Name** : error_prone_type_annotations. **Version** : 2.36.0.
- * **Project URL:** [https://errorprone.info/error_prone_type_annotations](https://errorprone.info/error_prone_type_annotations)
- * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.google.gradle. **Name** : osdetector-gradle-plugin. **Version** : 1.7.3.
- * **Project URL:** [https://github.com/google/osdetector-gradle-plugin](https://github.com/google/osdetector-gradle-plugin)
- * **License:** [Apache License 2.0](http://opensource.org/licenses/Apache-2.0)
-
1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
* **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5493,10 +5625,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.protobuf. **Name** : protobuf-gradle-plugin. **Version** : 0.9.6.
- * **Project URL:** [https://github.com/google/protobuf-gradle-plugin](https://github.com/google/protobuf-gradle-plugin)
- * **License:** [BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause)
-
1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1.
* **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
* **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
@@ -5509,11 +5637,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
* **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
-1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 4.34.1.
- * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
- * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
- * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format. **Version** : 2.75.0.
* **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
* **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
@@ -5526,29 +5649,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile)
* **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0.
- * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/)
- * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.2.0.
- * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.squareup. **Name** : kotlinpoet-jvm. **Version** : 2.2.0.
- * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.squareup. **Name** : kotlinpoet-ksp. **Version** : 2.2.0.
- * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : dev.zacsweers.autoservice. **Name** : auto-service-ksp. **Version** : 1.2.0.
- * **Project URL:** [https://github.com/ZacSweers/auto-service-ksp](https://github.com/ZacSweers/auto-service-ksp)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12.
- * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.76.0.
* **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
@@ -5593,18 +5693,10 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250)
* **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE)
-1. **Group** : kr.motd.maven. **Name** : os-maven-plugin. **Version** : 1.7.1.
- * **Project URL:** [https://github.com/trustin/os-maven-plugin/](https://github.com/trustin/os-maven-plugin/)
- * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
-
1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.37.0.
* **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
* **License:** [The MIT License](http://opensource.org/licenses/MIT)
-1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0.
- * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
- * **License:** [The MIT License](http://opensource.org/licenses/MIT)
-
1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.24.
* **License:** [MIT license](https://spdx.org/licenses/MIT.txt)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5613,123 +5705,19 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [http://functionaljava.org/](http://functionaljava.org/)
* **License:** [The BSD3 License](https://github.com/functionaljava/functionaljava/blob/master/etc/LICENCE)
-1. **Group** : org.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.29.0.Final.
- * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html)
- * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt)
-
-1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.29.0.Final.
- * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html)
- * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt)
-
-1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
- * **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
- * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 23.0.0.
* **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.8.0-intellij-14.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0-intellij-14.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools-api. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.3.20.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-compat. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-cri-impl. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-abi-reader. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-metadata-jvm. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 1.6.10.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.0.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-tooling-core. **Version** : 2.3.20.
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5753,10 +5741,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5777,22 +5761,11 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-
-This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
-[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
-[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-
-
-
-
-# Dependencies of `io.spine.tools:validation-extensions:2.0.0-SNAPSHOT.411`
-
-## Runtime
+## Compile, tests, and tooling
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
* **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.20.
* **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
@@ -5854,6 +5827,10 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/google/auto/tree/main/service](https://github.com/google/auto/tree/main/service)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : com.google.auto.value. **Name** : auto-value-annotations. **Version** : 1.11.0.
+ * **Project URL:** [https://github.com/google/auto/tree/main/value](https://github.com/google/auto/tree/main/value)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
* **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5862,10 +5839,26 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/google/gson](https://github.com/google/gson)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.8.9.
+ * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
* **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : com.google.errorprone. **Name** : error_prone_type_annotations. **Version** : 2.36.0.
+ * **Project URL:** [https://errorprone.info/error_prone_type_annotations](https://errorprone.info/error_prone_type_annotations)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.flogger. **Name** : flogger. **Version** : 0.7.4.
+ * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger)
+ * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.flogger. **Name** : flogger-system-backend. **Version** : 0.7.4.
+ * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger)
+ * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
* **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5874,6 +5867,9 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.5.0-jre.
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5893,6 +5889,23 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
* **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.truth. **Name** : truth. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.truth.extensions. **Name** : truth-java8-extension. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.truth.extensions. **Name** : truth-liteproto-extension. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.truth.extensions. **Name** : truth-proto-extension. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format. **Version** : 2.75.0.
* **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
* **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
@@ -5905,6 +5918,12 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile)
* **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)
+1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.16.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.76.0.
* **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
@@ -5941,6 +5960,30 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
1. **Group** : io.perfmark. **Name** : perfmark-api. **Version** : 0.27.0.
* **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
@@ -5949,10 +5992,27 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250)
* **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE)
+1. **Group** : junit. **Name** : junit. **Version** : 4.13.2.
+ * **Project URL:** [http://junit.org](http://junit.org)
+ * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html)
+
+1. **Group** : org.apiguardian. **Name** : apiguardian-api. **Version** : 1.1.2.
+ * **Project URL:** [https://github.com/apiguardian-team/apiguardian](https://github.com/apiguardian-team/apiguardian)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.checkerframework. **Name** : checker-compat-qual. **Version** : 2.5.3.
+ * **Project URL:** [https://checkerframework.org](https://checkerframework.org)
+ * **License:** [GNU General Public License, version 2 (GPL2), with the classpath exception](http://www.gnu.org/software/classpath/license.html)
+ * **License:** [The MIT License](http://opensource.org/licenses/MIT)
+
1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.37.0.
* **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
* **License:** [The MIT License](http://opensource.org/licenses/MIT)
+1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0.
+ * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
+ * **License:** [The MIT License](http://opensource.org/licenses/MIT)
+
1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.24.
* **License:** [MIT license](https://spdx.org/licenses/MIT.txt)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -5961,22 +6021,105 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [http://functionaljava.org/](http://functionaljava.org/)
* **License:** [The BSD3 License](https://github.com/functionaljava/functionaljava/blob/master/etc/LICENCE)
+1. **Group** : org.hamcrest. **Name** : hamcrest-core. **Version** : 1.3.
+ * **License:** [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
+ * **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 23.0.0.
* **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools-api. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-compat. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-cri-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-abi-reader. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-metadata-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-tooling-core. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.29.0.
* **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6001,8 +6144,16 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1.
- * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test-jvm. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1.
@@ -6013,14 +6164,132 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [http://jspecify.org/](http://jspecify.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.junit. **Name** : junit-bom. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit-pioneer. **Name** : junit-pioneer. **Version** : 2.3.0.
+ * **Project URL:** [https://junit-pioneer.org/](https://junit-pioneer.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.platform. **Name** : junit-platform-launcher. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.opentest4j. **Name** : opentest4j. **Version** : 1.3.0.
+ * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j)
+ * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.7.
+ * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/)
+ * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.4.
* **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
+
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
+[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
+[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
+
+
+
+
+# Dependencies of `io.spine.tools:validation-consumer-dependency:2.0.0-SNAPSHOT.412`
+
+## Runtime
+1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
+ * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.8.9.
+ * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
+ * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
+ * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre.
+ * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 3.1.
+ * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
+ * **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0.
+ * **Project URL:** [http://jspecify.org/](http://jspecify.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
## Compile, tests, and tooling
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
* **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.20.
* **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
@@ -6090,11 +6359,15 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/google/gson](https://github.com/google/gson)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
+1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.8.9.
+ * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : com.google.devtools.ksp.gradle.plugin. **Version** : 2.3.6.
* **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-aa-embeddable. **Version** : 2.3.6.
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
* **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6102,13 +6375,1621 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-common-deps. **Version** : 2.3.6.
- * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
- * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-common-deps. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-gradle-plugin. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
+ * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.errorprone. **Name** : error_prone_type_annotations. **Version** : 2.36.0.
+ * **Project URL:** [https://errorprone.info/error_prone_type_annotations](https://errorprone.info/error_prone_type_annotations)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.gradle. **Name** : osdetector-gradle-plugin. **Version** : 1.7.3.
+ * **Project URL:** [https://github.com/google/osdetector-gradle-plugin](https://github.com/google/osdetector-gradle-plugin)
+ * **License:** [Apache License 2.0](http://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
+ * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre.
+ * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 3.1.
+ * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-gradle-plugin. **Version** : 0.9.6.
+ * **Project URL:** [https://github.com/google/protobuf-gradle-plugin](https://github.com/google/protobuf-gradle-plugin)
+ * **License:** [BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format. **Version** : 2.75.0.
+ * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
+ * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format-spi. **Version** : 2.75.0.
+ * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
+ * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 2.1.2.
+ * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile)
+ * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.2.0.
+ * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.squareup. **Name** : kotlinpoet-jvm. **Version** : 2.2.0.
+ * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : dev.zacsweers.autoservice. **Name** : auto-service-ksp. **Version** : 1.2.0.
+ * **Project URL:** [https://github.com/ZacSweers/auto-service-ksp](https://github.com/ZacSweers/auto-service-ksp)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-bom. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-kotlin-stub. **Version** : 1.4.1.
+ * **Project URL:** [https://github.com/grpc/grpc-kotlin](https://github.com/grpc/grpc-kotlin)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.perfmark. **Name** : perfmark-api. **Version** : 0.27.0.
+ * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2.
+ * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250)
+ * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE)
+
+1. **Group** : kr.motd.maven. **Name** : os-maven-plugin. **Version** : 1.7.1.
+ * **Project URL:** [https://github.com/trustin/os-maven-plugin/](https://github.com/trustin/os-maven-plugin/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.37.0.
+ * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
+ * **License:** [The MIT License](http://opensource.org/licenses/MIT)
+
+1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0.
+ * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
+ * **License:** [The MIT License](http://opensource.org/licenses/MIT)
+
+1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.24.
+ * **License:** [MIT license](https://spdx.org/licenses/MIT.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.functionaljava. **Name** : functionaljava. **Version** : 4.8.
+ * **Project URL:** [http://functionaljava.org/](http://functionaljava.org/)
+ * **License:** [The BSD3 License](https://github.com/functionaljava/functionaljava/blob/master/etc/LICENCE)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
+ * **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 23.0.0.
+ * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools-api. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-compat. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-cri-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-abi-reader. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-metadata-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 1.6.10.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.1.21.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.0.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-tooling-core. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.29.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu-jvm. **Version** : 0.29.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0.
+ * **Project URL:** [http://jspecify.org/](http://jspecify.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.4.
+ * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+
+The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
+
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
+[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
+[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
+
+
+
+
+# Dependencies of `io.spine.tools:validation-extensions:2.0.0-SNAPSHOT.412`
+
+## Runtime
+1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.20.
+ * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-core. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-databind. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-guava. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-datatypes-collections](https://github.com/FasterXML/jackson-datatypes-collections)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-jdk8. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8](https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-jsr310. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310](https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-parameter-names. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names](https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8.
+ * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine)
+ * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4.
+ * **Project URL:** [http://source.android.com/](http://source.android.com/)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.59.2.
+ * **Project URL:** [https://github.com/googleapis/sdk-platform-java](https://github.com/googleapis/sdk-platform-java)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.auto.service. **Name** : auto-service-annotations. **Version** : 1.1.1.
+ * **Project URL:** [https://github.com/google/auto/tree/main/service](https://github.com/google/auto/tree/main/service)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
+ * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.11.0.
+ * **Project URL:** [https://github.com/google/gson](https://github.com/google/gson)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
+ * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
+ * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre.
+ * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 3.1.
+ * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format. **Version** : 2.75.0.
+ * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
+ * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format-spi. **Version** : 2.75.0.
+ * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
+ * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 2.1.2.
+ * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile)
+ * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-bom. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-kotlin-stub. **Version** : 1.4.1.
+ * **Project URL:** [https://github.com/grpc/grpc-kotlin](https://github.com/grpc/grpc-kotlin)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.perfmark. **Name** : perfmark-api. **Version** : 0.27.0.
+ * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2.
+ * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250)
+ * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE)
+
+1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.37.0.
+ * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
+ * **License:** [The MIT License](http://opensource.org/licenses/MIT)
+
+1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.24.
+ * **License:** [MIT license](https://spdx.org/licenses/MIT.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.functionaljava. **Name** : functionaljava. **Version** : 4.8.
+ * **Project URL:** [http://functionaljava.org/](http://functionaljava.org/)
+ * **License:** [The BSD3 License](https://github.com/functionaljava/functionaljava/blob/master/etc/LICENCE)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 23.0.0.
+ * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.29.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu-jvm. **Version** : 0.29.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0.
+ * **Project URL:** [http://jspecify.org/](http://jspecify.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.4.
+ * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+## Compile, tests, and tooling
+1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.20.
+ * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-core. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-databind. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-guava. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-datatypes-collections](https://github.com/FasterXML/jackson-datatypes-collections)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-jdk8. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8](https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-jsr310. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310](https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-parameter-names. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names](https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8.
+ * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine)
+ * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4.
+ * **Project URL:** [http://source.android.com/](http://source.android.com/)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.59.2.
+ * **Project URL:** [https://github.com/googleapis/sdk-platform-java](https://github.com/googleapis/sdk-platform-java)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.auto.service. **Name** : auto-service-annotations. **Version** : 1.1.1.
+ * **Project URL:** [https://github.com/google/auto/tree/main/service](https://github.com/google/auto/tree/main/service)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
+ * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.11.0.
+ * **Project URL:** [https://github.com/google/gson](https://github.com/google/gson)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : com.google.devtools.ksp.gradle.plugin. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-api. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-common-deps. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-gradle-plugin. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
+ * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.errorprone. **Name** : error_prone_type_annotations. **Version** : 2.36.0.
+ * **Project URL:** [https://errorprone.info/error_prone_type_annotations](https://errorprone.info/error_prone_type_annotations)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.gradle. **Name** : osdetector-gradle-plugin. **Version** : 1.7.3.
+ * **Project URL:** [https://github.com/google/osdetector-gradle-plugin](https://github.com/google/osdetector-gradle-plugin)
+ * **License:** [Apache License 2.0](http://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
+ * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre.
+ * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 3.1.
+ * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-gradle-plugin. **Version** : 0.9.6.
+ * **Project URL:** [https://github.com/google/protobuf-gradle-plugin](https://github.com/google/protobuf-gradle-plugin)
+ * **License:** [BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format. **Version** : 2.75.0.
+ * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
+ * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format-spi. **Version** : 2.75.0.
+ * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
+ * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 2.1.2.
+ * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile)
+ * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.2.0.
+ * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.squareup. **Name** : kotlinpoet-jvm. **Version** : 2.2.0.
+ * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : dev.zacsweers.autoservice. **Name** : auto-service-ksp. **Version** : 1.2.0.
+ * **Project URL:** [https://github.com/ZacSweers/auto-service-ksp](https://github.com/ZacSweers/auto-service-ksp)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-bom. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-kotlin-stub. **Version** : 1.4.1.
+ * **Project URL:** [https://github.com/grpc/grpc-kotlin](https://github.com/grpc/grpc-kotlin)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.perfmark. **Name** : perfmark-api. **Version** : 0.27.0.
+ * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2.
+ * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250)
+ * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE)
+
+1. **Group** : kr.motd.maven. **Name** : os-maven-plugin. **Version** : 1.7.1.
+ * **Project URL:** [https://github.com/trustin/os-maven-plugin/](https://github.com/trustin/os-maven-plugin/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.37.0.
+ * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
+ * **License:** [The MIT License](http://opensource.org/licenses/MIT)
+
+1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0.
+ * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
+ * **License:** [The MIT License](http://opensource.org/licenses/MIT)
+
+1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.24.
+ * **License:** [MIT license](https://spdx.org/licenses/MIT.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.functionaljava. **Name** : functionaljava. **Version** : 4.8.
+ * **Project URL:** [http://functionaljava.org/](http://functionaljava.org/)
+ * **License:** [The BSD3 License](https://github.com/functionaljava/functionaljava/blob/master/etc/LICENCE)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
+ * **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 23.0.0.
+ * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools-api. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-compat. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-cri-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-abi-reader. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-metadata-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 1.6.10.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.1.21.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.0.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-tooling-core. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.29.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu-jvm. **Version** : 0.29.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0.
+ * **Project URL:** [http://jspecify.org/](http://jspecify.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.4.
+ * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+
+The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
+
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
+[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
+[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
+
+
+
+
+# Dependencies of `io.spine.tools:validation-runtime:2.0.0-SNAPSHOT.412`
+
+## Runtime
+1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
+ * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.8.9.
+ * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
+ * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
+ * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre.
+ * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 3.1.
+ * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
+ * **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0.
+ * **Project URL:** [http://jspecify.org/](http://jspecify.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+## Compile, tests, and tooling
+1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.20.
+ * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-core. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-databind. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.dataformat. **Name** : jackson-dataformat-yaml. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-dataformats-text](https://github.com/FasterXML/jackson-dataformats-text)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-guava. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-datatypes-collections](https://github.com/FasterXML/jackson-datatypes-collections)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-jdk8. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8](https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-jsr310. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310](https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-kotlin. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-parameter-names. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names](https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.github.ben-manes.caffeine. **Name** : caffeine. **Version** : 3.1.8.
+ * **Project URL:** [https://github.com/ben-manes/caffeine](https://github.com/ben-manes/caffeine)
+ * **License:** [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.android. **Name** : annotations. **Version** : 4.1.1.4.
+ * **Project URL:** [http://source.android.com/](http://source.android.com/)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : com.google.api.grpc. **Name** : proto-google-common-protos. **Version** : 2.59.2.
+ * **Project URL:** [https://github.com/googleapis/sdk-platform-java](https://github.com/googleapis/sdk-platform-java)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.auto.service. **Name** : auto-service-annotations. **Version** : 1.1.1.
+ * **Project URL:** [https://github.com/google/auto/tree/main/service](https://github.com/google/auto/tree/main/service)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.auto.value. **Name** : auto-value-annotations. **Version** : 1.11.0.
+ * **Project URL:** [https://github.com/google/auto/tree/main/value](https://github.com/google/auto/tree/main/value)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
+ * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.11.0.
+ * **Project URL:** [https://github.com/google/gson](https://github.com/google/gson)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.8.9.
+ * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : com.google.devtools.ksp.gradle.plugin. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-api. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-common-deps. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-gradle-plugin. **Version** : 2.3.6.
+ * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
+ * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.errorprone. **Name** : error_prone_type_annotations. **Version** : 2.36.0.
+ * **Project URL:** [https://errorprone.info/error_prone_type_annotations](https://errorprone.info/error_prone_type_annotations)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.flogger. **Name** : flogger. **Version** : 0.7.4.
+ * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger)
+ * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.flogger. **Name** : flogger-system-backend. **Version** : 0.7.4.
+ * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger)
+ * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.gradle. **Name** : osdetector-gradle-plugin. **Version** : 1.7.3.
+ * **Project URL:** [https://github.com/google/osdetector-gradle-plugin](https://github.com/google/osdetector-gradle-plugin)
+ * **License:** [Apache License 2.0](http://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
+ * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre.
+ * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.5.0-jre.
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 3.1.
+ * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-gradle-plugin. **Version** : 0.9.6.
+ * **Project URL:** [https://github.com/google/protobuf-gradle-plugin](https://github.com/google/protobuf-gradle-plugin)
+ * **License:** [BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protoc. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.truth. **Name** : truth. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.truth.extensions. **Name** : truth-java8-extension. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.truth.extensions. **Name** : truth-liteproto-extension. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.truth.extensions. **Name** : truth-proto-extension. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format. **Version** : 2.75.0.
+ * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
+ * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format-spi. **Version** : 2.75.0.
+ * **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
+ * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 2.1.2.
+ * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile)
+ * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.2.0.
+ * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.squareup. **Name** : kotlinpoet-jvm. **Version** : 2.2.0.
+ * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : dev.zacsweers.autoservice. **Name** : auto-service-ksp. **Version** : 1.2.0.
+ * **Project URL:** [https://github.com/ZacSweers/auto-service-ksp](https://github.com/ZacSweers/auto-service-ksp)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.16.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-bom. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-kotlin-stub. **Version** : 1.4.1.
+ * **Project URL:** [https://github.com/grpc/grpc-kotlin](https://github.com/grpc/grpc-kotlin)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.76.0.
+ * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : io.perfmark. **Name** : perfmark-api. **Version** : 0.27.0.
+ * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark)
+ * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+
+1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2.
+ * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250)
+ * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE)
+
+1. **Group** : junit. **Name** : junit. **Version** : 4.13.2.
+ * **Project URL:** [http://junit.org](http://junit.org)
+ * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html)
+
+1. **Group** : kr.motd.maven. **Name** : os-maven-plugin. **Version** : 1.7.1.
+ * **Project URL:** [https://github.com/trustin/os-maven-plugin/](https://github.com/trustin/os-maven-plugin/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+1. **Group** : org.apiguardian. **Name** : apiguardian-api. **Version** : 1.1.2.
+ * **Project URL:** [https://github.com/apiguardian-team/apiguardian](https://github.com/apiguardian-team/apiguardian)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.checkerframework. **Name** : checker-compat-qual. **Version** : 2.5.3.
+ * **Project URL:** [https://checkerframework.org](https://checkerframework.org)
+ * **License:** [GNU General Public License, version 2 (GPL2), with the classpath exception](http://www.gnu.org/software/classpath/license.html)
+ * **License:** [The MIT License](http://opensource.org/licenses/MIT)
+
+1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.37.0.
+ * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
+ * **License:** [The MIT License](http://opensource.org/licenses/MIT)
+
+1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0.
+ * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
+ * **License:** [The MIT License](http://opensource.org/licenses/MIT)
+
+1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.24.
+ * **License:** [MIT license](https://spdx.org/licenses/MIT.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.functionaljava. **Name** : functionaljava. **Version** : 4.8.
+ * **Project URL:** [http://functionaljava.org/](http://functionaljava.org/)
+ * **License:** [The BSD3 License](https://github.com/functionaljava/functionaljava/blob/master/etc/LICENCE)
+
+1. **Group** : org.hamcrest. **Name** : hamcrest-core. **Version** : 1.3.
+ * **License:** [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
+ * **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 23.0.0.
+ * **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools-api. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-api. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-compat. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-cri-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-build-tools-impl. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-compiler-runner. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-client. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-daemon-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-abi-reader. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-klib-commonizer-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-metadata-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-script-runtime. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-common. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-compiler-impl-embeddable. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-scripting-jvm. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-tooling-core. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu. **Version** : 0.29.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : atomicfu-jvm. **Version** : 0.29.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test-jvm. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime. **Version** : 0.7.1.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-datetime-jvm. **Version** : 0.7.1.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0.
+ * **Project URL:** [http://jspecify.org/](http://jspecify.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.junit. **Name** : junit-bom. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit-pioneer. **Name** : junit-pioneer. **Version** : 2.3.0.
+ * **Project URL:** [https://junit-pioneer.org/](https://junit-pioneer.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.platform. **Name** : junit-platform-launcher. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.opentest4j. **Name** : opentest4j. **Version** : 1.3.0.
+ * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j)
+ * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.7.
+ * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/)
+ * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.4.
+ * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+
+The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
+
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
+[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
+[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
+
+
+
+
+# Dependencies of `io.spine.tools:validation-time-consumer:2.0.0-SNAPSHOT.412`
+
+## Runtime
+1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
+ * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.8.9.
+ * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
+ * **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
+ * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : guava. **Version** : 33.5.0-jre.
+ * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.j2objc. **Name** : j2objc-annotations. **Version** : 3.1.
+ * **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-java-util. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : com.google.protobuf. **Name** : protobuf-kotlin. **Version** : 4.34.1.
+ * **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
+ * **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
+
+1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
+ * **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-bom. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jspecify. **Name** : jspecify. **Version** : 1.0.0.
+ * **Project URL:** [http://jspecify.org/](http://jspecify.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+## Compile, tests, and tooling
+1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.20.
+ * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-core. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-core](https://github.com/FasterXML/jackson-core)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-databind. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-guava. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-datatypes-collections](https://github.com/FasterXML/jackson-datatypes-collections)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.datatype. **Name** : jackson-datatype-jdk8. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8](https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.fasterxml.jackson.module. **Name** : jackson-module-parameter-names. **Version** : 2.20.0.
+ * **Project URL:** [https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names](https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names)
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.auto.value. **Name** : auto-value-annotations. **Version** : 1.11.0.
+ * **Project URL:** [https://github.com/google/auto/tree/main/value](https://github.com/google/auto/tree/main/value)
+ * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-gradle-plugin. **Version** : 2.3.6.
- * **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
- * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
+ * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.code.gson. **Name** : gson. **Version** : 2.8.9.
+ * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
1. **Group** : com.google.errorprone. **Name** : error_prone_annotations. **Version** : 2.41.0.
* **Project URL:** [https://errorprone.info/error_prone_annotations](https://errorprone.info/error_prone_annotations)
@@ -6118,9 +7999,13 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://errorprone.info/error_prone_type_annotations](https://errorprone.info/error_prone_type_annotations)
* **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.gradle. **Name** : osdetector-gradle-plugin. **Version** : 1.7.3.
- * **Project URL:** [https://github.com/google/osdetector-gradle-plugin](https://github.com/google/osdetector-gradle-plugin)
- * **License:** [Apache License 2.0](http://opensource.org/licenses/Apache-2.0)
+1. **Group** : com.google.flogger. **Name** : flogger. **Version** : 0.7.4.
+ * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger)
+ * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.flogger. **Name** : flogger-system-backend. **Version** : 0.7.4.
+ * **Project URL:** [https://github.com/google/flogger](https://github.com/google/flogger)
+ * **License:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
1. **Group** : com.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
* **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
@@ -6130,6 +8015,9 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : com.google.guava. **Name** : guava-testlib. **Version** : 33.5.0-jre.
+ * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : com.google.guava. **Name** : listenablefuture. **Version** : 9999.0-empty-to-avoid-conflict-with-guava.
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6137,10 +8025,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/google/j2objc/](https://github.com/google/j2objc/)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.protobuf. **Name** : protobuf-gradle-plugin. **Version** : 0.9.6.
- * **Project URL:** [https://github.com/google/protobuf-gradle-plugin](https://github.com/google/protobuf-gradle-plugin)
- * **License:** [BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause)
-
1. **Group** : com.google.protobuf. **Name** : protobuf-java. **Version** : 4.34.1.
* **Project URL:** [https://developers.google.com/protocol-buffers/](https://developers.google.com/protocol-buffers/)
* **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
@@ -6158,6 +8042,18 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **License:** [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : com.google.truth. **Name** : truth. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.truth.extensions. **Name** : truth-java8-extension. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.truth.extensions. **Name** : truth-liteproto-extension. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : com.google.truth.extensions. **Name** : truth-proto-extension. **Version** : 1.4.4.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : com.palantir.javaformat. **Name** : palantir-java-format. **Version** : 2.75.0.
* **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
* **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
@@ -6166,104 +8062,59 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/palantir/palantir-java-format](https://github.com/palantir/palantir-java-format)
* **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
-1. **Group** : com.sksamuel.aedile. **Name** : aedile-core. **Version** : 2.1.2.
- * **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile)
- * **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)
-
-1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0.
- * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/)
- * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.2.0.
- * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.squareup. **Name** : kotlinpoet-jvm. **Version** : 2.2.0.
- * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : com.squareup. **Name** : kotlinpoet-ksp. **Version** : 2.2.0.
- * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : dev.zacsweers.autoservice. **Name** : auto-service-ksp. **Version** : 1.2.0.
- * **Project URL:** [https://github.com/ZacSweers/auto-service-ksp](https://github.com/ZacSweers/auto-service-ksp)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.12.
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.grpc. **Name** : grpc-api. **Version** : 1.76.0.
- * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
- * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
-
-1. **Group** : io.grpc. **Name** : grpc-bom. **Version** : 1.76.0.
- * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
- * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
-
-1. **Group** : io.grpc. **Name** : grpc-context. **Version** : 1.76.0.
- * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
- * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
-
-1. **Group** : io.grpc. **Name** : grpc-core. **Version** : 1.76.0.
- * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
- * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.16.
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.grpc. **Name** : grpc-inprocess. **Version** : 1.76.0.
- * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
- * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.grpc. **Name** : grpc-kotlin-stub. **Version** : 1.4.1.
- * **Project URL:** [https://github.com/grpc/grpc-kotlin](https://github.com/grpc/grpc-kotlin)
- * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.grpc. **Name** : grpc-protobuf. **Version** : 1.76.0.
- * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
- * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.grpc. **Name** : grpc-protobuf-lite. **Version** : 1.76.0.
- * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
- * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.grpc. **Name** : grpc-stub. **Version** : 1.76.0.
- * **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
- * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.perfmark. **Name** : perfmark-api. **Version** : 0.27.0.
- * **Project URL:** [https://github.com/perfmark/perfmark](https://github.com/perfmark/perfmark)
- * **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
+ * **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
+ * **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : javax.annotation. **Name** : javax.annotation-api. **Version** : 1.3.2.
- * **Project URL:** [http://jcp.org/en/jsr/detail?id=250](http://jcp.org/en/jsr/detail?id=250)
- * **License:** [CDDL + GPLv2 with classpath exception](https://github.com/javaee/javax.annotation/blob/master/LICENSE)
+1. **Group** : junit. **Name** : junit. **Version** : 4.13.2.
+ * **Project URL:** [http://junit.org](http://junit.org)
+ * **License:** [Eclipse Public License 1.0](http://www.eclipse.org/legal/epl-v10.html)
-1. **Group** : kr.motd.maven. **Name** : os-maven-plugin. **Version** : 1.7.1.
- * **Project URL:** [https://github.com/trustin/os-maven-plugin/](https://github.com/trustin/os-maven-plugin/)
- * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
+1. **Group** : org.apiguardian. **Name** : apiguardian-api. **Version** : 1.1.2.
+ * **Project URL:** [https://github.com/apiguardian-team/apiguardian](https://github.com/apiguardian-team/apiguardian)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.37.0.
- * **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
+1. **Group** : org.checkerframework. **Name** : checker-compat-qual. **Version** : 2.5.3.
+ * **Project URL:** [https://checkerframework.org](https://checkerframework.org)
+ * **License:** [GNU General Public License, version 2 (GPL2), with the classpath exception](http://www.gnu.org/software/classpath/license.html)
* **License:** [The MIT License](http://opensource.org/licenses/MIT)
1. **Group** : org.checkerframework. **Name** : checker-qual. **Version** : 3.40.0.
* **Project URL:** [https://checkerframework.org/](https://checkerframework.org/)
* **License:** [The MIT License](http://opensource.org/licenses/MIT)
-1. **Group** : org.codehaus.mojo. **Name** : animal-sniffer-annotations. **Version** : 1.24.
- * **License:** [MIT license](https://spdx.org/licenses/MIT.txt)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : org.functionaljava. **Name** : functionaljava. **Version** : 4.8.
* **Project URL:** [http://functionaljava.org/](http://functionaljava.org/)
* **License:** [The BSD3 License](https://github.com/functionaljava/functionaljava/blob/master/etc/LICENCE)
-1. **Group** : org.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.29.0.Final.
- * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html)
- * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt)
-
-1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.29.0.Final.
- * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html)
- * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt)
+1. **Group** : org.hamcrest. **Name** : hamcrest-core. **Version** : 1.3.
+ * **License:** [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
* **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
@@ -6273,14 +8124,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.8.0-intellij-14.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0-intellij-14.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6337,10 +8180,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 1.6.10.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6365,10 +8204,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.0.
- * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
- * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6397,11 +8232,15 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0.
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2.
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test. **Version** : 1.10.2.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test-jvm. **Version** : 1.10.2.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6417,21 +8256,58 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [http://jspecify.org/](http://jspecify.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.yaml. **Name** : snakeyaml. **Version** : 2.4.
- * **Project URL:** [https://bitbucket.org/snakeyaml/snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml)
- * **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.junit. **Name** : junit-bom. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit-pioneer. **Name** : junit-pioneer. **Version** : 2.3.0.
+ * **Project URL:** [https://junit-pioneer.org/](https://junit-pioneer.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-api. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-engine. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.jupiter. **Name** : junit-jupiter-params. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.platform. **Name** : junit-platform-commons. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.platform. **Name** : junit-platform-engine. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.junit.platform. **Name** : junit-platform-launcher. **Version** : 6.0.3.
+ * **Project URL:** [https://junit.org/](https://junit.org/)
+ * **License:** [Eclipse Public License v2.0](https://www.eclipse.org/legal/epl-v20.html)
+
+1. **Group** : org.opentest4j. **Name** : opentest4j. **Version** : 1.3.0.
+ * **Project URL:** [https://github.com/ota4j-team/opentest4j](https://github.com/ota4j-team/opentest4j)
+ * **License:** [The Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.ow2.asm. **Name** : asm. **Version** : 9.7.
+ * **Project URL:** [http://asm.ow2.io/](http://asm.ow2.io/)
+ * **License:** [BSD-3-Clause](https://asm.ow2.io/license.html)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-runtime:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-time-validating:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -6579,11 +8455,11 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
+1. **Group** : com.google.devtools.ksp. **Name** : com.google.devtools.ksp.gradle.plugin. **Version** : 2.3.6.
* **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-aa-embeddable. **Version** : 2.3.6.
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
* **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6682,10 +8558,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile)
* **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0.
- * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/)
- * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.2.0.
* **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6694,10 +8566,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.squareup. **Name** : kotlinpoet-ksp. **Version** : 2.2.0.
- * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : dev.zacsweers.autoservice. **Name** : auto-service-ksp. **Version** : 1.2.0.
* **Project URL:** [https://github.com/ZacSweers/auto-service-ksp](https://github.com/ZacSweers/auto-service-ksp)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6744,27 +8612,27 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
@@ -6812,14 +8680,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
1. **Group** : org.hamcrest. **Name** : hamcrest-core. **Version** : 1.3.
* **License:** [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
-1. **Group** : org.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.29.0.Final.
- * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html)
- * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt)
-
-1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.29.0.Final.
- * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html)
- * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt)
-
1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
* **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6828,14 +8688,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.8.0-intellij-14.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0-intellij-14.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6892,6 +8744,14 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 1.6.10.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.1.21.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6916,6 +8776,10 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.0.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-stdlib. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -6944,6 +8808,10 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0.
+ * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
+ * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-jdk8. **Version** : 1.10.2.
* **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -7016,14 +8884,14 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-validating:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-validating:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -7179,11 +9047,11 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
* **License:** [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
+1. **Group** : com.google.devtools.ksp. **Name** : com.google.devtools.ksp.gradle.plugin. **Version** : 2.3.6.
* **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing-aa-embeddable. **Version** : 2.3.6.
+1. **Group** : com.google.devtools.ksp. **Name** : symbol-processing. **Version** : 2.3.6.
* **Project URL:** [https://goo.gle/ksp](https://goo.gle/ksp)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -7297,10 +9165,6 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [http://www.github.com/sksamuel/aedile](http://www.github.com/sksamuel/aedile)
* **License:** [The Apache 2.0 License](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : com.squareup. **Name** : javapoet. **Version** : 1.13.0.
- * **Project URL:** [http://github.com/square/javapoet/](http://github.com/square/javapoet/)
- * **License:** [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : com.squareup. **Name** : kotlinpoet. **Version** : 2.2.0.
* **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -7309,10 +9173,6 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : com.squareup. **Name** : kotlinpoet-ksp. **Version** : 2.2.0.
- * **Project URL:** [https://github.com/square/kotlinpoet](https://github.com/square/kotlinpoet)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : dev.zacsweers.autoservice. **Name** : auto-service-ksp. **Version** : 1.2.0.
* **Project URL:** [https://github.com/ZacSweers/auto-service-ksp](https://github.com/ZacSweers/auto-service-ksp)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -7359,27 +9219,27 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
@@ -7431,14 +9291,6 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
1. **Group** : org.hamcrest. **Name** : hamcrest-core. **Version** : 1.3.
* **License:** [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
-1. **Group** : org.jboss.forge.roaster. **Name** : roaster-api. **Version** : 2.29.0.Final.
- * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html)
- * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt)
-
-1. **Group** : org.jboss.forge.roaster. **Name** : roaster-jdt. **Version** : 2.29.0.Final.
- * **License:** [Eclipse Public License version 1.0](http://www.eclipse.org/legal/epl-v10.html)
- * **License:** [Public Domain](http://repository.jboss.org/licenses/cc0-1.0.txt)
-
1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
* **Project URL:** [http://www.jetbrains.org](http://www.jetbrains.org)
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -7447,14 +9299,6 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/JetBrains/java-annotations](https://github.com/JetBrains/java-annotations)
* **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : org.jetbrains.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-bom. **Version** : 1.8.0-intellij-14.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
-1. **Group** : org.jetbrains.intellij.deps.kotlinx. **Name** : kotlinx-coroutines-core-jvm. **Version** : 1.8.0-intellij-14.
- * **Project URL:** [https://github.com/Kotlin/kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- * **License:** [The Apache Software License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
-
1. **Group** : org.jetbrains.kotlin. **Name** : abi-tools. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -7515,6 +9359,10 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.1.21.
+ * **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
+ * **License:** [The Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
1. **Group** : org.jetbrains.kotlin. **Name** : kotlin-reflect. **Version** : 2.3.20.
* **Project URL:** [https://kotlinlang.org/](https://kotlinlang.org/)
* **License:** [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
@@ -7647,19 +9495,20 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-validator:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-validator:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
* **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.20.
* **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
@@ -7888,6 +9737,7 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
* **Project URL:** [https://github.com/FasterXML/jackson-bom](https://github.com/FasterXML/jackson-bom)
* **License:** [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+ * **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
1. **Group** : com.fasterxml.jackson.core. **Name** : jackson-annotations. **Version** : 2.20.
* **Project URL:** [https://github.com/FasterXML/jackson](https://github.com/FasterXML/jackson)
@@ -8114,27 +9964,27 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
* **Project URL:** [https://github.com/grpc/grpc-java](https://github.com/grpc/grpc-java)
* **License:** [Apache 2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
@@ -8390,14 +10240,14 @@ This report was generated on **Fri Apr 03 20:20:16 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-validator-dependency:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-validator-dependency:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -8630,14 +10480,14 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:22 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
-# Dependencies of `io.spine.tools:validation-vanilla:2.0.0-SNAPSHOT.411`
+# Dependencies of `io.spine.tools:validation-vanilla:2.0.0-SNAPSHOT.412`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -8824,27 +10674,27 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
1. **Group** : io.github.java-diff-utils. **Name** : java-diff-utils. **Version** : 4.16.
* **License:** [The Apache Software License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-core-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-assertions-shared-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
-1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.10.
+1. **Group** : io.kotest. **Name** : kotest-common-jvm. **Version** : 6.1.11.
* **Project URL:** [https://github.com/kotest/kotest](https://github.com/kotest/kotest)
* **License:** [Apache-2.0](https://opensource.org/licenses/Apache-2.0)
@@ -8980,6 +10830,6 @@ This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 03 20:20:15 WEST 2026** using
+This report was generated on **Fri Apr 24 18:38:23 WEST 2026** using
[Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under
[Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
\ No newline at end of file
diff --git a/docs/_examples b/docs/_examples
index 23bc23c580..6b80bb3bd8 160000
--- a/docs/_examples
+++ b/docs/_examples
@@ -1 +1 @@
-Subproject commit 23bc23c5805875648eb578e0a3f9fa15421645e7
+Subproject commit 6b80bb3bd8ae47cdbd54a3cd82b2e05a0e5a13af
diff --git a/docs/content/docs/validation/01-getting-started/adding-to-build.md b/docs/content/docs/validation/01-getting-started/adding-to-build.md
index 5e0a0360b9..b8e1b6d875 100644
--- a/docs/content/docs/validation/01-getting-started/adding-to-build.md
+++ b/docs/content/docs/validation/01-getting-started/adding-to-build.md
@@ -90,7 +90,7 @@ Add the Validation plugin to the build.
```kotlin
plugins {
module
- id("io.spine.validation") version "2.0.0-SNAPSHOT.411"
+ id("io.spine.validation") version "2.0.0-SNAPSHOT.412"
}
```
@@ -120,7 +120,7 @@ adding Validation directly. CoreJvm brings in the Validation Gradle plugin for y
```kotlin
plugins {
module
- id("io.spine.core-jvm") version "2.0.0-SNAPSHOT.058"
+ id("io.spine.core-jvm") version "2.0.0-SNAPSHOT.062"
}
```
diff --git a/java/build.gradle.kts b/java/build.gradle.kts
index 4caf66950c..53818fe384 100644
--- a/java/build.gradle.kts
+++ b/java/build.gradle.kts
@@ -24,15 +24,44 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import io.spine.dependency.lib.AutoService
+import io.spine.dependency.lib.AutoServiceKsp
import io.spine.dependency.local.Compiler
+buildscript {
+ standardSpineSdkRepositories()
+ configurations {
+ all {
+ resolutionStrategy {
+ force(
+ io.spine.dependency.local.Logging.grpcContext,
+ io.spine.dependency.lib.JetBrainsAnnotations.lib,
+ )
+ }
+ }
+ }
+ dependencies {
+ classpath(io.spine.dependency.local.CoreJvmCompiler.pluginLib)
+ }
+}
+
plugins {
module
- `build-proto-model`
+ id("com.google.devtools.ksp")
}
+apply(plugin = "io.spine.core-jvm")
+
dependencies {
api(Compiler.jvm)
api(project(":context"))
api(project(":jvm-runtime"))
+ ksp(AutoServiceKsp.processor)
+ compileOnly(AutoService.annotations)
+}
+
+afterEvaluate {
+ val kspKotlin by tasks.getting
+ val launchSpineCompiler by tasks.getting
+ kspKotlin.dependsOn(launchSpineCompiler)
}
diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/WhenGenerator.kt b/java/src/main/kotlin/io/spine/tools/time/validation/java/WhenGenerator.kt
similarity index 92%
rename from java/src/main/kotlin/io/spine/tools/validation/java/generate/option/WhenGenerator.kt
rename to java/src/main/kotlin/io/spine/tools/time/validation/java/WhenGenerator.kt
index 0efdc97591..34ef9f9d05 100644
--- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/WhenGenerator.kt
+++ b/java/src/main/kotlin/io/spine/tools/time/validation/java/WhenGenerator.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,12 +24,13 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-package io.spine.tools.validation.java.generate.option
+package io.spine.tools.time.validation.java
import io.spine.base.FieldPath
import io.spine.server.query.select
import io.spine.time.validation.Time.FUTURE
import io.spine.tools.compiler.ast.TypeName
+import io.spine.tools.compiler.ast.isRepeatedMessage
import io.spine.tools.compiler.ast.name
import io.spine.tools.compiler.jvm.CodeBlock
import io.spine.tools.compiler.jvm.Expression
@@ -38,6 +39,9 @@ import io.spine.tools.compiler.jvm.ReadVar
import io.spine.tools.compiler.jvm.StringLiteral
import io.spine.tools.compiler.jvm.call
import io.spine.tools.compiler.jvm.field
+import io.spine.tools.time.validation.TimeFieldType.TFT_TEMPORAL
+import io.spine.tools.time.validation.TimeFieldType.TFT_TIMESTAMP
+import io.spine.tools.time.validation.WhenField
import io.spine.tools.validation.ErrorPlaceholder
import io.spine.tools.validation.ErrorPlaceholder.FIELD_PATH
import io.spine.tools.validation.ErrorPlaceholder.FIELD_TYPE
@@ -55,24 +59,17 @@ import io.spine.tools.validation.java.expression.resolve
import io.spine.tools.validation.java.expression.stringify
import io.spine.tools.validation.java.expression.templateString
import io.spine.tools.validation.java.generate.MessageScope.message
-import io.spine.tools.validation.java.generate.OptionGenerator
+import io.spine.tools.validation.java.generate.OptionGeneratorWithConverter
import io.spine.tools.validation.java.generate.SingleOptionCode
import io.spine.tools.validation.java.generate.ValidateScope.parentName
import io.spine.tools.validation.java.generate.ValidateScope.parentPath
import io.spine.tools.validation.java.generate.ValidateScope.violations
import io.spine.validation.ConstraintViolation
-import io.spine.tools.validation.TimeFieldType.TFT_TEMPORAL
-import io.spine.tools.validation.TimeFieldType.TFT_TIMESTAMP
-import io.spine.tools.validation.option.WHEN
-import io.spine.tools.validation.WhenField
-import io.spine.tools.validation.option.isRepeatedMessage
/**
* The generator for the `(when)` option.
*/
-internal class WhenGenerator(
- private val converter: JavaValueConverter
-) : OptionGenerator() {
+internal class WhenGenerator : OptionGeneratorWithConverter() {
/**
* All `(when)` fields in the current compilation process.
@@ -163,7 +160,7 @@ private class GenerateWhen(
): Expression {
val typeNameStr = typeName.stringify()
val placeholders = supportedPlaceholders(fieldPath, typeNameStr, fieldValue)
- val errorMessage = templateString(view.errorMessage, placeholders, WHEN)
+ val errorMessage = templateString(view.errorMessage, placeholders, WhenOption.NAME)
return constraintViolation(errorMessage, typeNameStr, fieldPath, fieldValue)
}
diff --git a/context/src/main/kotlin/io/spine/tools/validation/option/WhenOption.kt b/java/src/main/kotlin/io/spine/tools/time/validation/java/WhenOption.kt
similarity index 80%
rename from context/src/main/kotlin/io/spine/tools/validation/option/WhenOption.kt
rename to java/src/main/kotlin/io/spine/tools/time/validation/java/WhenOption.kt
index 76d0a3035a..4b267736fc 100644
--- a/context/src/main/kotlin/io/spine/tools/validation/option/WhenOption.kt
+++ b/java/src/main/kotlin/io/spine/tools/time/validation/java/WhenOption.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,8 +24,9 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-package io.spine.tools.validation.option
+package io.spine.tools.time.validation.java
+import com.google.auto.service.AutoService
import com.google.protobuf.Timestamp
import io.spine.core.External
import io.spine.core.Subscribe
@@ -46,7 +47,7 @@ import io.spine.tools.compiler.ast.FieldType
import io.spine.tools.compiler.ast.File
import io.spine.tools.compiler.ast.event.FieldOptionDiscovered
import io.spine.tools.compiler.ast.extractMessageType
-import io.spine.tools.compiler.ast.isList
+import io.spine.tools.compiler.ast.isRepeatedMessage
import io.spine.tools.compiler.ast.name
import io.spine.tools.compiler.ast.qualifiedName
import io.spine.tools.compiler.ast.ref
@@ -56,6 +57,13 @@ import io.spine.tools.compiler.jvm.javaClass
import io.spine.tools.compiler.plugin.Reaction
import io.spine.tools.compiler.plugin.View
import io.spine.tools.compiler.type.TypeSystem
+import io.spine.tools.time.validation.TimeFieldType
+import io.spine.tools.time.validation.TimeFieldType.TFT_TEMPORAL
+import io.spine.tools.time.validation.TimeFieldType.TFT_TIMESTAMP
+import io.spine.tools.time.validation.TimeFieldType.TFT_UNKNOWN
+import io.spine.tools.time.validation.WhenField
+import io.spine.tools.time.validation.event.WhenFieldDiscovered
+import io.spine.tools.time.validation.event.whenFieldDiscovered
import io.spine.tools.validation.ErrorPlaceholder.FIELD_PATH
import io.spine.tools.validation.ErrorPlaceholder.FIELD_TYPE
import io.spine.tools.validation.ErrorPlaceholder.FIELD_VALUE
@@ -64,13 +72,29 @@ import io.spine.tools.validation.ErrorPlaceholder.WHEN_IN
import io.spine.tools.validation.OPTION_NAME
import io.spine.tools.validation.checkPlaceholders
import io.spine.tools.validation.defaultMessage
-import io.spine.tools.validation.TimeFieldType
-import io.spine.tools.validation.TimeFieldType.TFT_TEMPORAL
-import io.spine.tools.validation.TimeFieldType.TFT_TIMESTAMP
-import io.spine.tools.validation.TimeFieldType.TFT_UNKNOWN
-import io.spine.tools.validation.WhenField
-import io.spine.tools.validation.event.WhenFieldDiscovered
-import io.spine.tools.validation.event.whenFieldDiscovered
+import io.spine.tools.validation.java.ValidationOption
+import io.spine.tools.validation.java.generate.OptionGenerator
+
+/**
+ * Extends the Java validation with code generation for the `(when)` option.
+ */
+@AutoService(ValidationOption::class)
+public class WhenOption : ValidationOption {
+
+ public companion object {
+
+ /**
+ * The name of the option as it appears in the Protobuf definition.
+ */
+ public const val NAME: String = "when"
+ }
+
+ override val reactions: Set> = setOf(WhenReaction())
+
+ override val view: Set>> = setOf(WhenFieldView::class.java)
+
+ override val generator: OptionGenerator = WhenGenerator()
+}
/**
* Controls whether a field should be validated with the `(when)` option.
@@ -93,7 +117,7 @@ internal class WhenReaction : Reaction() {
@React
override fun whenever(
- @External @Where(field = OPTION_NAME, equals = WHEN)
+ @External @Where(field = OPTION_NAME, equals = WhenOption.NAME)
event: FieldOptionDiscovered
): EitherOf2 {
val field = event.subject
@@ -107,7 +131,7 @@ internal class WhenReaction : Reaction() {
}
val message = option.errorMsg.ifEmpty { option.descriptorForType.defaultMessage }
- message.checkPlaceholders(SUPPORTED_PLACEHOLDERS, field, file, WHEN)
+ message.checkPlaceholders(SUPPORTED_PLACEHOLDERS, field, file, WhenOption.NAME)
return whenFieldDiscovered {
id = field.ref
@@ -123,7 +147,7 @@ private fun checkFieldType(field: Field, typeSystem: TypeSystem, file: File): Ti
val timeType = typeSystem.determineTimeType(field.type)
Compilation.check(timeType != TFT_UNKNOWN, file, field.span) {
"The field type `${field.type.name}` of the `${field.qualifiedName}` field" +
- " is not supported by the `(${WHEN})` option. Supported field types:" +
+ " is not supported by the `(${WhenOption.NAME})` option. Supported field types:" +
" `google.protobuf.Timestamp` and types introduced in the `spine.time` package" +
" that describe time-related concepts."
}
@@ -150,14 +174,6 @@ private fun TypeSystem.determineTimeType(fieldType: FieldType): TimeFieldType {
}
}
-/**
- * Tells if this [FieldType] represents a `repeated` of messages.
- *
- * The property is `public` because the option generator also uses it.
- */
-public val FieldType.isRepeatedMessage: Boolean
- get() = isList && list.isMessage
-
/**
* A view of a field that is marked with the `(when)` option.
*/
diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationPlugin.kt b/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationPlugin.kt
index f595934f52..f5025dbf38 100644
--- a/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationPlugin.kt
+++ b/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationPlugin.kt
@@ -38,6 +38,7 @@ import java.util.ServiceLoader
* 1. [JavaValidationRenderer][io.spine.tools.validation.java.JavaValidationRenderer]
* is the main renderer for Java. It renders the validation
* code for all options that perform an assertion upon a message field value.
+ *
* 2. [SetOnceRenderer][io.spine.tools.validation.java.setonce.SetOnceRenderer]
* is responsible for the validation code of `(set_once)` option.
* It is a standalone renderer because it significantly differs from the rest of constraints.
@@ -47,7 +48,7 @@ import java.util.ServiceLoader
@Suppress("unused") // Accessed via reflection.
public open class JavaValidationPlugin : ValidationPlugin(
renderers = listOf(
- JavaValidationRenderer(customOptions.map { it.generator }),
+ JavaValidationRenderer(customGenerators = customOptions.map { it.generator }),
SetOnceRenderer()
),
views = customOptions.flatMap { it.view }.toSet(),
diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationRenderer.kt b/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationRenderer.kt
index a84375da81..3cb8b1029d 100644
--- a/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationRenderer.kt
+++ b/java/src/main/kotlin/io/spine/tools/validation/java/JavaValidationRenderer.kt
@@ -30,7 +30,6 @@ import com.google.protobuf.Message
import com.intellij.psi.PsiJavaFile
import io.spine.tools.code.Java
import io.spine.tools.compiler.ast.MessageType
-import io.spine.tools.compiler.jvm.JavaValueConverter
import io.spine.tools.compiler.jvm.file.hasJavaRoot
import io.spine.tools.compiler.jvm.javaClassName
import io.spine.tools.compiler.jvm.render.JavaRenderer
@@ -48,7 +47,6 @@ import io.spine.tools.validation.java.generate.option.PatternGenerator
import io.spine.tools.validation.java.generate.option.RequireOptionGenerator
import io.spine.tools.validation.java.generate.option.RequiredGenerator
import io.spine.tools.validation.java.generate.option.ValidateGenerator
-import io.spine.tools.validation.java.generate.option.WhenGenerator
import io.spine.tools.validation.java.generate.option.bound.MaxGenerator
import io.spine.tools.validation.java.generate.option.bound.MinGenerator
import io.spine.tools.validation.java.generate.option.bound.RangeGenerator
@@ -66,8 +64,8 @@ internal class JavaValidationRenderer(
private val codeInjector = ValidationCodeInjector()
private val querying = this@JavaValidationRenderer
private val optionGenerators by lazy {
- (buildInGenerators() + customGenerators)
- .onEach { it.inject(querying) }
+ (builtInGenerators() + customGenerators)
+ .onEach { it.inject(querying, typeSystem) }
}
override fun render(sources: SourceFileSet) {
@@ -88,29 +86,24 @@ internal class JavaValidationRenderer(
/**
* Returns code generators for the built-in options.
*
- * Note that some generators cannot be created outside of [JavaRenderer] because
- * they need [JavaValueConverter], which in turn needs [JavaRenderer.typeSystem].
- *
* When [validation #199](https://github.com/SpineEventEngine/validation/issues/199)
* is addressed, all generators must be created outside of [JavaValidationRenderer],
* and just passed to the renderer.
+ *
+ * @see io.spine.tools.validation.java.generate.OptionGeneratorWithConverter
*/
- private fun buildInGenerators(): List {
- val valueConverter = JavaValueConverter(typeSystem)
- return listOf(
- RequiredGenerator(valueConverter),
- PatternGenerator(),
- GoesGenerator(valueConverter),
- DistinctGenerator(),
- ValidateGenerator(valueConverter),
- RangeGenerator(),
- MaxGenerator(),
- MinGenerator(),
- ChoiceGenerator(),
- WhenGenerator(valueConverter),
- RequireOptionGenerator(valueConverter),
- )
- }
+ private fun builtInGenerators(): List = listOf(
+ RequiredGenerator(),
+ PatternGenerator(),
+ GoesGenerator(),
+ DistinctGenerator(),
+ ValidateGenerator(),
+ RangeGenerator(),
+ MaxGenerator(),
+ MinGenerator(),
+ ChoiceGenerator(),
+ RequireOptionGenerator(),
+ )
private fun generateCode(message: MessageType): MessageValidationCode {
val fieldOptions = optionGenerators.flatMap { it.codeFor(message.name) }
diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/ValidationOption.kt b/java/src/main/kotlin/io/spine/tools/validation/java/ValidationOption.kt
index d5ccb02bb9..da91e06e30 100644
--- a/java/src/main/kotlin/io/spine/tools/validation/java/ValidationOption.kt
+++ b/java/src/main/kotlin/io/spine/tools/validation/java/ValidationOption.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2025, TeamDev. All rights reserved.
+ * Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,7 +32,15 @@ import io.spine.tools.compiler.plugin.View
import io.spine.tools.validation.java.generate.OptionGenerator
/**
- * Extends the Java validation library with the custom validation option.
+ * Extends the Validation library with code generation for
+ * the custom validation option in Java.
+ *
+ * Implementations of this interface are discovered via the Java Service Loader
+ * mechanism by [JavaValidationPlugin]. Correspondingly, the implementations must be registered in
+ * `META-INF/services/io.spine.tools.validation.java.ValidationOption` file.
+ * The easy way to create such a file is to use
+ * the [AutoService](https://github.com/google/auto/blob/main/service/README.md)
+ * annotation processor.
*/
@SPI
public interface ValidationOption {
diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/expression/EmptyFieldCheck.kt b/java/src/main/kotlin/io/spine/tools/validation/java/expression/EmptyFieldCheck.kt
index dbd2c2840b..2fb4e4e74b 100644
--- a/java/src/main/kotlin/io/spine/tools/validation/java/expression/EmptyFieldCheck.kt
+++ b/java/src/main/kotlin/io/spine/tools/validation/java/expression/EmptyFieldCheck.kt
@@ -50,7 +50,8 @@ public interface EmptyFieldCheck {
public val converter: JavaValueConverter
/**
- * Returns an expression that checks if this [io.spine.tools.compiler.ast.Field] has the default (unset) value.
+ * Returns an expression that checks if this [io.spine.tools.compiler.ast.Field]
+ * has the default (unset) value.
*/
public fun Field.hasDefaultValue(): Expression {
val getter = MessageScope.message.field(this).getter()
diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/OptionGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/OptionGenerator.kt
index b40ab68b58..d4fdaa6215 100644
--- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/OptionGenerator.kt
+++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/OptionGenerator.kt
@@ -26,9 +26,9 @@
package io.spine.tools.validation.java.generate
-import io.spine.annotation.Internal
import io.spine.server.query.Querying
import io.spine.tools.compiler.ast.TypeName
+import io.spine.tools.compiler.type.TypeSystem
/**
* Generates Java code for a specific option.
@@ -39,11 +39,20 @@ public abstract class OptionGenerator {
* A component capable of querying states of views.
*
* Note that the class inheritors are not responsible for providing [Querying].
- * The instance is [injected][inject] by the Java validation plugin before
+ * The instance is [injected][inject] by the Java Validation Plugin before
* the first invocation of the [codeFor] method.
*/
protected lateinit var querying: Querying
+ /**
+ * A type system with the Protobuf types defined in the current code generation pipeline.
+ *
+ * Note that the class inheritors are not responsible for providing [TypeSystem].
+ * The instance is [injected][inject] by the Java Validation Plugin before
+ * the first invocation of the [codeFor] method.
+ */
+ protected lateinit var typeSystem: TypeSystem
+
/**
* Generates validation code for all option applications within the provided
* message [type].
@@ -53,10 +62,15 @@ public abstract class OptionGenerator {
public abstract fun codeFor(type: TypeName): List
/**
- * Injects [Querying] into this instance of [OptionGenerator].
+ * Injects [Querying] and [TypeSystem] into this instance of [OptionGenerator].
+ *
+ * Must be called exactly once before the first invocation of [codeFor].
*/
- @Internal
- public fun inject(querying: Querying) {
+ public fun inject(querying: Querying, typeSystem: TypeSystem) {
+ check(!::querying.isInitialized) {
+ "`inject()` must be called exactly once on `${this::class.simpleName}`."
+ }
this.querying = querying
+ this.typeSystem = typeSystem
}
}
diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/OptionGeneratorWithConverter.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/OptionGeneratorWithConverter.kt
new file mode 100644
index 0000000000..fdeb46c581
--- /dev/null
+++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/OptionGeneratorWithConverter.kt
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2026, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package io.spine.tools.validation.java.generate
+
+import io.spine.tools.compiler.jvm.JavaValueConverter
+
+/**
+ * An [OptionGenerator] that converts Protobuf values to their Java representations.
+ *
+ * When [validation #199](https://github.com/SpineEventEngine/validation/issues/199)
+ * is addressed, this class should be deprecated and then removed.
+ */
+public abstract class OptionGeneratorWithConverter : OptionGenerator() {
+
+ /**
+ * Converts Protobuf values to their Java representations.
+ */
+ protected val converter: JavaValueConverter by lazy {
+ JavaValueConverter(typeSystem)
+ }
+}
diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/GoesGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/GoesGenerator.kt
index da107cd714..6593dd50cc 100644
--- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/GoesGenerator.kt
+++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/GoesGenerator.kt
@@ -51,7 +51,7 @@ import io.spine.tools.validation.java.expression.stringValueOf
import io.spine.tools.validation.java.expression.stringify
import io.spine.tools.validation.java.expression.templateString
import io.spine.tools.validation.java.generate.MessageScope.message
-import io.spine.tools.validation.java.generate.OptionGenerator
+import io.spine.tools.validation.java.generate.OptionGeneratorWithConverter
import io.spine.tools.validation.java.generate.SingleOptionCode
import io.spine.tools.validation.java.generate.ValidateScope.parentName
import io.spine.tools.validation.java.generate.ValidateScope.parentPath
@@ -63,9 +63,7 @@ import io.spine.tools.validation.GoesField
/**
* The generator for the `(goes)` option.
*/
-internal class GoesGenerator(
- private val converter: JavaValueConverter
-) : OptionGenerator() {
+internal class GoesGenerator : OptionGeneratorWithConverter() {
/**
* All `(goes)` fields in the current compilation process.
diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequireOptionGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequireOptionGenerator.kt
index 86a6552fba..4a7fb5fe84 100644
--- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequireOptionGenerator.kt
+++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequireOptionGenerator.kt
@@ -44,7 +44,7 @@ import io.spine.tools.validation.java.expression.constraintViolation
import io.spine.tools.validation.java.expression.orElse
import io.spine.tools.validation.java.expression.stringify
import io.spine.tools.validation.java.expression.templateString
-import io.spine.tools.validation.java.generate.OptionGenerator
+import io.spine.tools.validation.java.generate.OptionGeneratorWithConverter
import io.spine.tools.validation.java.generate.SingleOptionCode
import io.spine.tools.validation.java.generate.ValidateScope.parentName
import io.spine.tools.validation.java.generate.ValidateScope.violations
@@ -57,9 +57,7 @@ import io.spine.tools.validation.RequireMessage
/**
* The generator for the `(require)` option.
*/
-internal class RequireOptionGenerator(
- private val converter: JavaValueConverter
-) : OptionGenerator() {
+internal class RequireOptionGenerator : OptionGeneratorWithConverter() {
/**
* All `(require)`-marked messages in the current compilation process.
@@ -69,14 +67,10 @@ internal class RequireOptionGenerator(
.all()
}
- override fun codeFor(type: TypeName): List {
- val requireMessage = allRequireMessages.find { it.id == type }
- if (requireMessage == null) {
- return emptyList()
- }
- val code = GenerateRequire(requireMessage, converter).code()
- return listOf(code)
- }
+ override fun codeFor(type: TypeName): List =
+ allRequireMessages.find { it.id == type }
+ ?.let { listOf(GenerateRequire(it, converter).code()) }
+ ?: emptyList()
}
/**
diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequiredGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequiredGenerator.kt
index 64f353f391..61948ece2b 100644
--- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequiredGenerator.kt
+++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/RequiredGenerator.kt
@@ -46,7 +46,7 @@ import io.spine.tools.validation.java.expression.orElse
import io.spine.tools.validation.java.expression.resolve
import io.spine.tools.validation.java.expression.stringify
import io.spine.tools.validation.java.expression.templateString
-import io.spine.tools.validation.java.generate.OptionGenerator
+import io.spine.tools.validation.java.generate.OptionGeneratorWithConverter
import io.spine.tools.validation.java.generate.SingleOptionCode
import io.spine.tools.validation.java.generate.ValidateScope.parentName
import io.spine.tools.validation.java.generate.ValidateScope.parentPath
@@ -58,9 +58,7 @@ import io.spine.tools.validation.RequiredField
/**
* The generator for `(required)` option.
*/
-internal class RequiredGenerator(
- private val converter: JavaValueConverter
-) : OptionGenerator() {
+internal class RequiredGenerator : OptionGeneratorWithConverter() {
/**
* All `(required)` fields in the current compilation process.
diff --git a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ValidateGenerator.kt b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ValidateGenerator.kt
index 759eb77e19..e80c6d86d9 100644
--- a/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ValidateGenerator.kt
+++ b/java/src/main/kotlin/io/spine/tools/validation/java/generate/option/ValidateGenerator.kt
@@ -51,7 +51,7 @@ import io.spine.tools.validation.java.expression.ValidationErrorClass
import io.spine.tools.validation.java.expression.orElse
import io.spine.tools.validation.java.expression.resolve
import io.spine.tools.validation.java.generate.MessageScope.message
-import io.spine.tools.validation.java.generate.OptionGenerator
+import io.spine.tools.validation.java.generate.OptionGeneratorWithConverter
import io.spine.tools.validation.java.generate.SingleOptionCode
import io.spine.tools.validation.java.generate.ValidateScope.parentName
import io.spine.tools.validation.java.generate.ValidateScope.parentPath
@@ -61,9 +61,7 @@ import org.intellij.lang.annotations.Language
/**
* The generator for `(validate)` option.
*/
-internal class ValidateGenerator(
- private val converter: JavaValueConverter
-) : OptionGenerator() {
+internal class ValidateGenerator : OptionGeneratorWithConverter() {
/**
* All `(validate)` fields in the current compilation process.
diff --git a/java/src/main/proto/spine/tools/time/validation/events.proto b/java/src/main/proto/spine/tools/time/validation/events.proto
new file mode 100644
index 0000000000..fda7ff16c7
--- /dev/null
+++ b/java/src/main/proto/spine/tools/time/validation/events.proto
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2026, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+syntax = "proto3";
+
+package spine.tools.time.validation;
+
+import "spine/options.proto";
+
+option (type_url_prefix) = "type.spine.io";
+option java_package = "io.spine.tools.time.validation.event";
+option java_outer_classname = "EventsProto";
+option java_multiple_files = true;
+
+import "spine/compiler/ast.proto";
+import "spine/time_options.proto";
+import "spine/tools/time/validation/time_field_type.proto";
+
+// The event emitted whenever a field with `(when)` option is discovered
+// and has passed the necessary checks to confirm the option is applied correctly.
+message WhenFieldDiscovered {
+
+ compiler.FieldRef id = 1;
+
+ // The field in which the option was discovered.
+ compiler.Field subject = 2;
+
+ // The error message template.
+ string error_message = 3;
+
+ // Defines a restriction for the timestamp.
+ Time bound = 4;
+
+ // The type of the field.
+ spine.tools.time.validation.TimeFieldType type = 5;
+}
diff --git a/context/src/main/proto/spine/validation/time_field_type.proto b/java/src/main/proto/spine/tools/time/validation/time_field_type.proto
similarity index 94%
rename from context/src/main/proto/spine/validation/time_field_type.proto
rename to java/src/main/proto/spine/tools/time/validation/time_field_type.proto
index 65f8da7cda..be8f9211a9 100644
--- a/context/src/main/proto/spine/validation/time_field_type.proto
+++ b/java/src/main/proto/spine/tools/time/validation/time_field_type.proto
@@ -26,12 +26,12 @@
syntax = "proto3";
-package spine.validation;
+package spine.tools.time.validation;
import "spine/options.proto";
option (type_url_prefix) = "type.spine.io";
-option java_package = "io.spine.tools.validation";
+option java_package = "io.spine.tools.time.validation";
option java_outer_classname = "TimeFieldTypeProto";
option java_multiple_files = true;
diff --git a/java/src/main/proto/spine/tools/time/validation/views.proto b/java/src/main/proto/spine/tools/time/validation/views.proto
new file mode 100644
index 0000000000..e18d6e17f5
--- /dev/null
+++ b/java/src/main/proto/spine/tools/time/validation/views.proto
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2026, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+syntax = "proto3";
+
+package spine.tools.time.validation;
+
+import "spine/options.proto";
+
+option (type_url_prefix) = "type.spine.io";
+option java_package = "io.spine.tools.time.validation";
+option java_outer_classname = "ViewsProto";
+option java_multiple_files = true;
+
+import "spine/compiler/ast.proto";
+import "spine/time_options.proto";
+import "spine/tools/time/validation/time_field_type.proto";
+
+// A view of a field that is marked with `(when)` option.
+message WhenField {
+ option (entity).kind = PROJECTION;
+
+ compiler.FieldRef id = 1;
+
+ // The field in which the option was discovered.
+ compiler.Field subject = 2;
+
+ // The error message template.
+ string error_message = 3;
+
+ // Defines a restriction for the timestamp.
+ Time bound = 4;
+
+ // The type of the field.
+ spine.tools.time.validation.TimeFieldType type = 5;
+}
diff --git a/jvm-runtime/build.gradle.kts b/jvm-runtime/build.gradle.kts
index bc32b01216..1b839a3a32 100644
--- a/jvm-runtime/build.gradle.kts
+++ b/jvm-runtime/build.gradle.kts
@@ -40,6 +40,7 @@ buildscript {
resolutionStrategy {
force(
io.spine.dependency.local.Logging.grpcContext,
+ io.spine.dependency.lib.JetBrainsAnnotations.lib,
)
}
}
diff --git a/pom.xml b/pom.xml
index ead17781ce..4ac976f533 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@ all modules and does not describe the project structure per-subproject.
-->
io.spine.tools
validation
-2.0.0-SNAPSHOT.411
+2.0.0-SNAPSHOT.412
2015
@@ -62,37 +62,37 @@ all modules and does not describe the project structure per-subproject.
io.spine
spine-validation-jvm-runtime
- 2.0.0-SNAPSHOT.409
+ 2.0.0-SNAPSHOT.411
compile
io.spine.tools
compiler-backend
- 2.0.0-SNAPSHOT.041
+ 2.0.0-SNAPSHOT.043
compile
io.spine.tools
compiler-gradle-api
- 2.0.0-SNAPSHOT.041
+ 2.0.0-SNAPSHOT.043
compile
io.spine.tools
compiler-gradle-plugin
- 2.0.0-SNAPSHOT.041
+ 2.0.0-SNAPSHOT.043
compile
io.spine.tools
compiler-jvm
- 2.0.0-SNAPSHOT.041
+ 2.0.0-SNAPSHOT.043
compile
io.spine.tools
jvm-tools
- 2.0.0-SNAPSHOT.376
+ 2.0.0-SNAPSHOT.378
compile
@@ -146,37 +146,37 @@ all modules and does not describe the project structure per-subproject.
io.kotest
kotest-assertions-core
- 6.1.10
+ 6.1.11
test
io.spine
spine-logging
- 2.0.0-SNAPSHOT.411
+ 2.0.0-SNAPSHOT.417
test
io.spine.tools
- compiler-api
- 2.0.0-SNAPSHOT.041
+ base-testlib
+ 2.0.0-SNAPSHOT.213
test
io.spine.tools
- compiler-testlib
- 2.0.0-SNAPSHOT.041
+ compiler-api
+ 2.0.0-SNAPSHOT.043
test
io.spine.tools
- spine-logging-testlib
- 2.0.0-SNAPSHOT.411
+ compiler-testlib
+ 2.0.0-SNAPSHOT.043
test
io.spine.tools
- spine-testlib
- 2.0.0-SNAPSHOT.211
+ logging-testlib
+ 2.0.0-SNAPSHOT.417
test
@@ -259,22 +259,17 @@ all modules and does not describe the project structure per-subproject.
io.spine.tools
compiler-cli-all
- 2.0.0-SNAPSHOT.041
+ 2.0.0-SNAPSHOT.043
io.spine.tools
compiler-protoc-plugin
- 2.0.0-SNAPSHOT.041
-
-
- io.spine.tools
- core-jvm-gradle-plugins
- 2.0.0-SNAPSHOT.058
+ 2.0.0-SNAPSHOT.043
io.spine.tools
- core-jvm-routing
- 2.0.0-SNAPSHOT.058
+ core-jvm-plugins
+ 2.0.0-SNAPSHOT.062
io.spine.tools
@@ -289,7 +284,7 @@ all modules and does not describe the project structure per-subproject.
io.spine.tools
validation-java-bundle
- 2.0.0-SNAPSHOT.409
+ 2.0.0-SNAPSHOT.411
net.sourceforge.pmd
@@ -314,32 +309,37 @@ all modules and does not describe the project structure per-subproject.
org.jetbrains.dokka
all-modules-page-plugin
- 2.1.0
+ 2.2.0
org.jetbrains.dokka
analysis-kotlin-symbols
- 2.1.0
+ 2.2.0
org.jetbrains.dokka
dokka-base
- 2.1.0
+ 2.2.0
org.jetbrains.dokka
dokka-core
- 2.1.0
+ 2.2.0
org.jetbrains.dokka
javadoc-plugin
- 2.1.0
+ 2.2.0
org.jetbrains.dokka
templating-plugin
- 2.1.0
+ 2.2.0
+
+
+ org.jetbrains.kotlin
+ abi-tools
+ 2.3.20
org.jetbrains.kotlin
@@ -351,6 +351,11 @@ all modules and does not describe the project structure per-subproject.
kotlin-build-tools-impl
2.3.20
+
+ org.jetbrains.kotlin
+ kotlin-klib-commonizer-embeddable
+ 2.3.20
+
org.jetbrains.kotlin
kotlin-scripting-compiler-embeddable
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 95030fa624..d1174cd57c 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -36,6 +36,7 @@ rootProject.name = "validation"
include(
"context",
"context-tests",
+ "time-validation-tests",
"gradle-plugin",
"java",
"jvm-runtime",
@@ -46,6 +47,8 @@ include(
":tests:consumer-dependency",
":tests:runtime",
":tests:vanilla",
+ ":tests:time-consumer",
+ ":tests:time-validating",
":tests:validating",
":tests:validator",
":tests:validator-dependency",
diff --git a/tests/build.gradle.kts b/tests/build.gradle.kts
index fe0a3eded9..116a9b8253 100644
--- a/tests/build.gradle.kts
+++ b/tests/build.gradle.kts
@@ -80,6 +80,7 @@ val applyCoreJvmCompiler = setOf(
"extensions",
"consumer-dependency",
"runtime",
+ "time-validating",
"validating"
)
diff --git a/tests/consumer/build.gradle.kts b/tests/consumer/build.gradle.kts
index c04bdddebb..87ce879e5f 100644
--- a/tests/consumer/build.gradle.kts
+++ b/tests/consumer/build.gradle.kts
@@ -28,7 +28,11 @@ import io.spine.dependency.boms.BomsPlugin
import io.spine.dependency.local.TestLib
import io.spine.dependency.local.Time
import io.spine.gradle.report.license.LicenseReporter
-import io.spine.tools.compiler.gradle.plugin.LaunchSpineCompiler
+
+plugins {
+ kotlin("jvm")
+ id("module-testing")
+}
apply()
LicenseReporter.generateReportIn(project)
@@ -43,17 +47,6 @@ spine {
}
}
-val copySettings by tasks.registering(Copy::class) {
- from(project.layout.projectDirectory.file(
- "io.spine.validation.java.JavaValidationPlugin.pb.json")
- )
- into(project.layout.buildDirectory.dir("protodata/settings"))
-}
-
-tasks.withType().configureEach {
- dependsOn(copySettings)
-}
-
dependencies {
spineCompiler(project(":java"))
spineCompiler(project(":tests:extensions"))
diff --git a/tests/consumer/io.spine.validation.java.JavaValidationPlugin.pb.json b/tests/consumer/io.spine.validation.java.JavaValidationPlugin.pb.json
deleted file mode 100644
index 2f9c85f9a4..0000000000
--- a/tests/consumer/io.spine.validation.java.JavaValidationPlugin.pb.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "message_markers": {
- "entity_option_name": ["fancy_view"],
- "event_pattern": [{ "prefix": "test/events" }],
- "command_pattern": [{ "suffix": "_cmd.proto" }]
- }
-}
diff --git a/tests/consumer/src/test/kotlin/io/spine/validation/test/ValidateRuleITest.kt b/tests/consumer/src/test/kotlin/io/spine/validation/test/ValidateRuleITest.kt
index ce9d758b1d..17caa2f166 100644
--- a/tests/consumer/src/test/kotlin/io/spine/validation/test/ValidateRuleITest.kt
+++ b/tests/consumer/src/test/kotlin/io/spine/validation/test/ValidateRuleITest.kt
@@ -26,12 +26,10 @@
package io.spine.validation.test
-import com.google.protobuf.Any
import com.google.protobuf.Message
import io.kotest.matchers.string.shouldContain
import io.spine.protobuf.AnyPacker
import io.spine.protobuf.pack
-import io.spine.testing.logging.mute.MuteLogging
import io.spine.validation.formatUnsafe
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Nested
@@ -76,15 +74,6 @@ internal class ValidateRuleITest {
.setLastEvent(invalidCloud().pack())
checkInvalid(builder, BAD_CLOUD)
}
-
- @Test
- @MuteLogging
- fun `ignore unknown packed type`() {
- val builder = meteoStatsInEurope()
- .setAverageDrop(validRainDrop())
- .setLastEvent(packedUnknown())
- assertNoException(builder)
- }
}
@Nested
@@ -130,18 +119,6 @@ internal class ValidateRuleITest {
.addPredictedEvent(packedInvalid)
checkInvalid(builder, BAD_CLOUD)
}
-
- @Test
- @MuteLogging
- fun `ignore unknown packed type`() {
- val packedValid = validCloud().pack()
- val packedInvalid = packedUnknown()
- val builder = meteoStatsInEurope()
- .setAverageDrop(validRainDrop())
- .addPredictedEvent(packedValid)
- .addPredictedEvent(packedInvalid)
- assertNoException(builder)
- }
}
}
@@ -157,11 +134,6 @@ private fun meteoStatsInEurope(): MeteoStatistics.Builder =
MeteoStatistics.newBuilder()
.putIncludedRegions("EU", someRegion())
-private fun packedUnknown(): Any =
- Any.newBuilder()
- .setTypeUrl("unknown.type/foo.bar")
- .build()
-
private fun invalidRainDrop(): RainDrop {
return RainDrop.newBuilder()
.setMassInGrams(-1)
diff --git a/tests/extensions/build.gradle.kts b/tests/extensions/build.gradle.kts
index 07590b01d7..3186490b92 100644
--- a/tests/extensions/build.gradle.kts
+++ b/tests/extensions/build.gradle.kts
@@ -24,7 +24,6 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import io.spine.dependency.build.Ksp
import io.spine.dependency.lib.AutoServiceKsp
import io.spine.dependency.local.CoreJvmCompiler
import io.spine.gradle.report.license.LicenseReporter
@@ -44,7 +43,7 @@ dependencies {
configurations.all {
resolutionStrategy.force(
with(CoreJvmCompiler) {
- pluginLibNew(version)
+ pluginLib(version)
}
)
}
diff --git a/tests/time-consumer/build.gradle.kts b/tests/time-consumer/build.gradle.kts
new file mode 100644
index 0000000000..67163e147c
--- /dev/null
+++ b/tests/time-consumer/build.gradle.kts
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2026, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import io.spine.dependency.boms.BomsPlugin
+import io.spine.dependency.local.Time
+import io.spine.gradle.report.license.LicenseReporter
+
+plugins {
+ kotlin("jvm")
+ id("module-testing")
+}
+
+apply()
+LicenseReporter.generateReportIn(project)
+
+spine {
+ compiler {
+ plugins(
+ "io.spine.tools.compiler.jvm.annotation.SuppressWarningsAnnotation\$Plugin",
+ "io.spine.validation.java.JavaValidationPlugin",
+ )
+ }
+}
+
+dependencies {
+ spineCompiler(project(":java"))
+ implementation(Time.lib)
+}
+
+spineCompilerRemoteDebug(enabled = false)
diff --git a/buildSrc/src/main/kotlin/io/spine/dependency/build/LicenseReport.kt b/tests/time-consumer/src/main/proto/test/football.proto
similarity index 74%
rename from buildSrc/src/main/kotlin/io/spine/dependency/build/LicenseReport.kt
rename to tests/time-consumer/src/main/proto/test/football.proto
index 826f86853a..95bd06f3c5 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/build/LicenseReport.kt
+++ b/tests/time-consumer/src/main/proto/test/football.proto
@@ -24,17 +24,21 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-package io.spine.dependency.build
+syntax = "proto3";
-// https://github.com/jk1/Gradle-License-Report
-@Suppress("unused")
-object LicenseReport {
- private const val version = "3.0.1"
- const val lib = "com.github.jk1:gradle-license-report:$version"
+package spine.validation.test;
- object GradlePlugin {
- const val version = LicenseReport.version
- const val id = "com.github.jk1.dependency-license-report"
- const val lib = LicenseReport.lib
- }
+import "spine/options.proto";
+import "spine/time_options.proto";
+
+option (type_url_prefix) = "type.spine.io";
+option java_package = "io.spine.validation.test";
+option java_outer_classname = "FootballProto";
+option java_multiple_files = true;
+
+import "google/protobuf/timestamp.proto";
+
+message Player {
+
+ google.protobuf.Timestamp started_career_in = 1 [(when).in = PAST];
}
diff --git a/tests/time-consumer/src/test/kotlin/io/spine/validation/test/Assertions.kt b/tests/time-consumer/src/test/kotlin/io/spine/validation/test/Assertions.kt
new file mode 100644
index 0000000000..01c65edcd7
--- /dev/null
+++ b/tests/time-consumer/src/test/kotlin/io/spine/validation/test/Assertions.kt
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2026, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package io.spine.validation.test
+
+import com.google.errorprone.annotations.CanIgnoreReturnValue
+import com.google.protobuf.Message
+import io.kotest.matchers.collections.shouldHaveSize
+import io.kotest.matchers.shouldNotBe
+import io.spine.validation.ConstraintViolation
+import io.spine.validation.ValidationException
+import org.junit.jupiter.api.Assertions.fail
+import org.junit.jupiter.api.assertDoesNotThrow
+import org.junit.jupiter.api.assertThrows
+
+@CanIgnoreReturnValue
+internal fun assertValidationException(builder: Message.Builder): ConstraintViolation {
+ val exception = assertThrows {
+ builder.build()
+ }
+ val error = exception.asMessage()
+ error.constraintViolationList shouldHaveSize 1
+ return error.constraintViolationList[0]
+}
+
+internal fun assertNoException(builder: Message.Builder) {
+ try {
+ assertDoesNotThrow {
+ val result = builder.build()
+ result shouldNotBe null
+ }
+ } catch (e: ValidationException) {
+ fail("Unexpected constraint violation: " + e.constraintViolations, e)
+ }
+}
diff --git a/tests/consumer/src/test/kotlin/io/spine/validation/test/WhenRuleITest.kt b/tests/time-consumer/src/test/kotlin/io/spine/validation/test/WhenRuleITest.kt
similarity index 97%
rename from tests/consumer/src/test/kotlin/io/spine/validation/test/WhenRuleITest.kt
rename to tests/time-consumer/src/test/kotlin/io/spine/validation/test/WhenRuleITest.kt
index e1ec9accfb..3f870a3bb4 100644
--- a/tests/consumer/src/test/kotlin/io/spine/validation/test/WhenRuleITest.kt
+++ b/tests/time-consumer/src/test/kotlin/io/spine/validation/test/WhenRuleITest.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2024, TeamDev. All rights reserved.
+ * Copyright 2026, TeamDev. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/tests/time-validating/build.gradle.kts b/tests/time-validating/build.gradle.kts
new file mode 100644
index 0000000000..1ccc083870
--- /dev/null
+++ b/tests/time-validating/build.gradle.kts
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2026, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import io.spine.dependency.local.Base
+import io.spine.dependency.local.Logging
+import io.spine.dependency.local.Time
+import io.spine.dependency.local.Validation
+import io.spine.gradle.report.license.LicenseReporter
+
+plugins {
+ `java-test-fixtures`
+ kotlin("jvm")
+ id("module-testing")
+}
+LicenseReporter.generateReportIn(project)
+
+dependencies {
+ testFixturesImplementation(Base.lib)
+ testFixturesImplementation(Time.lib)
+ testFixturesImplementation(Logging.lib)
+ testFixturesImplementation(Validation.runtime)
+
+ testImplementation(testFixtures(project(":tests:validating")))
+ testImplementation(Time.lib)
+}
+
+afterEvaluate {
+ tasks.named("kspTestFixturesKotlin") {
+ mustRunAfter("launchTestFixturesSpineCompiler")
+ }
+}
diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/when/ProtoTimestampWhenSpec.kt b/tests/time-validating/src/test/kotlin/io/spine/test/options/when/ProtoTimestampWhenSpec.kt
similarity index 100%
rename from tests/validating/src/test/kotlin/io/spine/test/options/when/ProtoTimestampWhenSpec.kt
rename to tests/time-validating/src/test/kotlin/io/spine/test/options/when/ProtoTimestampWhenSpec.kt
diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/when/SpineTemporalWhenSpec.kt b/tests/time-validating/src/test/kotlin/io/spine/test/options/when/SpineTemporalWhenSpec.kt
similarity index 100%
rename from tests/validating/src/test/kotlin/io/spine/test/options/when/SpineTemporalWhenSpec.kt
rename to tests/time-validating/src/test/kotlin/io/spine/test/options/when/SpineTemporalWhenSpec.kt
diff --git a/tests/validating/src/testFixtures/proto/spine/test/tools/validate/when.proto b/tests/time-validating/src/testFixtures/proto/spine/test/tools/validate/when.proto
similarity index 100%
rename from tests/validating/src/testFixtures/proto/spine/test/tools/validate/when.proto
rename to tests/time-validating/src/testFixtures/proto/spine/test/tools/validate/when.proto
diff --git a/tests/validating/src/testFixtures/proto/spine/test/tools/validate/when_repeated.proto b/tests/time-validating/src/testFixtures/proto/spine/test/tools/validate/when_repeated.proto
similarity index 100%
rename from tests/validating/src/testFixtures/proto/spine/test/tools/validate/when_repeated.proto
rename to tests/time-validating/src/testFixtures/proto/spine/test/tools/validate/when_repeated.proto
diff --git a/tests/validating/build.gradle.kts b/tests/validating/build.gradle.kts
index 676f816995..54fff9c51c 100644
--- a/tests/validating/build.gradle.kts
+++ b/tests/validating/build.gradle.kts
@@ -24,16 +24,13 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import io.spine.dependency.artifact
import io.spine.dependency.lib.AutoService
import io.spine.dependency.local.Base
-import io.spine.dependency.local.Logging
import io.spine.dependency.local.Compiler
-import io.spine.dependency.local.TestLib
+import io.spine.dependency.local.Logging
import io.spine.dependency.local.Time
import io.spine.dependency.local.Validation
import io.spine.dependency.test.JUnit
-import io.spine.dependency.test.JUnit.Jupiter
import io.spine.dependency.test.Kotest
import io.spine.dependency.test.Truth
import io.spine.gradle.report.license.LicenseReporter
@@ -61,8 +58,6 @@ dependencies {
testFixturesImplementation(it)
}
- testImplementation(Jupiter.artifact { params })
- testImplementation(TestLib.lib)
testImplementation(Time.lib)
testImplementation(Compiler.api)
}
diff --git a/tests/validating/src/test/kotlin/io/spine/test/options/ChoiceITest.kt b/tests/validating/src/test/kotlin/io/spine/test/options/ChoiceITest.kt
index 24bd723fe4..a9f3713ad0 100644
--- a/tests/validating/src/test/kotlin/io/spine/test/options/ChoiceITest.kt
+++ b/tests/validating/src/test/kotlin/io/spine/test/options/ChoiceITest.kt
@@ -55,7 +55,7 @@ internal class ChoiceITest {
violations.size shouldBe 1
violations[0] shouldNotBe null
- violations[0]!!.message.format() shouldContain "choice"
+ violations[0].message.format() shouldContain "choice"
}
@Test
diff --git a/time-validation-tests/Module.md b/time-validation-tests/Module.md
new file mode 100644
index 0000000000..1290906d2e
--- /dev/null
+++ b/time-validation-tests/Module.md
@@ -0,0 +1,5 @@
+# Module `time-validation-tests`
+
+This is a test-only module that verifies compilation of Protobuf files using
+the `(when)` time-related validation option. The module is based on Prototap and
+verifies the handling of errors in using the `(when)` option on non-temporal fields.
diff --git a/time-validation-tests/build.gradle.kts b/time-validation-tests/build.gradle.kts
new file mode 100644
index 0000000000..a994a62eed
--- /dev/null
+++ b/time-validation-tests/build.gradle.kts
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2026, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import io.spine.dependency.artifact
+import io.spine.dependency.lib.Protobuf
+import io.spine.dependency.local.Compiler
+import io.spine.dependency.local.Logging
+import io.spine.dependency.test.JUnit.Jupiter
+import io.spine.gradle.report.license.LicenseReporter
+
+plugins {
+ kotlin("jvm")
+ id("module-testing")
+ protobuf
+ `java-test-fixtures`
+ prototap
+}
+LicenseReporter.generateReportIn(project)
+
+dependencies {
+ implementation(project(":java"))
+ implementation(project(":jvm-runtime"))
+
+ testImplementation(Logging.testLib)?.because("We need `tapConsole`.")
+ testImplementation(Compiler.testlib)
+
+ testFixturesImplementation(Compiler.api)
+ testFixturesImplementation(Compiler.testlib)
+ testFixturesImplementation(Jupiter.artifact { params })
+}
+
+protobuf {
+ protoc { artifact = Protobuf.compiler }
+}
diff --git a/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/CompilationErrorTest.kt b/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/CompilationErrorTest.kt
new file mode 100644
index 0000000000..12cf445f96
--- /dev/null
+++ b/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/CompilationErrorTest.kt
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2026, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package io.spine.tools.time.validation
+
+import io.spine.testing.compiler.AbstractCompilationErrorTest
+import io.spine.tools.compiler.plugin.Plugin
+import io.spine.tools.validation.java.JavaValidationPlugin
+
+/**
+ * An abstract base for compilation error tests of [JavaValidationPlugin].
+ */
+internal abstract class CompilationErrorTest : AbstractCompilationErrorTest() {
+
+ override fun plugins(): List = listOf(
+ object : JavaValidationPlugin() {}
+ )
+}
diff --git a/context-tests/src/test/kotlin/io/spine/tools/validation/WhenReactionSpec.kt b/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/WhenReactionSpec.kt
similarity index 95%
rename from context-tests/src/test/kotlin/io/spine/tools/validation/WhenReactionSpec.kt
rename to time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/WhenReactionSpec.kt
index 0c90f0c469..d42d32b10b 100644
--- a/context-tests/src/test/kotlin/io/spine/tools/validation/WhenReactionSpec.kt
+++ b/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/WhenReactionSpec.kt
@@ -24,18 +24,18 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-package io.spine.tools.validation
+package io.spine.tools.time.validation
import io.kotest.matchers.string.shouldContain
import io.kotest.matchers.string.shouldInclude
import io.spine.tools.compiler.ast.name
import io.spine.tools.compiler.ast.qualifiedName
import io.spine.tools.compiler.protobuf.field
+import io.spine.tools.time.validation.java.WhenOption
import io.spine.tools.validation.given.WhenBoolField
import io.spine.tools.validation.given.WhenInt32Field
import io.spine.tools.validation.given.WhenStringField
import io.spine.tools.validation.given.WhenWithInvalidPlaceholders
-import io.spine.tools.validation.option.WHEN
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Test
@@ -51,7 +51,8 @@ internal class WhenReactionSpec : CompilationErrorTest() {
shouldContain(field.type.name)
shouldContain(field.qualifiedName)
shouldContain("is not supported")
- } }
+ }
+ }
@Test
fun `option on an integer field`() {
@@ -62,7 +63,8 @@ internal class WhenReactionSpec : CompilationErrorTest() {
shouldContain(field.type.name)
shouldContain(field.qualifiedName)
shouldContain("is not supported")
- } }
+ }
+ }
@Test
fun `option on a string field`() {
@@ -83,7 +85,7 @@ internal class WhenReactionSpec : CompilationErrorTest() {
val field = message.field("value")
error.message.run {
shouldContain(field.qualifiedName)
- shouldContain(WHEN)
+ shouldContain(WhenOption.NAME)
shouldContain("unsupported placeholders")
shouldInclude("[when]")
}
diff --git a/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/java/WhenOptionSpec.kt b/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/java/WhenOptionSpec.kt
new file mode 100644
index 0000000000..694d4e11f1
--- /dev/null
+++ b/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/java/WhenOptionSpec.kt
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2026, TeamDev. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Redistribution and use in source and/or binary forms, with or without
+ * modification, must retain the above copyright notice and the following
+ * disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package io.spine.tools.time.validation.java
+
+import io.kotest.matchers.shouldBe
+import io.spine.time.validation.TimeOptionsProto
+import org.junit.jupiter.api.DisplayName
+import org.junit.jupiter.api.Test
+
+@DisplayName("`WhenOption` should")
+internal class WhenOptionSpec {
+
+ @Test
+ fun `have the name matching the descriptor name`() {
+ WhenOption.NAME shouldBe TimeOptionsProto.`when`.descriptor.name
+ }
+}
diff --git a/context-tests/src/testFixtures/proto/spine/validation/when_option_spec.proto b/time-validation-tests/src/testFixtures/proto/spine/validation/when_option_spec.proto
similarity index 100%
rename from context-tests/src/testFixtures/proto/spine/validation/when_option_spec.proto
rename to time-validation-tests/src/testFixtures/proto/spine/validation/when_option_spec.proto
index 2efd80ae6d..0bc85ce843 100644
--- a/context-tests/src/testFixtures/proto/spine/validation/when_option_spec.proto
+++ b/time-validation-tests/src/testFixtures/proto/spine/validation/when_option_spec.proto
@@ -31,13 +31,13 @@ package spine.validation.stubs;
import "spine/options.proto";
import "spine/time_options.proto";
+import "google/protobuf/timestamp.proto";
+
option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.tools.validation.given";
option java_outer_classname = "WhenOptionSpecProto";
option java_multiple_files = true;
-import "google/protobuf/timestamp.proto";
-
// Provides a boolean field with the inapplicable `(when)` option.
message WhenBoolField {
bool value = 1 [(when).in = FUTURE];
diff --git a/version.gradle.kts b/version.gradle.kts
index e17cb6129a..1b027ae5b8 100644
--- a/version.gradle.kts
+++ b/version.gradle.kts
@@ -26,7 +26,5 @@
/**
* The version of the Validation SDK to publish.
- *
- * For Spine-based dependencies please see [io.spine.dependency.local.Spine].
*/
-val validationVersion by extra("2.0.0-SNAPSHOT.411")
+val validationVersion by extra("2.0.0-SNAPSHOT.412")