this type is rpc-serializable, and we avoid repeated color conversion
preparation for more refactoring