Design server responses for "unexplainable" atoms.
Currently, explain/4 succeeds only if the atom to explain is true and an explanation can be constructed. For the first part this is intended: if the atom is false an "explanation why this is true" does not make sense. However, what is the desired server response in that case? It probably should not be a 500, since there is no server-side error as such. Maybe a 200 with no payload?
What about the second part? When no explanation can be constructed for a true atom this is indeed an error. However, this probably should only happen if the domain designer made a mistake (e.g., forgot an explanation template). So this is probably also no 500.
Both errors should be distinguishable by the client.