Runtime additionally enforces updatedAt >= createdAt, row ID uniqueness within each note, resolved attachment references and their exact manifest union, UTF-16 scalar boundaries and link consistency, and the 512 KiB payload limit. ID and title live in the manifest. Both ordered saved rows and a nullable rich-text document are preserved; this is not an encrypted native vault or an Android import format.
Top Level
| Member | Type | Rules |
|---|---|---|
recordVersion required | 1 | |
template required | one of "Domestic", "International", "Custom" | |
iconId required | one of "checklist", "domestic", "international", "work", "study", "family", "appointment", "folder", "paper", "passport", "identity", "receipt", "shield" | |
createdAt required | timestamp | |
updatedAt required | timestamp | |
automaticTitle required | boolean | |
items required | array of item | max items 80 |
document required | null or document |
Definitions
id
string · pattern ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
mark
| Member | Type | Rules |
|---|---|---|
start required | integer | min 0; max 32768 |
end required | integer | min 1; max 32768 |
style required | one of 1, 2 |
paperLink
| Member | Type | Rules |
|---|---|---|
start required | integer | min 0; max 32768 |
end required | integer | min 1; max 32768 |
paperId required | id |
document
Runtime additionally enforces UTF-16 length and scalar boundaries, start < end <= text length, nonoverlapping link ranges, in-archive Paper resolution, exact manifest Paper references, byte limits and no unknown fields. Bold/italic marks may overlap and are preserved in order. This content profile does not encode saved checklist items or internal vault metadata.
| Member | Type | Rules |
|---|---|---|
noteVersion required | 1 | |
text required | string | max length 32768; max UTF-16 units 32768; pattern ^[^\u0000-\u0008\u000b-\u001f\u007f-\u009f\ud800-\udfff]*$ |
marks required | array of mark | max items 2048 |
paperIds required | array of id | max items 100; unique |
paperLinks required | array of paperLink | max items 640 |
label
string · min length 1; max length 160
timestamp
string · min length 1; max length 19; pattern ^(?:0|[1-9][0-9]{0,17}|[1-8][0-9]{18}|9[0-1][0-9]{17}|92[0-1][0-9]{16}|922[0-2][0-9]{15}|9223[0-2][0-9]{14}|92233[0-6][0-9]{13}|922337[0-1][0-9]{12}|92233720[0-2][0-9]{10}|922337203[0-5][0-9]{9}|9223372036[0-7][0-9]{8}|92233720368[0-4][0-9]{7}|922337203685[0-3][0-9]{6}|9223372036854[0-6][0-9]{5}|92233720368547[0-6][0-9]{4}|922337203685477[0-4][0-9]{3}|9223372036854775[0-7][0-9]{2}|922337203685477580[0-6]|9223372036854775807)$(?![\s\S])