VCR:
        use s.vcr.damaged, s.vcr.shield, s.vcr.captured

Hullfuncs:
        handle automatic assignment of PlanetImmunity to SSDs

UI:
        let's invent some general "this widget is disabled" mechanism. So far,
        there are only very few different things that can be disabled:
        - buttons (largest population), currently disabled by using black
          instead of blue text
        - scroll bars, disabled by disabling the buttons and omitting the
          scroll box, or by hiding the scrollbar completely
        - base defense build thing, disabled by fading/blurring
        - empty result list in search
        - unselectable list items, disabled by using a different color
        Fading buttons actually doesn't look too bad. Disabled scrollbars should
        ultimately always be hidden. For list items, fading is hard to
        differentiate from color-keying; some lists have items of that color
        that can be selected. Maybe blurring?

UTF-8:
        SDL_GetError has an unspecified encoding. It is sometimes fed
        from strerror (e.g. DSP_OpenAudio), which means it comes from
        the system encoding; sometimes from user strings
        (SDL_RWFromFile), which means it is in UTF-8.

General:
        the GObjectType interface doesn't adapt well to handling fleets, which
        can disappear completely.
        - example: make one fleet, open console, "eval 'fleet$:=0','ui.popupconsole'"
