object types

Prezillo supports 14 object types, all sharing a common set of base 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
p string Parent ContainerId (omitted if root-level)
vi string ViewId — if set, xy is relative to this view’s origin
proto string Prototype ObjectId — inherit properties from this object
xy [number, number] (required) Position [x, y] — global canvas coords or view-relative if vi is set
wh [number, number] (required) Dimensions [width, height]
r number 0 Rotation in degrees (omitted if 0)
pv [number, number] [0.5, 0.5] Pivot point relative (0–1), center is default
o number 1 Opacity (0–1, omitted if 1)
v false true Visible — only stored when false
k true false Locked — only stored when true
hid true false Hidden — visible in editor at 50% opacity, invisible in presentation mode
n string User-assigned name
si string Shape StyleId reference
ti string Text StyleId reference
s ShapeStyle Inline shape style overrides (applied on top of si chain)
ts TextStyle Inline text style overrides (applied on top of ti chain)

Object Type Codes

Code Name Description
R Rect Rectangle with optional corner radius
E Ellipse Ellipse/circle
L Line Two-point line with optional arrows
P Path Freeform SVG path
G Polygon Multi-point polygon or polyline
T Text Rich text box
I Image Uploaded image
M Embed Embedded media (iframe, video, audio)
C Connector Object-to-object connector with routing
Q QR Code QR code generator
F Poll Frame Interactive voting element
Tg Table Grid Visual grid layout with snap points
S Symbol Reference to symbol library
V State Variable Displays dynamic runtime values

Per-Type Fields

Rect (R)

Field Type Default Description
cr number | [number, number, number, number] Corner radius — single value for uniform, or [topLeft, topRight, bottomRight, bottomLeft]

Ellipse (E)

No additional fields beyond the base.

Line (L)

Field Type Default Description
pts [[number, number], [number, number]] (required) Start and end points relative to bounding box
sa ArrowDef Start arrow
ea ArrowDef End arrow

Path (P)

Field Type Default Description
d string (required) SVG path data (M, L, C, Z commands, etc.)

Polygon (G)

Field Type Default Description
pts [number, number][] (required) Array of points
cl boolean Closed polygon (if true, last point connects to first)

Text (T)

Field Type Default Description
tx string Legacy plain text (migrated to rt map on load)
mh number Minimum height — original height at creation for auto-sizing

Rich text content is stored as a Y.Text entry in the rt map (keyed by the same ObjectId), using Quill Delta format. See Document Structure > Rich Text Storage.

Image (I)

Field Type Default Description
fid string (required) File ID from the Cloudillo media/file system

Embed (M)

Field Type Default Description
mt 'iframe' | 'video' | 'audio' (required) Media type
src string (required) Source URL

Connector (C)

Field Type Default Description
so_ string Start ObjectId (uses so_ to avoid conflict with style override s.o)
sa AnchorPoint Start anchor point
eo string End ObjectId
ea AnchorPoint End anchor point
wp [number, number][] Waypoints for manual routing
rt RoutingCode Routing algorithm
sar ArrowDef Start arrow
ear ArrowDef End arrow

QR Code (Q)

Field Type Default Description
url string (required) URL to encode
ecl QrErrorCorrectionLevel 'M' Error correction level
fg string '#000000' Foreground color (hex)
bg string '#ffffff' Background color (hex)

Poll Frame (F)

Field Type Default Description
sh 'R' | 'E' 'R' Frame shape: R=rectangle, E=ellipse
lb string Label text to display on the frame

Table Grid (Tg)

Field Type Default Description
c number (required) Column count
rw number (required) Row count
cw number[] Column widths as proportions (0–1, equal if omitted)
rh number[] Row heights as proportions (0–1, equal if omitted)

Border styling uses the inherited ShapeStyle (s field) for line color and thickness.

Symbol (S)

Field Type Default Description
sid string (required) Symbol ID — reference to the symbol library

State Variable (V)

Field Type Default Description
var StateVarTypeCode (required) Which variable to display

Currently defined state variable type codes:

Code Name Description
u Users Displays connected user information

Supporting Types

BlendModeCode

Code CSS Equivalent Description
N normal Normal (default)
M multiply Multiply
S screen Screen
O overlay Overlay
D darken Darken
L lighten Lighten
CD color-dodge Color dodge
CB color-burn Color burn
HL hard-light Hard light
SL soft-light Soft light
DF difference Difference
EX exclusion Exclusion

ArrowTypeCode

Code Name
N None
A Arrow (open)
T Triangle (filled)
C Circle
D Diamond
B Bar

ArrowDef

A tuple defining an arrow marker:

type ArrowDef = [ArrowTypeCode, number?, boolean?]
//               ^              ^        ^
//               |              |        └── filled (default: depends on type)
//               |              └── size multiplier (default: 1)
//               └── arrow type code

AnchorPoint

An anchor point can be a named code or a relative position:

type AnchorPoint = AnchorPointCode | [number, number]
Code Position
c Center
t Top center
b Bottom center
l Left center
r Right center
tl Top left
tr Top right
bl Bottom left
br Bottom right
a Auto (closest point)

When specified as [number, number], values are relative positions (0–1) within the object’s bounding box.

RoutingCode

Code Name Description
S Straight Direct line between anchors
O Orthogonal Axis-aligned segments with right-angle turns
C Curved Smooth Bezier curve

QrErrorCorrectionLevel

Code Recovery Capacity
L ~7%
M ~15% (default)
Q ~25%
H ~30%