use std::path::PathBuf;
use crate::Object;
pub trait Context {
fn create_object(&mut self, object_name: String, script_path: Option<PathBuf>, parent_object: Option<&dyn Object>) -> Option<&dyn Object>;
fn remove_object(&mut self, object: &dyn Object) -> bool;
fn set_object_script(&mut self, object: &dyn Object, script_path: Option<PathBuf>) -> bool;
fn move_object_to_parent(&mut self, child_object: &dyn Object, new_parent: Option<&dyn Object>) -> bool;
fn get_object(&self, object_path: &str) -> Option<&dyn Object>;
fn add_component(&mut self, object: &dyn Object, component: Box<dyn crate::ComponentData>);
fn log(&self, msg: &str);
}