In the EAR reference code, the screen is always present, but set to some default dimensions if not specified.
Handling the case where there is no screen (and skipping screen-related processing) might be desirable, but is non-standard -- should we get rid of the boost::optional wrapper (changing the API), or just set it to a default value and complain if it's reset to boost::none by the user?