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 |