An incoming email gets processed and saved to the database

An incoming email comes into `EmailProcessor`
`EmailProcessor` passes the email to `PackageGenerator`, and call `.generate`
`PackageGenerator` uses the `EmailAdapter` to clean up the data, and passes it to `Package` where it creates a new `Package` object, returning it to `EmailProcessor`.
Back in `EmailProcessor` it is saved in the database.

WOW!
I like `null: true`, personally - it lets other people know that I'm aware of the `null` possibility, and that it was intentional. Here, I think it's a better idea to use empty strings as the default.

Here's why:

* `.present?` will still return false for an empty string
* You can pass the value to methods that expect a string and they will still work, instead of crashing on the `nil`. An empty string is a little like a null object for strings - it's still a string, just an empty one.

Using empty strings instead of `nil` is usually a much better idea because then you don't have to worry about types - it's always Just A String.