fix assert and loading messages

cc @lancejpollard 

Adding the more useful messages to the loading ones.

And then making `assert` directly assigned since that's the only way to let it default to its more useful messages, instead of just always saying `Error: value`. The downside here is it's no longer chainable, but we decided to stop chaining so that breakpointing is easier anyways, so I think we're good?