GSA can attach to any game server, fingerprint it via protocol probing, extract its configuration into A2ML format, and provide a rich GUI for viewing, editing, and tracking config changes with full provenance.
The probe engine uses table-driven port scanning with protocol-specific handshakes (Steam A2S_INFO, Minecraft ping, RCON, HTTP, raw TCP) to fingerprint servers against the game profile registry.
Extracted configs are serialised into A2ML and stored in a dedicated VeriSimDB instance (port 8090) as octads with 8 modalities.
See src/interface/ffi/src/probe.zig for the probe implementation and profiles/*.a2ml for game definitions.
Caveat: "Any" means any game with a known .a2ml profile — unknown games get best-effort fingerprinting but no structured config extraction. Lua table parsing handles nested tables up to 8 levels deep (bracket-quoted keys, block comments, local prefixes) — covers DST, Garry’s Mod, and Factorio configs. VeriSimDB normaliser now uses a real StorageRegenerator with OctadStore-backed cross-modal regeneration (Document/Semantic/Graph/Vector transformations, cosine drift measurement).
The FFI layer exports 22 C ABI functions via comptime linker hints, verified against both libgossamer.so (Gossamer webview) and the Ephapax compiler. A dedicated VeriSimDB instance (port 8090) stores server octads; a second instance (port 8091) holds game save backup metadata. Integration is validated by an 8-test e2e suite against live VeriSimDB and a 25-check Gossamer chain test (23 pass, 2 expected Ephapax parser gaps).
| Path | Proves |
|---|---|
|
Protocol fingerprinting and game detection |
|
Config fetching (8 formats inc. nested Lua tables) |
|
A2ML serialisation from parsed configs |
|
Idris2 formal type specs for ABI |
|
7 Gossamer panels (HTML/JS) with IPC bridge |
|
VeriSimDB client (Zig 0.15 fetch API) |
|
17 game clades with ports, protocols, panel config |
|
Game profile definitions (17 games) |
|
8/8 e2e tests against live VeriSimDB |
|
23/25 Gossamer chain validation |
|
Application icon (SVG + 256px PNG) |