code: func (c *Client) CreateMacro(ctx context.Context, macro *platform.Macro) error {
  	op := getOp(platform.OpCreateMacro)
  	return c.db.Update(func(tx *bolt.Tx) error {
  		macro.ID = c.IDGenerator.ID()
  		if pe := c.putMacro(ctx, tx, macro); pe != nil {
  			return &platform.Error{
  				Op:  op,
  				Err: pe,
  			}
  
  		}
  		return nil
  	})
  }
docs: // CreateMacro creates a new macro and assigns it an ID