struct Piece
    name::Symbol
    char::Char
    icon_symbol::String
    icon_color::String
    icon_size::Integer
    icon_offset::Tuple{<:Integer, <:Integer}
    icon_file::Union{Nothing,String}
    function Piece(
        name,
        char;
        icon_symbol=char,
        icon_color="#333",
        icon_size=20,
        icon_offset=(0,0),
        icon_file=nothing)
        new(
            name,
            char[1],
            icon_symbol,
            icon_color,
            icon_size,
            icon_offset,
            icon_file,
        )
    end
end

plaintext(x::Piece) = string(x.char)