Create canvas element
Add one element to a board — a sticky, text, shape, image, codeBlock, frame, swimlane, connector, or metric. Use when placing a new object; to attach a connector so it re-routes when shapes move, set each endpoint to an existing element id with an anchor (n/s/e/w) — free-form points stay fixed and never follow a move, so use them only for unattached lines. Provide `type` and geometry; the server mints the element id and returns it, and every other element on the board is untouched. Fields are flat, never nested under `element`, and `id` is the board. Send only the fields of that type: sticky and text take `content`; shape takes `shape` and `content`; image takes `src`; codeBlock takes `code` and `language`; frame takes `name` and an optional `metricWindow`; metric takes `report` (insights:<id> or funnels:<id>, a saved analytics report), optional `step`, `title` and `window` ({ from, to } like today-28d / now) and renders that report's live value; connector takes `from` and `to` as `{ element, anchor }` or `{ point: { x, y } }`, with `x`,`y`,`w`,`h` all 0. Coordinates: board units, top-left origin, +x right / +y down — pass `x`,`y` (the element's top-left corner) with `w`,`h`. Example: create_canvas_element({ id: "<boardId>", type: "sticky", x: 100, y: 80, w: 160, h: 120, content: "Idea" }).