···2323- [x] Transport : Handle transport cancellation better
2424- [x] Backend : Add checks for when the `powerup_locations` field is an empty array in settings
2525- [ ] Backend : More tests
2626+ - [ ] Lobby tests
2727+ - [ ] Game end test for actual return from loop
2828+ - [ ] Testing crate for integration testing from a DSL
2929+ - [ ] NixOS VM tests wrapping the testing crate
3030+- [ ] Nix : Cheat the dependency nightmare and use crane
3131+- [x] Nix : Fix manhunt.nix to actually build
3232+- [ ] Frontend : Rework state management, better hooks
···187187 * Contains location history of the given player, used after the game to sync location
188188 * histories
189189 */
190190- | { PostGameSync: [string, [string, Location][]] }
191191- /**
192192- * A player has been disconnected and removed from the game (because of error or otherwise).
193193- * The player should be removed from all state
194194- */
195195- | { DroppedPlayer: string }
196196- /**
197197- * The underlying transport has disconnected
198198- */
199199- | "TransportDisconnect"
200200- /**
201201- * The underlying transport encountered an error
202202- */
203203- | { TransportError: string };
190190+ | { PostGameSync: [string, [string, Location][]] };
204191export type GameHistory = {
205192 my_id: string;
206193 game_started: string;
···247234 powerup_locations: Location[];
248235};
249236/**
250250- * The state of the game has updated in some way, you're expected to call [get_game_state] when
251251- * receiving this
237237+ * The state of the game has changed
252238 */
253239export type GameStateUpdate = null;
254240/**
···303289 * True represents seeker, false hider
304290 */
305291 teams: Partial<{ [key in string]: boolean }>;
306306- self_id: string | null;
307307- self_seeker: boolean;
292292+ self_id: string;
308293 is_host: boolean;
309294 settings: GameSettings;
310295};
311296/**
312312- * The lobby state has updated in some way, you're expected to call [get_lobby_state] after
313313- * receiving this
297297+ * The state of the lobby has changed
314298 */
315299export type LobbyStateUpdate = null;
316300/**