This repository contains API first specs of our application(s). Not all APIs can follow this approach as they are driven by other source (e.g. the faf-java-api spec is semi-automatically derived from the database schema).
We support schemas for HTTP (OpenAPI) and messaging (AsyncAPI).
An up-to-date rendered ui is available at https://faforever.github.io/faf-api-specs.
A visual overview of the client/player lifecycle and how lobby messages drive state transitions is available in state-machine.md. The companion game-state-machine.md documents the FA game instance lifecycle and GPGNet protocol.
Larger parts of the specs are generated by AI, so there may be mistakes. Feel free to open an issue or PR if you find any.