code: func (c *Connector) Scan(ctx context.Context, ei *dosa.EntityInfo, minimumFields []string, token string, limit int) ([]map[string]dosa.FieldValue, string, error) {
  	limit32 := int32(limit)
  	rpcMinimumFields := makeRPCminimumFields(minimumFields)
  	scanRequest := dosarpc.ScanRequest{
  		Ref:          entityInfoToSchemaRef(ei),
  		Token:        &token,
  		Limit:        &limit32,
  		FieldsToRead: rpcMinimumFields,
  	}
  	response, err := c.client.Scan(ctx, &scanRequest, getHeaders(c.headers)...)
  	if err != nil {
  		if !dosarpc.Dosa_Scan_Helper.IsException(err) {
  			return nil, "", errors.Wrap(err, "failed to Scan due to network issue")
  		}
  
  		return nil, "", errors.Wrap(err, "failed to Scan")
  	}
  	results := make([]map[string]dosa.FieldValue, len(response.Entities))
  	for idx, entity := range response.Entities {
  		results[idx] = decodeResults(ei, entity)
  	}
  	return results, *response.NextToken, nil
  }
docs: // Scan marshals a scan request into YARPC