Canvas text shape with position, content, and optional font styling.
@type t() :: %Plushie.Canvas.Shape.CanvasText{ align_x: String.t() | nil, align_y: String.t() | nil, content: String.t(), fill: term(), font: String.t() | nil, opacity: number() | nil, size: number() | nil, x: number(), y: number() }