I'd think a library implementation as requirement for merge isn't a terrible idea.
E.g. "you want your NIP merged?" "Extend nostr-tools lib and mark your the implementation under `expermental`". A timesaver for developers to just care about the doc strings.