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% |