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>
46 lines
1.5 KiB
Kotlin
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")
|