text: Title: ArcLayer example fails
  Body: ## Context
  
  What results were you expecting? <br/>
  ArcLayer example fails due to lack of geometry data in `pyarrow` table when running the `U.S. County-to-County Migration` python example. 
  
  ## Resulting behaviour, error message or logs
  
  The example works perfectly all the way up to the creation of the `ArcLayer` object layer for the map generation. 
  Log:
  
  ```python
  
  ---------------------------------------------------------------------------
  TraitError                                Traceback (most recent call last)
  Cell In[13], line 6
        1 # value = np.array([arc["value"] for arc in arcs])
        2 # get_source_position = np.array([arc["source"] for arc in arcs])
        3 # get_target_position = np.array([arc["target"] for arc in arcs])
        4 # table = pa.table({"value": value})
  ----> 6 arc_layer = ArcLayer(
        7     table=table,
        8     get_source_position=get_source_position,
        9     get_target_position=get_target_position,
       10     get_source_color=SOURCE_COLOR,
       11     get_target_color=TARGET_COLOR,
       12     get_width=1,
       13     opacity=0.4,
       14     pickable=False,
       15     extensions=[brushing_extension],
       16     brushing_radius=brushing_radius,
       17 )
  
  File [~/python3.10/site-packages/lonboard/_layer.py:359](http://localhost:8888/lab/tree/~/python3.10/site-packages/lonboard/_layer.py#line=358), in BaseArrowLayer.__init__(self, table, _rows_per_chunk, **kwargs)
      355 self._rows_per_chunk = rows_per_chunk
      357 table_o3 = table_o3.rechunk(max_chunksize=rows_per_chunk)
  --> 359 super().__init__(table=table_o3, **kwargs)
  
  File [~/python3.10/site-packages/lonboard/_layer.py:95](http://localhost:8888/lab/tree/~/python3.10/site-packages/lonboard/_layer.py#line=94), in BaseLayer.__init__(self, extensions, **kwargs)
       88 def __init__(self, *, extensions: Sequence[BaseExtension] = (), **kwargs):
       89     # We allow layer extensions to dynamically inject properties onto the layer
       90     # widgets where the layer is defined. We wish to allow extensions and their
       91     # properties to be passed in the layer constructor. _However_, if
       93     extension_kwargs = remove_extension_kwargs(extensions, kwargs)
  ---> 95     super().__init__(extensions=extensions, **kwargs)
       97     # Dynamically set layer traits from extensions after calling __init__
       98     self._add_extension_traits(extensions)
  
  File [~/python3.10/site-packages/lonboard/_base.py:25](http://localhost:8888/lab/tree/~/python3.10/site-packages/lonboard/_base.py#line=24), in BaseWidget.__init__(self, **kwargs)
       22     if provided_trait_name not in layer_trait_names:
       23         raise TypeError(msg.format(provided_trait_name=provided_trait_name))
  ---> 25 super().__init__(**kwargs)
  
  File [~/python3.10/site-packages/ipywidgets/widgets/widget.py:503](http://localhost:8888/lab/tree/~/python3.10/site-packages/ipywidgets/widgets/widget.py#line=502), in Widget.__init__(self, **kwargs)
      501 """Public constructor"""
      502 self._model_id = kwargs.pop('model_id', None)
  --> 503 super().__init__(**kwargs)
      505 Widget._call_widget_constructed(self)
      506 self.open()
  
  File [~/python3.10/site-packages/traitlets/traitlets.py:1355](http://localhost:8888/lab/tree/~/python3.10/site-packages/traitlets/traitlets.py#line=1354), in HasTraits.__init__(self, *args, **kwargs)
     1353 for key, value in kwargs.items():
     1354     if self.has_trait(key):
  -> 1355         setattr(self, key, value)
     1356         changes[key] = Bunch(
     1357             name=key,
     1358             old=None,
     (...)
     1361             type="change",
     1362         )
     1363     else:
     1364         # passthrough args that don't set traits to super
  
  File [~/python3.10/site-packages/traitlets/traitlets.py:716](http://localhost:8888/lab/tree/~/python3.10/site-packages/traitlets/traitlets.py#line=715), in TraitType.__set__(self, obj, value)
      714 if self.read_only:
      715     raise TraitError('The "%s" trait is read-only.' % self.name)
  --> 716 self.set(obj, value)
  
  File [~/python3.10/site-packages/traitlets/traitlets.py:690](http://localhost:8888/lab/tree/~/python3.10/site-packages/traitlets/traitlets.py#line=689), in TraitType.set(self, obj, value)
      689 def set(self, obj: HasTraits, value: S) -> None:
  --> 690     new_value = self._validate(obj, value)
      691     assert self.name is not None
      692     try:
  
  File [~/python3.10/site-packages/traitlets/traitlets.py:722](http://localhost:8888/lab/tree/~/python3.10/site-packages/traitlets/traitlets.py#line=721), in TraitType._validate(self, obj, value)
      720     return value
      721 if hasattr(self, "validate"):
  --> 722     value = self.validate(obj, value)
      723 if obj._cross_validation_lock is False:
      724     value = self._cross_validate(obj, value)
  
  File [~/python3.10/site-packages/lonboard/traits.py:204](http://localhost:8888/lab/tree/~/python3.10/site-packages/lonboard/traits.py#line=203), in ArrowTableTrait.validate(self, obj, value)
      201 geom_col_idx = get_geometry_column_index(value.schema)
      203 if geom_col_idx is None:
  --> 204     return self.error(obj, value, info="geometry column in table")
      206 # No restriction on the allowed geometry types in this table
      207 if allowed_geometry_types:
  
  File [~/python3.10/site-packages/lonboard/traits.py:153](http://localhost:8888/lab/tree/~/python3.10/site-packages/lonboard/traits.py#line=152), in FixedErrorTraitType.error(self, obj, value, error, info)
      145 else:
      146     e = "The '{}' trait expected {}, not {}.".format(
      147         self.name,
      148         # CHANGED:
     (...)
      151         describe("the", value),
      152     )
  --> 153 raise TraitError(e)
  
  TraitError: The 'table' trait of an ArcLayer instance expected geometry column in table, not the Table arro3.core.Table
  -----------
  value: Int64
  
  
  ```
  
  
  
  ## Environment
  
  - OS: mac os 14.5, python venv Python 3.10.14
  - Browser:Chrome
  - Lonboard Version: 0.10.4
  - geoarrow-c==0.1.2
  - geoarrow-pandas==0.1.1
  - geoarrow-pyarrow==0.1.2
  - geoarrow-rust==0.1.0
  - geoarrow-rust-compute==0.3.0
  - geoarrow-rust-core==0.4.0b3
  - geoarrow-rust-io==0.3.0
  - pyarrow==19.0.0
  
  ## Steps to reproduce the bug
  
  Describe the actions that led you to encounter the bug. Example:
  
  1. Run the `U.S. County-to-County Migration` jupyter notebook example ( https://github.com/developmentseed/lonboard/blob/main/examples/migration.ipynb ) 
  
  
  Thank you for all the great work and effort put into this library and the geo* libraries too! 
  
  Have a good day. 