/// Generated NAPI bridge for the `{{ trait_name }}` contract.
///
/// Wraps a JavaScript callable (async) via ThreadsafeFunction
/// so it can be used as `Arc<dyn {{ trait_name }}>` from Rust async code.
pub struct {{ bridge_name }} {
    handler_fn: ThreadsafeFunction<serde_json::Value, serde_json::Value>,
}

impl {{ bridge_name }} {
    /// Create a bridge from a JavaScript callable.
    pub fn new(handler_fn: ThreadsafeFunction<serde_json::Value, serde_json::Value>) -> Self {
        Self { handler_fn }
    }
}

// SAFETY: ThreadsafeFunction is Send+Sync. We call it only from async contexts
// where the NAPI env is valid (within the async task spawned by call_async).
unsafe impl Send for {{ bridge_name }} {}
unsafe impl Sync for {{ bridge_name }} {}
