interface Drawing {
    createdAt?: number;
    id: string;
    locked?: boolean;
    paneIndex: number;
    points: DrawingPoint[];
    props?: Record<string, unknown>;
    style: DrawingStyle;
    text?: DrawingText;
    tool: string;
    visible?: boolean;
    zIndex: number;
}

Properties

createdAt?: number

Epoch ms, set by the controller when the drawing is added.

id: string
locked?: boolean

Locked drawings render but cannot be selected or dragged.

paneIndex: number
points: DrawingPoint[]
props?: Record<string, unknown>

Per-tool extras that do not belong on every drawing (a table's cells, a callout's tail side). Keeps the base shape closed while a tool stays free to carry what it needs. Must be JSON-safe: it is persisted verbatim.

The label (or, for the text tool, the whole content).

tool: string

Registered tool id.

visible?: boolean

Default true.

zIndex: number

Paint order. Below zero paints under the series, at or above zero paints over it. Ties break by array order, so two drawings at 0 paint in the order they sit in the list.