Sounds similar to what I’m doing with the storage part. I store the serialized JSON of the Nostr event (and use a value transformer to get the deserialized object) and which relays the event was found into a single model. Then I map those to specific event kind classes on app launch.