@Colton Idle
The requirement to crash in internal builds but not in production is misguided and will cause you pain.
Not crashing on unexpected nulls means that production will exercise a potentially very different code path than what you're testing. For example, suppose your code echoes a null back to the server in a save() call. What will that do? Does it fail silently? Delete the corresponding field? Replace null with a default?
You won't find out in development, and you'll be really confused why you can't reproduce these data corruption bugs.