A design applied to its data (spec/14 §7.3, §14.10).
Visualize.Chart.apply/2 is the only constructor: chart is the concrete
%Visualize.Chart{} — no variable anywhere in it, vars empty, the slot declarations
kept as the data contract; sources are the bound sources by slot name, each as the
pool gave it; frame is the %Visualize.Chart.Frame{} realised over them, whose
Visualize.Chart.Frame.scales/1 is the escape hatch. Visualize.Chart.render/2 draws
it. The struct has no map or JSON form: it holds the data the design was applied to,
and a design, its fragments and a binding are what is stored (D-65).
Summary
Types
@type t() :: %Visualize.Chart.Applied{ chart: Visualize.Chart.t(), frame: Visualize.Chart.Frame.t(), frames: %{required(atom()) => Visualize.Chart.Frame.t()}, sources: %{required(atom()) => term()} }