private bool ValidateMobSpawnTableEntry(
            JSONMobSpawnTableEntry jsonSpawnTableEntry,
            MobTypeSet mobTypeSet,
            Dictionary <string, JSONMobSpawnTable> validMobSpawnTables)
        {
            bool valid = true;

            if (jsonSpawnTableEntry.mob_spawn_table_name.Length > 0)
            {
                if (!validMobSpawnTables.ContainsKey(jsonSpawnTableEntry.mob_spawn_table_name))
                {
                    _logger.LogError("MobSpawnTableParser: Invalid mob spawn table reference:");
                    _logger.LogError(jsonSpawnTableEntry.mob_spawn_table_name);
                    valid = false;
                }
            }
            else if (jsonSpawnTableEntry.mob_type_name.Length > 0)
            {
                if (!mobTypeSet.HasMobTypeWithName(jsonSpawnTableEntry.mob_type_name))
                {
                    _logger.LogError("MobSpawnTableParser: Invalid mob type reference:");
                    _logger.LogError(jsonSpawnTableEntry.mob_type_name);
                    valid = false;
                }
            }
            else
            {
                _logger.LogError("MobSpawnTableParser: No spawn table or mob type references:");
                valid = false;
            }

            if (jsonSpawnTableEntry.weight <= 0)
            {
                _logger.LogError("MobSpawnTableParser: Non-positive weight given");
                valid = false;
            }

            return(valid);
        }