Canvas rectangle shape with position, size, and optional styling.
@type t() :: %Plushie.Canvas.Shape.Rect{ fill: term(), fill_rule: String.t() | nil, h: number(), opacity: number() | nil, radius: number() | nil, stroke: term(), w: number(), x: number(), y: number() }