Rather than packaging systems as individual executables, expose a public interface with dynamic fetching of engine objects. Since engines should work as singletons, creating a table with available engines should be enough to complement the dynamic trait-object engine fetching system already in place.
Users of said library, namely the game manager and the game client, can compile the engines on each build, since their sizes shouldn't be too big. Conditional compilation can be used, having engines and engine sets as cargo features.
Rather than packaging systems as individual executables, expose a public interface with dynamic fetching of engine objects. Since engines should work as singletons, creating a table with available engines should be enough to complement the dynamic trait-object engine fetching system already in place.
Users of said library, namely the game manager and the game client, can compile the engines on each build, since their sizes shouldn't be too big. Conditional compilation can be used, having engines and engine sets as cargo features.