code: def rectangle(code, bits_per_char=6):
      
      lng, lat, lng_err, lat_err = decode_exactly(code, bits_per_char)
  
      return {
          'type': 'Feature',
          'properties': {
              'code': code,
              'lng': lng,
              'lat': lat,
              'lng_err': lng_err,
              'lat_err': lat_err,
              'bits_per_char': bits_per_char,
          },
          'bbox': (
              lng - lng_err,  # bottom left
              lat - lat_err,
              lng + lng_err,  # top right
              lat + lat_err,
          ),
          'geometry': {
              'type': 'Polygon',
              'coordinates': [[
                  (lng - lng_err, lat - lat_err),
                  (lng + lng_err, lat - lat_err),
                  (lng + lng_err, lat + lat_err),
                  (lng - lng_err, lat + lat_err),
                  (lng - lng_err, lat - lat_err),
              ]],
          },
      }
docs: Builds a (geojson) rectangle from `code`
  
      The center of the rectangle decodes as the lng/lat for code and
      the rectangle corresponds to the error-margin, i.e. every lng/lat
      point within this rectangle will be encoded as `code`, given `precision == len(code)`.
  
      Parameters:
          code: str           The geohash for which the rectangle should be build.
          bits_per_char: int  The number of bits per coding character.
  
      Returns:
          dict: geojson `Feature` containing the rectangle as a `Polygon`.