import() works with CommonJS and ESM modules, so we don't need two different code paths.
Plugins must now provide an `info` export which includes their ID, name, and a description (I'm flexible on the last two). The ID is used for the API route--all plugin-registered API routes will be accessed through `plugins/[plugin ID]`.