Files
flamenet-messenger-android/settings.gradle.kts
T
Paul HittandClaude Opus 5.5 597dd8042b Add :games, the rules engines for games in chats
A plain JVM module set up like :engine: chess, checkers, reversi and
tic-tac-toe as DESIGN.md section 2 describes them, with the same API as
the iOS FlamenetGames package. Moves are strings in the wire notation and
apply accepts exactly the strings legalMoves returns. Replay refuses a log
over the game's cap before playing it and names the index of the first
move it cannot play.

The tests run games-v1.json, byte for byte the file the iOS package runs:
the perft counts from DESIGN.md and 147 cases. Deeper published perft
counts run with FLAMENET_GAMES_DEEP=1.

Nothing in :app uses it yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 23:02:32 -04:00

46 lines
1.5 KiB
Kotlin

pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
}
// Flamenet Messenger. Android.
//
// `engine` is deliberately a plain Kotlin/JVM library, not an Android library:
// the protocol has nothing to do with Android, and keeping it off the platform
// means its tests run on any machine and in CI on Linux, with no emulator and
// no SDK. The app module, when it exists, will depend on this.
rootProject.name = "flamenet-android"
include(":engine")
// The relay transport: HTTP, auth, and the §8 routes.
include(":client")
// The Compose app. Everything below it -- the protocol and the transport --
// lives in `:engine` and `:client`, which are plain JVM libraries so they can
// be tested without an emulator.
include(":app")
// The obfs4 pluggable transport, for reaching a relay on a network that blocks
// or fingerprints TLS to it. A plain JVM library like `:engine`, so its tests
// run without an emulator -- which matters here because the only tests that
// mean anything are vector comparisons against the reference implementation.
include(":obfs4")
// The cross-engine interop driver. Not shipped; see `engine/test/interop-kotlin.mjs`.
include(":interop")
// Rules for the games played inside chats. Plain JVM like `:engine`; its vectors are shared
// byte for byte with the iOS FlamenetGames package.
include(":games")