func (c *Client) ParseManaCost(ctx context.Context, cost string) (ManaCost, error) {
	values := url.Values{}
	values.Set("cost", cost)
	parseManaURL := fmt.Sprintf("symbology/parse-mana?%s", values.Encode())
	manaCost := ManaCost{}
	err := c.get(ctx, parseManaURL, &manaCost)
	if err != nil {
		return ManaCost{}, err
	}
	return manaCost, nil
}
ParseManaCost parses a string mana cost and returns Scryfall's interpretation.

The server understands most community shorthand for mana costs (such as 2WW
for {2}{W}{W}). Symbols can also be out of order, lowercase, or have multiple
colorless costs (such as 2{g}2 for {4}{G}).
package scryfall
import (
	"context"
	"fmt"
	"net/url"
)
type CardSymbol struct {
	Symbol string `json:"symbol"`
	LooseVariant *string `json:"loose_variant"`
	English string `json:"english"`
	Transposable bool `json:"transposable"`
	RepresentsMana bool `json:"represents_mana"`
	CMC float64 `json:"cmc"`
	AppearsInManaCosts bool `json:"appears_in_mana_costs"`
	Funny bool `json:"funny"`
	Colors []Color `json:"colors"`
}
type ManaCost struct {
	Cost string `json:"cost"`
	CMC float64 `json:"cmc"`
	Colors []Color `json:"colors"`
	Colorless bool `json:"colorless"`
	Monocolored bool `json:"monocolored"`
	Multicolored bool `json:"multicolored"`
}
func (c *Client) ListCardSymbols(ctx context.Context) ([]CardSymbol, error) {
	symbols := []CardSymbol{}
	err := c.listGet(ctx, "symbology", &symbols)
	if err != nil {
		return nil, err
	}
	return symbols, nil
}