code: protected function buildFile(array $data): FileInterface
      {
          if (isset($data['uploadFrom'])) {
              return new LocalUploadFile(
                  $data['fileName'],
                  $data['contentType'],
                  new Link(
                      $data['uploadFrom']['sys']['id'],
                      $data['uploadFrom']['sys']['linkType']
                  )
              );
          }
  
          if (isset($data['upload'])) {
              return new RemoteUploadFile(
                  $data['fileName'],
                  $data['contentType'],
                  $data['upload']
              );
          }
  
          if (isset($data['details']['image'])) {
              return new ImageFile(
                  $data['fileName'],
                  $data['contentType'],
                  $data['url'],
                  $data['details']['size'],
                  $data['details']['image']['width'],
                  $data['details']['image']['height']
              );
          }
  
          return new File(
              $data['fileName'],
              $data['contentType'],
              $data['url'],
              $data['details']['size']
          );
      }
docs: Creates a File or a subclass thereof.
  
  @param array $data
  
  @return FileInterface