Icon for visual identification of tools, resources, prompts, etc.
@type t() :: %MCP.Protocol.Types.Icon{ mime_type: String.t() | nil, sizes: [String.t()] | nil, src: String.t(), theme: String.t() | nil }
@spec from_map(map()) :: t()