I freaking love the Builder software design pattern. When paired with protocols and inheritance, it’s the perfect combo to provide a flexible, easy-to-use framework for building Nostr events, especially when it’s an event kind that shares common tags with other event kinds. Custom emoji tags is a good example that is used across at least three event kinds. This approach has solved a long-standing gripe I’ve had with how rigidly Nostr SDK for Apple Platforms handled event creation. https://github.com/nostr-sdk/nostr-sdk-ios/pull/175
It's nice indeed. I will be copying your SDK patterns on Kotlin :)