namespace WeaveLoader.API;
///
/// The main interface all WeaveLoader mods must implement.
/// Default interface methods allow mods to only override what they need.
///
public interface IMod
{
///
/// Called before vanilla registries are populated.
/// Use for very early setup that must happen before any game content loads.
///
void OnPreInit() { }
///
/// Called after vanilla registries are populated.
/// This is the main initialization point -- register your blocks, items,
/// entities, recipes, and event handlers here.
///
void OnInitialize();
///
/// Called after the game client has finished its own initialization.
/// Use for client-side setup like custom renderers or UI.
///
void OnPostInitialize() { }
///
/// Called once per game tick (20 times per second).
/// Use for ongoing mod logic.
///
void OnTick() { }
///
/// Called when the game is shutting down.
/// Use for cleanup and saving mod state.
///
void OnShutdown() { }
}