"""Example ``visualizations.py`` module that every app can provide.

When the Visualization Engine starts, it auto-discovers ``visualizations.py``
modules from every installed app.  These modules register entity-specific
view configurations, chart definitions, and dashboard layouts so the
platform can render them without any coupling to the source module.

Example usage in your app's ``visualizations.py``::

    from simorgh.apps.visualization.contracts import (
        register_view_type,
        register_chart_type,
        register_widget_type,
    )
    from simorgh.apps.visualization.registry import (
        ChartTypeSpec,
        ViewTypeSpec,
        WidgetTypeSpec,
    )

    # Register a custom view type
    register_view_type(ViewTypeSpec(
        kind="map",
        label_key="myapp.view_types.map",
        description="Geographic map view",
        icon="map-pin",
    ))

    # Register a custom chart type
    register_chart_type(ChartTypeSpec(
        kind="bubble",
        label_key="myapp.chart_types.bubble",
        description="Bubble chart",
    ))

    # Register a custom dashboard widget
    register_widget_type(WidgetTypeSpec(
        name="my-metric-widget",
        kind="kpi",
        label_key="myapp.widgets.my_metric",
        description="Custom KPI widget for MyApp",
        module="myapp",
        default_cols=1,
    ))

Custom view types are only needed when the built-in types (list, board, kanban,
calendar, timeline, tree, org_chart, chart, dashboard) are insufficient.
"""

# This file is intentionally mostly empty — the real registrations happen in
# each app's own visualizations.py module via autodiscover.
