pub type Canvas { Canvas(nodes: List(Node), edges: List(Edge)) }
Canvas(nodes: List(Node), edges: List(Edge))
pub fn decode_canvas( dyn: Dynamic, ) -> Result(Canvas, List(DecodeError))