diff --git a/.agents/_TOC.md b/.agents/_TOC.md
index 065df133a9..83375f417f 100644
--- a/.agents/_TOC.md
+++ b/.agents/_TOC.md
@@ -13,4 +13,4 @@
11. [Advanced safety rules](advanced-safety-rules.md)
12. [Refactoring guidelines](refactoring-guidelines.md)
13. [Common tasks](common-tasks.md)
-14. [Java to Kotlin conversion](java-kotlin-conversion.md)
+14. [Java to Kotlin conversion](skills/java-to-kotlin/SKILL.md)
diff --git a/.agents/quick-reference-card.md b/.agents/quick-reference-card.md
index 6c25b9a7f6..e2be69cb81 100644
--- a/.agents/quick-reference-card.md
+++ b/.agents/quick-reference-card.md
@@ -3,7 +3,6 @@
```
🔑 Key Information:
- Kotlin/Java project with CQRS architecture
-- Use ChatGPT for documentation, Codex for code generation, GPT-4o for complex analysis
- Follow coding guidelines in Spine Event Engine docs
- Always include tests with code changes
- Version bump required for all PRs
diff --git a/.agents/java-kotlin-conversion.md b/.agents/skills/java-to-kotlin/SKILL.md
similarity index 88%
rename from .agents/java-kotlin-conversion.md
rename to .agents/skills/java-to-kotlin/SKILL.md
index 95cf929543..d3abdc2f7b 100644
--- a/.agents/java-kotlin-conversion.md
+++ b/.agents/skills/java-to-kotlin/SKILL.md
@@ -1,3 +1,11 @@
+---
+name: java-to-kotlin
+description: >
+ Convert Java code to Kotlin, including Java API comments from Javadoc to KDoc.
+ Use when asked to migrate Java files, classes, methods, nullability semantics,
+ or common Java patterns into idiomatic Kotlin while preserving behavior.
+---
+
# 🪄 Converting Java code to Kotlin
* Java code API comments are Javadoc format.
diff --git a/.agents/skills/java-to-kotlin/agents/openai.yaml b/.agents/skills/java-to-kotlin/agents/openai.yaml
new file mode 100644
index 0000000000..252920fedc
--- /dev/null
+++ b/.agents/skills/java-to-kotlin/agents/openai.yaml
@@ -0,0 +1,4 @@
+interface:
+ display_name: "Java to Kotlin"
+ short_description: "Convert Java code to idiomatic Kotlin"
+ default_prompt: "Use $java-to-kotlin to convert Java code to Kotlin while preserving behavior, nullability, and API documentation wording."
diff --git a/.agents/skills/move-files/SKILL.md b/.agents/skills/move-files/SKILL.md
new file mode 100644
index 0000000000..2885f4828f
--- /dev/null
+++ b/.agents/skills/move-files/SKILL.md
@@ -0,0 +1,49 @@
+---
+name: move-files
+description: >
+ Move or rename any files/directories in a repo: preserve history, update all
+ references and build metadata, verify no stale paths remain.
+---
+
+# Move Files
+
+## Workflow
+
+1. Preflight.
+ - Run `git status --short`.
+ - Map each `source -> destination`.
+ - Classify scope: simple same-module moves stay targeted; package, module, or
+ cross-module moves need broader inspection.
+ - Ask before ambiguous mappings, destination conflicts, or unclear semantic
+ package/module changes.
+
+2. Search before moving.
+ - Search all old identifiers: paths, names, resource refs, doc links.
+ - For Gradle/module/source-set moves, check `settings.gradle.kts`,
+ `build.gradle.kts`, and `buildSrc`.
+ - For Kotlin/Java, update package declarations only when package intent
+ changes.
+
+3. Move safely.
+ - Prefer `git mv` for tracked files in the repo.
+ - Use filesystem moves only for untracked/generated/out-of-git files.
+ - Create parent directories first.
+ - For case-only renames, move through a temporary name.
+
+4. Repair references.
+ - Update all references: imports, build metadata, docs, resources, and scripts.
+ - Start search scope narrow: affected directory, then module, then repo-wide.
+ - Prefer precise edits; avoid broad replacements on generic names.
+
+5. Verify.
+ - Re-run targeted searches for old tokens.
+ - Run `git status --short` and confirm the delta matches the move.
+ - Run focused validation for moved files, or state what could not run.
+
+## Repo Notes
+
+Follow `.agents/project-structure-expectations.md` for module/source-set/test moves.
+
+## Report
+
+Return: `Moved[]`, `UpdatedRefs[]`, `Verification[]`, `Risks[]`.
diff --git a/.agents/skills/move-files/agents/openai.yaml b/.agents/skills/move-files/agents/openai.yaml
new file mode 100644
index 0000000000..ba90a9f8f2
--- /dev/null
+++ b/.agents/skills/move-files/agents/openai.yaml
@@ -0,0 +1,4 @@
+interface:
+ display_name: "Move Files"
+ short_description: "Move files safely across a repo"
+ default_prompt: "Use $move-files to relocate files or directories in this repository while preserving history, updating references, and verifying the result."
diff --git a/.agents/skills/update-copyright/SKILL.md b/.agents/skills/update-copyright/SKILL.md
new file mode 100644
index 0000000000..6afc4c7cf2
--- /dev/null
+++ b/.agents/skills/update-copyright/SKILL.md
@@ -0,0 +1,16 @@
+---
+name: update-copyright
+description: >
+ Update source file copyright headers from the IntelliJ IDEA copyright profile,
+ replacing `today.year` with the current year.
+ Automatically apply when source files are modified in a change set.
+---
+
+# Copyright Update
+
+**Command:** `python3 .agents/skills/update-copyright/scripts/update_copyright.py`
+
+1. Scope: explicit files/dirs from the user, or all tracked source files if none given.
+2. No explicit paths → run with `--dry-run` first, then without.
+3. Relay stdout (notice source, file count, changed paths) to the user.
+4. Never add a copyright header to a file that does not already have one.
diff --git a/.agents/skills/update-copyright/agents/openai.yaml b/.agents/skills/update-copyright/agents/openai.yaml
new file mode 100644
index 0000000000..246dd647f7
--- /dev/null
+++ b/.agents/skills/update-copyright/agents/openai.yaml
@@ -0,0 +1,4 @@
+interface:
+ display_name: "Copyright Update"
+ short_description: "Refresh source copyright headers"
+ default_prompt: "Use $update-copyright to refresh source file copyright headers from the IntelliJ IDEA copyright profile in this repository."
diff --git a/.agents/skills/update-copyright/scripts/update_copyright.py b/.agents/skills/update-copyright/scripts/update_copyright.py
new file mode 100755
index 0000000000..2dbf8bbc48
--- /dev/null
+++ b/.agents/skills/update-copyright/scripts/update_copyright.py
@@ -0,0 +1,389 @@
+#!/usr/bin/env python3
+"""Update source copyright headers from IntelliJ IDEA copyright profiles."""
+
+from __future__ import annotations
+
+import argparse
+import datetime as dt
+import html
+import re
+import subprocess
+import sys
+from pathlib import Path
+from xml.etree import ElementTree as ET
+
+
+BLOCK_EXTENSIONS = {
+ ".c",
+ ".cc",
+ ".cpp",
+ ".cs",
+ ".css",
+ ".cxx",
+ ".dart",
+ ".go",
+ ".gradle",
+ ".groovy",
+ ".h",
+ ".hh",
+ ".hpp",
+ ".java",
+ ".js",
+ ".jsx",
+ ".kt",
+ ".kts",
+ ".less",
+ ".m",
+ ".mm",
+ ".proto",
+ ".rs",
+ ".scala",
+ ".scss",
+ ".swift",
+ ".ts",
+ ".tsx",
+}
+HASH_EXTENSIONS = {
+ ".bash",
+ ".bzl",
+ ".properties",
+ ".pl",
+ ".py",
+ ".rb",
+ ".sh",
+ ".toml",
+ ".yaml",
+ ".yml",
+ ".zsh",
+}
+XML_EXTENSIONS = {
+ ".fxml",
+ ".pom",
+ ".wsdl",
+ ".xml",
+ ".xsd",
+ ".xsl",
+ ".xslt",
+}
+EXCLUDED_DIRS = {
+ ".agents",
+ ".git",
+ ".gradle",
+ ".idea",
+ ".kotlin",
+ "build",
+ "generated",
+ "out",
+ "tmp",
+}
+EXCLUDED_FILES = {
+ "gradlew",
+ "gradlew.bat",
+}
+
+
+def parse_args() -> argparse.Namespace:
+ parser = argparse.ArgumentParser(
+ description=(
+ "Update source copyright headers from "
+ ".idea/copyright/profiles_settings.xml."
+ )
+ )
+ parser.add_argument(
+ "paths",
+ nargs="*",
+ help="Files or directories to update. Defaults to tracked source files.",
+ )
+ parser.add_argument(
+ "--root",
+ type=Path,
+ default=Path.cwd(),
+ help="Repository root. Defaults to the current working directory.",
+ )
+ parser.add_argument(
+ "--year",
+ default=str(dt.date.today().year),
+ help="Year to substitute for today.year. Defaults to the current year.",
+ )
+ parser.add_argument(
+ "--dry-run",
+ action="store_true",
+ help="Report files that would change without writing them.",
+ )
+ parser.add_argument(
+ "--check",
+ action="store_true",
+ help="Exit with status 1 if any file would change; do not write files.",
+ )
+ return parser.parse_args()
+
+
+def profile_filename(profile_name: str) -> str:
+ stem = re.sub(r"[^A-Za-z0-9]+", "_", profile_name).strip("_")
+ if not stem:
+ raise ValueError("The default copyright profile name is empty.")
+ return f"{stem}.xml"
+
+
+def load_notice(root: Path, year: str) -> tuple[str, Path]:
+ settings_path = root / ".idea" / "copyright" / "profiles_settings.xml"
+ if not settings_path.is_file():
+ raise FileNotFoundError(f"Missing {settings_path}")
+
+ settings_root = ET.parse(settings_path).getroot()
+ settings = settings_root.find(".//settings")
+ if settings is None:
+ raise ValueError(f"{settings_path} does not contain a settings tag.")
+
+ default_profile = settings.get("default")
+ if not default_profile:
+ raise ValueError(f"{settings_path} settings tag has no default attribute.")
+
+ profile_path = settings_path.parent / profile_filename(default_profile)
+ if not profile_path.is_file():
+ raise FileNotFoundError(
+ f"Default profile {default_profile!r} resolves to missing {profile_path}"
+ )
+
+ profile_root = ET.parse(profile_path).getroot()
+ notice = None
+ for option in profile_root.findall(".//option"):
+ if option.get("name") == "notice":
+ notice = option.get("value")
+ break
+ if notice is None:
+ raise ValueError(f"{profile_path} has no option named 'notice'.")
+
+ decoded = html.unescape(notice)
+ decoded = decoded.replace("${today.year}", year)
+ decoded = decoded.replace("$today.year", year)
+ decoded = decoded.replace("today.year", year)
+ return decoded.rstrip(), profile_path
+
+
+def style_for(path: Path) -> str | None:
+ name = path.name
+ suffix = path.suffix.lower()
+ if name.endswith((".sh.template", ".bash.template", ".zsh.template")):
+ return "hash"
+ if suffix in BLOCK_EXTENSIONS:
+ return "block"
+ if suffix in HASH_EXTENSIONS:
+ return "hash"
+ if suffix in XML_EXTENSIONS:
+ return "xml"
+ return None
+
+
+def is_excluded(path: Path) -> bool:
+ if path.name in EXCLUDED_FILES:
+ return True
+ parts = path.parts
+ if len(parts) >= 2 and parts[0] == "gradle" and parts[1] == "wrapper":
+ return True
+ return any(part in EXCLUDED_DIRS for part in parts)
+
+
+def tracked_files(root: Path) -> list[Path]:
+ try:
+ result = subprocess.run(
+ ["git", "-C", str(root), "ls-files", "-z"],
+ check=True,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ )
+ except (FileNotFoundError, subprocess.CalledProcessError):
+ return [
+ path.relative_to(root)
+ for path in root.rglob("*")
+ if path.is_file() and not is_excluded(path.relative_to(root))
+ ]
+
+ paths = []
+ for item in result.stdout.decode("utf-8").split("\0"):
+ if not item:
+ continue
+ path = Path(item)
+ if (root / path).is_file():
+ paths.append(path)
+ return paths
+
+
+def expand_requested_paths(root: Path, requested: list[str]) -> list[Path]:
+ if not requested:
+ paths = tracked_files(root)
+ else:
+ paths = []
+ for item in requested:
+ path = (root / item).resolve()
+ if not path.exists():
+ raise FileNotFoundError(f"Path does not exist: {item}")
+ if not path.is_relative_to(root):
+ raise ValueError(
+ f"Path is outside the repository root: {item!r} "
+ f"(resolved to {path}, root is {root})"
+ )
+ if path.is_dir():
+ for child in path.rglob("*"):
+ if child.is_file():
+ paths.append(child.relative_to(root))
+ else:
+ paths.append(path.relative_to(root))
+
+ unique = sorted(set(paths), key=lambda p: p.as_posix())
+ return [
+ path
+ for path in unique
+ if style_for(path) is not None and not is_excluded(path)
+ ]
+
+
+def newline_for(text: str) -> str:
+ return "\r\n" if "\r\n" in text else "\n"
+
+
+def build_header(notice: str, style: str, newline: str) -> str:
+ lines = notice.splitlines()
+ if style == "block":
+ body = newline.join(f" * {line}" if line else " *" for line in lines)
+ return f"/*{newline}{body}{newline} */{newline}{newline}"
+ if style == "hash":
+ body = newline.join(f"# {line}" if line else "#" for line in lines)
+ return f"{body}{newline}{newline}"
+ if style == "xml":
+ body = newline.join(f" ~ {line}" if line else " ~" for line in lines)
+ return f"{newline}{newline}"
+ raise ValueError(f"Unsupported comment style: {style}")
+
+
+def split_leading_directive(text: str, style: str, newline: str) -> tuple[str, str]:
+ if style == "hash" and text.startswith("#!"):
+ line_end = text.find("\n")
+ if line_end == -1:
+ return text + newline + newline, ""
+ prefix = text[: line_end + 1] + newline
+ return prefix, strip_leading_blank_lines(text[line_end + 1 :])
+
+ if style == "xml" and text.startswith("")
+ if close != -1:
+ line_end = text.find("\n", close)
+ if line_end == -1:
+ return text + newline + newline, ""
+ prefix = text[: line_end + 1] + newline
+ return prefix, strip_leading_blank_lines(text[line_end + 1 :])
+
+ return "", strip_leading_blank_lines(text)
+
+
+def strip_leading_blank_lines(text: str) -> str:
+ return re.sub(r"^(?:[ \t]*\r?\n)+", "", text)
+
+
+def strip_existing_header(text: str, style: str) -> tuple[str, bool]:
+ if style == "block" and text.startswith("/*"):
+ close = text.find("*/")
+ if close != -1:
+ candidate = text[: close + 2]
+ if is_copyright_header(candidate):
+ return strip_leading_blank_lines(text[close + 2 :]), True
+
+ if style == "xml" and text.startswith("")
+ if close != -1:
+ candidate = text[: close + 3]
+ if is_copyright_header(candidate):
+ return strip_leading_blank_lines(text[close + 3 :]), True
+
+ if style == "hash":
+ lines = text.splitlines(keepends=True)
+ end = 0
+ for line in lines:
+ stripped = line.strip()
+ if stripped == "" or stripped.startswith("#"):
+ end += len(line)
+ continue
+ break
+ candidate = text[:end]
+ if candidate and is_copyright_header(candidate):
+ return strip_leading_blank_lines(text[end:]), True
+
+ return text, False
+
+
+def is_copyright_header(text: str) -> bool:
+ limited = text[:5000]
+ return "Copyright" in limited and (
+ "Licensed under" in limited or "All rights reserved" in limited
+ )
+
+
+def updated_text(text: str, notice: str, style: str) -> str:
+ original = text
+ bom = "\ufeff" if text.startswith("\ufeff") else ""
+ if bom:
+ text = text[1:]
+ newline = newline_for(text)
+ prefix, body = split_leading_directive(text, style, newline)
+ body, had_header = strip_existing_header(body, style)
+ if not had_header:
+ return original
+ return bom + prefix + build_header(notice, style, newline) + body
+
+
+def update_file(root: Path, path: Path, notice: str, dry_run: bool) -> bool:
+ absolute = root / path
+ style = style_for(path)
+ if style is None:
+ return False
+
+ try:
+ text = absolute.read_text(encoding="utf-8")
+ except FileNotFoundError:
+ print(f"Skipping missing file: {path}", file=sys.stderr)
+ return False
+ except UnicodeDecodeError:
+ print(f"Skipping non-UTF-8 file: {path}", file=sys.stderr)
+ return False
+
+ next_text = updated_text(text, notice, style)
+ if next_text == text:
+ return False
+
+ if not dry_run:
+ with absolute.open("w", encoding="utf-8", newline="") as file:
+ file.write(next_text)
+ return True
+
+
+def main() -> int:
+ args = parse_args()
+ root = args.root.resolve()
+ notice, profile_path = load_notice(root, args.year)
+ try:
+ paths = expand_requested_paths(root, args.paths)
+ except (FileNotFoundError, ValueError) as exc:
+ print(f"error: {exc}", file=sys.stderr)
+ return 2
+ dry_run = args.dry_run or args.check
+
+ changed = [
+ path
+ for path in paths
+ if update_file(root, path, notice, dry_run=dry_run)
+ ]
+
+ rel_profile = profile_path.relative_to(root)
+ action = "Would update" if dry_run else "Updated"
+ print(f"Notice source: {rel_profile}")
+ print(f"{action} {len(changed)} file(s).")
+ for path in changed:
+ print(path.as_posix())
+
+ if args.check and changed:
+ return 1
+ return 0
+
+
+if __name__ == "__main__":
+ raise SystemExit(main())
diff --git a/.agents/skills/update-copyright/tests/test_update_copyright.py b/.agents/skills/update-copyright/tests/test_update_copyright.py
new file mode 100644
index 0000000000..8770b3275e
--- /dev/null
+++ b/.agents/skills/update-copyright/tests/test_update_copyright.py
@@ -0,0 +1,130 @@
+from __future__ import annotations
+
+import subprocess
+import sys
+import tempfile
+import unittest
+from pathlib import Path
+
+
+SCRIPT = Path(__file__).resolve().parents[1] / "scripts" / "update_copyright.py"
+
+
+class UpdateCopyrightTest(unittest.TestCase):
+ def test_default_run_leaves_plain_source_without_header_unchanged(self) -> None:
+ with tempfile.TemporaryDirectory() as temp_dir:
+ root = Path(temp_dir)
+ self.write_profile(root)
+ source = root / "Foo.java"
+ original = "class Foo {}\n"
+ source.write_text(original, encoding="utf-8")
+
+ subprocess.run(["git", "init", "-q"], cwd=root, check=True)
+ subprocess.run(["git", "add", "Foo.java"], cwd=root, check=True)
+
+ result = self.run_script(root)
+
+ self.assertEqual(result.returncode, 0, result.stderr)
+ self.assertIn("Updated 0 file(s).", result.stdout)
+ self.assertEqual(result.stderr, "")
+ self.assertEqual(source.read_text(encoding="utf-8"), original)
+
+ def test_existing_header_is_updated(self) -> None:
+ with tempfile.TemporaryDirectory() as temp_dir:
+ root = Path(temp_dir)
+ self.write_profile(root)
+ source = root / "Foo.java"
+ source.write_text(
+ "/*\n"
+ " * Copyright 2024 ACME\n"
+ " * All rights reserved\n"
+ " */\n"
+ "\n"
+ "class Foo {}\n",
+ encoding="utf-8",
+ )
+
+ result = self.run_script(root, "--year", "2026", "Foo.java")
+
+ self.assertEqual(result.returncode, 0, result.stderr)
+ self.assertIn("Updated 1 file(s).", result.stdout)
+ self.assertIn("Foo.java", result.stdout)
+ self.assertEqual(result.stderr, "")
+ self.assertEqual(
+ source.read_text(encoding="utf-8"),
+ "/*\n"
+ " * Copyright 2026 ACME\n"
+ " * All rights reserved\n"
+ " */\n"
+ "\n"
+ "class Foo {}\n",
+ )
+
+ def test_default_run_skips_tracked_files_deleted_from_working_tree(self) -> None:
+ with tempfile.TemporaryDirectory() as temp_dir:
+ root = Path(temp_dir)
+ self.write_profile(root)
+ source = root / "Foo.java"
+ source.write_text("class Foo {}\n", encoding="utf-8")
+
+ subprocess.run(["git", "init", "-q"], cwd=root, check=True)
+ subprocess.run(["git", "add", "Foo.java"], cwd=root, check=True)
+ source.unlink()
+
+ result = subprocess.run(
+ [
+ sys.executable,
+ str(SCRIPT),
+ "--root",
+ str(root),
+ "--dry-run",
+ ],
+ check=False,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ text=True,
+ )
+
+ self.assertEqual(result.returncode, 0, result.stderr)
+ self.assertIn("Would update 0 file(s).", result.stdout)
+ self.assertEqual(result.stderr, "")
+
+ @staticmethod
+ def run_script(root: Path, *args: str) -> subprocess.CompletedProcess[str]:
+ return subprocess.run(
+ [
+ sys.executable,
+ str(SCRIPT),
+ "--root",
+ str(root),
+ *args,
+ ],
+ check=False,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ text=True,
+ )
+
+ @staticmethod
+ def write_profile(root: Path) -> None:
+ copyright_dir = root / ".idea" / "copyright"
+ copyright_dir.mkdir(parents=True)
+ (copyright_dir / "profiles_settings.xml").write_text(
+ ''
+ ''
+ "\n",
+ encoding="utf-8",
+ )
+ (copyright_dir / "Default.xml").write_text(
+ ''
+ ""
+ ''
+ ""
+ "\n",
+ encoding="utf-8",
+ )
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/.claude/skills b/.claude/skills
new file mode 120000
index 0000000000..2b7a412b8f
--- /dev/null
+++ b/.claude/skills
@@ -0,0 +1 @@
+../.agents/skills
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 48de9f27a3..a3e0ec13bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -130,3 +130,7 @@ pubspec.lock
/tmp
.gradle-test-kit/
+
+# Python cache
+__pycache__/
+*.pyc
diff --git a/.junie/skills b/.junie/skills
new file mode 120000
index 0000000000..2b7a412b8f
--- /dev/null
+++ b/.junie/skills
@@ -0,0 +1 @@
+../.agents/skills
\ No newline at end of file
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 549ed2c1b1..a5ef403185 100644
--- a/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.kt
+++ b/buildSrc/src/main/kotlin/io/spine/dependency/local/Validation.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.
@@ -36,7 +36,7 @@ object Validation {
/**
* The version of the Validation library artifacts.
*/
- const val version = "2.0.0-SNAPSHOT.411"
+ const val version = "2.0.0-SNAPSHOT.413"
/**
* The last version of Validation compatible with ProtoData.
diff --git a/config b/config
index 948243e0b9..8d540c50a6 160000
--- a/config
+++ b/config
@@ -1 +1 @@
-Subproject commit 948243e0b9158d918f67c40b9b61bac8689e2698
+Subproject commit 8d540c50a6ecb118c8fd1080b45054c0a3909ea9
diff --git a/dependencies.md b/dependencies.md
index eb2dd3c551..497e7fddf8 100644
--- a/dependencies.md
+++ b/dependencies.md
@@ -1,6 +1,6 @@
-# Dependencies of `io.spine.tools:validation-context:2.0.0-SNAPSHOT.413`
+# Dependencies of `io.spine.tools:validation-context:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
@@ -1090,14 +1090,14 @@
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:19 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.413`
+# Dependencies of `io.spine.tools:validation-context-tests:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
@@ -1791,7 +1791,7 @@ This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:18 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).
@@ -1812,7 +1812,7 @@ This report was generated on **Fri Apr 24 19:11:43 WEST 2026** using
-# Dependencies of `io.spine.tools:validation-gradle-plugin:2.0.0-SNAPSHOT.413`
+# Dependencies of `io.spine.tools:validation-gradle-plugin:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
@@ -2864,14 +2864,14 @@ This report was generated on **Fri Apr 24 19:11:43 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:19 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.413`
+# Dependencies of `io.spine.tools:validation-java:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
@@ -3961,14 +3961,14 @@ This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:19 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.413`
+# Dependencies of `io.spine.tools:validation-java-bundle:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 13.0.
@@ -4015,14 +4015,14 @@ This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:32 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:16 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.413`
+# Dependencies of `io.spine:spine-validation-jvm-runtime:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -4822,14 +4822,14 @@ This report was generated on **Fri Apr 24 19:24:32 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:19 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-validation-tests:2.0.0-SNAPSHOT.413`
+# Dependencies of `io.spine.tools:validation-consumer:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
@@ -5138,6 +5138,10 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5291,14 +5295,6 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5391,10 +5387,6 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5447,10 +5439,6 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5523,16 +5511,80 @@ This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:18 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.413`
+# Dependencies of `io.spine.tools:validation-consumer-dependency:2.0.0-SNAPSHOT.414`
## 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)
@@ -5606,10 +5658,42 @@ This report was generated on **Fri Apr 24 19:24:33 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** : 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)
@@ -5625,6 +5709,10 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5637,6 +5725,11 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5649,6 +5742,21 @@ This report was generated on **Fri Apr 24 19:24:33 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** : 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)
@@ -5693,10 +5801,18 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5705,22 +5821,114 @@ This report was generated on **Fri Apr 24 19:24:33 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.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)
@@ -5741,6 +5949,10 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5761,7 +5973,19 @@ This report was generated on **Fri Apr 24 19:24:33 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)
-## Compile, tests, and tooling
+
+The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
+
+This report was generated on **Wed Apr 29 15:56:18 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.414`
+
+## 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)
@@ -5827,10 +6051,6 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5839,26 +6059,10 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5867,9 +6071,6 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5889,23 +6090,6 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5918,12 +6102,6 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5960,30 +6138,6 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -5992,27 +6146,10 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -6021,105 +6158,22 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -6144,14 +6198,6 @@ This report was generated on **Fri Apr 24 19:24:33 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-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)
@@ -6164,1803 +6210,32 @@ This report was generated on **Fri Apr 24 19:24:33 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 19:24:33 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.413`
-
-## Runtime
-1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
- * **Project URL:** [http://findbugs.sourceforge.net/](http://findbugs.sourceforge.net/)
+## 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.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.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.google.guava. **Name** : failureaccess. **Version** : 1.0.3.
- * **Project URL:** [https://github.com/google/guava/](https://github.com/google/guava/)
+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.google.guava. **Name** : guava. **Version** : 33.5.0-jre.
- * **Project URL:** [https://github.com/google/guava](https://github.com/google/guava)
+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)
-
-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.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.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 19:24:32 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.413`
-
-## 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 19:24:33 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.413`
-
-## 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 19:24:33 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.413`
-
-## 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)
+
+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)
@@ -7974,23 +6249,65 @@ This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
* **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.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)
+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.8.9.
- * **Project URL:** [https://github.com/google/gson/gson](https://github.com/google/gson/gson)
+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)
@@ -7999,13 +6316,9 @@ This report was generated on **Fri Apr 24 19:24:33 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.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/)
@@ -8015,9 +6328,6 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -8025,6 +6335,10 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -8042,18 +6356,6 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -8062,60 +6364,89 @@ This report was generated on **Fri Apr 24 19:24:33 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** : 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.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-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.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-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.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-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.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-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-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.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-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.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** : 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** : 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** : 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** : 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** : 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)
+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.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)
@@ -8180,6 +6511,14 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -8204,6 +6543,10 @@ This report was generated on **Fri Apr 24 19:24:33 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)
@@ -8232,15 +6575,11 @@ This report was generated on **Fri Apr 24 19:24:33 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-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.
+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:** [Apache-2.0](https://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** : org.jetbrains.kotlinx. **Name** : kotlinx-coroutines-test-jvm. **Version** : 1.10.2.
+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)
@@ -8256,58 +6595,21 @@ This report was generated on **Fri Apr 24 19:24:33 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 19:24:32 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:18 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-validating:2.0.0-SNAPSHOT.413`
+# Dependencies of `io.spine.tools:validation-runtime:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -8744,14 +7046,6 @@ This report was generated on **Fri Apr 24 19:24:32 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)
@@ -8776,10 +7070,6 @@ This report was generated on **Fri Apr 24 19:24:32 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)
@@ -8808,10 +7098,6 @@ This report was generated on **Fri Apr 24 19:24:32 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)
@@ -8884,14 +7170,14 @@ This report was generated on **Fri Apr 24 19:24:32 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:18 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.413`
+# Dependencies of `io.spine.tools:validation-validating:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -9495,14 +7781,14 @@ This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:18 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.413`
+# Dependencies of `io.spine.tools:validation-validator:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.20.0.
@@ -10240,14 +8526,14 @@ This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:18 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.413`
+# Dependencies of `io.spine.tools:validation-validator-dependency:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -10480,14 +8766,14 @@ This report was generated on **Fri Apr 24 19:24:33 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:32 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:18 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.413`
+# Dependencies of `io.spine.tools:validation-vanilla:2.0.0-SNAPSHOT.414`
## Runtime
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -10830,6 +9116,6 @@ This report was generated on **Fri Apr 24 19:24:32 WEST 2026** using
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
-This report was generated on **Fri Apr 24 19:24:32 WEST 2026** using
+This report was generated on **Wed Apr 29 15:56:17 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/java/src/main/kotlin/io/spine/tools/time/validation/java/WhenGenerator.kt b/java/src/main/kotlin/io/spine/tools/time/validation/java/WhenGenerator.kt
deleted file mode 100644
index 34ef9f9d05..0000000000
--- a/java/src/main/kotlin/io/spine/tools/time/validation/java/WhenGenerator.kt
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * 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.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
-import io.spine.tools.compiler.jvm.JavaValueConverter
-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
-import io.spine.tools.validation.ErrorPlaceholder.FIELD_VALUE
-import io.spine.tools.validation.ErrorPlaceholder.PARENT_TYPE
-import io.spine.tools.validation.ErrorPlaceholder.WHEN_IN
-import io.spine.tools.validation.java.expression.EmptyFieldCheck
-import io.spine.tools.validation.java.expression.JsonExtensionsClass
-import io.spine.tools.validation.java.expression.SpineTime
-import io.spine.tools.validation.java.expression.TimestampsClass
-import io.spine.tools.validation.java.expression.constraintViolation
-import io.spine.tools.validation.java.expression.joinToString
-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.MessageScope.message
-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
-
-/**
- * The generator for the `(when)` option.
- */
-internal class WhenGenerator : OptionGeneratorWithConverter() {
-
- /**
- * All `(when)` fields in the current compilation process.
- */
- private val allWhenFields by lazy {
- querying.select()
- .all()
- }
-
- override fun codeFor(type: TypeName): List =
- allWhenFields
- .filter { it.id.type == type }
- .map { GenerateWhen(it, converter).code() }
-}
-
-/**
- * Generates code for a single application of the `(when)` option
- * represented by the [view].
- */
-private class GenerateWhen(
- private val view: WhenField,
- override val converter: JavaValueConverter
-) : EmptyFieldCheck {
-
- private val field = view.subject
- private val fieldType = field.type
- private val declaringType = field.declaringType
- private val fieldValue = message.field(field).getter()
-
- /**
- * Returns the generated code.
- */
- fun code(): SingleOptionCode = when {
- fieldType.isMessage -> validateTime(fieldValue)
- fieldType.isRepeatedMessage ->
- CodeBlock(
- """
- for (var element : $fieldValue) {
- ${validateTime(ReadVar("element"))}
- }
- """.trimIndent()
- )
-
- else -> unsupportedFieldType()
- }.run { SingleOptionCode(this) }
-
- /**
- * Yields an expression to check if the provided [fieldValue] matches
- * the time [restriction][WhenField.getBound].
- *
- * The reported violations are appended to [violations] list, if any.
- *
- * Depending on the field type, the method uses either Protobuf's
- * [Timestamps.compare()][com.google.protobuf.util.Timestamps.compare]
- * or Spine's [Temporal.isInPast()][io.spine.time.Temporal.isInPast] and
- * [Temporal.isInFuture()][io.spine.time.Temporal.isInFuture] methods.
- */
- private fun validateTime(fieldValue: Expression): CodeBlock {
- val isTimeOutOfBound = when (view.type) {
- TFT_TIMESTAMP -> {
- val operator = if (view.bound == FUTURE) "<" else ">"
- "$TimestampsClass.compare($fieldValue, $SpineTime.currentTime()) $operator 0"
- }
-
- TFT_TEMPORAL -> {
- val checkBound = if (view.bound == FUTURE) "isInPast" else "isInFuture"
- "$fieldValue.$checkBound()"
- }
-
- else -> unsupportedFieldType()
- }
- return CodeBlock(
- """
- if (!${field.hasDefaultValue()} && $isTimeOutOfBound) {
- var fieldPath = ${parentPath.resolve(field.name)};
- var typeName = ${parentName.orElse(declaringType)};
- var violation = ${violation(ReadVar("fieldPath"), ReadVar("typeName"), fieldValue)};
- $violations.add(violation);
- }
- """.trimIndent()
- )
- }
-
- private fun violation(
- fieldPath: Expression,
- typeName: Expression,
- fieldValue: Expression<*>,
- ): Expression {
- val typeNameStr = typeName.stringify()
- val placeholders = supportedPlaceholders(fieldPath, typeNameStr, fieldValue)
- val errorMessage = templateString(view.errorMessage, placeholders, WhenOption.NAME)
- return constraintViolation(errorMessage, typeNameStr, fieldPath, fieldValue)
- }
-
- private fun supportedPlaceholders(
- fieldPath: Expression,
- typeName: Expression,
- fieldValue: Expression<*>,
- ): Map> = mapOf(
- FIELD_PATH to fieldPath.joinToString(),
- FIELD_VALUE to JsonExtensionsClass.call("toCompactJson", fieldValue),
- FIELD_TYPE to StringLiteral(fieldType.name),
- PARENT_TYPE to typeName,
- WHEN_IN to StringLiteral("${view.bound}".lowercase())
- )
-
- private fun unsupportedFieldType(): Nothing =
- error(
- "The field type `${field.type.name}` is not supported by `${this::class.simpleName}`." +
- " Please ensure that the supported field types in this generator match those" +
- " used by the reaction, which verified `${view::class.simpleName}`."
- )
-}
diff --git a/java/src/main/kotlin/io/spine/tools/time/validation/java/WhenOption.kt b/java/src/main/kotlin/io/spine/tools/time/validation/java/WhenOption.kt
deleted file mode 100644
index 4b267736fc..0000000000
--- a/java/src/main/kotlin/io/spine/tools/time/validation/java/WhenOption.kt
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * 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 com.google.auto.service.AutoService
-import com.google.protobuf.Timestamp
-import io.spine.core.External
-import io.spine.core.Subscribe
-import io.spine.core.Where
-import io.spine.protobuf.unpack
-import io.spine.server.entity.alter
-import io.spine.server.event.NoReaction
-import io.spine.server.event.React
-import io.spine.server.event.asA
-import io.spine.server.tuple.EitherOf2
-import io.spine.time.Temporal
-import io.spine.time.validation.Time
-import io.spine.time.validation.TimeOption
-import io.spine.tools.compiler.Compilation
-import io.spine.tools.compiler.ast.Field
-import io.spine.tools.compiler.ast.FieldRef
-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.isRepeatedMessage
-import io.spine.tools.compiler.ast.name
-import io.spine.tools.compiler.ast.qualifiedName
-import io.spine.tools.compiler.ast.ref
-import io.spine.tools.compiler.check
-import io.spine.tools.compiler.jvm.findJavaClassName
-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
-import io.spine.tools.validation.ErrorPlaceholder.PARENT_TYPE
-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.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.
- *
- * Whenever a field marked with the `(when)` options is discovered, emits
- * [WhenFieldDiscovered] event if the following conditions are met:
- *
- * 1) The field type is supported by the option.
- * 2) The error message does not contain unsupported placeholders.
- * 3) The option value is other than [Time.TIME_UNDEFINED].
- *
- * If (1) or (2) is violated, the reaction reports a compilation error.
- *
- * Violation of (3) means that the `(when)` option is applied correctly,
- * but effectively disabled. [WhenFieldDiscovered] is not emitted for
- * disabled options. In this case, the reaction emits [NoReaction] meaning
- * that the option is ignored.
- */
-internal class WhenReaction : Reaction() {
-
- @React
- override fun whenever(
- @External @Where(field = OPTION_NAME, equals = WhenOption.NAME)
- event: FieldOptionDiscovered
- ): EitherOf2 {
- val field = event.subject
- val file = event.file
- val timeType = checkFieldType(field, typeSystem, file)
-
- val option = event.option.value.unpack()
- val timeBound = option.`in`
- if (timeBound == Time.TIME_UNDEFINED) {
- return ignore()
- }
-
- val message = option.errorMsg.ifEmpty { option.descriptorForType.defaultMessage }
- message.checkPlaceholders(SUPPORTED_PLACEHOLDERS, field, file, WhenOption.NAME)
-
- return whenFieldDiscovered {
- id = field.ref
- subject = field
- errorMessage = message
- bound = timeBound
- type = timeType
- }.asA()
- }
-}
-
-private fun checkFieldType(field: Field, typeSystem: TypeSystem, file: File): TimeFieldType {
- 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 `(${WhenOption.NAME})` option. Supported field types:" +
- " `google.protobuf.Timestamp` and types introduced in the `spine.time` package" +
- " that describe time-related concepts."
- }
- return timeType
-}
-
-/**
- * Analysis the given [fieldType], determining whether it represents
- * the Protobuf [Timestamp] or Spine [Temporal].
- *
- * For other field types, the method returns [TimeFieldType.TFT_UNKNOWN].
- */
-private fun TypeSystem.determineTimeType(fieldType: FieldType): TimeFieldType {
- if (!fieldType.isMessage && !fieldType.isRepeatedMessage) {
- return TFT_UNKNOWN
- }
- val messageType = fieldType.extractMessageType(typeSystem = this)?.name
- val javaClass = messageType?.findJavaClassName(typeSystem = this)?.javaClass()
- return when {
- javaClass == null -> TFT_UNKNOWN
- javaClass == Timestamp::class.java -> TFT_TIMESTAMP
- Temporal::class.java.isAssignableFrom(javaClass) -> TFT_TEMPORAL
- else -> TFT_UNKNOWN
- }
-}
-
-/**
- * A view of a field that is marked with the `(when)` option.
- */
-internal class WhenFieldView : View() {
-
- @Subscribe
- fun on(e: WhenFieldDiscovered) = alter {
- subject = e.subject
- errorMessage = e.errorMessage
- bound = e.bound
- type = e.type
- }
-}
-
-private val SUPPORTED_PLACEHOLDERS = setOf(
- FIELD_PATH,
- FIELD_TYPE,
- FIELD_VALUE,
- PARENT_TYPE,
- WHEN_IN,
-)
diff --git a/java/src/main/proto/spine/tools/time/validation/events.proto b/java/src/main/proto/spine/tools/time/validation/events.proto
deleted file mode 100644
index fda7ff16c7..0000000000
--- a/java/src/main/proto/spine/tools/time/validation/events.proto
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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/java/src/main/proto/spine/tools/time/validation/time_field_type.proto b/java/src/main/proto/spine/tools/time/validation/time_field_type.proto
deleted file mode 100644
index be8f9211a9..0000000000
--- a/java/src/main/proto/spine/tools/time/validation/time_field_type.proto
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright 2025, 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
- *
- * http://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 = "TimeFieldTypeProto";
-option java_multiple_files = true;
-
-// Time-related field type supported by the `(when)` option.
-enum TimeFieldType {
-
- TFT_UNKNOWN = 0;
-
- // Denotes `com.google.protobuf.Timestamp`.
- TFT_TIMESTAMP = 1;
-
- // Denotes an interface `io.spine.time.Temporal`, which the field type should
- // implement to be handled by the option.
- TFT_TEMPORAL = 2;
-}
diff --git a/java/src/main/proto/spine/tools/time/validation/views.proto b/java/src/main/proto/spine/tools/time/validation/views.proto
deleted file mode 100644
index e18d6e17f5..0000000000
--- a/java/src/main/proto/spine/tools/time/validation/views.proto
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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/pom.xml b/pom.xml
index 605428ec95..0e1aa88d5c 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.413
+2.0.0-SNAPSHOT.414
2015
@@ -336,11 +336,6 @@ all modules and does not describe the project structure per-subproject.
templating-plugin
2.2.0
-
- org.jetbrains.kotlin
- abi-tools
- 2.3.20
-
org.jetbrains.kotlin
kotlin-build-tools-compat
@@ -351,11 +346,6 @@ 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 d1174cd57c..95030fa624 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -36,7 +36,6 @@ rootProject.name = "validation"
include(
"context",
"context-tests",
- "time-validation-tests",
"gradle-plugin",
"java",
"jvm-runtime",
@@ -47,8 +46,6 @@ 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 116a9b8253..fe0a3eded9 100644
--- a/tests/build.gradle.kts
+++ b/tests/build.gradle.kts
@@ -80,7 +80,6 @@ val applyCoreJvmCompiler = setOf(
"extensions",
"consumer-dependency",
"runtime",
- "time-validating",
"validating"
)
diff --git a/tests/consumer/src/main/proto/test/football.proto b/tests/consumer/src/main/proto/test/football.proto
index 39f498df4a..832a12871b 100644
--- a/tests/consumer/src/main/proto/test/football.proto
+++ b/tests/consumer/src/main/proto/test/football.proto
@@ -3,7 +3,6 @@ syntax = "proto3";
package spine.validation.test;
import "spine/options.proto";
-import "spine/time_options.proto";
option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.validation.test";
@@ -18,8 +17,6 @@ message Player {
regex: "[\\w\\-.\\s]{2,}"
error_msg: "Invalid T-Shirt name."
}];
-
- google.protobuf.Timestamp started_career_in = 2 [(when).in = PAST];
}
message Team {
diff --git a/tests/consumer/src/main/proto/test/time.proto b/tests/consumer/src/main/proto/test/time.proto
index 479766075a..77f7748ad8 100644
--- a/tests/consumer/src/main/proto/test/time.proto
+++ b/tests/consumer/src/main/proto/test/time.proto
@@ -3,7 +3,6 @@ syntax = "proto3";
package spine.validation.test.time;
import "spine/options.proto";
-import "spine/time_options.proto";
option (type_url_prefix) = "type.spine.io";
option java_package = "io.spine.tools.validation.test.time";
@@ -25,21 +24,3 @@ message LocalTime {
float seconds = 3 [(min).value = "0.0", (max).value = "59.999"];
}
-
-// The messages declared below are designed to test that the validation code generated
-// makes sense from the Java compiler standpoint.
-//
-// The actual behavioral testing is done in scope of `spine-time` library.
-//
-
-message TimeInFutureFieldValue {
- google.protobuf.Timestamp value = 1 [(when).in = FUTURE];
-}
-
-message TimeInPastFieldValue {
- google.protobuf.Timestamp value = 1 [(when).in = PAST];
-}
-
-message AlwaysValidTime {
- google.protobuf.Timestamp value = 1 [(when).in = TIME_UNDEFINED];
-}
diff --git a/tests/time-consumer/build.gradle.kts b/tests/time-consumer/build.gradle.kts
deleted file mode 100644
index 67163e147c..0000000000
--- a/tests/time-consumer/build.gradle.kts
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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/tests/time-consumer/src/main/proto/test/football.proto b/tests/time-consumer/src/main/proto/test/football.proto
deleted file mode 100644
index 95bd06f3c5..0000000000
--- a/tests/time-consumer/src/main/proto/test/football.proto
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 2025, 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.validation.test;
-
-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
deleted file mode 100644
index 01c65edcd7..0000000000
--- a/tests/time-consumer/src/test/kotlin/io/spine/validation/test/Assertions.kt
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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/time-consumer/src/test/kotlin/io/spine/validation/test/WhenRuleITest.kt b/tests/time-consumer/src/test/kotlin/io/spine/validation/test/WhenRuleITest.kt
deleted file mode 100644
index 3f870a3bb4..0000000000
--- a/tests/time-consumer/src/test/kotlin/io/spine/validation/test/WhenRuleITest.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.protobuf.util.Timestamps
-import org.junit.jupiter.api.DisplayName
-import org.junit.jupiter.api.Test
-
-@DisplayName("`(when)` rule should")
-internal class WhenRuleITest {
-
- @Test
- fun `prohibit invalid timestamp`() {
- val startWhen = Timestamps.fromSeconds(4792687200L) // 15 Nov 2121
- val player = Player.newBuilder()
- .setStartedCareerIn(startWhen)
- assertValidationException(player)
- }
-
- @Test
- fun `allow valid timestamp`() {
- val timestamp = Timestamps.fromSeconds(59086800L) // 15 Nov 1971
- val player = Player.newBuilder()
- .setStartedCareerIn(timestamp)
- assertNoException(player)
- }
-}
diff --git a/tests/time-validating/build.gradle.kts b/tests/time-validating/build.gradle.kts
deleted file mode 100644
index 1ccc083870..0000000000
--- a/tests/time-validating/build.gradle.kts
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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/time-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
deleted file mode 100644
index 3a7b5a387a..0000000000
--- a/tests/time-validating/src/test/kotlin/io/spine/test/options/when/ProtoTimestampWhenSpec.kt
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright 2024, 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.test.options.`when`
-
-import com.google.protobuf.Duration
-import com.google.protobuf.Timestamp
-import com.google.protobuf.util.Durations.fromMillis
-import com.google.protobuf.util.Timestamps
-import io.spine.test.tools.validate.anyProtoTimestamp
-import io.spine.test.tools.validate.anyProtoTimestamps
-import io.spine.test.tools.validate.futureProtoTimestamp
-import io.spine.test.tools.validate.futureProtoTimestamps
-import io.spine.test.tools.validate.pastProtoTimestamp
-import io.spine.test.tools.validate.pastProtoTimestamps
-import io.spine.tools.validation.assertions.assertValidationFails
-import io.spine.tools.validation.assertions.assertValidationPasses
-import org.junit.jupiter.api.DisplayName
-import org.junit.jupiter.api.Nested
-import org.junit.jupiter.api.Test
-
-@DisplayName("If used with Protobuf `Timestamp`, `(when)` constrain should")
-internal class ProtoTimestampWhenSpec {
-
- @Nested inner class
- `when given a timestamp denoting` {
-
- @Nested inner class
- `the past` {
-
- @Test
- fun `throw, if restricted to be in future`() = assertValidationFails {
- futureProtoTimestamp {
- value = pastTime()
- }
- }
-
- @Test
- fun `pass, if restricted to be in past`() = assertValidationPasses {
- pastProtoTimestamp {
- value = pastTime()
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anyProtoTimestamp {
- value = pastTime()
- }
- }
- }
-
- @Nested inner class
- `the future` {
-
- @Test
- fun `throw, if restricted to be in past`() = assertValidationFails {
- pastProtoTimestamp {
- value = futureTime()
- }
- }
-
- @Test
- fun `pass, if restricted to be in future`() = assertValidationPasses {
- futureProtoTimestamp {
- value = futureTime()
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anyProtoTimestamp {
- value = futureTime()
- }
- }
- }
- }
-
- @Nested inner class
- `when given several timestamps` {
-
- @Nested inner class
- `denoting only the past` {
-
- private val severalPastTimes = listOf(pastTime(), pastTime(), pastTime())
-
- @Test
- fun `throw, if restricted to be in future`() = assertValidationFails {
- futureProtoTimestamps {
- value.addAll(severalPastTimes)
- }
- }
-
- @Test
- fun `pass, if restricted to be in past`() = assertValidationPasses {
- pastProtoTimestamps {
- value.addAll(severalPastTimes)
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anyProtoTimestamps {
- value.addAll(severalPastTimes)
- }
- }
- }
-
- @Nested inner class
- `denoting only the future` {
-
- private val severalFutureTimes = listOf(futureTime(), futureTime(), futureTime())
-
- @Test
- fun `throw, if restricted to be in past`() = assertValidationFails {
- pastProtoTimestamps {
- value.addAll(severalFutureTimes)
- }
- }
-
- @Test
- fun `pass, if restricted to be in future`() = assertValidationPasses {
- futureProtoTimestamps {
- value.addAll(severalFutureTimes)
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anyProtoTimestamps {
- value.addAll(severalFutureTimes)
- }
- }
- }
-
- @Nested inner class
- `with a single past stamp within the future stamps` {
-
- private val severalFutureAndPast = listOf(futureTime(), pastTime(), futureTime())
-
- @Test
- fun `throw, if restricted to be in future`() = assertValidationFails {
- futureProtoTimestamps {
- value.addAll(severalFutureAndPast)
- }
- }
-
- @Test
- fun `throw, if restricted to be in past`() = assertValidationFails {
- pastProtoTimestamps {
- value.addAll(severalFutureAndPast)
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anyProtoTimestamps {
- value.addAll(severalFutureAndPast)
- }
- }
- }
-
- @Nested inner class
- `with a single future stamp within the past stamps` {
-
- private val severalPastAndFuture = listOf(pastTime(), futureTime(), pastTime())
-
- @Test
- fun `throw, if restricted to be in future`() = assertValidationFails {
- futureProtoTimestamps {
- value.addAll(severalPastAndFuture)
- }
- }
-
- @Test
- fun `throw, if restricted to be in past`() = assertValidationFails {
- pastProtoTimestamps {
- value.addAll(severalPastAndFuture)
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anyProtoTimestamps {
- value.addAll(severalPastAndFuture)
- }
- }
- }
- }
-}
-
-private fun pastTime(): Timestamp {
- val current = Timestamps.now()
- val past = Timestamps.subtract(current, HALF_OF_SECONDS)
- return past
-}
-
-private fun futureTime(): Timestamp {
- val current = Timestamps.now()
- val future = Timestamps.add(current, HALF_OF_SECONDS)
- return future
-}
-
-/**
- * Protobuf [Duration] of five hundred milliseconds.
- *
- * To shift the time into the past or future, we add or subtract a difference of this amount.
- *
- * There are two reasons for choosing 500 milliseconds:
- *
- * 1. The generated code uses `io.spine.base.Time.currentTime()` to get the current timestamp
- * for comparison. In turn, this method relies on `io.spine.base.Time.SystemTimeProvider`
- * by default, which has millisecond precision.
- * 2. Adding too small amount of time to make the stamp denote "future" might be unreliable.
- * As it could catch up `now` by the time `Time.currentTime()` is invoked.
- */
-private val HALF_OF_SECONDS: Duration = fromMillis(500)
diff --git a/tests/time-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
deleted file mode 100644
index 0e4a3f0ff6..0000000000
--- a/tests/time-validating/src/test/kotlin/io/spine/test/options/when/SpineTemporalWhenSpec.kt
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright 2024, 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.test.options.`when`
-
-import io.spine.test.tools.validate.anySpineTemporal
-import io.spine.test.tools.validate.anySpineTemporals
-import io.spine.test.tools.validate.futureSpineTemporal
-import io.spine.test.tools.validate.futureSpineTemporals
-import io.spine.test.tools.validate.pastSpineTemporal
-import io.spine.test.tools.validate.pastSpineTemporals
-import io.spine.time.LocalDateTimes
-import io.spine.tools.validation.assertions.assertValidationFails
-import io.spine.tools.validation.assertions.assertValidationPasses
-import java.time.Instant
-import java.time.LocalDateTime.ofInstant
-import java.time.ZoneOffset.UTC
-import org.junit.jupiter.api.DisplayName
-import org.junit.jupiter.api.Nested
-import org.junit.jupiter.api.Test
-import io.spine.time.LocalDateTime as SpineTimeLocalDateTime
-
-@DisplayName("If used with Spine `Temporal`, `(when)` constrain should")
-internal class SpineTemporalWhenSpec {
-
- @Nested inner class
- `when given a temporal denoting` {
-
- @Nested inner class
- `the past` {
-
- @Test
- fun `throw, if restricted to be in future`() = assertValidationFails {
- futureSpineTemporal {
- value = pastTime()
- }
- }
-
- @Test
- fun `pass, if restricted to be in past`() = assertValidationPasses {
- pastSpineTemporal {
- value = pastTime()
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anySpineTemporal {
- value = pastTime()
- }
- }
- }
-
- @Nested inner class
- `the future` {
-
- @Test
- fun `throw, if restricted to be in past`() = assertValidationFails {
- pastSpineTemporal {
- value = futureTime()
- }
- }
-
- @Test
- fun `pass, if restricted to be in future`() = assertValidationPasses {
- futureSpineTemporal {
- value = futureTime()
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anySpineTemporal {
- value = futureTime()
- }
- }
- }
- }
-
- @Nested inner class
- `when given several times` {
-
- @Nested inner class
- `denoting only the past` {
-
- private val severalPastTimes = listOf(pastTime(), pastTime(), pastTime())
-
- @Test
- fun `throw, if restricted to be in future`() = assertValidationFails {
- futureSpineTemporals {
- value.addAll(severalPastTimes)
- }
- }
-
- @Test
- fun `pass, if restricted to be in past`() = assertValidationPasses {
- pastSpineTemporals {
- value.addAll(severalPastTimes)
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anySpineTemporals {
- value.addAll(severalPastTimes)
- }
- }
- }
-
- @Nested inner class
- `denoting only the future` {
-
- private val severalFutureTimes = listOf(futureTime(), futureTime(), futureTime())
-
- @Test
- fun `throw, if restricted to be in past`() = assertValidationFails {
- pastSpineTemporals {
- value.addAll(severalFutureTimes)
- }
- }
-
- @Test
- fun `pass, if restricted to be in future`() = assertValidationPasses {
- futureSpineTemporals {
- value.addAll(severalFutureTimes)
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anySpineTemporals {
- value.addAll(severalFutureTimes)
- }
- }
- }
-
- @Nested inner class
- `with a single past time within the future times` {
-
- private val severalFutureAndPast = listOf(futureTime(), pastTime(), futureTime())
-
- @Test
- fun `throw, if restricted to be in future`() = assertValidationFails {
- futureSpineTemporals {
- value.addAll(severalFutureAndPast)
- }
- }
-
- @Test
- fun `throw, if restricted to be in past`() = assertValidationFails {
- pastSpineTemporals {
- value.addAll(severalFutureAndPast)
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anySpineTemporals {
- value.addAll(severalFutureAndPast)
- }
- }
- }
-
- @Nested inner class
- `with a single future time within the past times` {
-
- private val severalPastAndFuture = listOf(pastTime(), futureTime(), pastTime())
-
- @Test
- fun `throw, if restricted to be in future`() = assertValidationFails {
- futureSpineTemporals {
- value.addAll(severalPastAndFuture)
- }
- }
-
- @Test
- fun `throw, if restricted to be in past`() = assertValidationFails {
- pastSpineTemporals {
- value.addAll(severalPastAndFuture)
- }
- }
-
- @Test
- fun `pass, if not restricted at all`() = assertValidationPasses {
- anySpineTemporals {
- value.addAll(severalPastAndFuture)
- }
- }
- }
- }
-}
-
-private fun pastTime(): SpineTimeLocalDateTime {
- val current = Instant.now() // It is a UTC stamp.
- val past = current.minusMillis(HALF_OF_SECOND)
- return LocalDateTimes.of(ofInstant(past, UTC))
-}
-
-private fun futureTime(): SpineTimeLocalDateTime {
- val current = Instant.now() // It is a UTC stamp.
- val past = current.plusMillis(HALF_OF_SECOND)
- return LocalDateTimes.of(ofInstant(past, UTC))
-}
-
-/**
- * Five hundred milliseconds.
- *
- * To shift the time into the past or future, we add or subtract a difference of this amount.
- *
- * There are two reasons for choosing 500 milliseconds:
- *
- * 1. The generated code uses `io.spine.base.Time.currentTime()` to get the current timestamp
- * for comparison. In turn, this method relies on `io.spine.base.Time.SystemTimeProvider`
- * by default, which has millisecond precision.
- * 2. Adding too small amount of time to make the stamp denote "future" might be unreliable.
- * As it could catch up `now` by the time `Time.currentTime()` is invoked.
- */
-private const val HALF_OF_SECOND: Long = 500
diff --git a/tests/time-validating/src/testFixtures/proto/spine/test/tools/validate/when.proto b/tests/time-validating/src/testFixtures/proto/spine/test/tools/validate/when.proto
deleted file mode 100644
index b25a952add..0000000000
--- a/tests/time-validating/src/testFixtures/proto/spine/test/tools/validate/when.proto
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2024, 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
- *
- * http://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.test.tools.validate;
-
-import "spine/options.proto";
-import "spine/time_options.proto";
-
-option (type_url_prefix) = "type.spine.io";
-option java_package = "io.spine.test.tools.validate";
-option java_outer_classname = "WhenProto";
-option java_multiple_files = true;
-
-import "google/protobuf/timestamp.proto";
-import "spine/time/time.proto";
-
-// Tests `PAST` restriction with a Protobuf timestamp.
-message PastProtoTimestamp {
- google.protobuf.Timestamp value = 1 [(when).in = PAST];
-}
-
-// Tests `PAST` restriction with a Spine temporal.
-message PastSpineTemporal {
- spine.time.LocalDateTime value = 1 [(when).in = PAST];
-}
-
-// Tests `FUTURE` restriction with a Protobuf timestamp.
-message FutureProtoTimestamp {
- google.protobuf.Timestamp value = 1 [(when).in = FUTURE];
-}
-
-// Tests `FUTURE` restriction with a Spine temporal.
-message FutureSpineTemporal {
- spine.time.LocalDateTime value = 1 [(when).in = FUTURE];
-}
-
-// Tests that a Protobuf timestamp is not restricted when there's no option.
-message AnyProtoTimestamp {
- google.protobuf.Timestamp value = 1;
-}
-
-// Tests that a Spine temporal is not restricted when there's no option.
-message AnySpineTemporal {
- spine.time.LocalDateTime value = 1;
-}
diff --git a/tests/time-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
deleted file mode 100644
index a96cd6c6c9..0000000000
--- a/tests/time-validating/src/testFixtures/proto/spine/test/tools/validate/when_repeated.proto
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2024, 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
- *
- * http://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.test.tools.validate;
-
-import "spine/options.proto";
-import "spine/time_options.proto";
-
-option (type_url_prefix) = "type.spine.io";
-option java_package = "io.spine.test.tools.validate";
-option java_outer_classname = "WhenRepeatedProto";
-option java_multiple_files = true;
-
-import "google/protobuf/timestamp.proto";
-import "spine/time/time.proto";
-
-// Tests `PAST` restriction with a repeated Protobuf timestamp.
-message PastProtoTimestamps {
- repeated google.protobuf.Timestamp value = 1 [(when).in = PAST];
-}
-
-// Tests `PAST` restriction with a repeated Spine temporal.
-message PastSpineTemporals {
- repeated spine.time.LocalDateTime value = 1 [(when).in = PAST];
-}
-
-// Tests `FUTURE` restriction with a repeated Protobuf timestamp.
-message FutureProtoTimestamps {
- repeated google.protobuf.Timestamp value = 1 [(when).in = FUTURE];
-}
-
-// Tests `FUTURE` restriction with a repeated Spine temporal.
-message FutureSpineTemporals {
- repeated spine.time.LocalDateTime value = 1 [(when).in = FUTURE];
-}
-
-// Tests that a repeated Protobuf timestamp is not restricted when there's no option.
-message AnyProtoTimestamps {
- repeated google.protobuf.Timestamp value = 1;
-}
-
-// Tests that a repeated Spine temporal is not restricted when there's no option.
-message AnySpineTemporals {
- repeated spine.time.LocalDateTime value = 1;
-}
diff --git a/time-validation-tests/Module.md b/time-validation-tests/Module.md
deleted file mode 100644
index 1290906d2e..0000000000
--- a/time-validation-tests/Module.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# 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
deleted file mode 100644
index a994a62eed..0000000000
--- a/time-validation-tests/build.gradle.kts
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 12cf445f96..0000000000
--- a/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/CompilationErrorTest.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/WhenReactionSpec.kt b/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/WhenReactionSpec.kt
deleted file mode 100644
index d42d32b10b..0000000000
--- a/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/WhenReactionSpec.kt
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright 2025, 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.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 org.junit.jupiter.api.DisplayName
-import org.junit.jupiter.api.Test
-
-@DisplayName("`WhenReaction` should reject")
-internal class WhenReactionSpec : CompilationErrorTest() {
-
- @Test
- fun `option on a boolean field`() {
- val message = WhenBoolField.getDescriptor()
- val error = assertCompilationFails(message)
- val field = message.field("value")
- error.message.run {
- shouldContain(field.type.name)
- shouldContain(field.qualifiedName)
- shouldContain("is not supported")
- }
- }
-
- @Test
- fun `option on an integer field`() {
- val message = WhenInt32Field.getDescriptor()
- val error = assertCompilationFails(message)
- val field = message.field("value")
- error.message.run {
- shouldContain(field.type.name)
- shouldContain(field.qualifiedName)
- shouldContain("is not supported")
- }
- }
-
- @Test
- fun `option on a string field`() {
- val message = WhenStringField.getDescriptor()
- val error = assertCompilationFails(message)
- val field = message.field("value")
- error.message.run {
- shouldContain(field.type.name)
- shouldContain(field.qualifiedName)
- shouldContain("is not supported")
- }
- }
-
- @Test
- fun `the error message with unsupported placeholders`() {
- val message = WhenWithInvalidPlaceholders.getDescriptor()
- val error = assertCompilationFails(message)
- val field = message.field("value")
- error.message.run {
- shouldContain(field.qualifiedName)
- 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
deleted file mode 100644
index 694d4e11f1..0000000000
--- a/time-validation-tests/src/test/kotlin/io/spine/tools/time/validation/java/WhenOptionSpec.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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/time-validation-tests/src/testFixtures/proto/spine/validation/when_option_spec.proto b/time-validation-tests/src/testFixtures/proto/spine/validation/when_option_spec.proto
deleted file mode 100644
index 0bc85ce843..0000000000
--- a/time-validation-tests/src/testFixtures/proto/spine/validation/when_option_spec.proto
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright 2025, 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.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;
-
-// Provides a boolean field with the inapplicable `(when)` option.
-message WhenBoolField {
- bool value = 1 [(when).in = FUTURE];
-}
-
-// Provides an int32 field with the inapplicable `(when)` option.
-message WhenInt32Field {
- int32 value = 1 [(when).in = FUTURE];
-}
-
-// Provides a string field with the inapplicable `(when)` option.
-message WhenStringField {
- string value = 1 [(when).in = PAST];
-}
-
-// Provides a `(when)` field that specifies a custom error message using
-// the placeholders not supported by the option.
-message WhenWithInvalidPlaceholders {
- google.protobuf.Timestamp value = 1 [(when) = {
- in: PAST,
- error_msg: "The field value `${field.value}` must be in `${when}`."
- }];
-}
diff --git a/version.gradle.kts b/version.gradle.kts
index 665fc44f92..f7cddf7dd1 100644
--- a/version.gradle.kts
+++ b/version.gradle.kts
@@ -27,4 +27,4 @@
/**
* The version of the Validation SDK to publish.
*/
-val validationVersion by extra("2.0.0-SNAPSHOT.413")
+val validationVersion by extra("2.0.0-SNAPSHOT.414")