internal func scale(to maxDimension: CGFloat) -> Future<CapturedImage, Never> {
        return Future { promise in
            self.serialQueue.async {
                self.scaledImage = self.fullImage.scaledImage(withMaxDimension: maxDimension)
                promise(.success(self))