Inheritance: BaseModel
        protected Route(RouteType type, string id, Airport destination1, Airport destination2, DateTime startDate)
        {
            Type = type;
            Id = id;
            Destination1 = destination1;
            Destination2 = destination2;
            StartDate = startDate;

            TimeTable = new RouteTimeTable(this);
            Invoices = new Invoices();
            Statistics = new RouteStatistics();
            Banned = false;
            Stopovers = new List<StopoverRoute>();

            Season = Weather.Season.AllYear;
        }
        public Airline(
            AirlineProfile profile,
            AirlineMentality mentality,
            AirlineFocus marketFocus,
            AirlineLicense license,
            Route.RouteType routeFocus)
        {
            Scores = new AirlineScores();
            Shares = new List<AirlineShare>();
            Airports = new List<Airport>();
            Fleet = new List<FleetAirliner>();
            Routes = new List<Route>();
            FutureAirlines = new List<FutureSubsidiaryAirline>();
            Subsidiaries = new List<SubsidiaryAirline>();
            Advertisements = new Dictionary<AdvertisementType.AirlineAdvertisementType, AdvertisementType>();
            Codeshares = new List<CodeshareAgreement>();
            Statistics = new GeneralStatistics();
            Facilities = new List<AirlineFacility>();
            Invoices = new Invoices();
            Budget = new AirlineBudget();
            BudgetHistory = new Dictionary<DateTime, AirlineBudget>();
            TestBudget = new Dictionary<DateTime, AirlineBudget>();
            Profile = profile;
            AirlineRouteFocus = routeFocus;
            Loans = new List<Loan>();
            Reputation = 50;
            Alliances = new List<Alliance>();
            Mentality = mentality;
            MarketFocus = marketFocus;
            License = license;
            Policies = new List<AirlinePolicy>();
            EventLog = new List<RandomEvent>();
            Ratings = new AirlineRatings();
            OverallScore = CountedScores = 0;
            GameScores = new Dictionary<DateTime, int>();
            InsuranceClaims = new List<InsuranceClaim>();
            InsurancePolicies = new List<AirlineInsurance>();
            SpecialContracts = new List<SpecialContract>();

            CreateStandardAdvertisement();

            Pilots = new List<Pilot>();
            FlightSchools = new List<FlightSchool>();
            Budget = new AirlineBudget();
        }
        protected Airline(SerializationInfo info, StreamingContext ctxt)
            : base(info, ctxt)
        {
            Shares = new List<AirlineShare>();

            if (Version == 1)
            {
                AirlineHelpers.CreateStandardAirlineShares(this, 100);
            }
            if (Version < 4)
            {
                Routes = new List<Route>();
                Advertisements =
                    new Dictionary<AdvertisementType.AirlineAdvertisementType, AdvertisementType>();
                CreateStandardAdvertisement();
            }
            if (Version < 5)
                SpecialContracts = new List<SpecialContract>();

            if (Invoices == null)
            {
                Invoices = new Invoices();
            }
        }