@type t() :: term()
@spec cast( struct(), map() ) :: struct() | boolean()
@spec get_image(struct(), String.t(), PlugImageProcessing.Config.t()) :: {:ok, PlugImageProcessing.image(), String.t() | nil, String.t()} | {:error, atom()} | {:redirect, String.t()}