/*
    `custom` will :
    - be a starting refrence point for the bot instance to pull module definitions for

*/

use std::sync::Arc;

pub use crate::core::botinstance::BotInstance;
pub use crate::core::botmodules::ModulesManager;

// [ ] Load submodules

// mod experiments;
mod experimental;

// [ ] init() function that accepts bot instance - this is passed to init() on submodules

pub async fn init(mgr: Arc<ModulesManager>) {
    // Modules initializer loads modules into the bot
    // this is achieved by calling submodules that also have fn init() defined

    // experiments::init(mgr).await
    experimental::init(mgr).await;
}