This commit also implements a custom error type to capture why a World/Board failed to load -- which I might end up tearing out.