code: def _map_hash(self):
          
          elevation_bytes = bytes([tile.elevation for tile in self._header.map_info.tile])
          map_name_bytes = self._map.name().encode()
          player_bytes = b''
          for _, attributes in self._players():
              player_bytes += (mgz.const.PLAYER_COLORS[attributes.player_color].encode() +
                               attributes.player_name.encode() +
                               mgz.const.CIVILIZATION_NAMES[attributes.civilization].encode())
          return hashlib.sha1(elevation_bytes + map_name_bytes + player_bytes).hexdigest()
docs: Compute a map hash based on a combination of map attributes.
  
          - Elevation
          - Map name
          - Player names, colors, and civilizations