Semantics of server commands. See https://github.com/kosmikus/LambdaHack/wiki/Client-server-architecture.
mainSer :: (MonadAtomic m, MonadConnServer m) => COps -> (m () -> IO ()) -> (COps -> ((FactionId -> ChanFrontend -> ChanServer CmdClientUI -> IO ()) -> (FactionId -> ChanServer CmdClientAI -> IO ()) -> IO ()) -> IO ()) -> IO ()Source
Fire up the frontend with the engine fueled by content.
The action monad types to be used are determined by the
executorCli calls. If other functions are used in their place
the types are different and so the whole pattern of computation
is different. Which of the frontends is run depends on the flags supplied
when compiling the engine library.