# Plugin API

### Plugin descriptor

Every plugin has its descriptor. A plugin descriptor is an instance of `Plugin::Descriptor` which contains some information like name, author, type, supported file types and sub-plugin feature.

### Sub-plugins

The `subPluginFeatures` field of a plugin descriptor is optional. If a plugin defines this field, the `Plugin::Descriptor::SubPluginFeatures` object handles listing and querying its sub-plugins.

Please see [Sub-plugin API](https://docs.lmms.io/developer-guides/plugin-system/untitled/sub-plugin-api) page for details of `Plugin::Descriptor::SubPluginFeatures`.
