A reusable OpenGraph design — canvas + ordered elements with variable bindings. Persisted as JSONB so the structure can evolve (new element types) without a schema change.
See AGENTS.md → "Canvas JSON shape" for the shape contract.
Summary
Types
@type t() :: %PhoenixKitOG.Schemas.Template{ __meta__: term(), canvas: map(), description: String.t() | nil, inserted_at: DateTime.t() | nil, name: String.t() | nil, preview_image_uuid: binary() | nil, updated_at: DateTime.t() | nil, uuid: binary() | nil }