An interesting dynamic in nostr development is the lack of validation. Someone is going to throw weird events out into the network — if you have to code defensively against those cases, why validate your own events?
In a way, this makes things a lot easier, since data corruption is a given — it becomes part of your data model, forcing you to create a more robust representation than you would if you assumed everything was clean.