code: func (bb *Builder) SignAt(ctx context.Context, signer *Signer, sigTime time.Time) (string, error) {
  	switch bb.Type() {
  	case "permanode", "claim":
  	default:
  		return "", fmt.Errorf("can't sign camliType %q", bb.Type())
  	}
  	if sigTime.IsZero() {
  		sigTime = time.Now()
  	}
  	bb.SetClaimDate(sigTime)
  	return signer.SignJSON(ctx, bb.SetSigner(signer.pubref).Blob().JSON(), sigTime)
  }
docs: // SignAt sets the blob builder's camliSigner field with SetSigner
  // and returns the signed JSON using the provided signer.
  // The provided sigTime is the time of the signature, used mostly
  // for planned permanodes. If the zero value, the current time is used.