If I recall correctly, one major catch is that wl_shell has been feature-frozen since 2012 and lacks newfangled features like the ability to minimize windows. For newer functionality you need to use xdg-shell instead, which regularly changes in backwards-incompatible ways and there's no guarantee the version your application implements (or any version of it) will actually be available.