prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Tooltip doesn't support "image" key
  My understanding is that to render tooltips, Altair uses the `vega-tooltip` plugin. Per that project's [README](https://github.com/vega/vega-tooltip), one awesome feature that library has is the ability to render images as part of the tooltip with the image key. From the docs:
  
  > Supports special keys title (becomes the title of the tooltip) and image (used as the url for an embedded image)
  
  Using the tooltip without the `image` key is fine:
  
  ```
  mydata = pd.DataFrame.from_records([{'a': 1, 'b': 1}, {'a': 2, 'b': 2}])
  chart = alt.Chart(mydata).mark_circle().encode(
      x='a',
      y='b',
      tooltip=alt.Tooltip(['a'], title='My Cool Tooltip')
  ).interactive()
  
  display(chart)
  ```
  
  However, when I add the `image` key, it stops working:
  
  ```
  chart = alt.Chart(mydata).mark_circle().encode(
      x='a',
      y='b',
      tooltip=alt.Tooltip(['a'], title='My Cool Tooltip', image='https://picsum.photos/200')
  ).interactive()
  
  display(chart)
  ```
  
  ```
  SchemaValidationError: Invalid specification
  
          altair.vegalite.v4.schema.channels.Tooltip, validating 'additionalProperties'
  
          Additional properties are not allowed ('image' was unexpected)
  ```
  
  Maybe this feature is already supported but the schema is out of date? Thanks.
  
  ---
  
  Please follow these steps to make it more efficient to solve your issue:
  
  - [N/A] Since Altair is a Python wrapper around the Vega-Lite visualization grammar, [most bugs should be reported directly to Vega-Lite](https://github.com/vega/vega-lite/issues). You can click the Action Button of your Altair chart and "Open in Vega Editor" to create a reproducible Vega-Lite example and see if you get the same error in the Vega Editor.
  - [x] Search for duplicate issues.
  - [x] Use the latest version of Altair.
  - [x] Describe how to reproduce the bug and include the full code and data to reproduce it, ideally using a sample data set from `vega_datasets`.
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `altair/examples/image_tooltip.py`
  Content:
  ```
  1 """
  2 Image tooltip
  3 -------------
  4 This example shows how to render images in tooltips.
  5 Either URLs or local file paths can be used to reference
  6 the images.
  7 """
  8 # category: other charts
  9 
  10 import altair as alt
  11 import pandas as pd
  12 
  13 source = pd.DataFrame.from_records(
  14     [{'a': 1, 'b': 1, 'image': 'https://altair-viz.github.io/_static/altair-logo-light.png'},
  15      {'a': 2, 'b': 2, 'image': 'https://avatars.githubusercontent.com/u/11796929?s=200&v=4'}]
  16 )
  17 alt.Chart(source).mark_circle(size=200).encode(
  18     x='a',
  19     y='b',
  20     tooltip=['image']  # Must be a list for the image to render
  21 )
  22
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/altair/examples/image_tooltip.py b/altair/examples/image_tooltip.py
  --- a/altair/examples/image_tooltip.py
  +++ b/altair/examples/image_tooltip.py
  @@ -3,7 +3,9 @@
   -------------
   This example shows how to render images in tooltips.
   Either URLs or local file paths can be used to reference
  -the images.
  +the images. To render the image, you must use the special
  +column name "image" in your data and pass it as a list to
  +the tooltip encoding.
   """
   # category: other charts
   
  @@ -17,5 +19,5 @@
   alt.Chart(source).mark_circle(size=200).encode(
       x='a',
       y='b',
  -    tooltip=['image']  # Must be a list for the image to render
  +    tooltip=['image']  # Must be a list containing a field called "image"
   )
  
verification_info: {"golden_diff": "diff --git a/altair/examples/image_tooltip.py b/altair/examples/image_tooltip.py\n--- a/altair/examples/image_tooltip.py\n+++ b/altair/examples/image_tooltip.py\n@@ -3,7 +3,9 @@\n -------------\n This example shows how to render images in tooltips.\n Either URLs or local file paths can be used to reference\n-the images.\n+the images. To render the image, you must use the special\n+column name \"image\" in your data and pass it as a list to\n+the tooltip encoding.\n \"\"\"\n # category: other charts\n \n@@ -17,5 +19,5 @@\n alt.Chart(source).mark_circle(size=200).encode(\n     x='a',\n     y='b',\n-    tooltip=['image']  # Must be a list for the image to render\n+    tooltip=['image']  # Must be a list containing a field called \"image\"\n )\n", "issue": "Tooltip doesn't support \"image\" key\nMy understanding is that to render tooltips, Altair uses the `vega-tooltip` plugin. Per that project's [README](https://github.com/vega/vega-tooltip), one awesome feature that library has is the ability to render images as part of the tooltip with the image key. From the docs:\r\n\r\n> Supports special keys title (becomes the title of the tooltip) and image (used as the url for an embedded image)\r\n\r\nUsing the tooltip without the `image` key is fine:\r\n\r\n```\r\nmydata = pd.DataFrame.from_records([{'a': 1, 'b': 1}, {'a': 2, 'b': 2}])\r\nchart = alt.Chart(mydata).mark_circle().encode(\r\n    x='a',\r\n    y='b',\r\n    tooltip=alt.Tooltip(['a'], title='My Cool Tooltip')\r\n).interactive()\r\n\r\ndisplay(chart)\r\n```\r\n\r\nHowever, when I add the `image` key, it stops working:\r\n\r\n```\r\nchart = alt.Chart(mydata).mark_circle().encode(\r\n    x='a',\r\n    y='b',\r\n    tooltip=alt.Tooltip(['a'], title='My Cool Tooltip', image='https://picsum.photos/200')\r\n).interactive()\r\n\r\ndisplay(chart)\r\n```\r\n\r\n```\r\nSchemaValidationError: Invalid specification\r\n\r\n        altair.vegalite.v4.schema.channels.Tooltip, validating 'additionalProperties'\r\n\r\n        Additional properties are not allowed ('image' was unexpected)\r\n```\r\n\r\nMaybe this feature is already supported but the schema is out of date? Thanks.\r\n\r\n---\r\n\r\nPlease follow these steps to make it more efficient to solve your issue:\r\n\r\n- [N/A] Since Altair is a Python wrapper around the Vega-Lite visualization grammar, [most bugs should be reported directly to Vega-Lite](https://github.com/vega/vega-lite/issues). You can click the Action Button of your Altair chart and \"Open in Vega Editor\" to create a reproducible Vega-Lite example and see if you get the same error in the Vega Editor.\r\n- [x] Search for duplicate issues.\r\n- [x] Use the latest version of Altair.\r\n- [x] Describe how to reproduce the bug and include the full code and data to reproduce it, ideally using a sample data set from `vega_datasets`.\r\n\n", "before_files": [{"content": "\"\"\"\nImage tooltip\n-------------\nThis example shows how to render images in tooltips.\nEither URLs or local file paths can be used to reference\nthe images.\n\"\"\"\n# category: other charts\n\nimport altair as alt\nimport pandas as pd\n\nsource = pd.DataFrame.from_records(\n    [{'a': 1, 'b': 1, 'image': 'https://altair-viz.github.io/_static/altair-logo-light.png'},\n     {'a': 2, 'b': 2, 'image': 'https://avatars.githubusercontent.com/u/11796929?s=200&v=4'}]\n)\nalt.Chart(source).mark_circle(size=200).encode(\n    x='a',\n    y='b',\n    tooltip=['image']  # Must be a list for the image to render\n)\n", "path": "altair/examples/image_tooltip.py"}], "after_files": [{"content": "\"\"\"\nImage tooltip\n-------------\nThis example shows how to render images in tooltips.\nEither URLs or local file paths can be used to reference\nthe images. To render the image, you must use the special\ncolumn name \"image\" in your data and pass it as a list to\nthe tooltip encoding.\n\"\"\"\n# category: other charts\n\nimport altair as alt\nimport pandas as pd\n\nsource = pd.DataFrame.from_records(\n    [{'a': 1, 'b': 1, 'image': 'https://altair-viz.github.io/_static/altair-logo-light.png'},\n     {'a': 2, 'b': 2, 'image': 'https://avatars.githubusercontent.com/u/11796929?s=200&v=4'}]\n)\nalt.Chart(source).mark_circle(size=200).encode(\n    x='a',\n    y='b',\n    tooltip=['image']  # Must be a list containing a field called \"image\"\n)\n", "path": "altair/examples/image_tooltip.py"}]}