# tkpg/__init__.py
from . import core

def load_plugins():
    """
    Load plugin modules in tkpg package.
    Each plugin module must expose PLUGIN dict.
    """
    import pkgutil
    import importlib

    plugins = []
    seen = set()

    pkg_name = __name__
    pkg = importlib.import_module(pkg_name)

    for m in pkgutil.iter_modules(pkg.__path__):
        name = m.name
        if name in ("core", "__init__"):
            continue
        mod = importlib.import_module(f"{pkg_name}.{name}")
        if hasattr(mod, "PLUGIN"):
            p = mod.PLUGIN
            if not isinstance(p, dict) or "name" not in p:
                continue
            # avoid duplicates by name
            if p["name"] in seen:
                continue
            seen.add(p["name"])
            plugins.append(p)

    return plugins
