IGameService
namespace Griff.Scenes;
public interface IGameServiceOne thing the game running a scene does for a component that asks: a component holds its own state and advances it when its system asks, and when one of its actions or steps needs the game (a panel opening, a volley fired, a flag set) it names the service it needs by type, as an action’s first parameter or what its system hands its step. Each service is provided by the one system that owns that part of the game, so a new no-code action adds a small service rather than widening one interface everything implements. A script’s action can take one the same way ([Action] void Open(IPanels panels)), and a system a script adds can provide one of its own, which the game’s IGameServices then finds.