Plugin ====== A **plugin** is the unit of configurable, swappable behavior in IceGraph. Every point at which the framework offers a choice is expressed as a plugin: the normalizer, the loss function, the model, each service, the policy, and each stage of the data pipeline are all plugins. They share one identity model, one configuration contract, and one lifecycle. Identity -------- Every plugin declares two class-level attributes: * ``name`` is the identifier used to select the plugin from configuration. Lookups are case-insensitive. * ``version`` is an integer revision used to record which implementation produced a stored artifact or checkpoint. Configuration ------------- Plugins are selected and configured through a uniform slot in the YAML config: .. code-block:: yaml : name: kwargs: {