public virtual void SetupParams(SceneParameters parameters)
        {
            foreach (var(graphType, graphParameters) in parameters.GraphsParameters)
            {
                var graph = new GameObject("Graph").AddComponent(graphType);
                Graphs.Add((AbstractGraph)graph);
                CustomizableExtension.CallSetUpParams(graph, graphParameters);
            }

            foreach (var(playerType, playerParameters) in parameters.PlayersParameters)
            {
                //ToDo : Think about how to handle the player type
                //var player = new GameObject("Player").AddComponent(playerType);
                var player = CreatePlayer();
                CustomizableExtension.CallSetUpParams(player, playerParameters);
            }
        }
 public SceneParameters DownloadParams(Dictionary <Guid, object> writeCache) =>
 new SceneParameters
     (Players.Select(x => new PlayerInfo(x.GetType(), (PlayerParameters)CustomizableExtension.CallDownloadParams(x, writeCache))).ToArray(),
     Graphs.Select(x => new GraphInfo(x.GetType(), (GraphParameters)CustomizableExtension.CallDownloadParams(x, writeCache))).ToArray());