Repository: altair-viz/altair
Pull request #2892 (2023-02-18 08:21:30)

Add missing attribute descriptions
# Background
Some attributes on classes are missing descriptions in the docstrings, see for example [`columnPadding` for `alt.Legend`](https://github.com/altair-viz/altair/blob/master/altair/vegalite/v5/schema/core.py#L6808):

```python
...
    clipHeight : anyOf(float, :class:`ExprRef`)

    columnPadding : anyOf(float, :class:`ExprRef`)

    columns : anyOf(float, :class:`ExprRef`)
...
```
These descriptions are then also missing in the documentation as the API references are generated based on these docstrings, see [altair.Legend](https://binste.github.io/altair-docs/user_guide/generated/core/altair.Legend.html):

<img width="620" alt="image" src="https://user-images.githubusercontent.com/23366411/219849413-ff27825f-0cc8-4095-bc47-fb7ccce4585f.png">

Due to this, I find myself often having to go to the [vega-lite docs](https://vega.github.io/vega-lite/docs/legend.html#symbol-layout) to find out what an attribute means. However, the description shown there would also be available in the VL json schema so we just need to adapt the code and docs generation for Altair to properly include it. 

Currently, descriptions for attributes/properties are only parsed during code generation if `description` is defined on the top-level of the attribute, see [`Legend.description`](https://github.com/altair-viz/altair/blob/master/altair/vegalite/v5/schema/vega-lite-schema.json#L12681). For some attributes such as `Legend.columnPadding` the [description is nested in `anyOf`](https://github.com/altair-viz/altair/blob/master/altair/vegalite/v5/schema/vega-lite-schema.json#L12638) and is currently ignored. Still figuring out when it is useful to take this nested description and what are all the possible cases.

# Current status
<img width="776" alt="image" src="https://user-images.githubusercontent.com/23366411/219849911-f128e5b7-4d5a-4973-81fd-f01fec7b4043.png">
It already looks much better :) Next up is figuring out if this makes sense for all attributes and if there are still missing descriptions. I think some descriptions are also cut off in the docs but properly included in the Python docstrings. There are also some other formatting issues to take care of. I'm hoping to get this done for the release candidate.



Patch:
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 1d6886a3..ff90df0f 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -15,29 +15,29 @@ jobs:
         uses: actions/setup-python@v4
         with:
           python-version: ${{ matrix.python-version }}
-      - name: Set Up Chromedriver
-        run: |
-          sudo apt-get update
-          sudo apt-get --only-upgrade install google-chrome-stable
-          sudo apt-get -yqq install chromium-chromedriver
+      # - name: Set Up Chromedriver
+      #   run: |
+      #     sudo apt-get update
+      #     sudo apt-get --only-upgrade install google-chrome-stable
+      #     sudo apt-get -yqq install chromium-chromedriver
       - name: Install dependencies
         run: |
           python -m pip install --upgrade pip
           pip install .[dev]
-          pip install "selenium<4.3.0"
-          pip install altair_saver
+          # pip install "selenium<4.3.0"
+          # pip install altair_saver
       - name: Test with pytest
         run: |
           pytest --doctest-modules tests
-      - name: Selected tests without vl-convert-python
-        run: |
-          pip uninstall vl-convert-python --yes
-          pytest -m save_engine --doctest-modules tests
-      - name: Selected tests without vl-convert-python and altair_saver
-        run: |
-          pip uninstall altair_saver --yes
-          pytest -m save_engine --doctest-modules tests
+      # - name: Selected tests without vl-convert-python
+      #   run: |
+      #     pip uninstall vl-convert-python --yes
+      #     pytest -m save_engine --doctest-modules tests
+      # - name: Selected tests without vl-convert-python and altair_saver
+      #   run: |
+      #     pip uninstall altair_saver --yes
+      #     pytest -m save_engine --doctest-modules tests
       - name: Selected tests with vl-convert-python and without altair_saver
         run: |
-          pip install vl-convert-python
+          # pip install vl-convert-python
           pytest -m save_engine --doctest-modules tests
diff --git a/altair/utils/__init__.py b/altair/utils/__init__.py
index cb7920b0..0bd8ec5e 100644
--- a/altair/utils/__init__.py
+++ b/altair/utils/__init__.py
@@ -7,11 +7,11 @@ from .core import (
     update_nested,
     display_traceback,
     SchemaBase,
-    Undefined,
 )
 from .html import spec_to_html
 from .plugin_registry import PluginRegistry
 from .deprecation import AltairDeprecationWarning
+from .schemapi import Undefined
 
 
 __all__ = (
diff --git a/altair/utils/core.py b/altair/utils/core.py
index c47b9a04..38bf0950 100644
--- a/altair/utils/core.py
+++ b/altair/utils/core.py
@@ -14,7 +14,7 @@ import jsonschema
 import pandas as pd
 import numpy as np
 
-from altair.utils.schemapi import SchemaBase, Undefined
+from altair.utils.schemapi import SchemaBase
 
 try:
     from pandas.api.types import infer_dtype as _infer_dtype
@@ -669,15 +669,6 @@ def infer_encoding_types(args, kwargs, channels):
         kwargs[encoding] = arg
 
     def _wrap_in_channel_class(obj, encoding):
-        try:
-            condition = obj["condition"]
-        except (KeyError, TypeError):
-            pass
-        else:
-            if condition is not Undefined:
-                obj = obj.copy()
-                obj["condition"] = _wrap_in_channel_class(condition, encoding)
-
         if isinstance(obj, SchemaBase):
             return obj
 
diff --git a/altair/utils/data.py b/altair/utils/data.py
index 403b69e8..9b680d06 100644
--- a/altair/utils/data.py
+++ b/altair/utils/data.py
@@ -76,6 +76,8 @@ def limit_rows(data, max_rows=5000):
             values = data["values"]
         else:
             return data
+    elif hasattr(data, "__dataframe__"):
+        values = data
     if max_rows is not None and len(values) > max_rows:
         raise MaxRowsError(
             "The number of rows in your dataset is greater "
@@ -98,6 +100,13 @@ def sample(data, n=None, frac=None):
             n = n if n else int(frac * len(values))
             values = random.sample(values, n)
             return {"values": values}
+    elif hasattr(data, "__dataframe__"):
+        # experimental interchange dataframe support
+        pi = import_pyarrow_interchange()
+        pa_table = pi.from_dataframe(data)
+        n = n if n else int(frac * len(pa_table))
+        indices = random.sample(range(len(pa_table)), n)
+        return pa_table.take(indices)
 
 
 @curried.curry
@@ -152,12 +161,17 @@ def to_values(data):
         if "values" not in data:
             raise KeyError("values expected in data dict, but not present.")
         return data
+    elif hasattr(data, "__dataframe__"):
+        # experimental interchange dataframe support
+        pi = import_pyarrow_interchange()
+        pa_table = pi.from_dataframe(data)
+        return {"values": pa_table.to_pylist()}
 
 
 def check_data_type(data):
     """Raise if the data is not a dict or DataFrame."""
-    if not isinstance(data, (dict, pd.DataFrame)) and not hasattr(
-        data, "__geo_interface__"
+    if not isinstance(data, (dict, pd.DataFrame)) and not any(
+        hasattr(data, attr) for attr in ["__geo_interface__", "__dataframe__"]
     ):
         raise TypeError(
             "Expected dict, DataFrame or a __geo_interface__ attribute, got: {}".format(
@@ -190,6 +204,11 @@ def _data_to_json_string(data):
         if "values" not in data:
             raise KeyError("values expected in data dict, but not present.")
         return json.dumps(data["values"], sort_keys=True)
+    elif hasattr(data, "__dataframe__"):
+        # experimental interchange dataframe support
+        pi = import_pyarrow_interchange()
+        pa_table = pi.from_dataframe(data)
+        return json.dumps(pa_table.to_pylist())
     else:
         raise NotImplementedError(
             "to_json only works with data expressed as " "a DataFrame or as a dict"
@@ -211,6 +230,16 @@ def _data_to_csv_string(data):
         if "values" not in data:
             raise KeyError("values expected in data dict, but not present")
         return pd.DataFrame.from_dict(data["values"]).to_csv(index=False)
+    elif hasattr(data, "__dataframe__"):
+        # experimental interchange dataframe support
+        pi = import_pyarrow_interchange()
+        import pyarrow as pa
+        import pyarrow.csv as pa_csv
+
+        pa_table = pi.from_dataframe(data)
+        csv_buffer = pa.BufferOutputStream()
+        pa_csv.write_csv(pa_table, csv_buffer)
+        return csv_buffer.getvalue().to_pybytes().decode()
     else:
         raise NotImplementedError(
             "to_csv only works with data expressed as " "a DataFrame or as a dict"
@@ -242,3 +271,25 @@ def curry(*args, **kwargs):
         AltairDeprecationWarning,
     )
     return curried.curry(*args, **kwargs)
+
+
+def import_pyarrow_interchange():
+    import pkg_resources
+
+    try:
+        pkg_resources.require("pyarrow>=11.0.0")
+        # The package is installed and meets the minimum version requirement
+        import pyarrow.interchange as pi
+
+        return pi
+    except pkg_resources.DistributionNotFound:
+        # The package is not installed
+        raise ImportError(
+            "Usage of the DataFrame Interchange Protocol requires the package 'pyarrow', but it is not installed."
+        )
+    except pkg_resources.VersionConflict:
+        # The package is installed but does not meet the minimum version requirement
+        raise ImportError(
+            "The installed version of 'pyarrow' does not meet the minimum requirement of version 11.0.0. "
+            "Please update 'pyarrow' to use the DataFrame Interchange Protocol."
+        )
diff --git a/altair/utils/plugin_registry.py b/altair/utils/plugin_registry.py
index b1a13ca2..4bfa12d4 100644
--- a/altair/utils/plugin_registry.py
+++ b/altair/utils/plugin_registry.py
@@ -1,3 +1,4 @@
+import sys
 from typing import Any, Dict, List, Optional, Generic, TypeVar, cast
 from types import TracebackType
 
@@ -121,7 +122,11 @@ class PluginRegistry(Generic[PluginType]):
     def names(self) -> List[str]:
         """List the names of the registered and entry points plugins."""
         exts = list(self._plugins.keys())
-        more_exts = [ep.name for ep in entry_points().get(self.entry_point_group, [])]
+        if sys.version_info.major == 3 and sys.version_info.minor < 10:
+            e_points = entry_points().get(self.entry_point_group, [])
+        else:
+            e_points = entry_points(group=self.entry_point_group)
+        more_exts = [ep.name for ep in e_points]
         exts.extend(more_exts)
         return sorted(set(exts))
 
diff --git a/altair/utils/schemapi.py b/altair/utils/schemapi.py
index de631b62..0b4dd372 100644
--- a/altair/utils/schemapi.py
+++ b/altair/utils/schemapi.py
@@ -404,10 +404,10 @@ class SchemaBase(object):
             parsed_shorthand = context.pop("parsed_shorthand", {})
             # Prevent that pandas categorical data is automatically sorted
             # when a non-ordinal data type is specifed manually
-            if "sort" in parsed_shorthand and kwds["type"] not in [
-                "ordinal",
-                Undefined,
-            ]:
+            # or if the encoding channel does not support sorting
+            if "sort" in parsed_shorthand and (
+                "sort" not in kwds or kwds["type"] not in ["ordinal", Undefined]
+            ):
                 parsed_shorthand.pop("sort")
 
             kwds.update(
diff --git a/altair/vegalite/v5/api.py b/altair/vegalite/v5/api.py
index d457c006..5a65f86b 100644
--- a/altair/vegalite/v5/api.py
+++ b/altair/vegalite/v5/api.py
@@ -97,13 +97,16 @@ def _prepare_data(data, context=None):
         return data
 
     # convert dataframes  or objects with __geo_interface__ to dict
-    if isinstance(data, pd.DataFrame) or hasattr(data, "__geo_interface__"):
+    elif isinstance(data, pd.DataFrame) or hasattr(data, "__geo_interface__"):
         data = _pipe(data, data_transformers.get())
 
     # convert string input to a URLData
-    if isinstance(data, str):
+    elif isinstance(data, str):
         data = core.UrlData(data)
 
+    elif hasattr(data, "__dataframe__"):
+        data = _pipe(data, data_transformers.get())
+
     # consolidate inline data to top-level datasets
     if context is not None and data_transformers.consolidate_datasets:
         data = _consolidate_data(data, context)
@@ -513,7 +516,7 @@ def condition(predicate, if_true, if_false, **kwargs):
         # dict in the appropriate schema
         if_true = if_true.to_dict()
     elif isinstance(if_true, str):
-        if_true = {"shorthand": if_true}
+        if_true = utils.parse_shorthand(if_true)
         if_true.update(kwargs)
     condition.update(if_true)
 
diff --git a/altair/vegalite/v5/schema/channels.py b/altair/vegalite/v5/schema/channels.py
index bb078f59..c83538f9 100644
--- a/altair/vegalite/v5/schema/channels.py
+++ b/altair/vegalite/v5/schema/channels.py
@@ -70,7 +70,7 @@ class ValueChannelMixin(object):
             elif 'field' in condition and 'type' not in condition:
                 kwds = parse_shorthand(condition['field'], context.get('data', None))
                 copy = self.copy(deep=['condition'])
-                copy.condition.update(kwds)
+                copy['condition'].update(kwds)
         return super(ValueChannelMixin, copy).to_dict(validate=validate,
                                                       ignore=ignore,
                                                       context=context)
@@ -94,8 +94,6 @@ class Angle(FieldChannelMixin, core.FieldOrDatumDefWithConditionMarkPropFieldDef
     """Angle schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -433,8 +431,6 @@ class AngleDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionDatumDefnum
     """AngleDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -615,8 +611,6 @@ class Color(FieldChannelMixin, core.FieldOrDatumDefWithConditionMarkPropFieldDef
     """Color schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -954,8 +948,6 @@ class ColorDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionDatumDefGra
     """ColorDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -1449,8 +1441,6 @@ class Description(FieldChannelMixin, core.StringFieldDefWithCondition):
     """Description schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -2376,8 +2366,6 @@ class Fill(FieldChannelMixin, core.FieldOrDatumDefWithConditionMarkPropFieldDefG
     """Fill schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -2715,8 +2703,6 @@ class FillDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionDatumDefGrad
     """FillDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -2897,8 +2883,6 @@ class FillOpacity(FieldChannelMixin, core.FieldOrDatumDefWithConditionMarkPropFi
     """FillOpacity schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -3236,8 +3220,6 @@ class FillOpacityDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionDatum
     """FillOpacityDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -3418,8 +3400,6 @@ class Href(FieldChannelMixin, core.StringFieldDefWithCondition):
     """Href schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -5251,8 +5231,6 @@ class Opacity(FieldChannelMixin, core.FieldOrDatumDefWithConditionMarkPropFieldD
     """Opacity schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -5590,8 +5568,6 @@ class OpacityDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionDatumDefn
     """OpacityDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -7220,8 +7196,6 @@ class Shape(FieldChannelMixin, core.FieldOrDatumDefWithConditionMarkPropFieldDef
     """Shape schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -7559,8 +7533,6 @@ class ShapeDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionDatumDefstr
     """ShapeDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -7741,8 +7713,6 @@ class Size(FieldChannelMixin, core.FieldOrDatumDefWithConditionMarkPropFieldDefn
     """Size schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -8080,8 +8050,6 @@ class SizeDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionDatumDefnumb
     """SizeDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -8262,8 +8230,6 @@ class Stroke(FieldChannelMixin, core.FieldOrDatumDefWithConditionMarkPropFieldDe
     """Stroke schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -8601,8 +8567,6 @@ class StrokeDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionDatumDefGr
     """StrokeDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -8783,8 +8747,6 @@ class StrokeDash(FieldChannelMixin, core.FieldOrDatumDefWithConditionMarkPropFie
     """StrokeDash schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -9122,8 +9084,6 @@ class StrokeDashDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionDatumD
     """StrokeDashDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -9304,8 +9264,6 @@ class StrokeOpacity(FieldChannelMixin, core.FieldOrDatumDefWithConditionMarkProp
     """StrokeOpacity schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -9643,8 +9601,6 @@ class StrokeOpacityDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionDat
     """StrokeOpacityDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -9825,8 +9781,6 @@ class StrokeWidth(FieldChannelMixin, core.FieldOrDatumDefWithConditionMarkPropFi
     """StrokeWidth schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -10164,8 +10118,6 @@ class StrokeWidthDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionDatum
     """StrokeWidthDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -10346,8 +10298,6 @@ class Text(FieldChannelMixin, core.FieldOrDatumDefWithConditionStringFieldDefTex
     """Text schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -10637,8 +10587,6 @@ class TextDatum(DatumChannelMixin, core.FieldOrDatumDefWithConditionStringDatumD
     """TextDatum schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -11729,8 +11677,6 @@ class Tooltip(FieldChannelMixin, core.StringFieldDefWithCondition):
     """Tooltip schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -12056,8 +12002,6 @@ class Url(FieldChannelMixin, core.StringFieldDefWithCondition):
     """Url schema wrapper
 
     Mapping(required=[shorthand])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
diff --git a/altair/vegalite/v5/schema/core.py b/altair/vegalite/v5/schema/core.py
index af0d7483..356d9611 100644
--- a/altair/vegalite/v5/schema/core.py
+++ b/altair/vegalite/v5/schema/core.py
@@ -129,15 +129,25 @@ class AreaConfig(AnyMarkConfig):
 
         **Note:** Expression reference is *not* supported for range marks.
     angle : anyOf(float, :class:`ExprRef`)
-
+        The rotation angle of the text, in degrees.
     aria : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG element, removing the mark item from the ARIA accessibility tree.
     ariaRole : anyOf(string, :class:`ExprRef`)
-
+        Sets the type of user interface element of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "role" attribute. Warning: this
+        property is experimental and may be changed in the future.
     ariaRoleDescription : anyOf(string, :class:`ExprRef`)
-
+        A human-readable, author-localized description for the role of the mark item for
+        `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "aria-roledescription" attribute.
+        Warning: this property is experimental and may be changed in the future.
     aspect : anyOf(boolean, :class:`ExprRef`)
-
+        Whether to keep aspect ratio of image marks.
     baseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
         For text marks, the vertical text baseline. One of ``"alphabetic"`` (default),
         ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, ``"line-bottom"``, or an
@@ -150,7 +160,11 @@ class AreaConfig(AnyMarkConfig):
 
         **Note:** Expression reference is *not* supported for range marks.
     blend : anyOf(:class:`Blend`, :class:`ExprRef`)
+        The color blend mode for drawing an item on its current background. Any valid `CSS
+        mix-blend-mode <https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode>`__
+        value can be used.
 
+        __Default value:__ ``"source-over"``
     color : anyOf(:class:`Color`, :class:`Gradient`, :class:`ExprRef`)
         Default color.
 
@@ -165,36 +179,61 @@ class AreaConfig(AnyMarkConfig):
         * The ``fill`` and ``stroke`` properties have higher precedence than ``color`` and
           will override ``color``.
     cornerRadius : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles or arcs' corners.
 
+        **Default value:** ``0``
     cornerRadiusBottomLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom left corner.
 
+        **Default value:** ``0``
     cornerRadiusBottomRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top left corner.
 
+        **Default value:** ``0``
     cursor : anyOf(:class:`Cursor`, :class:`ExprRef`)
-
+        The mouse cursor used over the mark. Any valid `CSS cursor type
+        <https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values>`__ can be used.
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__.
     dir : anyOf(:class:`TextDirection`, :class:`ExprRef`)
+        The direction of the text. One of ``"ltr"`` (left-to-right) or ``"rtl"``
+        (right-to-left). This property determines on which side is truncated in response to
+        the limit parameter.
 
+        **Default value:** ``"ltr"``
     dx : anyOf(float, :class:`ExprRef`)
-
+        The horizontal offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     dy : anyOf(float, :class:`ExprRef`)
-
+        The vertical offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     ellipsis : anyOf(string, :class:`ExprRef`)
+        The ellipsis string for text truncated in response to the limit parameter.
 
+        **Default value:** ``"…"``
     endAngle : anyOf(float, :class:`ExprRef`)
-
+        The end angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     fill : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default fill color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove fill.
 
         **Default value:** (None)
     fillOpacity : anyOf(float, :class:`ExprRef`)
+        The fill opacity (value between [0,1]).
 
+        **Default value:** ``1``
     filled : boolean
         Whether the mark's color should be used as fill color instead of stroke color.
 
@@ -206,24 +245,48 @@ class AreaConfig(AnyMarkConfig):
         **Note:** This property cannot be used in a `style config
         <https://vega.github.io/vega-lite/docs/mark.html#style-config>`__.
     font : anyOf(string, :class:`ExprRef`)
-
+        The typeface to set the text in (e.g., ``"Helvetica Neue"`` ).
     fontSize : anyOf(float, :class:`ExprRef`)
+        The font size, in pixels.
 
+        **Default value:** ``11``
     fontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style (e.g., ``"italic"`` ).
     fontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight. This can be either a string (e.g ``"bold"``, ``"normal"`` ) or a
+        number ( ``100``, ``200``, ``300``, ..., ``900`` where ``"normal"`` = ``400`` and
+        ``"bold"`` = ``700`` ).
     height : anyOf(float, :class:`ExprRef`)
-
+        Height of the marks.
     href : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        A URL to load upon mouse click. If defined, the mark acts as a hyperlink.
     innerRadius : anyOf(float, :class:`ExprRef`)
         The inner radius in pixels of arc marks. ``innerRadius`` is an alias for
         ``radius2``.
 
         **Default value:** ``0``
     interpolate : anyOf(:class:`Interpolate`, :class:`ExprRef`)
+        The line interpolation method to use for line and area marks. One of the following:
+
 
+        * ``"linear"`` : piecewise linear segments, as in a polyline.
+        * ``"linear-closed"`` : close the linear segments to form a polygon.
+        * ``"step"`` : alternate between horizontal and vertical segments, as in a step
+          function.
+        * ``"step-before"`` : alternate between vertical and horizontal segments, as in a
+          step function.
+        * ``"step-after"`` : alternate between horizontal and vertical segments, as in a
+          step function.
+        * ``"basis"`` : a B-spline, with control point duplication on the ends.
+        * ``"basis-open"`` : an open B-spline; may not intersect the start or end.
+        * ``"basis-closed"`` : a closed B-spline, as in a loop.
+        * ``"cardinal"`` : a Cardinal spline, with control point duplication on the ends.
+        * ``"cardinal-open"`` : an open Cardinal spline; may not intersect the start or end,
+          but will intersect other control points.
+        * ``"cardinal-closed"`` : a closed Cardinal spline, as in a loop.
+        * ``"bundle"`` : equivalent to basis, except the tension parameter is used to
+          straighten the spline.
+        * ``"monotone"`` : cubic interpolation that preserves monotonicity in y.
     invalid : enum('filter', None)
         Defines how Vega-Lite should handle marks for invalid values ( ``null`` and ``NaN``
         ).
@@ -234,7 +297,10 @@ class AreaConfig(AnyMarkConfig):
         * If ``null``, all data items are included. In this case, invalid values will be
           interpreted as zeroes.
     limit : anyOf(float, :class:`ExprRef`)
+        The maximum length of the text mark in pixels. The text value will be automatically
+        truncated if the rendered size exceeds the limit.
 
+        **Default value:** ``0`` -- indicating no limit
     line : anyOf(boolean, :class:`OverlayMarkDef`)
         A flag for overlaying line on top of area marks, or an object defining the
         properties of the overlayed lines.
@@ -247,9 +313,11 @@ class AreaConfig(AnyMarkConfig):
 
         **Default value:** ``false``.
     lineBreak : anyOf(string, :class:`ExprRef`)
-
+        A delimiter, such as a newline character, upon which to break text strings into
+        multiple lines. This property is ignored if the text is array-valued.
     lineHeight : anyOf(float, :class:`ExprRef`)
-
+        The line height in pixels (the spacing between subsequent lines of text) for
+        multi-line text marks.
     opacity : anyOf(float, :class:`ExprRef`)
         The overall opacity (value between [0,1]).
 
@@ -275,7 +343,7 @@ class AreaConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     padAngle : anyOf(float, :class:`ExprRef`)
-
+        The angular padding applied to sides of the arc, in radians.
     point : anyOf(boolean, :class:`OverlayMarkDef`, string)
         A flag for overlaying points on top of line or area marks, or an object defining the
         properties of the overlayed points.
@@ -303,7 +371,20 @@ class AreaConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     shape : anyOf(anyOf(:class:`SymbolShape`, string), :class:`ExprRef`)
+        Shape of the point marks. Supported values include:
+
 
+        * plotting shapes: ``"circle"``, ``"square"``, ``"cross"``, ``"diamond"``,
+          ``"triangle-up"``, ``"triangle-down"``, ``"triangle-right"``, or
+          ``"triangle-left"``.
+        * the line symbol ``"stroke"``
+        * centered directional shapes ``"arrow"``, ``"wedge"``, or ``"triangle"``
+        * a custom `SVG path string
+          <https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths>`__ (For correct
+          sizing, custom shape paths should be defined within a square bounding box with
+          coordinates ranging from -1 to 1 along both the x and y dimensions.)
+
+        **Default value:** ``"circle"``
     size : anyOf(float, :class:`ExprRef`)
         Default size for marks.
 
@@ -322,34 +403,48 @@ class AreaConfig(AnyMarkConfig):
         * ``5`` for bar marks with continuous dimensions;
         * ``11`` for text marks.
     smooth : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag (default true) indicating if the image should be smoothed when
+        resized. If false, individual pixels should be scaled directly rather than
+        interpolated with smoothing. For SVG rendering, this option may not work in some
+        browsers due to lack of standardization.
     startAngle : anyOf(float, :class:`ExprRef`)
-
+        The start angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     stroke : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default stroke color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove stroke.
 
         **Default value:** (None)
     strokeCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for line ending style. One of ``"butt"``, ``"round"``, or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     strokeDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating stroke, space lengths for creating dashed or dotted lines.
     strokeDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset (in pixels) into which to begin drawing with the stroke dash array.
     strokeJoin : anyOf(:class:`StrokeJoin`, :class:`ExprRef`)
+        The stroke line join method. One of ``"miter"``, ``"round"`` or ``"bevel"``.
 
+        **Default value:** ``"miter"``
     strokeMiterLimit : anyOf(float, :class:`ExprRef`)
-
+        The miter limit at which to bevel a line join.
     strokeOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset in pixels at which to draw the group stroke and fill. If unspecified, the
+        default behavior is to dynamically offset stroked groups such that 1 pixel stroke
+        widths align with the pixel grid.
     strokeOpacity : anyOf(float, :class:`ExprRef`)
+        The stroke opacity (value between [0,1]).
 
+        **Default value:** ``1``
     strokeWidth : anyOf(float, :class:`ExprRef`)
-
+        The stroke width, in pixels.
     tension : anyOf(float, :class:`ExprRef`)
-
+        Depending on the interpolation type, sets the tension parameter (for line and area
+        marks).
     text : anyOf(:class:`Text`, :class:`ExprRef`)
-
+        Placeholder text if the ``text`` channel is not specified
     theta : anyOf(float, :class:`ExprRef`)
         For arc marks, the arc length in radians if theta2 is not specified, otherwise the
         start arc angle. (A value of 0 indicates up or “north”, increasing values proceed
@@ -383,9 +478,9 @@ class AreaConfig(AnyMarkConfig):
 
         **Default value:** ``null``
     url : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        The URL of the image file for image marks.
     width : anyOf(float, :class:`ExprRef`)
-
+        Width of the marks.
     x : anyOf(float, string, :class:`ExprRef`)
         X coordinates of the marks, or width of horizontal ``"bar"`` and ``"area"`` without
         specified ``x2`` or ``width``.
@@ -549,28 +644,49 @@ class Axis(VegaLiteSchema):
     ----------
 
     aria : anyOf(boolean, :class:`ExprRef`)
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG group, removing the axis from the ARIA accessibility tree.
 
+        **Default value:** ``true``
     bandPosition : anyOf(float, :class:`ExprRef`)
+        An interpolation fraction indicating where, for ``band`` scales, axis ticks should
+        be positioned. A value of ``0`` places ticks at the left edge of their bands. A
+        value of ``0.5`` places ticks in the middle of their bands.
 
+        **Default value:** ``0.5``
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of this axis for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If the ``aria`` property is true, for SVG output the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__
+        will be set to this description. If the description is unspecified it will be
+        automatically generated.
     domain : boolean
         A boolean flag indicating if the domain (the axis baseline) should be included as
         part of the axis.
 
         **Default value:** ``true``
     domainCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for the domain line's ending style. One of ``"butt"``, ``"round"`` or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     domainColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
+        Color of axis domain line.
 
+        **Default value:** ``"gray"``.
     domainDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating [stroke, space] lengths for dashed domain lines.
     domainDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The pixel offset at which to start drawing with the domain dash array.
     domainOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of the axis domain line.
     domainWidth : anyOf(float, :class:`ExprRef`)
+        Stroke width of axis domain line
 
+        **Default value:** ``1``
     format : anyOf(string, :class:`Dict`)
         When used with the default ``"number"`` and ``"time"`` format type, the text
         formatting pattern for labels of guides (axes, legends, headers) and text marks.
@@ -612,27 +728,49 @@ class Axis(VegaLiteSchema):
         <https://vega.github.io/vega-lite/docs/scale.html#continuous>`__ that are not
         binned; otherwise, ``false``.
     gridCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for grid lines' ending style. One of ``"butt"``, ``"round"`` or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     gridColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`, :class:`ConditionalAxisColor`)
+        Color of gridlines.
 
+        **Default value:** ``"lightGray"``.
     gridDash : anyOf(List(float), :class:`ExprRef`, :class:`ConditionalAxisNumberArray`)
-
+        An array of alternating [stroke, space] lengths for dashed grid lines.
     gridDashOffset : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
-
+        The pixel offset at which to start drawing with the grid dash array.
     gridOpacity : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        The stroke opacity of grid (value between [0,1])
 
+        **Default value:** ``1``
     gridWidth : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        The grid width, in pixels.
 
+        **Default value:** ``1``
     labelAlign : anyOf(:class:`Align`, :class:`ExprRef`, :class:`ConditionalAxisLabelAlign`)
-
+        Horizontal text alignment of axis tick labels, overriding the default setting for
+        the current axis orientation.
     labelAngle : anyOf(float, :class:`ExprRef`)
+        The rotation angle of the axis labels.
 
+        **Default value:** ``-90`` for nominal and ordinal fields; ``0`` otherwise.
     labelBaseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`, :class:`ConditionalAxisLabelBaseline`)
-
+        Vertical text baseline of axis tick labels, overriding the default setting for the
+        current axis orientation. One of ``"alphabetic"`` (default), ``"top"``,
+        ``"middle"``, ``"bottom"``, ``"line-top"``, or ``"line-bottom"``. The ``"line-top"``
+        and ``"line-bottom"`` values operate similarly to ``"top"`` and ``"bottom"``, but
+        are calculated relative to the *lineHeight* rather than *fontSize* alone.
     labelBound : anyOf(anyOf(float, boolean), :class:`ExprRef`)
+        Indicates if labels should be hidden if they exceed the axis range. If ``false``
+        (the default) no bounds overlap analysis is performed. If ``true``, labels will be
+        hidden if they exceed the axis range by more than 1 pixel. If this property is a
+        number, it specifies the pixel tolerance: the maximum amount by which a label
+        bounding box may exceed the axis range.
 
+        **Default value:** ``false``.
     labelColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`, :class:`ConditionalAxisColor`)
-
+        The color of the tick label, can be in hex color code or regular color name.
     labelExpr : string
         `Vega expression <https://vega.github.io/vega/docs/expressions/>`__ for customizing
         labels.
@@ -651,23 +789,33 @@ class Axis(VegaLiteSchema):
 
         **Default value:** ``true`` for axis of a continuous x-scale. Otherwise, ``false``.
     labelFlushOffset : anyOf(float, :class:`ExprRef`)
+        Indicates the number of pixels by which to offset flush-adjusted labels. For
+        example, a value of ``2`` will push flush-adjusted labels 2 pixels outward from the
+        center of the axis. Offsets can help the labels better visually group with
+        corresponding axis ticks.
 
+        **Default value:** ``0``.
     labelFont : anyOf(string, :class:`ExprRef`, :class:`ConditionalAxisString`)
-
+        The font of the tick label.
     labelFontSize : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
-
+        The font size of the label, in pixels.
     labelFontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`, :class:`ConditionalAxisLabelFontStyle`)
-
+        Font style of the title.
     labelFontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`, :class:`ConditionalAxisLabelFontWeight`)
-
+        Font weight of axis tick labels.
     labelLimit : anyOf(float, :class:`ExprRef`)
+        Maximum allowed pixel width of axis tick labels.
 
+        **Default value:** ``180``
     labelLineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line label text or label text with ``"line-top"`` or
+        ``"line-bottom"`` baseline.
     labelOffset : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        Position offset in pixels to apply to labels, in addition to tickOffset.
 
+        **Default value:** ``0``
     labelOpacity : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
-
+        The opacity of the labels.
     labelOverlap : anyOf(:class:`LabelOverlap`, :class:`ExprRef`)
         The strategy to use for resolving overlap of axis labels. If ``false`` (the
         default), no overlap reduction is attempted. If set to ``true`` or ``"parity"``, a
@@ -679,17 +827,27 @@ class Axis(VegaLiteSchema):
         **Default value:** ``true`` for non-nominal fields with non-log scales; ``"greedy"``
         for log scales; otherwise ``false``.
     labelPadding : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        The padding in pixels between labels and ticks.
 
+        **Default value:** ``2``
     labelSeparation : anyOf(float, :class:`ExprRef`)
-
+        The minimum separation that must be between label bounding boxes for them to be
+        considered non-overlapping (default ``0`` ). This property is ignored if
+        *labelOverlap* resolution is not enabled.
     labels : boolean
         A boolean flag indicating if labels should be included as part of the axis.
 
         **Default value:** ``true``.
     maxExtent : anyOf(float, :class:`ExprRef`)
+        The maximum extent in pixels that axis ticks and labels should use. This determines
+        a maximum offset value for axis titles.
 
+        **Default value:** ``undefined``.
     minExtent : anyOf(float, :class:`ExprRef`)
+        The minimum extent in pixels that axis ticks and labels should use. This determines
+        a minimum offset value for axis titles.
 
+        **Default value:** ``30`` for y-axis; ``undefined`` for x-axis.
     offset : anyOf(float, :class:`ExprRef`)
         The offset, in pixels, by which to displace the axis from the edge of the enclosing
         group or data rectangle.
@@ -719,11 +877,17 @@ class Axis(VegaLiteSchema):
         style. For example, an x-axis mark with ``"style": "foo"`` will use ``config.axisX``
         and ``config.style.foo`` (the specified style ``"foo"`` has higher precedence).
     tickBand : anyOf(enum('center', 'extent'), :class:`ExprRef`)
-
+        For band scales, indicates if ticks and grid lines should be placed at the
+        ``"center"`` of a band (default) or at the band ``"extent"`` s to indicate intervals
     tickCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for the tick lines' ending style. One of ``"butt"``, ``"round"`` or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     tickColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`, :class:`ConditionalAxisColor`)
+        The color of the axis's tick.
 
+        **Default value:** ``"gray"``
     tickCount : anyOf(float, :class:`TimeInterval`, :class:`TimeIntervalStep`, :class:`ExprRef`)
         A desired number of ticks, for axes visualizing quantitative scales. The resulting
         number may be different so that values are "nice" (multiples of 2, 5, 10) and lie
@@ -739,9 +903,9 @@ class Axis(VegaLiteSchema):
         **Default value** : Determine using a formula ``ceil(width/40)`` for x and
         ``ceil(height/40)`` for y.
     tickDash : anyOf(List(float), :class:`ExprRef`, :class:`ConditionalAxisNumberArray`)
-
+        An array of alternating [stroke, space] lengths for dashed tick mark lines.
     tickDashOffset : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
-
+        The pixel offset at which to start drawing with the tick mark dash array.
     tickExtra : boolean
         Boolean flag indicating if an extra axis tick should be added for the initial
         position of the axis. This flag is useful for styling axes for ``band`` scales such
@@ -753,18 +917,22 @@ class Axis(VegaLiteSchema):
         If ``tickMinStep`` is specified, the ``tickCount`` value will be adjusted, if
         necessary, to enforce the minimum step value.
     tickOffset : anyOf(float, :class:`ExprRef`)
-
+        Position offset in pixels to apply to ticks, labels, and gridlines.
     tickOpacity : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
-
+        Opacity of the ticks.
     tickRound : boolean
         Boolean flag indicating if pixel position values should be rounded to the nearest
         integer.
 
         **Default value:** ``true``
     tickSize : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        The size in pixels of axis ticks.
 
+        **Default value:** ``5``
     tickWidth : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        The width, in pixels, of ticks.
 
+        **Default value:** ``1``
     ticks : boolean
         Boolean value that determines whether the axis should include ticks.
 
@@ -790,37 +958,50 @@ class Axis(VegaLiteSchema):
         2) If both field definition's ``title`` and axis, header, or legend ``title`` are
         defined, axis/header/legend title will be used.
     titleAlign : anyOf(:class:`Align`, :class:`ExprRef`)
-
+        Horizontal text alignment of axis titles.
     titleAnchor : anyOf(:class:`TitleAnchor`, :class:`ExprRef`)
-
+        Text anchor position for placing axis titles.
     titleAngle : anyOf(float, :class:`ExprRef`)
-
+        Angle in degrees of axis titles.
     titleBaseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
-
+        Vertical text baseline for axis titles. One of ``"alphabetic"`` (default),
+        ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, or ``"line-bottom"``. The
+        ``"line-top"`` and ``"line-bottom"`` values operate similarly to ``"top"`` and
+        ``"bottom"``, but are calculated relative to the *lineHeight* rather than *fontSize*
+        alone.
     titleColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Color of the title, can be in hex color code or regular color name.
     titleFont : anyOf(string, :class:`ExprRef`)
-
+        Font of the title. (e.g., ``"Helvetica Neue"`` ).
     titleFontSize : anyOf(float, :class:`ExprRef`)
-
+        Font size of the title.
     titleFontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        Font style of the title.
     titleFontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        Font weight of the title. This can be either a string (e.g ``"bold"``, ``"normal"``
+        ) or a number ( ``100``, ``200``, ``300``, ..., ``900`` where ``"normal"`` = ``400``
+        and ``"bold"`` = ``700`` ).
     titleLimit : anyOf(float, :class:`ExprRef`)
-
+        Maximum allowed pixel width of axis titles.
     titleLineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line title text or title text with ``"line-top"`` or
+        ``"line-bottom"`` baseline.
     titleOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of the axis title.
     titlePadding : anyOf(float, :class:`ExprRef`)
-
+        The padding, in pixels, between title and axis.
     titleX : anyOf(float, :class:`ExprRef`)
-
+        X-coordinate of the axis title relative to the axis group.
     titleY : anyOf(float, :class:`ExprRef`)
-
+        Y-coordinate of the axis title relative to the axis group.
     translate : anyOf(float, :class:`ExprRef`)
+        Coordinate space translation offset for axis layout. By default, axes are translated
+        by a 0.5 pixel offset for both the x and y coordinates in order to align stroked
+        lines with the pixel grid. However, for vector graphics output these pixel-specific
+        adjustments may be undesirable, in which case translate can be changed (for example,
+        to zero).
 
+        **Default value:** ``0.5``
     values : anyOf(List(float), List(string), List(boolean), List(:class:`DateTime`), :class:`ExprRef`)
         Explicitly set the visible axis tick values.
     zindex : float
@@ -898,11 +1079,25 @@ class AxisConfig(VegaLiteSchema):
     ----------
 
     aria : anyOf(boolean, :class:`ExprRef`)
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG group, removing the axis from the ARIA accessibility tree.
 
+        **Default value:** ``true``
     bandPosition : anyOf(float, :class:`ExprRef`)
+        An interpolation fraction indicating where, for ``band`` scales, axis ticks should
+        be positioned. A value of ``0`` places ticks at the left edge of their bands. A
+        value of ``0.5`` places ticks in the middle of their bands.
 
+        **Default value:** ``0.5``
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of this axis for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If the ``aria`` property is true, for SVG output the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__
+        will be set to this description. If the description is unspecified it will be
+        automatically generated.
     disable : boolean
         Disable axis by default.
     domain : boolean
@@ -911,17 +1106,24 @@ class AxisConfig(VegaLiteSchema):
 
         **Default value:** ``true``
     domainCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for the domain line's ending style. One of ``"butt"``, ``"round"`` or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     domainColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
+        Color of axis domain line.
 
+        **Default value:** ``"gray"``.
     domainDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating [stroke, space] lengths for dashed domain lines.
     domainDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The pixel offset at which to start drawing with the domain dash array.
     domainOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of the axis domain line.
     domainWidth : anyOf(float, :class:`ExprRef`)
+        Stroke width of axis domain line
 
+        **Default value:** ``1``
     format : anyOf(string, :class:`Dict`)
         When used with the default ``"number"`` and ``"time"`` format type, the text
         formatting pattern for labels of guides (axes, legends, headers) and text marks.
@@ -963,27 +1165,49 @@ class AxisConfig(VegaLiteSchema):
         <https://vega.github.io/vega-lite/docs/scale.html#continuous>`__ that are not
         binned; otherwise, ``false``.
     gridCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for grid lines' ending style. One of ``"butt"``, ``"round"`` or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     gridColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`, :class:`ConditionalAxisColor`)
+        Color of gridlines.
 
+        **Default value:** ``"lightGray"``.
     gridDash : anyOf(List(float), :class:`ExprRef`, :class:`ConditionalAxisNumberArray`)
-
+        An array of alternating [stroke, space] lengths for dashed grid lines.
     gridDashOffset : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
-
+        The pixel offset at which to start drawing with the grid dash array.
     gridOpacity : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        The stroke opacity of grid (value between [0,1])
 
+        **Default value:** ``1``
     gridWidth : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        The grid width, in pixels.
 
+        **Default value:** ``1``
     labelAlign : anyOf(:class:`Align`, :class:`ExprRef`, :class:`ConditionalAxisLabelAlign`)
-
+        Horizontal text alignment of axis tick labels, overriding the default setting for
+        the current axis orientation.
     labelAngle : anyOf(float, :class:`ExprRef`)
+        The rotation angle of the axis labels.
 
+        **Default value:** ``-90`` for nominal and ordinal fields; ``0`` otherwise.
     labelBaseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`, :class:`ConditionalAxisLabelBaseline`)
-
+        Vertical text baseline of axis tick labels, overriding the default setting for the
+        current axis orientation. One of ``"alphabetic"`` (default), ``"top"``,
+        ``"middle"``, ``"bottom"``, ``"line-top"``, or ``"line-bottom"``. The ``"line-top"``
+        and ``"line-bottom"`` values operate similarly to ``"top"`` and ``"bottom"``, but
+        are calculated relative to the *lineHeight* rather than *fontSize* alone.
     labelBound : anyOf(anyOf(float, boolean), :class:`ExprRef`)
+        Indicates if labels should be hidden if they exceed the axis range. If ``false``
+        (the default) no bounds overlap analysis is performed. If ``true``, labels will be
+        hidden if they exceed the axis range by more than 1 pixel. If this property is a
+        number, it specifies the pixel tolerance: the maximum amount by which a label
+        bounding box may exceed the axis range.
 
+        **Default value:** ``false``.
     labelColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`, :class:`ConditionalAxisColor`)
-
+        The color of the tick label, can be in hex color code or regular color name.
     labelExpr : string
         `Vega expression <https://vega.github.io/vega/docs/expressions/>`__ for customizing
         labels.
@@ -1002,23 +1226,33 @@ class AxisConfig(VegaLiteSchema):
 
         **Default value:** ``true`` for axis of a continuous x-scale. Otherwise, ``false``.
     labelFlushOffset : anyOf(float, :class:`ExprRef`)
+        Indicates the number of pixels by which to offset flush-adjusted labels. For
+        example, a value of ``2`` will push flush-adjusted labels 2 pixels outward from the
+        center of the axis. Offsets can help the labels better visually group with
+        corresponding axis ticks.
 
+        **Default value:** ``0``.
     labelFont : anyOf(string, :class:`ExprRef`, :class:`ConditionalAxisString`)
-
+        The font of the tick label.
     labelFontSize : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
-
+        The font size of the label, in pixels.
     labelFontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`, :class:`ConditionalAxisLabelFontStyle`)
-
+        Font style of the title.
     labelFontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`, :class:`ConditionalAxisLabelFontWeight`)
-
+        Font weight of axis tick labels.
     labelLimit : anyOf(float, :class:`ExprRef`)
+        Maximum allowed pixel width of axis tick labels.
 
+        **Default value:** ``180``
     labelLineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line label text or label text with ``"line-top"`` or
+        ``"line-bottom"`` baseline.
     labelOffset : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        Position offset in pixels to apply to labels, in addition to tickOffset.
 
+        **Default value:** ``0``
     labelOpacity : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
-
+        The opacity of the labels.
     labelOverlap : anyOf(:class:`LabelOverlap`, :class:`ExprRef`)
         The strategy to use for resolving overlap of axis labels. If ``false`` (the
         default), no overlap reduction is attempted. If set to ``true`` or ``"parity"``, a
@@ -1030,17 +1264,27 @@ class AxisConfig(VegaLiteSchema):
         **Default value:** ``true`` for non-nominal fields with non-log scales; ``"greedy"``
         for log scales; otherwise ``false``.
     labelPadding : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        The padding in pixels between labels and ticks.
 
+        **Default value:** ``2``
     labelSeparation : anyOf(float, :class:`ExprRef`)
-
+        The minimum separation that must be between label bounding boxes for them to be
+        considered non-overlapping (default ``0`` ). This property is ignored if
+        *labelOverlap* resolution is not enabled.
     labels : boolean
         A boolean flag indicating if labels should be included as part of the axis.
 
         **Default value:** ``true``.
     maxExtent : anyOf(float, :class:`ExprRef`)
+        The maximum extent in pixels that axis ticks and labels should use. This determines
+        a maximum offset value for axis titles.
 
+        **Default value:** ``undefined``.
     minExtent : anyOf(float, :class:`ExprRef`)
+        The minimum extent in pixels that axis ticks and labels should use. This determines
+        a minimum offset value for axis titles.
 
+        **Default value:** ``30`` for y-axis; ``undefined`` for x-axis.
     offset : anyOf(float, :class:`ExprRef`)
         The offset, in pixels, by which to displace the axis from the edge of the enclosing
         group or data rectangle.
@@ -1070,11 +1314,17 @@ class AxisConfig(VegaLiteSchema):
         style. For example, an x-axis mark with ``"style": "foo"`` will use ``config.axisX``
         and ``config.style.foo`` (the specified style ``"foo"`` has higher precedence).
     tickBand : anyOf(enum('center', 'extent'), :class:`ExprRef`)
-
+        For band scales, indicates if ticks and grid lines should be placed at the
+        ``"center"`` of a band (default) or at the band ``"extent"`` s to indicate intervals
     tickCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for the tick lines' ending style. One of ``"butt"``, ``"round"`` or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     tickColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`, :class:`ConditionalAxisColor`)
+        The color of the axis's tick.
 
+        **Default value:** ``"gray"``
     tickCount : anyOf(float, :class:`TimeInterval`, :class:`TimeIntervalStep`, :class:`ExprRef`)
         A desired number of ticks, for axes visualizing quantitative scales. The resulting
         number may be different so that values are "nice" (multiples of 2, 5, 10) and lie
@@ -1090,9 +1340,9 @@ class AxisConfig(VegaLiteSchema):
         **Default value** : Determine using a formula ``ceil(width/40)`` for x and
         ``ceil(height/40)`` for y.
     tickDash : anyOf(List(float), :class:`ExprRef`, :class:`ConditionalAxisNumberArray`)
-
+        An array of alternating [stroke, space] lengths for dashed tick mark lines.
     tickDashOffset : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
-
+        The pixel offset at which to start drawing with the tick mark dash array.
     tickExtra : boolean
         Boolean flag indicating if an extra axis tick should be added for the initial
         position of the axis. This flag is useful for styling axes for ``band`` scales such
@@ -1104,18 +1354,22 @@ class AxisConfig(VegaLiteSchema):
         If ``tickMinStep`` is specified, the ``tickCount`` value will be adjusted, if
         necessary, to enforce the minimum step value.
     tickOffset : anyOf(float, :class:`ExprRef`)
-
+        Position offset in pixels to apply to ticks, labels, and gridlines.
     tickOpacity : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
-
+        Opacity of the ticks.
     tickRound : boolean
         Boolean flag indicating if pixel position values should be rounded to the nearest
         integer.
 
         **Default value:** ``true``
     tickSize : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        The size in pixels of axis ticks.
 
+        **Default value:** ``5``
     tickWidth : anyOf(float, :class:`ExprRef`, :class:`ConditionalAxisNumber`)
+        The width, in pixels, of ticks.
 
+        **Default value:** ``1``
     ticks : boolean
         Boolean value that determines whether the axis should include ticks.
 
@@ -1141,37 +1395,50 @@ class AxisConfig(VegaLiteSchema):
         2) If both field definition's ``title`` and axis, header, or legend ``title`` are
         defined, axis/header/legend title will be used.
     titleAlign : anyOf(:class:`Align`, :class:`ExprRef`)
-
+        Horizontal text alignment of axis titles.
     titleAnchor : anyOf(:class:`TitleAnchor`, :class:`ExprRef`)
-
+        Text anchor position for placing axis titles.
     titleAngle : anyOf(float, :class:`ExprRef`)
-
+        Angle in degrees of axis titles.
     titleBaseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
-
+        Vertical text baseline for axis titles. One of ``"alphabetic"`` (default),
+        ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, or ``"line-bottom"``. The
+        ``"line-top"`` and ``"line-bottom"`` values operate similarly to ``"top"`` and
+        ``"bottom"``, but are calculated relative to the *lineHeight* rather than *fontSize*
+        alone.
     titleColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Color of the title, can be in hex color code or regular color name.
     titleFont : anyOf(string, :class:`ExprRef`)
-
+        Font of the title. (e.g., ``"Helvetica Neue"`` ).
     titleFontSize : anyOf(float, :class:`ExprRef`)
-
+        Font size of the title.
     titleFontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        Font style of the title.
     titleFontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        Font weight of the title. This can be either a string (e.g ``"bold"``, ``"normal"``
+        ) or a number ( ``100``, ``200``, ``300``, ..., ``900`` where ``"normal"`` = ``400``
+        and ``"bold"`` = ``700`` ).
     titleLimit : anyOf(float, :class:`ExprRef`)
-
+        Maximum allowed pixel width of axis titles.
     titleLineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line title text or title text with ``"line-top"`` or
+        ``"line-bottom"`` baseline.
     titleOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of the axis title.
     titlePadding : anyOf(float, :class:`ExprRef`)
-
+        The padding, in pixels, between title and axis.
     titleX : anyOf(float, :class:`ExprRef`)
-
+        X-coordinate of the axis title relative to the axis group.
     titleY : anyOf(float, :class:`ExprRef`)
-
+        Y-coordinate of the axis title relative to the axis group.
     translate : anyOf(float, :class:`ExprRef`)
+        Coordinate space translation offset for axis layout. By default, axes are translated
+        by a 0.5 pixel offset for both the x and y coordinates in order to align stroked
+        lines with the pixel grid. However, for vector graphics output these pixel-specific
+        adjustments may be undesirable, in which case translate can be changed (for example,
+        to zero).
 
+        **Default value:** ``0.5``
     values : anyOf(List(float), List(string), List(boolean), List(:class:`DateTime`), :class:`ExprRef`)
         Explicitly set the visible axis tick values.
     zindex : float
@@ -1286,15 +1553,25 @@ class BarConfig(AnyMarkConfig):
 
         **Note:** Expression reference is *not* supported for range marks.
     angle : anyOf(float, :class:`ExprRef`)
-
+        The rotation angle of the text, in degrees.
     aria : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG element, removing the mark item from the ARIA accessibility tree.
     ariaRole : anyOf(string, :class:`ExprRef`)
-
+        Sets the type of user interface element of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "role" attribute. Warning: this
+        property is experimental and may be changed in the future.
     ariaRoleDescription : anyOf(string, :class:`ExprRef`)
-
+        A human-readable, author-localized description for the role of the mark item for
+        `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "aria-roledescription" attribute.
+        Warning: this property is experimental and may be changed in the future.
     aspect : anyOf(boolean, :class:`ExprRef`)
-
+        Whether to keep aspect ratio of image marks.
     baseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
         For text marks, the vertical text baseline. One of ``"alphabetic"`` (default),
         ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, ``"line-bottom"``, or an
@@ -1312,7 +1589,11 @@ class BarConfig(AnyMarkConfig):
 
         **Default value:** ``1``
     blend : anyOf(:class:`Blend`, :class:`ExprRef`)
+        The color blend mode for drawing an item on its current background. Any valid `CSS
+        mix-blend-mode <https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode>`__
+        value can be used.
 
+        __Default value:__ ``"source-over"``
     color : anyOf(:class:`Color`, :class:`Gradient`, :class:`ExprRef`)
         Default color.
 
@@ -1331,43 +1612,68 @@ class BarConfig(AnyMarkConfig):
 
         **Default value:** ``5``
     cornerRadius : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles or arcs' corners.
 
+        **Default value:** ``0``
     cornerRadiusBottomLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom left corner.
 
+        **Default value:** ``0``
     cornerRadiusBottomRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom right corner.
 
+        **Default value:** ``0``
     cornerRadiusEnd : anyOf(float, :class:`ExprRef`)
         For vertical bars, top-left and top-right corner radius.
 
         For horizontal bars, top-right and bottom-right corner radius.
     cornerRadiusTopLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top left corner.
 
+        **Default value:** ``0``
     cursor : anyOf(:class:`Cursor`, :class:`ExprRef`)
-
+        The mouse cursor used over the mark. Any valid `CSS cursor type
+        <https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values>`__ can be used.
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__.
     dir : anyOf(:class:`TextDirection`, :class:`ExprRef`)
+        The direction of the text. One of ``"ltr"`` (left-to-right) or ``"rtl"``
+        (right-to-left). This property determines on which side is truncated in response to
+        the limit parameter.
 
+        **Default value:** ``"ltr"``
     discreteBandSize : anyOf(float, :class:`RelativeBandSize`)
         The default size of the bars with discrete dimensions. If unspecified, the default
         size is  ``step-2``, which provides 2 pixel offset between bars.
     dx : anyOf(float, :class:`ExprRef`)
-
+        The horizontal offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     dy : anyOf(float, :class:`ExprRef`)
-
+        The vertical offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     ellipsis : anyOf(string, :class:`ExprRef`)
+        The ellipsis string for text truncated in response to the limit parameter.
 
+        **Default value:** ``"…"``
     endAngle : anyOf(float, :class:`ExprRef`)
-
+        The end angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     fill : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default fill color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove fill.
 
         **Default value:** (None)
     fillOpacity : anyOf(float, :class:`ExprRef`)
+        The fill opacity (value between [0,1]).
 
+        **Default value:** ``1``
     filled : boolean
         Whether the mark's color should be used as fill color instead of stroke color.
 
@@ -1379,24 +1685,48 @@ class BarConfig(AnyMarkConfig):
         **Note:** This property cannot be used in a `style config
         <https://vega.github.io/vega-lite/docs/mark.html#style-config>`__.
     font : anyOf(string, :class:`ExprRef`)
-
+        The typeface to set the text in (e.g., ``"Helvetica Neue"`` ).
     fontSize : anyOf(float, :class:`ExprRef`)
+        The font size, in pixels.
 
+        **Default value:** ``11``
     fontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style (e.g., ``"italic"`` ).
     fontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight. This can be either a string (e.g ``"bold"``, ``"normal"`` ) or a
+        number ( ``100``, ``200``, ``300``, ..., ``900`` where ``"normal"`` = ``400`` and
+        ``"bold"`` = ``700`` ).
     height : anyOf(float, :class:`ExprRef`)
-
+        Height of the marks.
     href : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        A URL to load upon mouse click. If defined, the mark acts as a hyperlink.
     innerRadius : anyOf(float, :class:`ExprRef`)
         The inner radius in pixels of arc marks. ``innerRadius`` is an alias for
         ``radius2``.
 
         **Default value:** ``0``
     interpolate : anyOf(:class:`Interpolate`, :class:`ExprRef`)
+        The line interpolation method to use for line and area marks. One of the following:
+
 
+        * ``"linear"`` : piecewise linear segments, as in a polyline.
+        * ``"linear-closed"`` : close the linear segments to form a polygon.
+        * ``"step"`` : alternate between horizontal and vertical segments, as in a step
+          function.
+        * ``"step-before"`` : alternate between vertical and horizontal segments, as in a
+          step function.
+        * ``"step-after"`` : alternate between horizontal and vertical segments, as in a
+          step function.
+        * ``"basis"`` : a B-spline, with control point duplication on the ends.
+        * ``"basis-open"`` : an open B-spline; may not intersect the start or end.
+        * ``"basis-closed"`` : a closed B-spline, as in a loop.
+        * ``"cardinal"`` : a Cardinal spline, with control point duplication on the ends.
+        * ``"cardinal-open"`` : an open Cardinal spline; may not intersect the start or end,
+          but will intersect other control points.
+        * ``"cardinal-closed"`` : a closed Cardinal spline, as in a loop.
+        * ``"bundle"`` : equivalent to basis, except the tension parameter is used to
+          straighten the spline.
+        * ``"monotone"`` : cubic interpolation that preserves monotonicity in y.
     invalid : enum('filter', None)
         Defines how Vega-Lite should handle marks for invalid values ( ``null`` and ``NaN``
         ).
@@ -1407,11 +1737,16 @@ class BarConfig(AnyMarkConfig):
         * If ``null``, all data items are included. In this case, invalid values will be
           interpreted as zeroes.
     limit : anyOf(float, :class:`ExprRef`)
+        The maximum length of the text mark in pixels. The text value will be automatically
+        truncated if the rendered size exceeds the limit.
 
+        **Default value:** ``0`` -- indicating no limit
     lineBreak : anyOf(string, :class:`ExprRef`)
-
+        A delimiter, such as a newline character, upon which to break text strings into
+        multiple lines. This property is ignored if the text is array-valued.
     lineHeight : anyOf(float, :class:`ExprRef`)
-
+        The line height in pixels (the spacing between subsequent lines of text) for
+        multi-line text marks.
     opacity : anyOf(float, :class:`ExprRef`)
         The overall opacity (value between [0,1]).
 
@@ -1437,7 +1772,7 @@ class BarConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     padAngle : anyOf(float, :class:`ExprRef`)
-
+        The angular padding applied to sides of the arc, in radians.
     radius : anyOf(float, :class:`ExprRef`)
         For arc mark, the primary (outer) radius in pixels.
 
@@ -1450,7 +1785,20 @@ class BarConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     shape : anyOf(anyOf(:class:`SymbolShape`, string), :class:`ExprRef`)
+        Shape of the point marks. Supported values include:
+
 
+        * plotting shapes: ``"circle"``, ``"square"``, ``"cross"``, ``"diamond"``,
+          ``"triangle-up"``, ``"triangle-down"``, ``"triangle-right"``, or
+          ``"triangle-left"``.
+        * the line symbol ``"stroke"``
+        * centered directional shapes ``"arrow"``, ``"wedge"``, or ``"triangle"``
+        * a custom `SVG path string
+          <https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths>`__ (For correct
+          sizing, custom shape paths should be defined within a square bounding box with
+          coordinates ranging from -1 to 1 along both the x and y dimensions.)
+
+        **Default value:** ``"circle"``
     size : anyOf(float, :class:`ExprRef`)
         Default size for marks.
 
@@ -1469,34 +1817,48 @@ class BarConfig(AnyMarkConfig):
         * ``5`` for bar marks with continuous dimensions;
         * ``11`` for text marks.
     smooth : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag (default true) indicating if the image should be smoothed when
+        resized. If false, individual pixels should be scaled directly rather than
+        interpolated with smoothing. For SVG rendering, this option may not work in some
+        browsers due to lack of standardization.
     startAngle : anyOf(float, :class:`ExprRef`)
-
+        The start angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     stroke : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default stroke color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove stroke.
 
         **Default value:** (None)
     strokeCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for line ending style. One of ``"butt"``, ``"round"``, or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     strokeDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating stroke, space lengths for creating dashed or dotted lines.
     strokeDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset (in pixels) into which to begin drawing with the stroke dash array.
     strokeJoin : anyOf(:class:`StrokeJoin`, :class:`ExprRef`)
+        The stroke line join method. One of ``"miter"``, ``"round"`` or ``"bevel"``.
 
+        **Default value:** ``"miter"``
     strokeMiterLimit : anyOf(float, :class:`ExprRef`)
-
+        The miter limit at which to bevel a line join.
     strokeOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset in pixels at which to draw the group stroke and fill. If unspecified, the
+        default behavior is to dynamically offset stroked groups such that 1 pixel stroke
+        widths align with the pixel grid.
     strokeOpacity : anyOf(float, :class:`ExprRef`)
+        The stroke opacity (value between [0,1]).
 
+        **Default value:** ``1``
     strokeWidth : anyOf(float, :class:`ExprRef`)
-
+        The stroke width, in pixels.
     tension : anyOf(float, :class:`ExprRef`)
-
+        Depending on the interpolation type, sets the tension parameter (for line and area
+        marks).
     text : anyOf(:class:`Text`, :class:`ExprRef`)
-
+        Placeholder text if the ``text`` channel is not specified
     theta : anyOf(float, :class:`ExprRef`)
         For arc marks, the arc length in radians if theta2 is not specified, otherwise the
         start arc angle. (A value of 0 indicates up or “north”, increasing values proceed
@@ -1530,9 +1892,9 @@ class BarConfig(AnyMarkConfig):
 
         **Default value:** ``null``
     url : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        The URL of the image file for image marks.
     width : anyOf(float, :class:`ExprRef`)
-
+        Width of the marks.
     x : anyOf(float, string, :class:`ExprRef`)
         X coordinates of the marks, or width of horizontal ``"bar"`` and ``"area"`` without
         specified ``x2`` or ``width``.
@@ -1622,11 +1984,18 @@ class BaseTitleNoValueRefs(VegaLiteSchema):
         Horizontal text alignment for title text. One of ``"left"``, ``"center"``, or
         ``"right"``.
     anchor : anyOf(:class:`TitleAnchor`, :class:`ExprRef`)
-
+        The anchor position for placing the title and subtitle text. One of ``"start"``,
+        ``"middle"``, or ``"end"``. For example, with an orientation of top these anchor
+        positions map to a left-, center-, or right-aligned title.
     angle : anyOf(float, :class:`ExprRef`)
-
+        Angle in degrees of title and subtitle text.
     aria : anyOf(boolean, :class:`ExprRef`)
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG group, removing the title from the ARIA accessibility tree.
 
+        **Default value:** ``true``
     baseline : :class:`TextBaseline`
         Vertical text baseline for title and subtitle text. One of ``"alphabetic"``
         (default), ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, or
@@ -1634,45 +2003,56 @@ class BaseTitleNoValueRefs(VegaLiteSchema):
         to ``"top"`` and ``"bottom"``, but are calculated relative to the *lineHeight*
         rather than *fontSize* alone.
     color : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Text color for title text.
     dx : anyOf(float, :class:`ExprRef`)
-
+        Delta offset for title and subtitle text x-coordinate.
     dy : anyOf(float, :class:`ExprRef`)
-
+        Delta offset for title and subtitle text y-coordinate.
     font : anyOf(string, :class:`ExprRef`)
-
+        Font name for title text.
     fontSize : anyOf(float, :class:`ExprRef`)
-
+        Font size in pixels for title text.
     fontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        Font style for title text.
     fontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        Font weight for title text. This can be either a string (e.g ``"bold"``,
+        ``"normal"`` ) or a number ( ``100``, ``200``, ``300``, ..., ``900`` where
+        ``"normal"`` = ``400`` and ``"bold"`` = ``700`` ).
     frame : anyOf(anyOf(:class:`TitleFrame`, string), :class:`ExprRef`)
-
+        The reference frame for the anchor position, one of ``"bounds"`` (to anchor relative
+        to the full bounding box) or ``"group"`` (to anchor relative to the group width or
+        height).
     limit : anyOf(float, :class:`ExprRef`)
-
+        The maximum allowed length in pixels of title and subtitle text.
     lineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line title text or title text with ``"line-top"`` or
+        ``"line-bottom"`` baseline.
     offset : anyOf(float, :class:`ExprRef`)
-
+        The orthogonal offset in pixels by which to displace the title group from its
+        position along the edge of the chart.
     orient : anyOf(:class:`TitleOrient`, :class:`ExprRef`)
-
+        Default title orientation ( ``"top"``, ``"bottom"``, ``"left"``, or ``"right"`` )
     subtitleColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Text color for subtitle text.
     subtitleFont : anyOf(string, :class:`ExprRef`)
-
+        Font name for subtitle text.
     subtitleFontSize : anyOf(float, :class:`ExprRef`)
-
+        Font size in pixels for subtitle text.
     subtitleFontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        Font style for subtitle text.
     subtitleFontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        Font weight for subtitle text. This can be either a string (e.g ``"bold"``,
+        ``"normal"`` ) or a number ( ``100``, ``200``, ``300``, ..., ``900`` where
+        ``"normal"`` = ``400`` and ``"bold"`` = ``700`` ).
     subtitleLineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line subtitle text.
     subtitlePadding : anyOf(float, :class:`ExprRef`)
-
+        The padding in pixels between title and subtitle text.
     zindex : anyOf(float, :class:`ExprRef`)
+        The integer z-index indicating the layering of the title group relative to other
+        axis, mark, and legend groups.
 
+        **Default value:** ``0``.
     """
     _schema = {'$ref': '#/definitions/BaseTitleNoValueRefs'}
 
@@ -5377,8 +5757,6 @@ class FieldOrDatumDefWithConditionStringFieldDefstring(VegaLiteSchema):
     """FieldOrDatumDefWithConditionStringFieldDefstring schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -6802,17 +7180,30 @@ class Legend(VegaLiteSchema):
     ----------
 
     aria : anyOf(boolean, :class:`ExprRef`)
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG group, removing the legend from the ARIA accessibility tree.
 
+        **Default value:** ``true``
     clipHeight : anyOf(float, :class:`ExprRef`)
-
+        The height in pixels to clip symbol legend entries and limit their size.
     columnPadding : anyOf(float, :class:`ExprRef`)
+        The horizontal padding in pixels between symbol legend entries.
 
+        **Default value:** ``10``.
     columns : anyOf(float, :class:`ExprRef`)
-
+        The number of columns in which to arrange symbol legend entries. A value of ``0`` or
+        lower indicates a single row with one column per entry.
     cornerRadius : anyOf(float, :class:`ExprRef`)
-
+        Corner radius for the full legend.
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of this legend for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If the ``aria`` property is true, for SVG output the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__
+        will be set to this description. If the description is unspecified it will be
+        automatically generated.
     direction : :class:`Orientation`
         The direction of the legend, one of ``"vertical"`` or ``"horizontal"``.
 
@@ -6824,7 +7215,7 @@ class Legend(VegaLiteSchema):
         * For top/bottom-left/right- ``orient`` ed legends, ``"horizontal"`` for gradient
           legends and ``"vertical"`` for symbol legends.
     fillColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Background fill color for the full legend.
     format : anyOf(string, :class:`Dict`)
         When used with the default ``"number"`` and ``"time"`` format type, the text
         formatting pattern for labels of guides (axes, legends, headers) and text marks.
@@ -6860,23 +7251,40 @@ class Legend(VegaLiteSchema):
         * ``"number"`` for quantitative fields as well as ordinal and nominal fields without
           ``timeUnit``.
     gradientLength : anyOf(float, :class:`ExprRef`)
+        The length in pixels of the primary axis of a color gradient. This value corresponds
+        to the height of a vertical gradient or the width of a horizontal gradient.
 
+        **Default value:** ``200``.
     gradientOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of the color gradient.
     gradientStrokeColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
+        The color of the gradient stroke, can be in hex color code or regular color name.
 
+        **Default value:** ``"lightGray"``.
     gradientStrokeWidth : anyOf(float, :class:`ExprRef`)
+        The width of the gradient stroke, in pixels.
 
+        **Default value:** ``0``.
     gradientThickness : anyOf(float, :class:`ExprRef`)
+        The thickness in pixels of the color gradient. This value corresponds to the width
+        of a vertical gradient or the height of a horizontal gradient.
 
+        **Default value:** ``16``.
     gridAlign : anyOf(:class:`LayoutAlign`, :class:`ExprRef`)
+        The alignment to apply to symbol legends rows and columns. The supported string
+        values are ``"all"``, ``"each"`` (the default), and ``none``. For more information,
+        see the `grid layout documentation <https://vega.github.io/vega/docs/layout>`__.
 
+        **Default value:** ``"each"``.
     labelAlign : anyOf(:class:`Align`, :class:`ExprRef`)
-
+        The alignment of the legend label, can be left, center, or right.
     labelBaseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
+        The position of the baseline of legend label, can be ``"top"``, ``"middle"``,
+        ``"bottom"``, or ``"alphabetic"``.
 
+        **Default value:** ``"middle"``.
     labelColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        The color of the legend label, can be in hex color code or regular color name.
     labelExpr : string
         `Vega expression <https://vega.github.io/vega/docs/expressions/>`__ for customizing
         labels.
@@ -6884,31 +7292,48 @@ class Legend(VegaLiteSchema):
         **Note:** The label text and value can be assessed via the ``label`` and ``value``
         properties of the legend's backing ``datum`` object.
     labelFont : anyOf(string, :class:`ExprRef`)
-
+        The font of the legend label.
     labelFontSize : anyOf(float, :class:`ExprRef`)
+        The font size of legend label.
 
+        **Default value:** ``10``.
     labelFontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style of legend label.
     labelFontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight of legend label.
     labelLimit : anyOf(float, :class:`ExprRef`)
+        Maximum allowed pixel width of legend tick labels.
 
+        **Default value:** ``160``.
     labelOffset : anyOf(float, :class:`ExprRef`)
+        The offset of the legend label.
 
+        **Default value:** ``4``.
     labelOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of labels.
     labelOverlap : anyOf(:class:`LabelOverlap`, :class:`ExprRef`)
+        The strategy to use for resolving overlap of labels in gradient legends. If
+        ``false``, no overlap reduction is attempted. If set to ``true`` (default) or
+        ``"parity"``, a strategy of removing every other label is used. If set to
+        ``"greedy"``, a linear scan of the labels is performed, removing any label that
+        overlaps with the last visible label (this often works better for log-scaled axes).
 
+        **Default value:** ``true``.
     labelPadding : anyOf(float, :class:`ExprRef`)
-
+        Padding in pixels between the legend and legend labels.
     labelSeparation : anyOf(float, :class:`ExprRef`)
-
+        The minimum separation that must be between label bounding boxes for them to be
+        considered non-overlapping (default ``0`` ). This property is ignored if
+        *labelOverlap* resolution is not enabled.
     legendX : anyOf(float, :class:`ExprRef`)
-
+        Custom x-position for legend with orient "none".
     legendY : anyOf(float, :class:`ExprRef`)
-
+        Custom y-position for legend with orient "none".
     offset : anyOf(float, :class:`ExprRef`)
+        The offset in pixels by which to displace the legend from the data rectangle and
+        axes.
 
+        **Default value:** ``18``.
     orient : :class:`LegendOrient`
         The orientation of the legend, which determines how the legend is positioned within
         the scene. One of ``"left"``, ``"right"``, ``"top"``, ``"bottom"``, ``"top-left"``,
@@ -6916,33 +7341,53 @@ class Legend(VegaLiteSchema):
 
         **Default value:** ``"right"``
     padding : anyOf(float, :class:`ExprRef`)
+        The padding between the border and content of the legend group.
 
+        **Default value:** ``0``.
     rowPadding : anyOf(float, :class:`ExprRef`)
+        The vertical padding in pixels between symbol legend entries.
 
+        **Default value:** ``2``.
     strokeColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Border stroke color for the full legend.
     symbolDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating [stroke, space] lengths for dashed symbol strokes.
     symbolDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The pixel offset at which to start drawing with the symbol stroke dash array.
     symbolFillColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        The color of the legend symbol,
     symbolLimit : anyOf(float, :class:`ExprRef`)
-
+        The maximum number of allowed entries for a symbol legend. Additional entries will
+        be dropped.
     symbolOffset : anyOf(float, :class:`ExprRef`)
+        Horizontal pixel offset for legend symbols.
 
+        **Default value:** ``0``.
     symbolOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of the legend symbols.
     symbolSize : anyOf(float, :class:`ExprRef`)
+        The size of the legend symbol, in pixels.
 
+        **Default value:** ``100``.
     symbolStrokeColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Stroke color for legend symbols.
     symbolStrokeWidth : anyOf(float, :class:`ExprRef`)
+        The width of the symbol's stroke.
 
+        **Default value:** ``1.5``.
     symbolType : anyOf(:class:`SymbolShape`, :class:`ExprRef`)
-
+        The symbol shape. One of the plotting shapes ``circle`` (default), ``square``,
+        ``cross``, ``diamond``, ``triangle-up``, ``triangle-down``, ``triangle-right``, or
+        ``triangle-left``, the line symbol ``stroke``, or one of the centered directional
+        shapes ``arrow``, ``wedge``, or ``triangle``. Alternatively, a custom `SVG path
+        string <https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths>`__ can be
+        provided. For correct sizing, custom shape paths should be defined within a square
+        bounding box with coordinates ranging from -1 to 1 along both the x and y
+        dimensions.
+
+        **Default value:** ``"circle"``.
     tickCount : anyOf(:class:`TickCount`, :class:`ExprRef`)
-
+        The desired number of tick values for quantitative legends.
     tickMinStep : anyOf(float, :class:`ExprRef`)
         The minimum desired step between legend ticks, in terms of scale domain values. For
         example, a value of ``1`` indicates that ticks should not be less than 1 unit apart.
@@ -6971,31 +7416,46 @@ class Legend(VegaLiteSchema):
         2) If both field definition's ``title`` and axis, header, or legend ``title`` are
         defined, axis/header/legend title will be used.
     titleAlign : anyOf(:class:`Align`, :class:`ExprRef`)
+        Horizontal text alignment for legend titles.
 
+        **Default value:** ``"left"``.
     titleAnchor : anyOf(:class:`TitleAnchor`, :class:`ExprRef`)
-
+        Text anchor position for placing legend titles.
     titleBaseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
+        Vertical text baseline for legend titles.  One of ``"alphabetic"`` (default),
+        ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, or ``"line-bottom"``. The
+        ``"line-top"`` and ``"line-bottom"`` values operate similarly to ``"top"`` and
+        ``"bottom"``, but are calculated relative to the *lineHeight* rather than *fontSize*
+        alone.
 
+        **Default value:** ``"top"``.
     titleColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        The color of the legend title, can be in hex color code or regular color name.
     titleFont : anyOf(string, :class:`ExprRef`)
-
+        The font of the legend title.
     titleFontSize : anyOf(float, :class:`ExprRef`)
-
+        The font size of the legend title.
     titleFontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style of the legend title.
     titleFontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight of the legend title. This can be either a string (e.g ``"bold"``,
+        ``"normal"`` ) or a number ( ``100``, ``200``, ``300``, ..., ``900`` where
+        ``"normal"`` = ``400`` and ``"bold"`` = ``700`` ).
     titleLimit : anyOf(float, :class:`ExprRef`)
+        Maximum allowed pixel width of legend titles.
 
+        **Default value:** ``180``.
     titleLineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line title text or title text with ``"line-top"`` or
+        ``"line-bottom"`` baseline.
     titleOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of the legend title.
     titleOrient : anyOf(:class:`Orient`, :class:`ExprRef`)
-
+        Orientation of the legend title.
     titlePadding : anyOf(float, :class:`ExprRef`)
+        The padding, in pixels, between title and legend.
 
+        **Default value:** ``5``.
     type : enum('symbol', 'gradient')
         The type of the legend. Use ``"symbol"`` to create a discrete legend and
         ``"gradient"`` for a continuous color gradient.
@@ -7084,17 +7544,30 @@ class LegendConfig(VegaLiteSchema):
     ----------
 
     aria : anyOf(boolean, :class:`ExprRef`)
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG group, removing the legend from the ARIA accessibility tree.
 
+        **Default value:** ``true``
     clipHeight : anyOf(float, :class:`ExprRef`)
-
+        The height in pixels to clip symbol legend entries and limit their size.
     columnPadding : anyOf(float, :class:`ExprRef`)
+        The horizontal padding in pixels between symbol legend entries.
 
+        **Default value:** ``10``.
     columns : anyOf(float, :class:`ExprRef`)
-
+        The number of columns in which to arrange symbol legend entries. A value of ``0`` or
+        lower indicates a single row with one column per entry.
     cornerRadius : anyOf(float, :class:`ExprRef`)
-
+        Corner radius for the full legend.
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of this legend for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If the ``aria`` property is true, for SVG output the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__
+        will be set to this description. If the description is unspecified it will be
+        automatically generated.
     direction : :class:`Orientation`
         The direction of the legend, one of ``"vertical"`` or ``"horizontal"``.
 
@@ -7108,9 +7581,11 @@ class LegendConfig(VegaLiteSchema):
     disable : boolean
         Disable legend by default
     fillColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Background fill color for the full legend.
     gradientDirection : anyOf(:class:`Orientation`, :class:`ExprRef`)
+        The default direction ( ``"horizontal"`` or ``"vertical"`` ) for gradient legends.
 
+        **Default value:** ``"vertical"``.
     gradientHorizontalMaxLength : float
         Max legend length for a horizontal gradient when ``config.legend.gradientLength`` is
         undefined.
@@ -7122,19 +7597,31 @@ class LegendConfig(VegaLiteSchema):
 
         **Default value:** ``100``
     gradientLabelLimit : anyOf(float, :class:`ExprRef`)
-
+        The maximum allowed length in pixels of color ramp gradient labels.
     gradientLabelOffset : anyOf(float, :class:`ExprRef`)
+        Vertical offset in pixels for color ramp gradient labels.
 
+        **Default value:** ``2``.
     gradientLength : anyOf(float, :class:`ExprRef`)
+        The length in pixels of the primary axis of a color gradient. This value corresponds
+        to the height of a vertical gradient or the width of a horizontal gradient.
 
+        **Default value:** ``200``.
     gradientOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of the color gradient.
     gradientStrokeColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
+        The color of the gradient stroke, can be in hex color code or regular color name.
 
+        **Default value:** ``"lightGray"``.
     gradientStrokeWidth : anyOf(float, :class:`ExprRef`)
+        The width of the gradient stroke, in pixels.
 
+        **Default value:** ``0``.
     gradientThickness : anyOf(float, :class:`ExprRef`)
+        The thickness in pixels of the color gradient. This value corresponds to the width
+        of a vertical gradient or the height of a horizontal gradient.
 
+        **Default value:** ``16``.
     gradientVerticalMaxLength : float
         Max legend length for a vertical gradient when ``config.legend.gradientLength`` is
         undefined.
@@ -7146,27 +7633,40 @@ class LegendConfig(VegaLiteSchema):
 
         **Default value:** ``100``
     gridAlign : anyOf(:class:`LayoutAlign`, :class:`ExprRef`)
+        The alignment to apply to symbol legends rows and columns. The supported string
+        values are ``"all"``, ``"each"`` (the default), and ``none``. For more information,
+        see the `grid layout documentation <https://vega.github.io/vega/docs/layout>`__.
 
+        **Default value:** ``"each"``.
     labelAlign : anyOf(:class:`Align`, :class:`ExprRef`)
-
+        The alignment of the legend label, can be left, center, or right.
     labelBaseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
+        The position of the baseline of legend label, can be ``"top"``, ``"middle"``,
+        ``"bottom"``, or ``"alphabetic"``.
 
+        **Default value:** ``"middle"``.
     labelColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        The color of the legend label, can be in hex color code or regular color name.
     labelFont : anyOf(string, :class:`ExprRef`)
-
+        The font of the legend label.
     labelFontSize : anyOf(float, :class:`ExprRef`)
+        The font size of legend label.
 
+        **Default value:** ``10``.
     labelFontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style of legend label.
     labelFontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight of legend label.
     labelLimit : anyOf(float, :class:`ExprRef`)
+        Maximum allowed pixel width of legend tick labels.
 
+        **Default value:** ``160``.
     labelOffset : anyOf(float, :class:`ExprRef`)
+        The offset of the legend label.
 
+        **Default value:** ``4``.
     labelOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of labels.
     labelOverlap : anyOf(:class:`LabelOverlap`, :class:`ExprRef`)
         The strategy to use for resolving overlap of labels in gradient legends. If
         ``false``, no overlap reduction is attempted. If set to ``true`` or ``"parity"``, a
@@ -7176,17 +7676,22 @@ class LegendConfig(VegaLiteSchema):
 
         **Default value:** ``"greedy"`` for ``log scales otherwise`` true`.
     labelPadding : anyOf(float, :class:`ExprRef`)
-
+        Padding in pixels between the legend and legend labels.
     labelSeparation : anyOf(float, :class:`ExprRef`)
-
+        The minimum separation that must be between label bounding boxes for them to be
+        considered non-overlapping (default ``0`` ). This property is ignored if
+        *labelOverlap* resolution is not enabled.
     layout : :class:`ExprRef`
 
     legendX : anyOf(float, :class:`ExprRef`)
-
+        Custom x-position for legend with orient "none".
     legendY : anyOf(float, :class:`ExprRef`)
-
+        Custom y-position for legend with orient "none".
     offset : anyOf(float, :class:`ExprRef`)
+        The offset in pixels by which to displace the legend from the data rectangle and
+        axes.
 
+        **Default value:** ``18``.
     orient : :class:`LegendOrient`
         The orientation of the legend, which determines how the legend is positioned within
         the scene. One of ``"left"``, ``"right"``, ``"top"``, ``"bottom"``, ``"top-left"``,
@@ -7194,77 +7699,121 @@ class LegendConfig(VegaLiteSchema):
 
         **Default value:** ``"right"``
     padding : anyOf(float, :class:`ExprRef`)
+        The padding between the border and content of the legend group.
 
+        **Default value:** ``0``.
     rowPadding : anyOf(float, :class:`ExprRef`)
+        The vertical padding in pixels between symbol legend entries.
 
+        **Default value:** ``2``.
     strokeColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Border stroke color for the full legend.
     strokeDash : anyOf(List(float), :class:`ExprRef`)
-
+        Border stroke dash pattern for the full legend.
     strokeWidth : anyOf(float, :class:`ExprRef`)
-
+        Border stroke width for the full legend.
     symbolBaseFillColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
+        Default fill color for legend symbols. Only applied if there is no ``"fill"`` scale
+        color encoding for the legend.
 
+        **Default value:** ``"transparent"``.
     symbolBaseStrokeColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
+        Default stroke color for legend symbols. Only applied if there is no ``"fill"``
+        scale color encoding for the legend.
 
+        **Default value:** ``"gray"``.
     symbolDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating [stroke, space] lengths for dashed symbol strokes.
     symbolDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The pixel offset at which to start drawing with the symbol stroke dash array.
     symbolDirection : anyOf(:class:`Orientation`, :class:`ExprRef`)
+        The default direction ( ``"horizontal"`` or ``"vertical"`` ) for symbol legends.
 
+        **Default value:** ``"vertical"``.
     symbolFillColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        The color of the legend symbol,
     symbolLimit : anyOf(float, :class:`ExprRef`)
-
+        The maximum number of allowed entries for a symbol legend. Additional entries will
+        be dropped.
     symbolOffset : anyOf(float, :class:`ExprRef`)
+        Horizontal pixel offset for legend symbols.
 
+        **Default value:** ``0``.
     symbolOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of the legend symbols.
     symbolSize : anyOf(float, :class:`ExprRef`)
+        The size of the legend symbol, in pixels.
 
+        **Default value:** ``100``.
     symbolStrokeColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Stroke color for legend symbols.
     symbolStrokeWidth : anyOf(float, :class:`ExprRef`)
+        The width of the symbol's stroke.
 
+        **Default value:** ``1.5``.
     symbolType : anyOf(:class:`SymbolShape`, :class:`ExprRef`)
-
+        The symbol shape. One of the plotting shapes ``circle`` (default), ``square``,
+        ``cross``, ``diamond``, ``triangle-up``, ``triangle-down``, ``triangle-right``, or
+        ``triangle-left``, the line symbol ``stroke``, or one of the centered directional
+        shapes ``arrow``, ``wedge``, or ``triangle``. Alternatively, a custom `SVG path
+        string <https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths>`__ can be
+        provided. For correct sizing, custom shape paths should be defined within a square
+        bounding box with coordinates ranging from -1 to 1 along both the x and y
+        dimensions.
+
+        **Default value:** ``"circle"``.
     tickCount : anyOf(:class:`TickCount`, :class:`ExprRef`)
-
+        The desired number of tick values for quantitative legends.
     title : None
         Set to null to disable title for the axis, legend, or header.
     titleAlign : anyOf(:class:`Align`, :class:`ExprRef`)
+        Horizontal text alignment for legend titles.
 
+        **Default value:** ``"left"``.
     titleAnchor : anyOf(:class:`TitleAnchor`, :class:`ExprRef`)
-
+        Text anchor position for placing legend titles.
     titleBaseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
+        Vertical text baseline for legend titles.  One of ``"alphabetic"`` (default),
+        ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, or ``"line-bottom"``. The
+        ``"line-top"`` and ``"line-bottom"`` values operate similarly to ``"top"`` and
+        ``"bottom"``, but are calculated relative to the *lineHeight* rather than *fontSize*
+        alone.
 
+        **Default value:** ``"top"``.
     titleColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        The color of the legend title, can be in hex color code or regular color name.
     titleFont : anyOf(string, :class:`ExprRef`)
-
+        The font of the legend title.
     titleFontSize : anyOf(float, :class:`ExprRef`)
-
+        The font size of the legend title.
     titleFontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style of the legend title.
     titleFontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight of the legend title. This can be either a string (e.g ``"bold"``,
+        ``"normal"`` ) or a number ( ``100``, ``200``, ``300``, ..., ``900`` where
+        ``"normal"`` = ``400`` and ``"bold"`` = ``700`` ).
     titleLimit : anyOf(float, :class:`ExprRef`)
+        Maximum allowed pixel width of legend titles.
 
+        **Default value:** ``180``.
     titleLineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line title text or title text with ``"line-top"`` or
+        ``"line-bottom"`` baseline.
     titleOpacity : anyOf(float, :class:`ExprRef`)
-
+        Opacity of the legend title.
     titleOrient : anyOf(:class:`Orient`, :class:`ExprRef`)
-
+        Orientation of the legend title.
     titlePadding : anyOf(float, :class:`ExprRef`)
+        The padding, in pixels, between title and legend.
 
+        **Default value:** ``5``.
     unselectedOpacity : float
         The opacity of unselected legend entries.
 
         **Default value:** 0.35.
     zindex : anyOf(float, :class:`ExprRef`)
-
+        The integer z-index indicating the layering of the legend group relative to other
+        axis, mark, and legend groups.
     """
     _schema = {'$ref': '#/definitions/LegendConfig'}
 
@@ -7425,15 +7974,25 @@ class LineConfig(AnyMarkConfig):
 
         **Note:** Expression reference is *not* supported for range marks.
     angle : anyOf(float, :class:`ExprRef`)
-
+        The rotation angle of the text, in degrees.
     aria : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG element, removing the mark item from the ARIA accessibility tree.
     ariaRole : anyOf(string, :class:`ExprRef`)
-
+        Sets the type of user interface element of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "role" attribute. Warning: this
+        property is experimental and may be changed in the future.
     ariaRoleDescription : anyOf(string, :class:`ExprRef`)
-
+        A human-readable, author-localized description for the role of the mark item for
+        `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "aria-roledescription" attribute.
+        Warning: this property is experimental and may be changed in the future.
     aspect : anyOf(boolean, :class:`ExprRef`)
-
+        Whether to keep aspect ratio of image marks.
     baseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
         For text marks, the vertical text baseline. One of ``"alphabetic"`` (default),
         ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, ``"line-bottom"``, or an
@@ -7446,7 +8005,11 @@ class LineConfig(AnyMarkConfig):
 
         **Note:** Expression reference is *not* supported for range marks.
     blend : anyOf(:class:`Blend`, :class:`ExprRef`)
+        The color blend mode for drawing an item on its current background. Any valid `CSS
+        mix-blend-mode <https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode>`__
+        value can be used.
 
+        __Default value:__ ``"source-over"``
     color : anyOf(:class:`Color`, :class:`Gradient`, :class:`ExprRef`)
         Default color.
 
@@ -7461,36 +8024,61 @@ class LineConfig(AnyMarkConfig):
         * The ``fill`` and ``stroke`` properties have higher precedence than ``color`` and
           will override ``color``.
     cornerRadius : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles or arcs' corners.
 
+        **Default value:** ``0``
     cornerRadiusBottomLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom left corner.
 
+        **Default value:** ``0``
     cornerRadiusBottomRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top left corner.
 
+        **Default value:** ``0``
     cursor : anyOf(:class:`Cursor`, :class:`ExprRef`)
-
+        The mouse cursor used over the mark. Any valid `CSS cursor type
+        <https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values>`__ can be used.
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__.
     dir : anyOf(:class:`TextDirection`, :class:`ExprRef`)
+        The direction of the text. One of ``"ltr"`` (left-to-right) or ``"rtl"``
+        (right-to-left). This property determines on which side is truncated in response to
+        the limit parameter.
 
+        **Default value:** ``"ltr"``
     dx : anyOf(float, :class:`ExprRef`)
-
+        The horizontal offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     dy : anyOf(float, :class:`ExprRef`)
-
+        The vertical offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     ellipsis : anyOf(string, :class:`ExprRef`)
+        The ellipsis string for text truncated in response to the limit parameter.
 
+        **Default value:** ``"…"``
     endAngle : anyOf(float, :class:`ExprRef`)
-
+        The end angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     fill : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default fill color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove fill.
 
         **Default value:** (None)
     fillOpacity : anyOf(float, :class:`ExprRef`)
+        The fill opacity (value between [0,1]).
 
+        **Default value:** ``1``
     filled : boolean
         Whether the mark's color should be used as fill color instead of stroke color.
 
@@ -7502,24 +8090,48 @@ class LineConfig(AnyMarkConfig):
         **Note:** This property cannot be used in a `style config
         <https://vega.github.io/vega-lite/docs/mark.html#style-config>`__.
     font : anyOf(string, :class:`ExprRef`)
-
+        The typeface to set the text in (e.g., ``"Helvetica Neue"`` ).
     fontSize : anyOf(float, :class:`ExprRef`)
+        The font size, in pixels.
 
+        **Default value:** ``11``
     fontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style (e.g., ``"italic"`` ).
     fontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight. This can be either a string (e.g ``"bold"``, ``"normal"`` ) or a
+        number ( ``100``, ``200``, ``300``, ..., ``900`` where ``"normal"`` = ``400`` and
+        ``"bold"`` = ``700`` ).
     height : anyOf(float, :class:`ExprRef`)
-
+        Height of the marks.
     href : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        A URL to load upon mouse click. If defined, the mark acts as a hyperlink.
     innerRadius : anyOf(float, :class:`ExprRef`)
         The inner radius in pixels of arc marks. ``innerRadius`` is an alias for
         ``radius2``.
 
         **Default value:** ``0``
     interpolate : anyOf(:class:`Interpolate`, :class:`ExprRef`)
+        The line interpolation method to use for line and area marks. One of the following:
 
+
+        * ``"linear"`` : piecewise linear segments, as in a polyline.
+        * ``"linear-closed"`` : close the linear segments to form a polygon.
+        * ``"step"`` : alternate between horizontal and vertical segments, as in a step
+          function.
+        * ``"step-before"`` : alternate between vertical and horizontal segments, as in a
+          step function.
+        * ``"step-after"`` : alternate between horizontal and vertical segments, as in a
+          step function.
+        * ``"basis"`` : a B-spline, with control point duplication on the ends.
+        * ``"basis-open"`` : an open B-spline; may not intersect the start or end.
+        * ``"basis-closed"`` : a closed B-spline, as in a loop.
+        * ``"cardinal"`` : a Cardinal spline, with control point duplication on the ends.
+        * ``"cardinal-open"`` : an open Cardinal spline; may not intersect the start or end,
+          but will intersect other control points.
+        * ``"cardinal-closed"`` : a closed Cardinal spline, as in a loop.
+        * ``"bundle"`` : equivalent to basis, except the tension parameter is used to
+          straighten the spline.
+        * ``"monotone"`` : cubic interpolation that preserves monotonicity in y.
     invalid : enum('filter', None)
         Defines how Vega-Lite should handle marks for invalid values ( ``null`` and ``NaN``
         ).
@@ -7530,11 +8142,16 @@ class LineConfig(AnyMarkConfig):
         * If ``null``, all data items are included. In this case, invalid values will be
           interpreted as zeroes.
     limit : anyOf(float, :class:`ExprRef`)
+        The maximum length of the text mark in pixels. The text value will be automatically
+        truncated if the rendered size exceeds the limit.
 
+        **Default value:** ``0`` -- indicating no limit
     lineBreak : anyOf(string, :class:`ExprRef`)
-
+        A delimiter, such as a newline character, upon which to break text strings into
+        multiple lines. This property is ignored if the text is array-valued.
     lineHeight : anyOf(float, :class:`ExprRef`)
-
+        The line height in pixels (the spacing between subsequent lines of text) for
+        multi-line text marks.
     opacity : anyOf(float, :class:`ExprRef`)
         The overall opacity (value between [0,1]).
 
@@ -7560,7 +8177,7 @@ class LineConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     padAngle : anyOf(float, :class:`ExprRef`)
-
+        The angular padding applied to sides of the arc, in radians.
     point : anyOf(boolean, :class:`OverlayMarkDef`, string)
         A flag for overlaying points on top of line or area marks, or an object defining the
         properties of the overlayed points.
@@ -7588,7 +8205,20 @@ class LineConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     shape : anyOf(anyOf(:class:`SymbolShape`, string), :class:`ExprRef`)
+        Shape of the point marks. Supported values include:
 
+
+        * plotting shapes: ``"circle"``, ``"square"``, ``"cross"``, ``"diamond"``,
+          ``"triangle-up"``, ``"triangle-down"``, ``"triangle-right"``, or
+          ``"triangle-left"``.
+        * the line symbol ``"stroke"``
+        * centered directional shapes ``"arrow"``, ``"wedge"``, or ``"triangle"``
+        * a custom `SVG path string
+          <https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths>`__ (For correct
+          sizing, custom shape paths should be defined within a square bounding box with
+          coordinates ranging from -1 to 1 along both the x and y dimensions.)
+
+        **Default value:** ``"circle"``
     size : anyOf(float, :class:`ExprRef`)
         Default size for marks.
 
@@ -7607,34 +8237,48 @@ class LineConfig(AnyMarkConfig):
         * ``5`` for bar marks with continuous dimensions;
         * ``11`` for text marks.
     smooth : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag (default true) indicating if the image should be smoothed when
+        resized. If false, individual pixels should be scaled directly rather than
+        interpolated with smoothing. For SVG rendering, this option may not work in some
+        browsers due to lack of standardization.
     startAngle : anyOf(float, :class:`ExprRef`)
-
+        The start angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     stroke : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default stroke color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove stroke.
 
         **Default value:** (None)
     strokeCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for line ending style. One of ``"butt"``, ``"round"``, or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     strokeDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating stroke, space lengths for creating dashed or dotted lines.
     strokeDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset (in pixels) into which to begin drawing with the stroke dash array.
     strokeJoin : anyOf(:class:`StrokeJoin`, :class:`ExprRef`)
+        The stroke line join method. One of ``"miter"``, ``"round"`` or ``"bevel"``.
 
+        **Default value:** ``"miter"``
     strokeMiterLimit : anyOf(float, :class:`ExprRef`)
-
+        The miter limit at which to bevel a line join.
     strokeOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset in pixels at which to draw the group stroke and fill. If unspecified, the
+        default behavior is to dynamically offset stroked groups such that 1 pixel stroke
+        widths align with the pixel grid.
     strokeOpacity : anyOf(float, :class:`ExprRef`)
+        The stroke opacity (value between [0,1]).
 
+        **Default value:** ``1``
     strokeWidth : anyOf(float, :class:`ExprRef`)
-
+        The stroke width, in pixels.
     tension : anyOf(float, :class:`ExprRef`)
-
+        Depending on the interpolation type, sets the tension parameter (for line and area
+        marks).
     text : anyOf(:class:`Text`, :class:`ExprRef`)
-
+        Placeholder text if the ``text`` channel is not specified
     theta : anyOf(float, :class:`ExprRef`)
         For arc marks, the arc length in radians if theta2 is not specified, otherwise the
         start arc angle. (A value of 0 indicates up or “north”, increasing values proceed
@@ -7668,9 +8312,9 @@ class LineConfig(AnyMarkConfig):
 
         **Default value:** ``null``
     url : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        The URL of the image file for image marks.
     width : anyOf(float, :class:`ExprRef`)
-
+        Width of the marks.
     x : anyOf(float, string, :class:`ExprRef`)
         X coordinates of the marks, or width of horizontal ``"bar"`` and ``"area"`` without
         specified ``x2`` or ``width``.
@@ -7872,15 +8516,25 @@ class MarkConfig(AnyMarkConfig):
 
         **Note:** Expression reference is *not* supported for range marks.
     angle : anyOf(float, :class:`ExprRef`)
-
+        The rotation angle of the text, in degrees.
     aria : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG element, removing the mark item from the ARIA accessibility tree.
     ariaRole : anyOf(string, :class:`ExprRef`)
-
+        Sets the type of user interface element of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "role" attribute. Warning: this
+        property is experimental and may be changed in the future.
     ariaRoleDescription : anyOf(string, :class:`ExprRef`)
-
+        A human-readable, author-localized description for the role of the mark item for
+        `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "aria-roledescription" attribute.
+        Warning: this property is experimental and may be changed in the future.
     aspect : anyOf(boolean, :class:`ExprRef`)
-
+        Whether to keep aspect ratio of image marks.
     baseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
         For text marks, the vertical text baseline. One of ``"alphabetic"`` (default),
         ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, ``"line-bottom"``, or an
@@ -7893,7 +8547,11 @@ class MarkConfig(AnyMarkConfig):
 
         **Note:** Expression reference is *not* supported for range marks.
     blend : anyOf(:class:`Blend`, :class:`ExprRef`)
+        The color blend mode for drawing an item on its current background. Any valid `CSS
+        mix-blend-mode <https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode>`__
+        value can be used.
 
+        __Default value:__ ``"source-over"``
     color : anyOf(:class:`Color`, :class:`Gradient`, :class:`ExprRef`)
         Default color.
 
@@ -7908,36 +8566,61 @@ class MarkConfig(AnyMarkConfig):
         * The ``fill`` and ``stroke`` properties have higher precedence than ``color`` and
           will override ``color``.
     cornerRadius : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles or arcs' corners.
 
+        **Default value:** ``0``
     cornerRadiusBottomLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom left corner.
 
+        **Default value:** ``0``
     cornerRadiusBottomRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top left corner.
 
+        **Default value:** ``0``
     cursor : anyOf(:class:`Cursor`, :class:`ExprRef`)
-
+        The mouse cursor used over the mark. Any valid `CSS cursor type
+        <https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values>`__ can be used.
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__.
     dir : anyOf(:class:`TextDirection`, :class:`ExprRef`)
+        The direction of the text. One of ``"ltr"`` (left-to-right) or ``"rtl"``
+        (right-to-left). This property determines on which side is truncated in response to
+        the limit parameter.
 
+        **Default value:** ``"ltr"``
     dx : anyOf(float, :class:`ExprRef`)
-
+        The horizontal offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     dy : anyOf(float, :class:`ExprRef`)
-
+        The vertical offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     ellipsis : anyOf(string, :class:`ExprRef`)
+        The ellipsis string for text truncated in response to the limit parameter.
 
+        **Default value:** ``"…"``
     endAngle : anyOf(float, :class:`ExprRef`)
-
+        The end angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     fill : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default fill color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove fill.
 
         **Default value:** (None)
     fillOpacity : anyOf(float, :class:`ExprRef`)
+        The fill opacity (value between [0,1]).
 
+        **Default value:** ``1``
     filled : boolean
         Whether the mark's color should be used as fill color instead of stroke color.
 
@@ -7949,24 +8632,48 @@ class MarkConfig(AnyMarkConfig):
         **Note:** This property cannot be used in a `style config
         <https://vega.github.io/vega-lite/docs/mark.html#style-config>`__.
     font : anyOf(string, :class:`ExprRef`)
-
+        The typeface to set the text in (e.g., ``"Helvetica Neue"`` ).
     fontSize : anyOf(float, :class:`ExprRef`)
+        The font size, in pixels.
 
+        **Default value:** ``11``
     fontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style (e.g., ``"italic"`` ).
     fontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight. This can be either a string (e.g ``"bold"``, ``"normal"`` ) or a
+        number ( ``100``, ``200``, ``300``, ..., ``900`` where ``"normal"`` = ``400`` and
+        ``"bold"`` = ``700`` ).
     height : anyOf(float, :class:`ExprRef`)
-
+        Height of the marks.
     href : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        A URL to load upon mouse click. If defined, the mark acts as a hyperlink.
     innerRadius : anyOf(float, :class:`ExprRef`)
         The inner radius in pixels of arc marks. ``innerRadius`` is an alias for
         ``radius2``.
 
         **Default value:** ``0``
     interpolate : anyOf(:class:`Interpolate`, :class:`ExprRef`)
+        The line interpolation method to use for line and area marks. One of the following:
+
 
+        * ``"linear"`` : piecewise linear segments, as in a polyline.
+        * ``"linear-closed"`` : close the linear segments to form a polygon.
+        * ``"step"`` : alternate between horizontal and vertical segments, as in a step
+          function.
+        * ``"step-before"`` : alternate between vertical and horizontal segments, as in a
+          step function.
+        * ``"step-after"`` : alternate between horizontal and vertical segments, as in a
+          step function.
+        * ``"basis"`` : a B-spline, with control point duplication on the ends.
+        * ``"basis-open"`` : an open B-spline; may not intersect the start or end.
+        * ``"basis-closed"`` : a closed B-spline, as in a loop.
+        * ``"cardinal"`` : a Cardinal spline, with control point duplication on the ends.
+        * ``"cardinal-open"`` : an open Cardinal spline; may not intersect the start or end,
+          but will intersect other control points.
+        * ``"cardinal-closed"`` : a closed Cardinal spline, as in a loop.
+        * ``"bundle"`` : equivalent to basis, except the tension parameter is used to
+          straighten the spline.
+        * ``"monotone"`` : cubic interpolation that preserves monotonicity in y.
     invalid : enum('filter', None)
         Defines how Vega-Lite should handle marks for invalid values ( ``null`` and ``NaN``
         ).
@@ -7977,11 +8684,16 @@ class MarkConfig(AnyMarkConfig):
         * If ``null``, all data items are included. In this case, invalid values will be
           interpreted as zeroes.
     limit : anyOf(float, :class:`ExprRef`)
+        The maximum length of the text mark in pixels. The text value will be automatically
+        truncated if the rendered size exceeds the limit.
 
+        **Default value:** ``0`` -- indicating no limit
     lineBreak : anyOf(string, :class:`ExprRef`)
-
+        A delimiter, such as a newline character, upon which to break text strings into
+        multiple lines. This property is ignored if the text is array-valued.
     lineHeight : anyOf(float, :class:`ExprRef`)
-
+        The line height in pixels (the spacing between subsequent lines of text) for
+        multi-line text marks.
     opacity : anyOf(float, :class:`ExprRef`)
         The overall opacity (value between [0,1]).
 
@@ -8007,7 +8719,7 @@ class MarkConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     padAngle : anyOf(float, :class:`ExprRef`)
-
+        The angular padding applied to sides of the arc, in radians.
     radius : anyOf(float, :class:`ExprRef`)
         For arc mark, the primary (outer) radius in pixels.
 
@@ -8020,7 +8732,20 @@ class MarkConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     shape : anyOf(anyOf(:class:`SymbolShape`, string), :class:`ExprRef`)
+        Shape of the point marks. Supported values include:
 
+
+        * plotting shapes: ``"circle"``, ``"square"``, ``"cross"``, ``"diamond"``,
+          ``"triangle-up"``, ``"triangle-down"``, ``"triangle-right"``, or
+          ``"triangle-left"``.
+        * the line symbol ``"stroke"``
+        * centered directional shapes ``"arrow"``, ``"wedge"``, or ``"triangle"``
+        * a custom `SVG path string
+          <https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths>`__ (For correct
+          sizing, custom shape paths should be defined within a square bounding box with
+          coordinates ranging from -1 to 1 along both the x and y dimensions.)
+
+        **Default value:** ``"circle"``
     size : anyOf(float, :class:`ExprRef`)
         Default size for marks.
 
@@ -8039,34 +8764,48 @@ class MarkConfig(AnyMarkConfig):
         * ``5`` for bar marks with continuous dimensions;
         * ``11`` for text marks.
     smooth : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag (default true) indicating if the image should be smoothed when
+        resized. If false, individual pixels should be scaled directly rather than
+        interpolated with smoothing. For SVG rendering, this option may not work in some
+        browsers due to lack of standardization.
     startAngle : anyOf(float, :class:`ExprRef`)
-
+        The start angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     stroke : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default stroke color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove stroke.
 
         **Default value:** (None)
     strokeCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for line ending style. One of ``"butt"``, ``"round"``, or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     strokeDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating stroke, space lengths for creating dashed or dotted lines.
     strokeDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset (in pixels) into which to begin drawing with the stroke dash array.
     strokeJoin : anyOf(:class:`StrokeJoin`, :class:`ExprRef`)
+        The stroke line join method. One of ``"miter"``, ``"round"`` or ``"bevel"``.
 
+        **Default value:** ``"miter"``
     strokeMiterLimit : anyOf(float, :class:`ExprRef`)
-
+        The miter limit at which to bevel a line join.
     strokeOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset in pixels at which to draw the group stroke and fill. If unspecified, the
+        default behavior is to dynamically offset stroked groups such that 1 pixel stroke
+        widths align with the pixel grid.
     strokeOpacity : anyOf(float, :class:`ExprRef`)
+        The stroke opacity (value between [0,1]).
 
+        **Default value:** ``1``
     strokeWidth : anyOf(float, :class:`ExprRef`)
-
+        The stroke width, in pixels.
     tension : anyOf(float, :class:`ExprRef`)
-
+        Depending on the interpolation type, sets the tension parameter (for line and area
+        marks).
     text : anyOf(:class:`Text`, :class:`ExprRef`)
-
+        Placeholder text if the ``text`` channel is not specified
     theta : anyOf(float, :class:`ExprRef`)
         For arc marks, the arc length in radians if theta2 is not specified, otherwise the
         start arc angle. (A value of 0 indicates up or “north”, increasing values proceed
@@ -8100,9 +8839,9 @@ class MarkConfig(AnyMarkConfig):
 
         **Default value:** ``null``
     url : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        The URL of the image file for image marks.
     width : anyOf(float, :class:`ExprRef`)
-
+        Width of the marks.
     x : anyOf(float, string, :class:`ExprRef`)
         X coordinates of the marks, or width of horizontal ``"bar"`` and ``"area"`` without
         specified ``x2`` or ``width``.
@@ -8194,15 +8933,25 @@ class MarkDef(AnyMark):
 
         **Note:** Expression reference is *not* supported for range marks.
     angle : anyOf(float, :class:`ExprRef`)
-
+        The rotation angle of the text, in degrees.
     aria : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG element, removing the mark item from the ARIA accessibility tree.
     ariaRole : anyOf(string, :class:`ExprRef`)
-
+        Sets the type of user interface element of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "role" attribute. Warning: this
+        property is experimental and may be changed in the future.
     ariaRoleDescription : anyOf(string, :class:`ExprRef`)
-
+        A human-readable, author-localized description for the role of the mark item for
+        `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "aria-roledescription" attribute.
+        Warning: this property is experimental and may be changed in the future.
     aspect : anyOf(boolean, :class:`ExprRef`)
-
+        Whether to keep aspect ratio of image marks.
     bandSize : float
         The width of the ticks.
 
@@ -8225,7 +8974,11 @@ class MarkDef(AnyMark):
 
         **Default value:** ``1``
     blend : anyOf(:class:`Blend`, :class:`ExprRef`)
+        The color blend mode for drawing an item on its current background. Any valid `CSS
+        mix-blend-mode <https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode>`__
+        value can be used.
 
+        __Default value:__ ``"source-over"``
     clip : boolean
         Whether a mark be clipped to the enclosing group’s width and height.
     color : anyOf(:class:`Color`, :class:`Gradient`, :class:`ExprRef`)
@@ -8246,41 +8999,65 @@ class MarkDef(AnyMark):
 
         **Default value:** ``5``
     cornerRadius : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles or arcs' corners.
 
+        **Default value:** ``0``
     cornerRadiusBottomLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom left corner.
 
+        **Default value:** ``0``
     cornerRadiusBottomRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom right corner.
 
+        **Default value:** ``0``
     cornerRadiusEnd : anyOf(float, :class:`ExprRef`)
         For vertical bars, top-left and top-right corner radius.
 
         For horizontal bars, top-right and bottom-right corner radius.
     cornerRadiusTopLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top left corner.
 
+        **Default value:** ``0``
     cursor : anyOf(:class:`Cursor`, :class:`ExprRef`)
-
+        The mouse cursor used over the mark. Any valid `CSS cursor type
+        <https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values>`__ can be used.
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__.
     dir : anyOf(:class:`TextDirection`, :class:`ExprRef`)
+        The direction of the text. One of ``"ltr"`` (left-to-right) or ``"rtl"``
+        (right-to-left). This property determines on which side is truncated in response to
+        the limit parameter.
 
+        **Default value:** ``"ltr"``
     discreteBandSize : anyOf(float, :class:`RelativeBandSize`)
         The default size of the bars with discrete dimensions. If unspecified, the default
         size is  ``step-2``, which provides 2 pixel offset between bars.
     dx : anyOf(float, :class:`ExprRef`)
-
+        The horizontal offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     dy : anyOf(float, :class:`ExprRef`)
-
+        The vertical offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     ellipsis : anyOf(string, :class:`ExprRef`)
+        The ellipsis string for text truncated in response to the limit parameter.
 
+        **Default value:** ``"…"``
     fill : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default fill color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove fill.
 
         **Default value:** (None)
     fillOpacity : anyOf(float, :class:`ExprRef`)
+        The fill opacity (value between [0,1]).
 
+        **Default value:** ``1``
     filled : boolean
         Whether the mark's color should be used as fill color instead of stroke color.
 
@@ -8292,13 +9069,17 @@ class MarkDef(AnyMark):
         **Note:** This property cannot be used in a `style config
         <https://vega.github.io/vega-lite/docs/mark.html#style-config>`__.
     font : anyOf(string, :class:`ExprRef`)
-
+        The typeface to set the text in (e.g., ``"Helvetica Neue"`` ).
     fontSize : anyOf(float, :class:`ExprRef`)
+        The font size, in pixels.
 
+        **Default value:** ``11``
     fontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style (e.g., ``"italic"`` ).
     fontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight. This can be either a string (e.g ``"bold"``, ``"normal"`` ) or a
+        number ( ``100``, ``200``, ``300``, ..., ``900`` where ``"normal"`` = ``400`` and
+        ``"bold"`` = ``700`` ).
     height : anyOf(float, :class:`ExprRef`, :class:`RelativeBandSize`)
         Height of the marks.  One of:
 
@@ -8308,14 +9089,34 @@ class MarkDef(AnyMark):
         A relative band size definition.  For example, ``{band: 0.5}`` represents half of
         the band
     href : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        A URL to load upon mouse click. If defined, the mark acts as a hyperlink.
     innerRadius : anyOf(float, :class:`ExprRef`)
         The inner radius in pixels of arc marks. ``innerRadius`` is an alias for
         ``radius2``.
 
         **Default value:** ``0``
     interpolate : anyOf(:class:`Interpolate`, :class:`ExprRef`)
+        The line interpolation method to use for line and area marks. One of the following:
 
+
+        * ``"linear"`` : piecewise linear segments, as in a polyline.
+        * ``"linear-closed"`` : close the linear segments to form a polygon.
+        * ``"step"`` : alternate between horizontal and vertical segments, as in a step
+          function.
+        * ``"step-before"`` : alternate between vertical and horizontal segments, as in a
+          step function.
+        * ``"step-after"`` : alternate between horizontal and vertical segments, as in a
+          step function.
+        * ``"basis"`` : a B-spline, with control point duplication on the ends.
+        * ``"basis-open"`` : an open B-spline; may not intersect the start or end.
+        * ``"basis-closed"`` : a closed B-spline, as in a loop.
+        * ``"cardinal"`` : a Cardinal spline, with control point duplication on the ends.
+        * ``"cardinal-open"`` : an open Cardinal spline; may not intersect the start or end,
+          but will intersect other control points.
+        * ``"cardinal-closed"`` : a closed Cardinal spline, as in a loop.
+        * ``"bundle"`` : equivalent to basis, except the tension parameter is used to
+          straighten the spline.
+        * ``"monotone"`` : cubic interpolation that preserves monotonicity in y.
     invalid : enum('filter', None)
         Defines how Vega-Lite should handle marks for invalid values ( ``null`` and ``NaN``
         ).
@@ -8326,7 +9127,10 @@ class MarkDef(AnyMark):
         * If ``null``, all data items are included. In this case, invalid values will be
           interpreted as zeroes.
     limit : anyOf(float, :class:`ExprRef`)
+        The maximum length of the text mark in pixels. The text value will be automatically
+        truncated if the rendered size exceeds the limit.
 
+        **Default value:** ``0`` -- indicating no limit
     line : anyOf(boolean, :class:`OverlayMarkDef`)
         A flag for overlaying line on top of area marks, or an object defining the
         properties of the overlayed lines.
@@ -8339,9 +9143,11 @@ class MarkDef(AnyMark):
 
         **Default value:** ``false``.
     lineBreak : anyOf(string, :class:`ExprRef`)
-
+        A delimiter, such as a newline character, upon which to break text strings into
+        multiple lines. This property is ignored if the text is array-valued.
     lineHeight : anyOf(float, :class:`ExprRef`)
-
+        The line height in pixels (the spacing between subsequent lines of text) for
+        multi-line text marks.
     opacity : anyOf(float, :class:`ExprRef`)
         The overall opacity (value between [0,1]).
 
@@ -8367,7 +9173,7 @@ class MarkDef(AnyMark):
 
         **Default value:** ``0``
     padAngle : anyOf(float, :class:`ExprRef`)
-
+        The angular padding applied to sides of the arc, in radians.
     point : anyOf(boolean, :class:`OverlayMarkDef`, string)
         A flag for overlaying points on top of line or area marks, or an object defining the
         properties of the overlayed points.
@@ -8399,7 +9205,20 @@ class MarkDef(AnyMark):
     radiusOffset : anyOf(float, :class:`ExprRef`)
         Offset for radius.
     shape : anyOf(anyOf(:class:`SymbolShape`, string), :class:`ExprRef`)
+        Shape of the point marks. Supported values include:
+
 
+        * plotting shapes: ``"circle"``, ``"square"``, ``"cross"``, ``"diamond"``,
+          ``"triangle-up"``, ``"triangle-down"``, ``"triangle-right"``, or
+          ``"triangle-left"``.
+        * the line symbol ``"stroke"``
+        * centered directional shapes ``"arrow"``, ``"wedge"``, or ``"triangle"``
+        * a custom `SVG path string
+          <https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths>`__ (For correct
+          sizing, custom shape paths should be defined within a square bounding box with
+          coordinates ranging from -1 to 1 along both the x and y dimensions.)
+
+        **Default value:** ``"circle"``
     size : anyOf(float, :class:`ExprRef`)
         Default size for marks.
 
@@ -8418,28 +9237,40 @@ class MarkDef(AnyMark):
         * ``5`` for bar marks with continuous dimensions;
         * ``11`` for text marks.
     smooth : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag (default true) indicating if the image should be smoothed when
+        resized. If false, individual pixels should be scaled directly rather than
+        interpolated with smoothing. For SVG rendering, this option may not work in some
+        browsers due to lack of standardization.
     stroke : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default stroke color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove stroke.
 
         **Default value:** (None)
     strokeCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for line ending style. One of ``"butt"``, ``"round"``, or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     strokeDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating stroke, space lengths for creating dashed or dotted lines.
     strokeDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset (in pixels) into which to begin drawing with the stroke dash array.
     strokeJoin : anyOf(:class:`StrokeJoin`, :class:`ExprRef`)
+        The stroke line join method. One of ``"miter"``, ``"round"`` or ``"bevel"``.
 
+        **Default value:** ``"miter"``
     strokeMiterLimit : anyOf(float, :class:`ExprRef`)
-
+        The miter limit at which to bevel a line join.
     strokeOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset in pixels at which to draw the group stroke and fill. If unspecified, the
+        default behavior is to dynamically offset stroked groups such that 1 pixel stroke
+        widths align with the pixel grid.
     strokeOpacity : anyOf(float, :class:`ExprRef`)
+        The stroke opacity (value between [0,1]).
 
+        **Default value:** ``1``
     strokeWidth : anyOf(float, :class:`ExprRef`)
-
+        The stroke width, in pixels.
     style : anyOf(string, List(string))
         A string or array of strings indicating the name of custom styles to apply to the
         mark. A style is a named collection of mark property defaults defined within the
@@ -8455,9 +9286,10 @@ class MarkDef(AnyMark):
         ``config.style.bar`` and ``config.style.foo`` (the specified style ``"foo"`` has
         higher precedence).
     tension : anyOf(float, :class:`ExprRef`)
-
+        Depending on the interpolation type, sets the tension parameter (for line and area
+        marks).
     text : anyOf(:class:`Text`, :class:`ExprRef`)
-
+        Placeholder text if the ``text`` channel is not specified
     theta : anyOf(float, :class:`ExprRef`)
         For arc marks, the arc length in radians if theta2 is not specified, otherwise the
         start arc angle. (A value of 0 indicates up or “north”, increasing values proceed
@@ -8499,7 +9331,7 @@ class MarkDef(AnyMark):
 
         **Default value:** ``null``
     url : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        The URL of the image file for image marks.
     width : anyOf(float, :class:`ExprRef`, :class:`RelativeBandSize`)
         Width of the marks.  One of:
 
@@ -8616,8 +9448,6 @@ class FieldOrDatumDefWithConditionDatumDefGradientstringnull(ColorDef, MarkPropD
     """FieldOrDatumDefWithConditionDatumDefGradientstringnull schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -8740,8 +9570,6 @@ class FieldOrDatumDefWithConditionMarkPropFieldDefGradientstringnull(ColorDef, M
     """FieldOrDatumDefWithConditionMarkPropFieldDefGradientstringnull schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -9140,8 +9968,6 @@ class FieldOrDatumDefWithConditionDatumDefnumberArray(MarkPropDefnumberArray, Nu
     """FieldOrDatumDefWithConditionDatumDefnumberArray schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -9263,8 +10089,6 @@ class FieldOrDatumDefWithConditionMarkPropFieldDefnumberArray(MarkPropDefnumberA
     """FieldOrDatumDefWithConditionMarkPropFieldDefnumberArray schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -9519,8 +10343,6 @@ class FieldOrDatumDefWithConditionDatumDefnumber(MarkPropDefnumber, NumericMarkP
     """FieldOrDatumDefWithConditionDatumDefnumber schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -9642,8 +10464,6 @@ class FieldOrDatumDefWithConditionMarkPropFieldDefnumber(MarkPropDefnumber, Nume
     """FieldOrDatumDefWithConditionMarkPropFieldDefnumber schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -10119,15 +10939,25 @@ class OverlayMarkDef(VegaLiteSchema):
 
         **Note:** Expression reference is *not* supported for range marks.
     angle : anyOf(float, :class:`ExprRef`)
-
+        The rotation angle of the text, in degrees.
     aria : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG element, removing the mark item from the ARIA accessibility tree.
     ariaRole : anyOf(string, :class:`ExprRef`)
-
+        Sets the type of user interface element of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "role" attribute. Warning: this
+        property is experimental and may be changed in the future.
     ariaRoleDescription : anyOf(string, :class:`ExprRef`)
-
+        A human-readable, author-localized description for the role of the mark item for
+        `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "aria-roledescription" attribute.
+        Warning: this property is experimental and may be changed in the future.
     aspect : anyOf(boolean, :class:`ExprRef`)
-
+        Whether to keep aspect ratio of image marks.
     baseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
         For text marks, the vertical text baseline. One of ``"alphabetic"`` (default),
         ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, ``"line-bottom"``, or an
@@ -10140,7 +10970,11 @@ class OverlayMarkDef(VegaLiteSchema):
 
         **Note:** Expression reference is *not* supported for range marks.
     blend : anyOf(:class:`Blend`, :class:`ExprRef`)
+        The color blend mode for drawing an item on its current background. Any valid `CSS
+        mix-blend-mode <https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode>`__
+        value can be used.
 
+        __Default value:__ ``"source-over"``
     clip : boolean
         Whether a mark be clipped to the enclosing group’s width and height.
     color : anyOf(:class:`Color`, :class:`Gradient`, :class:`ExprRef`)
@@ -10157,36 +10991,61 @@ class OverlayMarkDef(VegaLiteSchema):
         * The ``fill`` and ``stroke`` properties have higher precedence than ``color`` and
           will override ``color``.
     cornerRadius : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles or arcs' corners.
 
+        **Default value:** ``0``
     cornerRadiusBottomLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom left corner.
 
+        **Default value:** ``0``
     cornerRadiusBottomRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top left corner.
 
+        **Default value:** ``0``
     cursor : anyOf(:class:`Cursor`, :class:`ExprRef`)
-
+        The mouse cursor used over the mark. Any valid `CSS cursor type
+        <https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values>`__ can be used.
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__.
     dir : anyOf(:class:`TextDirection`, :class:`ExprRef`)
+        The direction of the text. One of ``"ltr"`` (left-to-right) or ``"rtl"``
+        (right-to-left). This property determines on which side is truncated in response to
+        the limit parameter.
 
+        **Default value:** ``"ltr"``
     dx : anyOf(float, :class:`ExprRef`)
-
+        The horizontal offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     dy : anyOf(float, :class:`ExprRef`)
-
+        The vertical offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     ellipsis : anyOf(string, :class:`ExprRef`)
+        The ellipsis string for text truncated in response to the limit parameter.
 
+        **Default value:** ``"…"``
     endAngle : anyOf(float, :class:`ExprRef`)
-
+        The end angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     fill : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default fill color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove fill.
 
         **Default value:** (None)
     fillOpacity : anyOf(float, :class:`ExprRef`)
+        The fill opacity (value between [0,1]).
 
+        **Default value:** ``1``
     filled : boolean
         Whether the mark's color should be used as fill color instead of stroke color.
 
@@ -10198,24 +11057,48 @@ class OverlayMarkDef(VegaLiteSchema):
         **Note:** This property cannot be used in a `style config
         <https://vega.github.io/vega-lite/docs/mark.html#style-config>`__.
     font : anyOf(string, :class:`ExprRef`)
-
+        The typeface to set the text in (e.g., ``"Helvetica Neue"`` ).
     fontSize : anyOf(float, :class:`ExprRef`)
+        The font size, in pixels.
 
+        **Default value:** ``11``
     fontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style (e.g., ``"italic"`` ).
     fontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight. This can be either a string (e.g ``"bold"``, ``"normal"`` ) or a
+        number ( ``100``, ``200``, ``300``, ..., ``900`` where ``"normal"`` = ``400`` and
+        ``"bold"`` = ``700`` ).
     height : anyOf(float, :class:`ExprRef`)
-
+        Height of the marks.
     href : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        A URL to load upon mouse click. If defined, the mark acts as a hyperlink.
     innerRadius : anyOf(float, :class:`ExprRef`)
         The inner radius in pixels of arc marks. ``innerRadius`` is an alias for
         ``radius2``.
 
         **Default value:** ``0``
     interpolate : anyOf(:class:`Interpolate`, :class:`ExprRef`)
+        The line interpolation method to use for line and area marks. One of the following:
+
 
+        * ``"linear"`` : piecewise linear segments, as in a polyline.
+        * ``"linear-closed"`` : close the linear segments to form a polygon.
+        * ``"step"`` : alternate between horizontal and vertical segments, as in a step
+          function.
+        * ``"step-before"`` : alternate between vertical and horizontal segments, as in a
+          step function.
+        * ``"step-after"`` : alternate between horizontal and vertical segments, as in a
+          step function.
+        * ``"basis"`` : a B-spline, with control point duplication on the ends.
+        * ``"basis-open"`` : an open B-spline; may not intersect the start or end.
+        * ``"basis-closed"`` : a closed B-spline, as in a loop.
+        * ``"cardinal"`` : a Cardinal spline, with control point duplication on the ends.
+        * ``"cardinal-open"`` : an open Cardinal spline; may not intersect the start or end,
+          but will intersect other control points.
+        * ``"cardinal-closed"`` : a closed Cardinal spline, as in a loop.
+        * ``"bundle"`` : equivalent to basis, except the tension parameter is used to
+          straighten the spline.
+        * ``"monotone"`` : cubic interpolation that preserves monotonicity in y.
     invalid : enum('filter', None)
         Defines how Vega-Lite should handle marks for invalid values ( ``null`` and ``NaN``
         ).
@@ -10226,11 +11109,16 @@ class OverlayMarkDef(VegaLiteSchema):
         * If ``null``, all data items are included. In this case, invalid values will be
           interpreted as zeroes.
     limit : anyOf(float, :class:`ExprRef`)
+        The maximum length of the text mark in pixels. The text value will be automatically
+        truncated if the rendered size exceeds the limit.
 
+        **Default value:** ``0`` -- indicating no limit
     lineBreak : anyOf(string, :class:`ExprRef`)
-
+        A delimiter, such as a newline character, upon which to break text strings into
+        multiple lines. This property is ignored if the text is array-valued.
     lineHeight : anyOf(float, :class:`ExprRef`)
-
+        The line height in pixels (the spacing between subsequent lines of text) for
+        multi-line text marks.
     opacity : anyOf(float, :class:`ExprRef`)
         The overall opacity (value between [0,1]).
 
@@ -10256,7 +11144,7 @@ class OverlayMarkDef(VegaLiteSchema):
 
         **Default value:** ``0``
     padAngle : anyOf(float, :class:`ExprRef`)
-
+        The angular padding applied to sides of the arc, in radians.
     radius : anyOf(float, :class:`ExprRef`)
         For arc mark, the primary (outer) radius in pixels.
 
@@ -10273,7 +11161,20 @@ class OverlayMarkDef(VegaLiteSchema):
     radiusOffset : anyOf(float, :class:`ExprRef`)
         Offset for radius.
     shape : anyOf(anyOf(:class:`SymbolShape`, string), :class:`ExprRef`)
+        Shape of the point marks. Supported values include:
 
+
+        * plotting shapes: ``"circle"``, ``"square"``, ``"cross"``, ``"diamond"``,
+          ``"triangle-up"``, ``"triangle-down"``, ``"triangle-right"``, or
+          ``"triangle-left"``.
+        * the line symbol ``"stroke"``
+        * centered directional shapes ``"arrow"``, ``"wedge"``, or ``"triangle"``
+        * a custom `SVG path string
+          <https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths>`__ (For correct
+          sizing, custom shape paths should be defined within a square bounding box with
+          coordinates ranging from -1 to 1 along both the x and y dimensions.)
+
+        **Default value:** ``"circle"``
     size : anyOf(float, :class:`ExprRef`)
         Default size for marks.
 
@@ -10292,30 +11193,43 @@ class OverlayMarkDef(VegaLiteSchema):
         * ``5`` for bar marks with continuous dimensions;
         * ``11`` for text marks.
     smooth : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag (default true) indicating if the image should be smoothed when
+        resized. If false, individual pixels should be scaled directly rather than
+        interpolated with smoothing. For SVG rendering, this option may not work in some
+        browsers due to lack of standardization.
     startAngle : anyOf(float, :class:`ExprRef`)
-
+        The start angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     stroke : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default stroke color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove stroke.
 
         **Default value:** (None)
     strokeCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for line ending style. One of ``"butt"``, ``"round"``, or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     strokeDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating stroke, space lengths for creating dashed or dotted lines.
     strokeDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset (in pixels) into which to begin drawing with the stroke dash array.
     strokeJoin : anyOf(:class:`StrokeJoin`, :class:`ExprRef`)
+        The stroke line join method. One of ``"miter"``, ``"round"`` or ``"bevel"``.
 
+        **Default value:** ``"miter"``
     strokeMiterLimit : anyOf(float, :class:`ExprRef`)
-
+        The miter limit at which to bevel a line join.
     strokeOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset in pixels at which to draw the group stroke and fill. If unspecified, the
+        default behavior is to dynamically offset stroked groups such that 1 pixel stroke
+        widths align with the pixel grid.
     strokeOpacity : anyOf(float, :class:`ExprRef`)
+        The stroke opacity (value between [0,1]).
 
+        **Default value:** ``1``
     strokeWidth : anyOf(float, :class:`ExprRef`)
-
+        The stroke width, in pixels.
     style : anyOf(string, List(string))
         A string or array of strings indicating the name of custom styles to apply to the
         mark. A style is a named collection of mark property defaults defined within the
@@ -10331,9 +11245,10 @@ class OverlayMarkDef(VegaLiteSchema):
         ``config.style.bar`` and ``config.style.foo`` (the specified style ``"foo"`` has
         higher precedence).
     tension : anyOf(float, :class:`ExprRef`)
-
+        Depending on the interpolation type, sets the tension parameter (for line and area
+        marks).
     text : anyOf(:class:`Text`, :class:`ExprRef`)
-
+        Placeholder text if the ``text`` channel is not specified
     theta : anyOf(float, :class:`ExprRef`)
         For arc marks, the arc length in radians if theta2 is not specified, otherwise the
         start arc angle. (A value of 0 indicates up or “north”, increasing values proceed
@@ -10371,9 +11286,9 @@ class OverlayMarkDef(VegaLiteSchema):
 
         **Default value:** ``null``
     url : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        The URL of the image file for image marks.
     width : anyOf(float, :class:`ExprRef`)
-
+        Width of the marks.
     x : anyOf(float, string, :class:`ExprRef`)
         X coordinates of the marks, or width of horizontal ``"bar"`` and ``"area"`` without
         specified ``x2`` or ``width``.
@@ -12016,52 +12931,96 @@ class Projection(VegaLiteSchema):
     ----------
 
     center : anyOf(:class:`Vector2number`, :class:`ExprRef`)
+        The projection's center, a two-element array of longitude and latitude in degrees.
 
+        **Default value:** ``[0, 0]``
     clipAngle : anyOf(float, :class:`ExprRef`)
-
+        The projection's clipping circle radius to the specified angle in degrees. If
+        ``null``, switches to `antimeridian <http://bl.ocks.org/mbostock/3788999>`__ cutting
+        rather than small-circle clipping.
     clipExtent : anyOf(:class:`Vector2Vector2number`, :class:`ExprRef`)
-
+        The projection's viewport clip extent to the specified bounds in pixels. The extent
+        bounds are specified as an array ``[[x0, y0], [x1, y1]]``, where ``x0`` is the
+        left-side of the viewport, ``y0`` is the top, ``x1`` is the right and ``y1`` is the
+        bottom. If ``null``, no viewport clipping is performed.
     coefficient : anyOf(float, :class:`ExprRef`)
+        The coefficient parameter for the ``hammer`` projection.
 
+        **Default value:** ``2``
     distance : anyOf(float, :class:`ExprRef`)
+        For the ``satellite`` projection, the distance from the center of the sphere to the
+        point of view, as a proportion of the sphere’s radius. The recommended maximum clip
+        angle for a given ``distance`` is acos(1 / distance) converted to degrees. If tilt
+        is also applied, then more conservative clipping may be necessary.
 
+        **Default value:** ``2.0``
     extent : anyOf(:class:`Vector2Vector2number`, :class:`ExprRef`)
 
     fit : anyOf(List(:class:`GeoJsonFeature`), List(:class:`Fit`), :class:`ExprRef`)
 
     fraction : anyOf(float, :class:`ExprRef`)
+        The fraction parameter for the ``bottomley`` projection.
 
+        **Default value:** ``0.5``, corresponding to a sin(ψ) where ψ = π/6.
     lobes : anyOf(float, :class:`ExprRef`)
-
+        The number of lobes in projections that support multi-lobe views: ``berghaus``,
+        ``gingery``, or ``healpix``. The default value varies based on the projection type.
     parallel : anyOf(float, :class:`ExprRef`)
-
+        The parallel parameter for projections that support it: ``armadillo``, ``bonne``,
+        ``craig``, ``cylindricalEqualArea``, ``cylindricalStereographic``,
+        ``hammerRetroazimuthal``, ``loximuthal``, or ``rectangularPolyconic``. The default
+        value varies based on the projection type.
     parallels : anyOf(List(float), :class:`ExprRef`)
-
+        For conic projections, the `two standard parallels
+        <https://en.wikipedia.org/wiki/Map_projection#Conic>`__ that define the map layout.
+        The default depends on the specific conic projection used.
     pointRadius : anyOf(float, :class:`ExprRef`)
+        The default radius (in pixels) to use when drawing GeoJSON ``Point`` and
+        ``MultiPoint`` geometries. This parameter sets a constant default value. To modify
+        the point radius in response to data, see the corresponding parameter of the GeoPath
+        and GeoShape transforms.
 
+        **Default value:** ``4.5``
     precision : anyOf(float, :class:`ExprRef`)
-
+        The threshold for the projection's `adaptive resampling
+        <http://bl.ocks.org/mbostock/3795544>`__ to the specified value in pixels. This
+        value corresponds to the `Douglas–Peucker distance
+        <http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm>`__.
+        If precision is not specified, returns the projection's current resampling precision
+        which defaults to ``√0.5 ≅ 0.70710…``.
     radius : anyOf(float, :class:`ExprRef`)
-
+        The radius parameter for the ``airy`` or ``gingery`` projection. The default value
+        varies based on the projection type.
     ratio : anyOf(float, :class:`ExprRef`)
-
+        The ratio parameter for the ``hill``, ``hufnagel``, or ``wagner`` projections. The
+        default value varies based on the projection type.
     reflectX : anyOf(boolean, :class:`ExprRef`)
-
+        Sets whether or not the x-dimension is reflected (negated) in the output.
     reflectY : anyOf(boolean, :class:`ExprRef`)
-
+        Sets whether or not the y-dimension is reflected (negated) in the output.
     rotate : anyOf(anyOf(:class:`Vector2number`, :class:`Vector3number`), :class:`ExprRef`)
+        The projection's three-axis rotation to the specified angles, which must be a two-
+        or three-element array of numbers [ ``lambda``, ``phi``, ``gamma`` ] specifying the
+        rotation angles in degrees about each spherical axis. (These correspond to yaw,
+        pitch and roll.)
 
+        **Default value:** ``[0, 0, 0]``
     scale : anyOf(float, :class:`ExprRef`)
         The projection’s scale (zoom) factor, overriding automatic fitting. The default
         scale is projection-specific. The scale factor corresponds linearly to the distance
         between projected points; however, scale factor values are not equivalent across
         projections.
     size : anyOf(:class:`Vector2number`, :class:`ExprRef`)
-
+        Used in conjunction with fit, provides the width and height in pixels of the area to
+        which the projection should be automatically fit.
     spacing : anyOf(float, :class:`ExprRef`)
+        The spacing parameter for the ``lagrange`` projection.
 
+        **Default value:** ``0.5``
     tilt : anyOf(float, :class:`ExprRef`)
+        The tilt angle (in degrees) for the ``satellite`` projection.
 
+        **Default value:** ``0``.
     translate : anyOf(:class:`Vector2number`, :class:`ExprRef`)
         The projection’s translation offset as a two-element array ``[tx, ty]``.
     type : anyOf(:class:`ProjectionType`, :class:`ExprRef`)
@@ -12100,52 +13059,96 @@ class ProjectionConfig(VegaLiteSchema):
     ----------
 
     center : anyOf(:class:`Vector2number`, :class:`ExprRef`)
+        The projection's center, a two-element array of longitude and latitude in degrees.
 
+        **Default value:** ``[0, 0]``
     clipAngle : anyOf(float, :class:`ExprRef`)
-
+        The projection's clipping circle radius to the specified angle in degrees. If
+        ``null``, switches to `antimeridian <http://bl.ocks.org/mbostock/3788999>`__ cutting
+        rather than small-circle clipping.
     clipExtent : anyOf(:class:`Vector2Vector2number`, :class:`ExprRef`)
-
+        The projection's viewport clip extent to the specified bounds in pixels. The extent
+        bounds are specified as an array ``[[x0, y0], [x1, y1]]``, where ``x0`` is the
+        left-side of the viewport, ``y0`` is the top, ``x1`` is the right and ``y1`` is the
+        bottom. If ``null``, no viewport clipping is performed.
     coefficient : anyOf(float, :class:`ExprRef`)
+        The coefficient parameter for the ``hammer`` projection.
 
+        **Default value:** ``2``
     distance : anyOf(float, :class:`ExprRef`)
+        For the ``satellite`` projection, the distance from the center of the sphere to the
+        point of view, as a proportion of the sphere’s radius. The recommended maximum clip
+        angle for a given ``distance`` is acos(1 / distance) converted to degrees. If tilt
+        is also applied, then more conservative clipping may be necessary.
 
+        **Default value:** ``2.0``
     extent : anyOf(:class:`Vector2Vector2number`, :class:`ExprRef`)
 
     fit : anyOf(List(:class:`GeoJsonFeature`), List(:class:`Fit`), :class:`ExprRef`)
 
     fraction : anyOf(float, :class:`ExprRef`)
+        The fraction parameter for the ``bottomley`` projection.
 
+        **Default value:** ``0.5``, corresponding to a sin(ψ) where ψ = π/6.
     lobes : anyOf(float, :class:`ExprRef`)
-
+        The number of lobes in projections that support multi-lobe views: ``berghaus``,
+        ``gingery``, or ``healpix``. The default value varies based on the projection type.
     parallel : anyOf(float, :class:`ExprRef`)
-
+        The parallel parameter for projections that support it: ``armadillo``, ``bonne``,
+        ``craig``, ``cylindricalEqualArea``, ``cylindricalStereographic``,
+        ``hammerRetroazimuthal``, ``loximuthal``, or ``rectangularPolyconic``. The default
+        value varies based on the projection type.
     parallels : anyOf(List(float), :class:`ExprRef`)
-
+        For conic projections, the `two standard parallels
+        <https://en.wikipedia.org/wiki/Map_projection#Conic>`__ that define the map layout.
+        The default depends on the specific conic projection used.
     pointRadius : anyOf(float, :class:`ExprRef`)
+        The default radius (in pixels) to use when drawing GeoJSON ``Point`` and
+        ``MultiPoint`` geometries. This parameter sets a constant default value. To modify
+        the point radius in response to data, see the corresponding parameter of the GeoPath
+        and GeoShape transforms.
 
+        **Default value:** ``4.5``
     precision : anyOf(float, :class:`ExprRef`)
-
+        The threshold for the projection's `adaptive resampling
+        <http://bl.ocks.org/mbostock/3795544>`__ to the specified value in pixels. This
+        value corresponds to the `Douglas–Peucker distance
+        <http://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm>`__.
+        If precision is not specified, returns the projection's current resampling precision
+        which defaults to ``√0.5 ≅ 0.70710…``.
     radius : anyOf(float, :class:`ExprRef`)
-
+        The radius parameter for the ``airy`` or ``gingery`` projection. The default value
+        varies based on the projection type.
     ratio : anyOf(float, :class:`ExprRef`)
-
+        The ratio parameter for the ``hill``, ``hufnagel``, or ``wagner`` projections. The
+        default value varies based on the projection type.
     reflectX : anyOf(boolean, :class:`ExprRef`)
-
+        Sets whether or not the x-dimension is reflected (negated) in the output.
     reflectY : anyOf(boolean, :class:`ExprRef`)
-
+        Sets whether or not the y-dimension is reflected (negated) in the output.
     rotate : anyOf(anyOf(:class:`Vector2number`, :class:`Vector3number`), :class:`ExprRef`)
+        The projection's three-axis rotation to the specified angles, which must be a two-
+        or three-element array of numbers [ ``lambda``, ``phi``, ``gamma`` ] specifying the
+        rotation angles in degrees about each spherical axis. (These correspond to yaw,
+        pitch and roll.)
 
+        **Default value:** ``[0, 0, 0]``
     scale : anyOf(float, :class:`ExprRef`)
         The projection’s scale (zoom) factor, overriding automatic fitting. The default
         scale is projection-specific. The scale factor corresponds linearly to the distance
         between projected points; however, scale factor values are not equivalent across
         projections.
     size : anyOf(:class:`Vector2number`, :class:`ExprRef`)
-
+        Used in conjunction with fit, provides the width and height in pixels of the area to
+        which the projection should be automatically fit.
     spacing : anyOf(float, :class:`ExprRef`)
+        The spacing parameter for the ``lagrange`` projection.
 
+        **Default value:** ``0.5``
     tilt : anyOf(float, :class:`ExprRef`)
+        The tilt angle (in degrees) for the ``satellite`` projection.
 
+        **Default value:** ``0``.
     translate : anyOf(:class:`Vector2number`, :class:`ExprRef`)
         The projection’s translation offset as a two-element array ``[tx, ty]``.
     type : anyOf(:class:`ProjectionType`, :class:`ExprRef`)
@@ -12336,15 +13339,25 @@ class RectConfig(AnyMarkConfig):
 
         **Note:** Expression reference is *not* supported for range marks.
     angle : anyOf(float, :class:`ExprRef`)
-
+        The rotation angle of the text, in degrees.
     aria : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG element, removing the mark item from the ARIA accessibility tree.
     ariaRole : anyOf(string, :class:`ExprRef`)
-
+        Sets the type of user interface element of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "role" attribute. Warning: this
+        property is experimental and may be changed in the future.
     ariaRoleDescription : anyOf(string, :class:`ExprRef`)
-
+        A human-readable, author-localized description for the role of the mark item for
+        `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "aria-roledescription" attribute.
+        Warning: this property is experimental and may be changed in the future.
     aspect : anyOf(boolean, :class:`ExprRef`)
-
+        Whether to keep aspect ratio of image marks.
     baseline : anyOf(:class:`TextBaseline`, :class:`ExprRef`)
         For text marks, the vertical text baseline. One of ``"alphabetic"`` (default),
         ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, ``"line-bottom"``, or an
@@ -12362,7 +13375,11 @@ class RectConfig(AnyMarkConfig):
 
         **Default value:** ``1``
     blend : anyOf(:class:`Blend`, :class:`ExprRef`)
+        The color blend mode for drawing an item on its current background. Any valid `CSS
+        mix-blend-mode <https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode>`__
+        value can be used.
 
+        __Default value:__ ``"source-over"``
     color : anyOf(:class:`Color`, :class:`Gradient`, :class:`ExprRef`)
         Default color.
 
@@ -12381,39 +13398,64 @@ class RectConfig(AnyMarkConfig):
 
         **Default value:** ``5``
     cornerRadius : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles or arcs' corners.
 
+        **Default value:** ``0``
     cornerRadiusBottomLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom left corner.
 
+        **Default value:** ``0``
     cornerRadiusBottomRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top left corner.
 
+        **Default value:** ``0``
     cursor : anyOf(:class:`Cursor`, :class:`ExprRef`)
-
+        The mouse cursor used over the mark. Any valid `CSS cursor type
+        <https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values>`__ can be used.
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__.
     dir : anyOf(:class:`TextDirection`, :class:`ExprRef`)
+        The direction of the text. One of ``"ltr"`` (left-to-right) or ``"rtl"``
+        (right-to-left). This property determines on which side is truncated in response to
+        the limit parameter.
 
+        **Default value:** ``"ltr"``
     discreteBandSize : anyOf(float, :class:`RelativeBandSize`)
         The default size of the bars with discrete dimensions. If unspecified, the default
         size is  ``step-2``, which provides 2 pixel offset between bars.
     dx : anyOf(float, :class:`ExprRef`)
-
+        The horizontal offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     dy : anyOf(float, :class:`ExprRef`)
-
+        The vertical offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     ellipsis : anyOf(string, :class:`ExprRef`)
+        The ellipsis string for text truncated in response to the limit parameter.
 
+        **Default value:** ``"…"``
     endAngle : anyOf(float, :class:`ExprRef`)
-
+        The end angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     fill : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default fill color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove fill.
 
         **Default value:** (None)
     fillOpacity : anyOf(float, :class:`ExprRef`)
+        The fill opacity (value between [0,1]).
 
+        **Default value:** ``1``
     filled : boolean
         Whether the mark's color should be used as fill color instead of stroke color.
 
@@ -12425,24 +13467,48 @@ class RectConfig(AnyMarkConfig):
         **Note:** This property cannot be used in a `style config
         <https://vega.github.io/vega-lite/docs/mark.html#style-config>`__.
     font : anyOf(string, :class:`ExprRef`)
-
+        The typeface to set the text in (e.g., ``"Helvetica Neue"`` ).
     fontSize : anyOf(float, :class:`ExprRef`)
+        The font size, in pixels.
 
+        **Default value:** ``11``
     fontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style (e.g., ``"italic"`` ).
     fontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight. This can be either a string (e.g ``"bold"``, ``"normal"`` ) or a
+        number ( ``100``, ``200``, ``300``, ..., ``900`` where ``"normal"`` = ``400`` and
+        ``"bold"`` = ``700`` ).
     height : anyOf(float, :class:`ExprRef`)
-
+        Height of the marks.
     href : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        A URL to load upon mouse click. If defined, the mark acts as a hyperlink.
     innerRadius : anyOf(float, :class:`ExprRef`)
         The inner radius in pixels of arc marks. ``innerRadius`` is an alias for
         ``radius2``.
 
         **Default value:** ``0``
     interpolate : anyOf(:class:`Interpolate`, :class:`ExprRef`)
+        The line interpolation method to use for line and area marks. One of the following:
 
+
+        * ``"linear"`` : piecewise linear segments, as in a polyline.
+        * ``"linear-closed"`` : close the linear segments to form a polygon.
+        * ``"step"`` : alternate between horizontal and vertical segments, as in a step
+          function.
+        * ``"step-before"`` : alternate between vertical and horizontal segments, as in a
+          step function.
+        * ``"step-after"`` : alternate between horizontal and vertical segments, as in a
+          step function.
+        * ``"basis"`` : a B-spline, with control point duplication on the ends.
+        * ``"basis-open"`` : an open B-spline; may not intersect the start or end.
+        * ``"basis-closed"`` : a closed B-spline, as in a loop.
+        * ``"cardinal"`` : a Cardinal spline, with control point duplication on the ends.
+        * ``"cardinal-open"`` : an open Cardinal spline; may not intersect the start or end,
+          but will intersect other control points.
+        * ``"cardinal-closed"`` : a closed Cardinal spline, as in a loop.
+        * ``"bundle"`` : equivalent to basis, except the tension parameter is used to
+          straighten the spline.
+        * ``"monotone"`` : cubic interpolation that preserves monotonicity in y.
     invalid : enum('filter', None)
         Defines how Vega-Lite should handle marks for invalid values ( ``null`` and ``NaN``
         ).
@@ -12453,11 +13519,16 @@ class RectConfig(AnyMarkConfig):
         * If ``null``, all data items are included. In this case, invalid values will be
           interpreted as zeroes.
     limit : anyOf(float, :class:`ExprRef`)
+        The maximum length of the text mark in pixels. The text value will be automatically
+        truncated if the rendered size exceeds the limit.
 
+        **Default value:** ``0`` -- indicating no limit
     lineBreak : anyOf(string, :class:`ExprRef`)
-
+        A delimiter, such as a newline character, upon which to break text strings into
+        multiple lines. This property is ignored if the text is array-valued.
     lineHeight : anyOf(float, :class:`ExprRef`)
-
+        The line height in pixels (the spacing between subsequent lines of text) for
+        multi-line text marks.
     opacity : anyOf(float, :class:`ExprRef`)
         The overall opacity (value between [0,1]).
 
@@ -12483,7 +13554,7 @@ class RectConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     padAngle : anyOf(float, :class:`ExprRef`)
-
+        The angular padding applied to sides of the arc, in radians.
     radius : anyOf(float, :class:`ExprRef`)
         For arc mark, the primary (outer) radius in pixels.
 
@@ -12496,7 +13567,20 @@ class RectConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     shape : anyOf(anyOf(:class:`SymbolShape`, string), :class:`ExprRef`)
+        Shape of the point marks. Supported values include:
+
 
+        * plotting shapes: ``"circle"``, ``"square"``, ``"cross"``, ``"diamond"``,
+          ``"triangle-up"``, ``"triangle-down"``, ``"triangle-right"``, or
+          ``"triangle-left"``.
+        * the line symbol ``"stroke"``
+        * centered directional shapes ``"arrow"``, ``"wedge"``, or ``"triangle"``
+        * a custom `SVG path string
+          <https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths>`__ (For correct
+          sizing, custom shape paths should be defined within a square bounding box with
+          coordinates ranging from -1 to 1 along both the x and y dimensions.)
+
+        **Default value:** ``"circle"``
     size : anyOf(float, :class:`ExprRef`)
         Default size for marks.
 
@@ -12515,34 +13599,48 @@ class RectConfig(AnyMarkConfig):
         * ``5`` for bar marks with continuous dimensions;
         * ``11`` for text marks.
     smooth : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag (default true) indicating if the image should be smoothed when
+        resized. If false, individual pixels should be scaled directly rather than
+        interpolated with smoothing. For SVG rendering, this option may not work in some
+        browsers due to lack of standardization.
     startAngle : anyOf(float, :class:`ExprRef`)
-
+        The start angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     stroke : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default stroke color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove stroke.
 
         **Default value:** (None)
     strokeCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for line ending style. One of ``"butt"``, ``"round"``, or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     strokeDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating stroke, space lengths for creating dashed or dotted lines.
     strokeDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset (in pixels) into which to begin drawing with the stroke dash array.
     strokeJoin : anyOf(:class:`StrokeJoin`, :class:`ExprRef`)
+        The stroke line join method. One of ``"miter"``, ``"round"`` or ``"bevel"``.
 
+        **Default value:** ``"miter"``
     strokeMiterLimit : anyOf(float, :class:`ExprRef`)
-
+        The miter limit at which to bevel a line join.
     strokeOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset in pixels at which to draw the group stroke and fill. If unspecified, the
+        default behavior is to dynamically offset stroked groups such that 1 pixel stroke
+        widths align with the pixel grid.
     strokeOpacity : anyOf(float, :class:`ExprRef`)
+        The stroke opacity (value between [0,1]).
 
+        **Default value:** ``1``
     strokeWidth : anyOf(float, :class:`ExprRef`)
-
+        The stroke width, in pixels.
     tension : anyOf(float, :class:`ExprRef`)
-
+        Depending on the interpolation type, sets the tension parameter (for line and area
+        marks).
     text : anyOf(:class:`Text`, :class:`ExprRef`)
-
+        Placeholder text if the ``text`` channel is not specified
     theta : anyOf(float, :class:`ExprRef`)
         For arc marks, the arc length in radians if theta2 is not specified, otherwise the
         start arc angle. (A value of 0 indicates up or “north”, increasing values proceed
@@ -12576,9 +13674,9 @@ class RectConfig(AnyMarkConfig):
 
         **Default value:** ``null``
     url : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        The URL of the image file for image marks.
     width : anyOf(float, :class:`ExprRef`)
-
+        Width of the marks.
     x : anyOf(float, string, :class:`ExprRef`)
         X coordinates of the marks, or width of horizontal ``"bar"`` and ``"area"`` without
         specified ``x2`` or ``width``.
@@ -14397,8 +15495,6 @@ class FieldOrDatumDefWithConditionDatumDefstringnull(MarkPropDefstringnullTypeFo
     """FieldOrDatumDefWithConditionDatumDefstringnull schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -14520,8 +15616,6 @@ class FieldOrDatumDefWithConditionMarkPropFieldDefTypeForShapestringnull(MarkPro
     """FieldOrDatumDefWithConditionMarkPropFieldDefTypeForShapestringnull schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -16152,8 +17246,6 @@ class StringFieldDefWithCondition(VegaLiteSchema):
     """StringFieldDefWithCondition schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -16522,8 +17614,6 @@ class FieldOrDatumDefWithConditionStringDatumDefText(TextDef):
     """FieldOrDatumDefWithConditionStringDatumDefText schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -16681,8 +17771,6 @@ class FieldOrDatumDefWithConditionStringFieldDefText(TextDef):
     """FieldOrDatumDefWithConditionStringFieldDefText schema wrapper
 
     Mapping(required=[])
-    A FieldDef with Condition :raw-html:`<ValueDef>` {   condition: {value: ...},   field: ...,
-    ... }
 
     Attributes
     ----------
@@ -16916,15 +18004,25 @@ class TickConfig(AnyMarkConfig):
 
         **Note:** Expression reference is *not* supported for range marks.
     angle : anyOf(float, :class:`ExprRef`)
-
+        The rotation angle of the text, in degrees.
     aria : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG element, removing the mark item from the ARIA accessibility tree.
     ariaRole : anyOf(string, :class:`ExprRef`)
-
+        Sets the type of user interface element of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "role" attribute. Warning: this
+        property is experimental and may be changed in the future.
     ariaRoleDescription : anyOf(string, :class:`ExprRef`)
-
+        A human-readable, author-localized description for the role of the mark item for
+        `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the "aria-roledescription" attribute.
+        Warning: this property is experimental and may be changed in the future.
     aspect : anyOf(boolean, :class:`ExprRef`)
-
+        Whether to keep aspect ratio of image marks.
     bandSize : float
         The width of the ticks.
 
@@ -16942,7 +18040,11 @@ class TickConfig(AnyMarkConfig):
 
         **Note:** Expression reference is *not* supported for range marks.
     blend : anyOf(:class:`Blend`, :class:`ExprRef`)
+        The color blend mode for drawing an item on its current background. Any valid `CSS
+        mix-blend-mode <https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode>`__
+        value can be used.
 
+        __Default value:__ ``"source-over"``
     color : anyOf(:class:`Color`, :class:`Gradient`, :class:`ExprRef`)
         Default color.
 
@@ -16957,36 +18059,61 @@ class TickConfig(AnyMarkConfig):
         * The ``fill`` and ``stroke`` properties have higher precedence than ``color`` and
           will override ``color``.
     cornerRadius : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles or arcs' corners.
 
+        **Default value:** ``0``
     cornerRadiusBottomLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom left corner.
 
+        **Default value:** ``0``
     cornerRadiusBottomRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' bottom right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopLeft : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top right corner.
 
+        **Default value:** ``0``
     cornerRadiusTopRight : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles' top left corner.
 
+        **Default value:** ``0``
     cursor : anyOf(:class:`Cursor`, :class:`ExprRef`)
-
+        The mouse cursor used over the mark. Any valid `CSS cursor type
+        <https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values>`__ can be used.
     description : anyOf(string, :class:`ExprRef`)
-
+        A text description of the mark item for `ARIA accessibility
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ (SVG output
+        only). If specified, this property determines the `"aria-label" attribute
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute>`__.
     dir : anyOf(:class:`TextDirection`, :class:`ExprRef`)
+        The direction of the text. One of ``"ltr"`` (left-to-right) or ``"rtl"``
+        (right-to-left). This property determines on which side is truncated in response to
+        the limit parameter.
 
+        **Default value:** ``"ltr"``
     dx : anyOf(float, :class:`ExprRef`)
-
+        The horizontal offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     dy : anyOf(float, :class:`ExprRef`)
-
+        The vertical offset, in pixels, between the text label and its anchor point. The
+        offset is applied after rotation by the *angle* property.
     ellipsis : anyOf(string, :class:`ExprRef`)
+        The ellipsis string for text truncated in response to the limit parameter.
 
+        **Default value:** ``"…"``
     endAngle : anyOf(float, :class:`ExprRef`)
-
+        The end angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     fill : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default fill color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove fill.
 
         **Default value:** (None)
     fillOpacity : anyOf(float, :class:`ExprRef`)
+        The fill opacity (value between [0,1]).
 
+        **Default value:** ``1``
     filled : boolean
         Whether the mark's color should be used as fill color instead of stroke color.
 
@@ -16998,24 +18125,48 @@ class TickConfig(AnyMarkConfig):
         **Note:** This property cannot be used in a `style config
         <https://vega.github.io/vega-lite/docs/mark.html#style-config>`__.
     font : anyOf(string, :class:`ExprRef`)
-
+        The typeface to set the text in (e.g., ``"Helvetica Neue"`` ).
     fontSize : anyOf(float, :class:`ExprRef`)
+        The font size, in pixels.
 
+        **Default value:** ``11``
     fontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        The font style (e.g., ``"italic"`` ).
     fontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        The font weight. This can be either a string (e.g ``"bold"``, ``"normal"`` ) or a
+        number ( ``100``, ``200``, ``300``, ..., ``900`` where ``"normal"`` = ``400`` and
+        ``"bold"`` = ``700`` ).
     height : anyOf(float, :class:`ExprRef`)
-
+        Height of the marks.
     href : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        A URL to load upon mouse click. If defined, the mark acts as a hyperlink.
     innerRadius : anyOf(float, :class:`ExprRef`)
         The inner radius in pixels of arc marks. ``innerRadius`` is an alias for
         ``radius2``.
 
         **Default value:** ``0``
     interpolate : anyOf(:class:`Interpolate`, :class:`ExprRef`)
+        The line interpolation method to use for line and area marks. One of the following:
+
 
+        * ``"linear"`` : piecewise linear segments, as in a polyline.
+        * ``"linear-closed"`` : close the linear segments to form a polygon.
+        * ``"step"`` : alternate between horizontal and vertical segments, as in a step
+          function.
+        * ``"step-before"`` : alternate between vertical and horizontal segments, as in a
+          step function.
+        * ``"step-after"`` : alternate between horizontal and vertical segments, as in a
+          step function.
+        * ``"basis"`` : a B-spline, with control point duplication on the ends.
+        * ``"basis-open"`` : an open B-spline; may not intersect the start or end.
+        * ``"basis-closed"`` : a closed B-spline, as in a loop.
+        * ``"cardinal"`` : a Cardinal spline, with control point duplication on the ends.
+        * ``"cardinal-open"`` : an open Cardinal spline; may not intersect the start or end,
+          but will intersect other control points.
+        * ``"cardinal-closed"`` : a closed Cardinal spline, as in a loop.
+        * ``"bundle"`` : equivalent to basis, except the tension parameter is used to
+          straighten the spline.
+        * ``"monotone"`` : cubic interpolation that preserves monotonicity in y.
     invalid : enum('filter', None)
         Defines how Vega-Lite should handle marks for invalid values ( ``null`` and ``NaN``
         ).
@@ -17026,11 +18177,16 @@ class TickConfig(AnyMarkConfig):
         * If ``null``, all data items are included. In this case, invalid values will be
           interpreted as zeroes.
     limit : anyOf(float, :class:`ExprRef`)
+        The maximum length of the text mark in pixels. The text value will be automatically
+        truncated if the rendered size exceeds the limit.
 
+        **Default value:** ``0`` -- indicating no limit
     lineBreak : anyOf(string, :class:`ExprRef`)
-
+        A delimiter, such as a newline character, upon which to break text strings into
+        multiple lines. This property is ignored if the text is array-valued.
     lineHeight : anyOf(float, :class:`ExprRef`)
-
+        The line height in pixels (the spacing between subsequent lines of text) for
+        multi-line text marks.
     opacity : anyOf(float, :class:`ExprRef`)
         The overall opacity (value between [0,1]).
 
@@ -17056,7 +18212,7 @@ class TickConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     padAngle : anyOf(float, :class:`ExprRef`)
-
+        The angular padding applied to sides of the arc, in radians.
     radius : anyOf(float, :class:`ExprRef`)
         For arc mark, the primary (outer) radius in pixels.
 
@@ -17069,7 +18225,20 @@ class TickConfig(AnyMarkConfig):
 
         **Default value:** ``0``
     shape : anyOf(anyOf(:class:`SymbolShape`, string), :class:`ExprRef`)
+        Shape of the point marks. Supported values include:
+
+
+        * plotting shapes: ``"circle"``, ``"square"``, ``"cross"``, ``"diamond"``,
+          ``"triangle-up"``, ``"triangle-down"``, ``"triangle-right"``, or
+          ``"triangle-left"``.
+        * the line symbol ``"stroke"``
+        * centered directional shapes ``"arrow"``, ``"wedge"``, or ``"triangle"``
+        * a custom `SVG path string
+          <https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths>`__ (For correct
+          sizing, custom shape paths should be defined within a square bounding box with
+          coordinates ranging from -1 to 1 along both the x and y dimensions.)
 
+        **Default value:** ``"circle"``
     size : anyOf(float, :class:`ExprRef`)
         Default size for marks.
 
@@ -17088,34 +18257,48 @@ class TickConfig(AnyMarkConfig):
         * ``5`` for bar marks with continuous dimensions;
         * ``11`` for text marks.
     smooth : anyOf(boolean, :class:`ExprRef`)
-
+        A boolean flag (default true) indicating if the image should be smoothed when
+        resized. If false, individual pixels should be scaled directly rather than
+        interpolated with smoothing. For SVG rendering, this option may not work in some
+        browsers due to lack of standardization.
     startAngle : anyOf(float, :class:`ExprRef`)
-
+        The start angle in radians for arc marks. A value of ``0`` indicates up (north),
+        increasing values proceed clockwise.
     stroke : anyOf(:class:`Color`, :class:`Gradient`, None, :class:`ExprRef`)
         Default stroke color. This property has higher precedence than ``config.color``. Set
         to ``null`` to remove stroke.
 
         **Default value:** (None)
     strokeCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for line ending style. One of ``"butt"``, ``"round"``, or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     strokeDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating stroke, space lengths for creating dashed or dotted lines.
     strokeDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset (in pixels) into which to begin drawing with the stroke dash array.
     strokeJoin : anyOf(:class:`StrokeJoin`, :class:`ExprRef`)
+        The stroke line join method. One of ``"miter"``, ``"round"`` or ``"bevel"``.
 
+        **Default value:** ``"miter"``
     strokeMiterLimit : anyOf(float, :class:`ExprRef`)
-
+        The miter limit at which to bevel a line join.
     strokeOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset in pixels at which to draw the group stroke and fill. If unspecified, the
+        default behavior is to dynamically offset stroked groups such that 1 pixel stroke
+        widths align with the pixel grid.
     strokeOpacity : anyOf(float, :class:`ExprRef`)
+        The stroke opacity (value between [0,1]).
 
+        **Default value:** ``1``
     strokeWidth : anyOf(float, :class:`ExprRef`)
-
+        The stroke width, in pixels.
     tension : anyOf(float, :class:`ExprRef`)
-
+        Depending on the interpolation type, sets the tension parameter (for line and area
+        marks).
     text : anyOf(:class:`Text`, :class:`ExprRef`)
-
+        Placeholder text if the ``text`` channel is not specified
     theta : anyOf(float, :class:`ExprRef`)
         For arc marks, the arc length in radians if theta2 is not specified, otherwise the
         start arc angle. (A value of 0 indicates up or “north”, increasing values proceed
@@ -17153,9 +18336,9 @@ class TickConfig(AnyMarkConfig):
 
         **Default value:** ``null``
     url : anyOf(:class:`URI`, :class:`ExprRef`)
-
+        The URL of the image file for image marks.
     width : anyOf(float, :class:`ExprRef`)
-
+        Width of the marks.
     x : anyOf(float, string, :class:`ExprRef`)
         X coordinates of the marks, or width of horizontal ``"bar"`` and ``"area"`` without
         specified ``x2`` or ``width``.
@@ -17412,11 +18595,18 @@ class TitleConfig(VegaLiteSchema):
         Horizontal text alignment for title text. One of ``"left"``, ``"center"``, or
         ``"right"``.
     anchor : anyOf(:class:`TitleAnchor`, :class:`ExprRef`)
-
+        The anchor position for placing the title and subtitle text. One of ``"start"``,
+        ``"middle"``, or ``"end"``. For example, with an orientation of top these anchor
+        positions map to a left-, center-, or right-aligned title.
     angle : anyOf(float, :class:`ExprRef`)
-
+        Angle in degrees of title and subtitle text.
     aria : anyOf(boolean, :class:`ExprRef`)
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG group, removing the title from the ARIA accessibility tree.
 
+        **Default value:** ``true``
     baseline : :class:`TextBaseline`
         Vertical text baseline for title and subtitle text. One of ``"alphabetic"``
         (default), ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, or
@@ -17424,45 +18614,56 @@ class TitleConfig(VegaLiteSchema):
         to ``"top"`` and ``"bottom"``, but are calculated relative to the *lineHeight*
         rather than *fontSize* alone.
     color : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Text color for title text.
     dx : anyOf(float, :class:`ExprRef`)
-
+        Delta offset for title and subtitle text x-coordinate.
     dy : anyOf(float, :class:`ExprRef`)
-
+        Delta offset for title and subtitle text y-coordinate.
     font : anyOf(string, :class:`ExprRef`)
-
+        Font name for title text.
     fontSize : anyOf(float, :class:`ExprRef`)
-
+        Font size in pixels for title text.
     fontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        Font style for title text.
     fontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        Font weight for title text. This can be either a string (e.g ``"bold"``,
+        ``"normal"`` ) or a number ( ``100``, ``200``, ``300``, ..., ``900`` where
+        ``"normal"`` = ``400`` and ``"bold"`` = ``700`` ).
     frame : anyOf(anyOf(:class:`TitleFrame`, string), :class:`ExprRef`)
-
+        The reference frame for the anchor position, one of ``"bounds"`` (to anchor relative
+        to the full bounding box) or ``"group"`` (to anchor relative to the group width or
+        height).
     limit : anyOf(float, :class:`ExprRef`)
-
+        The maximum allowed length in pixels of title and subtitle text.
     lineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line title text or title text with ``"line-top"`` or
+        ``"line-bottom"`` baseline.
     offset : anyOf(float, :class:`ExprRef`)
-
+        The orthogonal offset in pixels by which to displace the title group from its
+        position along the edge of the chart.
     orient : anyOf(:class:`TitleOrient`, :class:`ExprRef`)
-
+        Default title orientation ( ``"top"``, ``"bottom"``, ``"left"``, or ``"right"`` )
     subtitleColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Text color for subtitle text.
     subtitleFont : anyOf(string, :class:`ExprRef`)
-
+        Font name for subtitle text.
     subtitleFontSize : anyOf(float, :class:`ExprRef`)
-
+        Font size in pixels for subtitle text.
     subtitleFontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        Font style for subtitle text.
     subtitleFontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        Font weight for subtitle text. This can be either a string (e.g ``"bold"``,
+        ``"normal"`` ) or a number ( ``100``, ``200``, ``300``, ..., ``900`` where
+        ``"normal"`` = ``400`` and ``"bold"`` = ``700`` ).
     subtitleLineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line subtitle text.
     subtitlePadding : anyOf(float, :class:`ExprRef`)
-
+        The padding in pixels between title and subtitle text.
     zindex : anyOf(float, :class:`ExprRef`)
+        The integer z-index indicating the layering of the title group relative to other
+        axis, mark, and legend groups.
 
+        **Default value:** ``0``.
     """
     _schema = {'$ref': '#/definitions/TitleConfig'}
 
@@ -17536,9 +18737,14 @@ class TitleParams(VegaLiteSchema):
         <https://vega.github.io/vega-lite/docs/layer.html>`__ views. For other composite
         views, ``anchor`` is always ``"start"``.
     angle : anyOf(float, :class:`ExprRef`)
-
+        Angle in degrees of title and subtitle text.
     aria : anyOf(boolean, :class:`ExprRef`)
+        A boolean flag indicating if `ARIA attributes
+        <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA>`__ should be
+        included (SVG output only). If ``false``, the "aria-hidden" attribute will be set on
+        the output SVG group, removing the title from the ARIA accessibility tree.
 
+        **Default value:** ``true``
     baseline : :class:`TextBaseline`
         Vertical text baseline for title and subtitle text. One of ``"alphabetic"``
         (default), ``"top"``, ``"middle"``, ``"bottom"``, ``"line-top"``, or
@@ -17546,29 +18752,35 @@ class TitleParams(VegaLiteSchema):
         to ``"top"`` and ``"bottom"``, but are calculated relative to the *lineHeight*
         rather than *fontSize* alone.
     color : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Text color for title text.
     dx : anyOf(float, :class:`ExprRef`)
-
+        Delta offset for title and subtitle text x-coordinate.
     dy : anyOf(float, :class:`ExprRef`)
-
+        Delta offset for title and subtitle text y-coordinate.
     font : anyOf(string, :class:`ExprRef`)
-
+        Font name for title text.
     fontSize : anyOf(float, :class:`ExprRef`)
-
+        Font size in pixels for title text.
     fontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        Font style for title text.
     fontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        Font weight for title text. This can be either a string (e.g ``"bold"``,
+        ``"normal"`` ) or a number ( ``100``, ``200``, ``300``, ..., ``900`` where
+        ``"normal"`` = ``400`` and ``"bold"`` = ``700`` ).
     frame : anyOf(anyOf(:class:`TitleFrame`, string), :class:`ExprRef`)
-
+        The reference frame for the anchor position, one of ``"bounds"`` (to anchor relative
+        to the full bounding box) or ``"group"`` (to anchor relative to the group width or
+        height).
     limit : anyOf(float, :class:`ExprRef`)
-
+        The maximum allowed length in pixels of title and subtitle text.
     lineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line title text or title text with ``"line-top"`` or
+        ``"line-bottom"`` baseline.
     offset : anyOf(float, :class:`ExprRef`)
-
+        The orthogonal offset in pixels by which to displace the title group from its
+        position along the edge of the chart.
     orient : anyOf(:class:`TitleOrient`, :class:`ExprRef`)
-
+        Default title orientation ( ``"top"``, ``"bottom"``, ``"left"``, or ``"right"`` )
     style : anyOf(string, List(string))
         A `mark style property <https://vega.github.io/vega-lite/docs/config.html#style>`__
         to apply to the title text mark.
@@ -17577,19 +18789,21 @@ class TitleParams(VegaLiteSchema):
     subtitle : :class:`Text`
         The subtitle Text.
     subtitleColor : anyOf(anyOf(None, :class:`Color`), :class:`ExprRef`)
-
+        Text color for subtitle text.
     subtitleFont : anyOf(string, :class:`ExprRef`)
-
+        Font name for subtitle text.
     subtitleFontSize : anyOf(float, :class:`ExprRef`)
-
+        Font size in pixels for subtitle text.
     subtitleFontStyle : anyOf(:class:`FontStyle`, :class:`ExprRef`)
-
+        Font style for subtitle text.
     subtitleFontWeight : anyOf(:class:`FontWeight`, :class:`ExprRef`)
-
+        Font weight for subtitle text. This can be either a string (e.g ``"bold"``,
+        ``"normal"`` ) or a number ( ``100``, ``200``, ``300``, ..., ``900`` where
+        ``"normal"`` = ``400`` and ``"bold"`` = ``700`` ).
     subtitleLineHeight : anyOf(float, :class:`ExprRef`)
-
+        Line height in pixels for multi-line subtitle text.
     subtitlePadding : anyOf(float, :class:`ExprRef`)
-
+        The padding in pixels between title and subtitle text.
     zindex : float
         The integer z-index indicating the layering of the title group relative to other
         axis, mark and legend groups.
@@ -19864,7 +21078,9 @@ class ViewBackground(VegaLiteSchema):
     ----------
 
     cornerRadius : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles or arcs' corners.
 
+        **Default value:** ``0``
     cursor : :class:`Cursor`
         The mouse cursor used over the view. Any valid `CSS cursor type
         <https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values>`__ can be used.
@@ -19873,7 +21089,9 @@ class ViewBackground(VegaLiteSchema):
 
         **Default value:** ``undefined``
     fillOpacity : anyOf(float, :class:`ExprRef`)
+        The fill opacity (value between [0,1]).
 
+        **Default value:** ``1``
     opacity : anyOf(float, :class:`ExprRef`)
         The overall opacity (value between [0,1]).
 
@@ -19884,19 +21102,26 @@ class ViewBackground(VegaLiteSchema):
 
         **Default value:** ``"#ddd"``
     strokeCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for line ending style. One of ``"butt"``, ``"round"``, or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     strokeDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating stroke, space lengths for creating dashed or dotted lines.
     strokeDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset (in pixels) into which to begin drawing with the stroke dash array.
     strokeJoin : anyOf(:class:`StrokeJoin`, :class:`ExprRef`)
+        The stroke line join method. One of ``"miter"``, ``"round"`` or ``"bevel"``.
 
+        **Default value:** ``"miter"``
     strokeMiterLimit : anyOf(float, :class:`ExprRef`)
-
+        The miter limit at which to bevel a line join.
     strokeOpacity : anyOf(float, :class:`ExprRef`)
+        The stroke opacity (value between [0,1]).
 
+        **Default value:** ``1``
     strokeWidth : anyOf(float, :class:`ExprRef`)
-
+        The stroke width, in pixels.
     style : anyOf(string, List(string))
         A string or array of strings indicating the name of custom styles to apply to the
         view background. A style is a named collection of mark property defaults defined
@@ -19943,7 +21168,9 @@ class ViewConfig(VegaLiteSchema):
 
         **Default value:** ``200``
     cornerRadius : anyOf(float, :class:`ExprRef`)
+        The radius in pixels of rounded rectangles or arcs' corners.
 
+        **Default value:** ``0``
     cursor : :class:`Cursor`
         The mouse cursor used over the view. Any valid `CSS cursor type
         <https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#Values>`__ can be used.
@@ -19964,7 +21191,9 @@ class ViewConfig(VegaLiteSchema):
 
         **Default value:** ``undefined``
     fillOpacity : anyOf(float, :class:`ExprRef`)
+        The fill opacity (value between [0,1]).
 
+        **Default value:** ``1``
     opacity : anyOf(float, :class:`ExprRef`)
         The overall opacity (value between [0,1]).
 
@@ -19977,19 +21206,26 @@ class ViewConfig(VegaLiteSchema):
 
         **Default value:** ``"#ddd"``
     strokeCap : anyOf(:class:`StrokeCap`, :class:`ExprRef`)
+        The stroke cap for line ending style. One of ``"butt"``, ``"round"``, or
+        ``"square"``.
 
+        **Default value:** ``"butt"``
     strokeDash : anyOf(List(float), :class:`ExprRef`)
-
+        An array of alternating stroke, space lengths for creating dashed or dotted lines.
     strokeDashOffset : anyOf(float, :class:`ExprRef`)
-
+        The offset (in pixels) into which to begin drawing with the stroke dash array.
     strokeJoin : anyOf(:class:`StrokeJoin`, :class:`ExprRef`)
+        The stroke line join method. One of ``"miter"``, ``"round"`` or ``"bevel"``.
 
+        **Default value:** ``"miter"``
     strokeMiterLimit : anyOf(float, :class:`ExprRef`)
-
+        The miter limit at which to bevel a line join.
     strokeOpacity : anyOf(float, :class:`ExprRef`)
+        The stroke opacity (value between [0,1]).
 
+        **Default value:** ``1``
     strokeWidth : anyOf(float, :class:`ExprRef`)
-
+        The stroke width, in pixels.
     """
     _schema = {'$ref': '#/definitions/ViewConfig'}
 
diff --git a/doc/conf.py b/doc/conf.py
index a217eb19..bd8680f7 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -155,7 +155,7 @@ html_theme_options = {
         },
     ],
     "header_links_before_dropdown": 6,
-    "announcement": "This website is for Vega-Altair v5 (release candidate). Visit the <a href='https://altair-viz.github.io/altair-viz-v4/'>Vega-Altair v4 homepage</a> for previous release documentation.",
+    "announcement": """This website is for the release candidate of version 5 <code class="docutils literal notranslate"><span class="pre">pip install altair==5.0.0rc1</span></code>. You can find the documentation for version 4 <a href='https://altair-viz.github.io/altair-viz-v4/'>here</a>.""",
 }
 
 html_context = {"default_mode": "light"}
diff --git a/doc/releases/changes.rst b/doc/releases/changes.rst
index 02978562..8e3f25df 100644
--- a/doc/releases/changes.rst
+++ b/doc/releases/changes.rst
@@ -22,6 +22,7 @@ Enhancements
 - The documentation page has been revamped, both in terms of appearance and content.
 - More informative autocompletion by removing deprecated methods (#2814) and adding support for completion in method chains for editors that rely on type hints (e.g. VS Code) (#2846)
 - Improved error messages (#2842)
+- Include experimental support for the DataFrame Interchange Protocol (through `__dataframe__` attribute). This requires `pyarrow>=11.0.0` (#2888).
 
 Grammar Changes
 ~~~~~~~~~~~~~~~
diff --git a/doc/user_guide/customization.rst b/doc/user_guide/customization.rst
index 56757026..556250d0 100644
--- a/doc/user_guide/customization.rst
+++ b/doc/user_guide/customization.rst
@@ -164,7 +164,7 @@ It is also possible to add a subtitle by passing in an `alt.Title` object.
        color="source:N"
    )
 
-The subtitle can run to two lines by passing a list where each list item is a line (if you don't want to create this list manually as in the example below, you can use the ``wrap`` function from the `textwrap library https://docs.python.org/3/library/textwrap.html`_ to split a string into a list of substrings of a certain length).
+The subtitle can run to two lines by passing a list where each list item is a line (if you don't want to create this list manually as in the example below, you can use the ``wrap`` function from the `textwrap library <https://docs.python.org/3/library/textwrap.html>`_ to split a string into a list of substrings of a certain length).
 
 .. altair-plot::
 
diff --git a/doc/user_guide/data.rst b/doc/user_guide/data.rst
index 8ac86cdc..d89cd8d2 100644
--- a/doc/user_guide/data.rst
+++ b/doc/user_guide/data.rst
@@ -21,6 +21,7 @@ there are many different ways of specifying a dataset:
 - as a url string pointing to a ``json`` or ``csv`` formatted text file
 - as a `geopandas GeoDataFrame <http://geopandas.org/data_structures.html#geodataframe>`_, `Shapely Geometries <https://shapely.readthedocs.io/en/latest/manual.html#geometric-objects>`_, `GeoJSON Objects <https://github.com/jazzband/geojson#geojson-objects>`_ or other objects that support the ``__geo_interface__``
 - as a generated dataset such as numerical sequences or geographic reference elements
+- as a DataFrame that supports the DataFrame Interchange Protocol (contains a `__dataframe__` attribute). This is experimental.
 
 When data is specified as a DataFrame, the encoding is quite simple, as Altair
 uses the data type information provided by pandas to automatically determine
diff --git a/doc/user_guide/large_datasets.rst b/doc/user_guide/large_datasets.rst
index 08cfdfba..69dfe7e4 100644
--- a/doc/user_guide/large_datasets.rst
+++ b/doc/user_guide/large_datasets.rst
@@ -167,6 +167,7 @@ Both renderers require you to install either the `vl-convert`_ or the `altair_sa
 whereas `vl-convert`_ is expected to provide the better performance.
 
 .. _preaggregate-and-filter:
+
 Preaggregate and Filter in Pandas
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Another common approach is to perform data transformations such as aggregations
diff --git a/tools/generate_schema_wrapper.py b/tools/generate_schema_wrapper.py
index 08304a54..aacec676 100644
--- a/tools/generate_schema_wrapper.py
+++ b/tools/generate_schema_wrapper.py
@@ -124,7 +124,7 @@ class ValueChannelMixin(object):
             elif 'field' in condition and 'type' not in condition:
                 kwds = parse_shorthand(condition['field'], context.get('data', None))
                 copy = self.copy(deep=['condition'])
-                copy.condition.update(kwds)
+                copy['condition'].update(kwds)
         return super(ValueChannelMixin, copy).to_dict(validate=validate,
                                                       ignore=ignore,
                                                       context=context)
@@ -202,6 +202,8 @@ class SchemaGenerator(codegen.SchemaGenerator):
         description = description.replace(r"\ ", " ")
         # turn explicit references into anonymous references
         description = description.replace(">`_", ">`__")
+        # Some entries in the Vega-Lite schema miss the second occurence of '__'
+        description = description.replace("__Default value: ", "__Default value:__ ")
         description += "\n"
         return description.strip()
 
diff --git a/tools/schemapi/codegen.py b/tools/schemapi/codegen.py
index b33c20c8..ea822983 100644
--- a/tools/schemapi/codegen.py
+++ b/tools/schemapi/codegen.py
@@ -165,6 +165,11 @@ class SchemaGenerator(object):
             doc += self._process_description(  # remove condition description
                 re.sub(r"\n\{\n(\n|.)*\n\}", "", info.description)
             ).splitlines()
+        # Remove lines which contain the "raw-html" directive which cannot be processed
+        # by Sphinx at this level of the docstring. It works for descriptions
+        # of attributes which is why we do not do the same below. The removed
+        # lines are anyway non-descriptive for a user.
+        doc = [line for line in doc if ":raw-html:" not in line]
 
         if info.properties:
             nonkeyword, required, kwds, invalid_kwds, additional = _get_args(info)
@@ -173,7 +178,9 @@ class SchemaGenerator(object):
                 propinfo = info.properties[prop]
                 doc += [
                     "{} : {}".format(prop, propinfo.short_description),
-                    "    {}".format(self._process_description(propinfo.description)),
+                    "    {}".format(
+                        self._process_description(propinfo.deep_description)
+                    ),
                 ]
         if len(doc) > 1:
             doc += [""]
diff --git a/tools/schemapi/schemapi.py b/tools/schemapi/schemapi.py
index 9fa2dccb..7f14f7bb 100644
--- a/tools/schemapi/schemapi.py
+++ b/tools/schemapi/schemapi.py
@@ -402,10 +402,10 @@ class SchemaBase(object):
             parsed_shorthand = context.pop("parsed_shorthand", {})
             # Prevent that pandas categorical data is automatically sorted
             # when a non-ordinal data type is specifed manually
-            if "sort" in parsed_shorthand and kwds["type"] not in [
-                "ordinal",
-                Undefined,
-            ]:
+            # or if the encoding channel does not support sorting
+            if "sort" in parsed_shorthand and (
+                "sort" not in kwds or kwds["type"] not in ["ordinal", Undefined]
+            ):
                 parsed_shorthand.pop("sort")
 
             kwds.update(
diff --git a/tools/schemapi/utils.py b/tools/schemapi/utils.py
index 59fa14e2..abc9d6ac 100644
--- a/tools/schemapi/utils.py
+++ b/tools/schemapi/utils.py
@@ -300,7 +300,27 @@ class SchemaInfo(object):
 
     @property
     def description(self):
-        return self.raw_schema.get("description", self.schema.get("description", ""))
+        return self._get_description(include_sublevels=False)
+
+    @property
+    def deep_description(self):
+        return self._get_description(include_sublevels=True)
+
+    def _get_description(self, include_sublevels: bool = False):
+        desc = self.raw_schema.get("description", self.schema.get("description", ""))
+        if not desc and include_sublevels:
+            for item in self.anyOf:
+                sub_desc = item._get_description(include_sublevels=False)
+                if desc and sub_desc:
+                    raise ValueError(
+                        "There are multiple potential descriptions which could"
+                        + " be used for the currently inspected schema. You'll need to"
+                        + " clarify which one is the correct one.\n"
+                        + str(self.schema)
+                    )
+                if sub_desc:
+                    desc = sub_desc
+        return desc
 
     def is_list(self):
         return isinstance(self.schema, list)


Test patch:
diff --git a/tests/examples_arguments_syntax/heat_lane.py b/tests/examples_arguments_syntax/heat_lane.py
new file mode 100644
index 00000000..7239c1f9
--- /dev/null
+++ b/tests/examples_arguments_syntax/heat_lane.py
@@ -0,0 +1,44 @@
+"""
+Heat Lane Chart
+---------------
+This example shows how to make an alternative form of a histogram `designed at Google <https://www.smashingmagazine.com/2022/07/accessibility-first-approach-chart-visual-design/>`_ with the goal of increasing accessibility.
+"""
+# category: distributions
+import altair as alt
+from vega_datasets import data
+
+source = data.cars.url
+
+chart = alt.Chart(source, title="Car horsepower", height=100, width=300).encode(
+    x=alt.X(
+        "bin_Horsepower_start:Q",
+        title="Horsepower",
+        axis=alt.Axis(grid=False)
+    ),
+    x2="bin_Horsepower_end:Q",
+    y=alt.Y("y:O", axis=None),
+    y2="y2",
+).transform_bin(
+    ["bin_Horsepower_start", "bin_Horsepower_end"],
+    field='Horsepower'
+).transform_aggregate(
+    count='count()',
+    groupby=["bin_Horsepower_start", "bin_Horsepower_end"]
+).transform_bin(
+    ["bin_count_start", "bin_count_end"],
+    field='count'
+).transform_calculate(
+    y="datum.bin_count_end/2",
+    y2="-datum.bin_count_end/2",
+).transform_joinaggregate(
+    max_bin_count_end="max(bin_count_end)",
+)
+
+layer1 = chart.mark_bar(xOffset=1, x2Offset=-1, cornerRadius=3).encode(
+    color=alt.Color("max_bin_count_end:O", scale=alt.Scale(scheme="lighttealblue"), title="Number of models")
+)
+layer2 = chart.mark_bar(xOffset=1, x2Offset=-1, yOffset=-3, y2Offset=3).encode(
+    color=alt.Color("bin_count_end:O", title="Number of models")
+)
+
+layer1 + layer2
diff --git a/tests/examples_methods_syntax/heat_lane.py b/tests/examples_methods_syntax/heat_lane.py
new file mode 100644
index 00000000..63d8dd96
--- /dev/null
+++ b/tests/examples_methods_syntax/heat_lane.py
@@ -0,0 +1,44 @@
+"""
+Heat Lane Chart
+---------------
+This example shows how to make an alternative form of a histogram `designed at Google <https://www.smashingmagazine.com/2022/07/accessibility-first-approach-chart-visual-design/>`_ with the goal of increasing accessibility.
+"""
+# category: distributions
+import altair as alt
+from vega_datasets import data
+
+source = data.cars.url
+
+chart = alt.Chart(source, title="Car horsepower", height=100, width=300).encode(
+    alt.X("bin_Horsepower_start:Q")
+        .title("Horsepower")
+        .axis(grid=False),
+    alt.X2("bin_Horsepower_end:Q"),
+    alt.Y("y:O").axis(None),
+    alt.Y2("y2"),
+).transform_bin(
+    ["bin_Horsepower_start", "bin_Horsepower_end"],
+    field='Horsepower'
+).transform_aggregate(
+    count='count()',
+    groupby=["bin_Horsepower_start", "bin_Horsepower_end"]
+).transform_bin(
+    ["bin_count_start", "bin_count_end"],
+    field='count'
+).transform_calculate(
+    y="datum.bin_count_end/2",
+    y2="-datum.bin_count_end/2",
+).transform_joinaggregate(
+    max_bin_count_end="max(bin_count_end)",
+)
+
+layer1 = chart.mark_bar(xOffset=1, x2Offset=-1, cornerRadius=3).encode(
+    alt.Color("max_bin_count_end:O")
+        .title("Number of models")
+        .scale(scheme="lighttealblue")
+)
+layer2 = chart.mark_bar(xOffset=1, x2Offset=-1, yOffset=-3, y2Offset=3).encode(
+    alt.Color("bin_count_end:O").title("Number of models")
+)
+
+layer1 + layer2
diff --git a/tests/utils/tests/test_core.py b/tests/utils/tests/test_core.py
index c46d1744..e0b57567 100644
--- a/tests/utils/tests/test_core.py
+++ b/tests/utils/tests/test_core.py
@@ -249,17 +249,35 @@ def test_infer_encoding_types(channels):
     assert infer_encoding_types(args, kwds, channels) == expected
 
 
-def test_infer_encoding_types_with_condition(channels):
+def test_infer_encoding_types_with_condition():
+    channels = alt.channels
+
     args, kwds = _getargs(
-        x=alt.condition("pred1", alt.value(1), alt.value(2)),
-        y=alt.condition("pred2", alt.value(1), "yval"),
-        strokeWidth=alt.condition("pred3", "sval", alt.value(2)),
+        size=alt.condition("pred1", alt.value(1), alt.value(2)),
+        color=alt.condition("pred2", alt.value("red"), "cfield:N"),
+        opacity=alt.condition("pred3", "ofield:N", alt.value(0.2)),
     )
+
     expected = dict(
-        x=channels.XValue(2, condition=channels.XValue(1, test="pred1")),
-        y=channels.Y("yval", condition=channels.YValue(1, test="pred2")),
-        strokeWidth=channels.StrokeWidthValue(
-            2, condition=channels.StrokeWidth("sval", test="pred3")
+        size=channels.SizeValue(
+            2,
+            condition=alt.ConditionalPredicateValueDefnumberExprRef(
+                value=1, test=alt.Predicate("pred1")
+            ),
+        ),
+        color=channels.Color(
+            "cfield:N",
+            condition=alt.ConditionalPredicateValueDefGradientstringnullExprRef(
+                value="red", test=alt.Predicate("pred2")
+            ),
+        ),
+        opacity=channels.OpacityValue(
+            0.2,
+            condition=alt.ConditionalPredicateMarkPropFieldOrDatumDef(
+                field=alt.FieldName("ofield"),
+                test=alt.Predicate("pred3"),
+                type=alt.StandardType("nominal"),
+            ),
         ),
     )
     assert infer_encoding_types(args, kwds, channels) == expected
diff --git a/tests/utils/tests/test_schemapi.py b/tests/utils/tests/test_schemapi.py
index af48ea74..9895d57a 100644
--- a/tests/utils/tests/test_schemapi.py
+++ b/tests/utils/tests/test_schemapi.py
@@ -137,7 +137,7 @@ class Draft7Schema(_TestSchema):
 
 class Draft202012Schema(_TestSchema):
     _schema = {
-        "$schema": "http://json-schema.org/draft/2020-12/schema#",
+        "$schema": "https://json-schema.org/draft/2020-12/schema",
         "properties": {
             "e": {"items": [{"type": "string"}, {"type": "string"}]},
         },
diff --git a/tests/vegalite/v5/tests/test_api.py b/tests/vegalite/v5/tests/test_api.py
index b4b82a17..404f0a45 100644
--- a/tests/vegalite/v5/tests/test_api.py
+++ b/tests/vegalite/v5/tests/test_api.py
@@ -138,16 +138,30 @@ def test_chart_infer_types():
         assert dct["encoding"]["size"]["type"] == "ordinal"
         assert dct["encoding"]["size"]["field"] == "s"
         assert dct["encoding"]["size"]["sort"] == [2, 1]
+        assert dct["encoding"]["tooltip"]["type"] == "ordinal"
+        assert dct["encoding"]["tooltip"]["field"] == "s"
+        # "sort" should be removed for channels that don't support it
+        assert "sort" not in dct["encoding"]["tooltip"]
 
     # Pass field names by keyword
-    chart = alt.Chart(data).mark_point().encode(x="x", y="y", color="c", size="s")
+    chart = (
+        alt.Chart(data)
+        .mark_point()
+        .encode(x="x", y="y", color="c", size="s", tooltip="s")
+    )
     _check_encodings(chart)
 
     # pass Channel objects by keyword
     chart = (
         alt.Chart(data)
         .mark_point()
-        .encode(x=alt.X("x"), y=alt.Y("y"), color=alt.Color("c"), size=alt.Size("s"))
+        .encode(
+            x=alt.X("x"),
+            y=alt.Y("y"),
+            color=alt.Color("c"),
+            size=alt.Size("s"),
+            tooltip=alt.Tooltip("s"),
+        )
     )
     _check_encodings(chart)
 
@@ -155,7 +169,7 @@ def test_chart_infer_types():
     chart = (
         alt.Chart(data)
         .mark_point()
-        .encode(alt.X("x"), alt.Y("y"), alt.Color("c"), alt.Size("s"))
+        .encode(alt.X("x"), alt.Y("y"), alt.Color("c"), alt.Size("s"), alt.Tooltip("s"))
     )
     _check_encodings(chart)
 
@@ -167,6 +181,7 @@ def test_chart_infer_types():
             alt.X("x", type="nominal"),
             alt.Y("y", type="ordinal"),
             alt.Size("s", type="nominal"),
+            alt.Tooltip("s", type="nominal"),
         )
     )
     dct = chart.to_dict()
@@ -174,6 +189,8 @@ def test_chart_infer_types():
     assert dct["encoding"]["y"]["type"] == "ordinal"
     assert dct["encoding"]["size"]["type"] == "nominal"
     assert "sort" not in dct["encoding"]["size"]
+    assert dct["encoding"]["tooltip"]["type"] == "nominal"
+    assert "sort" not in dct["encoding"]["tooltip"]
 
 
 @pytest.mark.parametrize(
diff --git a/tools/schemapi/tests/test_schemapi.py b/tools/schemapi/tests/test_schemapi.py
index 09667a6e..f8ad19c9 100644
--- a/tools/schemapi/tests/test_schemapi.py
+++ b/tools/schemapi/tests/test_schemapi.py
@@ -135,7 +135,7 @@ class Draft7Schema(_TestSchema):
 
 class Draft202012Schema(_TestSchema):
     _schema = {
-        "$schema": "http://json-schema.org/draft/2020-12/schema#",
+        "$schema": "https://json-schema.org/draft/2020-12/schema",
         "properties": {
             "e": {"items": [{"type": "string"}, {"type": "string"}]},
         },