The rendering API/options will be different based on the type of layer. Should you have a PointWidget, LineStringWidget, PolygonWidget, and then have .get_fill_color as an autocompletion-able attribute on only the PolygonWidget? And have like create_widget(gdf) as a top-level API that creates the table and then switches to create one of the widgets?