standard

java.util.Locale conveniences for the guard vocabularies.

Locale is a JVM type, and the guards themselves know nothing about it — they read an ISO 639 language code, which every platform can produce. These two exist so JVM callers who already hold a Locale do not have to unpack it, and they live apart from the rest because they are the only part of the guard layer that cannot leave the JVM.

They are extension functions rather than members, which is what lets the objects they extend stay platform-neutral. That costs an import:

import dev.kmemo.guard.standard

val cache = SemanticCache(embedder, guards = MatchGuards.standard(Locale.ITALIAN))