object types

Ideallo supports 9 object types, all sharing a common set of base fields and inline style fields with type-specific extensions.

Base Fields

Every stored object has the following fields defined by StoredObjectBase:

Field Type Default Description
t ObjectTypeCode (required) Object type discriminant
xy [number, number] (required) Position [x, y] on the infinite canvas
r number 0 Rotation in degrees (omitted if 0)
pv [number, number] [0.5, 0.5] Pivot point normalized 0–1 (omitted if center)
lk true false Locked – only stored when true
sn true false Snapped – Smart Ink auto-detected as shape (only stored when true)

Inline Style Fields

Every stored object also includes inline style fields from StoredStyle:

Field Type Default Description
sc string 'n0' Stroke color (palette key or CSS color)
fc string 'transparent' Fill color (palette key or CSS color)
sw number 2 Stroke width in pixels
ss StrokeStyleCode 'S' (solid) Stroke style
op number 1 Opacity (0–1)

All style fields are optional – when omitted, the default value is used. Only non-default values are stored.

No global style system

Unlike Prezillo, Ideallo has no global style definitions or style inheritance. All style properties are stored inline on each object. This keeps the format simple and avoids the complexity of style cascading for a whiteboard use case.

Object Type Codes

Code Name Has Content Map Description
F Freehand paths Bezier path stored as SVG path string
R Rectangle Rectangle with optional corner radius
E Ellipse Ellipse/circle
L Line Two-point line
A Arrow Two-point arrow with configurable arrowheads
T Text txt Text label with rich text content
P Polygon geo Multi-vertex polygon (triangle, pentagon, etc.)
S Sticky txt Sticky note with rich text content
I Image Uploaded image

Per-Type Fields

Freehand (F)

Field Type Default Description
wh [number, number] (required) Bounding box [width, height] of the path
pid string Path content ID. If omitted, the object’s own ID is used as the key in the paths map. Set explicitly for linked copies
cl true false Closed path – only stored when true

The SVG path data (e.g., "M 0 0 C 10 5 20 10 30 15") is stored in the paths map, not on the object itself.

Rectangle (R)

Field Type Default Description
wh [number, number] (required) Dimensions [width, height]
cr number Corner radius (omitted if sharp corners)

Ellipse (E)

Field Type Default Description
wh [number, number] (required) Dimensions [width, height]

No additional fields beyond wh.

Line (L)

Field Type Default Description
pts [[number, number], [number, number]] (required) Start and end points as absolute canvas coordinates [[startX, startY], [endX, endY]]
Absolute coordinates

Unlike Prezillo where line points are relative to the bounding box, Ideallo stores line and arrow endpoints as absolute canvas coordinates.

Arrow (A)

Field Type Default Description
pts [[number, number], [number, number]] (required) Start and end points as absolute canvas coordinates [[startX, startY], [endX, endY]]
ah ArrowheadPosition 'E' (end) Where to draw arrowheads (omitted if end-only, the default)

Text (T)

Field Type Default Description
wh [number, number] (required) Dimensions [width, height]
tid string Text content ID. If omitted, the object’s own ID is used as the key in the txt map. Set explicitly for linked copies
ff string Font family override
fz number Font size override

Rich text content is stored as a Y.Text entry in the txt map (keyed by the object’s own ID or the tid value), using Quill Delta format. See Document Structure > Text Content.

Polygon (P)

Field Type Default Description
gid string Geometry content ID. If omitted, the object’s own ID is used as the key in the geo map. Set explicitly for linked copies

Vertices are stored in the geo map as a flat Y.Array<number> of interleaved coordinate pairs: [x1, y1, x2, y2, ...].

Sticky (S)

Field Type Default Description
wh [number, number] (required) Dimensions [width, height]
tid string Text content ID. If omitted, the object’s own ID is used as the key in the txt map. Set explicitly for linked copies

Sticky notes use the standard fc (fill color) field for their background color and store rich text content in the txt map, identical to Text objects.

Image (I)

Field Type Default Description
wh [number, number] (required) Dimensions [width, height]
fid string (required) File ID from the Cloudillo media/file system

Supporting Types

StrokeStyleCode

Code Name
S Solid
D Dashed
T Dotted

ArrowheadPosition

Code Name Description
S Start Arrowhead at the start point only
E End Arrowhead at the end point only (default)
B Both Arrowheads at both start and end