How do you write Ecto schema typespecs with nullable fields?

I like this approach, and your struct_t resembles my idea of a schema_t type, though with less enforcement. Thank you.

I agree. I once wrote a typed_schema macro myself, but it started to feel like it was adding unnecessary complexity and non-standard conventions on top of Ecto, so I went back to manually crafted typespecs.