pub trait Scriptable {
// Provided methods
fn from_scriptable(_data: &ScriptableValue) -> Result<Self, ScriptableError>
where Self: Sized { ... }
fn to_scriptable(&self) -> Result<ScriptableValue, ScriptableError> { ... }
fn from_js(js: JsValue) -> Result<Self, ScriptableError>
where Self: Sized { ... }
fn to_js(&self) -> Result<JsValue, ScriptableError> { ... }
}