public InputModel NewGameInput()
        {
            var allExternalThreats = ExternalThreatFactory.AllExternalThreats
                                     .Select(threat => new ExternalThreatModel(threat))
                                     .ToList();
            var allInternalThreats = InternalThreatFactory.AllInternalThreats
                                     .Select(threat => new InternalThreatModel(threat))
                                     .ToList();
            var inputModel = new InputModel
            {
                SingleActions         = ActionModel.AllSingleActionModels.OrderBy(action => action.FirstAction).ThenBy(action => action.SecondAction),
                DoubleActions         = ActionModel.AllSelectableDoubleActionModels.OrderBy(action => action.FirstAction).ThenBy(action => action.SecondAction),
                SpecializationActions = PlayerSpecializationActionModel.AllPlayerSpecializationActionModels
                                        .OrderBy(action => action.PlayerSpecialization)
                                        .ThenBy(player => player.Hotkey),
                Tracks = TrackFactory.CreateAllTracks()
                         .Select(track => new TrackSnapshotModel(track, new List <int>()))
                         .ToList(),
                AllInternalThreats    = new AllThreatsModel(allInternalThreats),
                AllExternalThreats    = new AllThreatsModel(allExternalThreats),
                PlayerSpecializations = EnumFactory.All <PlayerSpecialization>().ToList(),
                AllDamageTokens       = EnumFactory.All <DamageToken>(),
                DamageableZones       = EnumFactory.All <ZoneLocation>()
            };

            return(inputModel);
        }