code: func (b *Blob) AsShare() (s Share, ok bool) {
  	c, isClaim := b.AsClaim()
  	if !isClaim {
  		return
  	}
  
  	if ClaimType(b.ss.ClaimType) == ShareClaim && b.ss.AuthType == ShareHaveRef && (b.ss.Target.Valid() || b.ss.Search != nil) {
  		return Share{c}, true
  	}
  	return s, false
  }
docs: // AsShare returns a Share if the receiver Blob has all the required fields.