pub fn new(
        name: &str,
        functional_actions_registrar: impl Fn(FunctionalPluginActions) -> FunctionalPluginActions
            + 'static,
        control_actions_registrar: impl Fn(ControlPluginActions) -> ControlPluginActions + 'static,
        env: PluginEnv,
    ) -> Self {
        Self {
            name: name.to_string(),
            functional_actions_registrar: Box::new(functional_actions_registrar),
            control_actions_registrar: Box::new(control_actions_registrar),
            env,
            plugin_data_type: PhantomData::default(),
        }
    }
Creates a new plugin with a name, functional actions, control actions,
and whether or not the plugin is tinker-only.
packages/perseus/src/plugins/plugin.rs