Use reactive signals instead of agents for updating the game.
Pull repainting code up to component.
Extract fui.core