unimsg provisional

docs/58-typed-arrays-in-the-graphic-vocabulary.umsg

%unimsg 0 findings/typed-arrays-in-the-graphic-vocabulary/v0 · 100 lines · 7331 bytes of text · 6249 bytes canonical · the raw file

Point at anything below — a sigil, a literal, a brace — and the card says what it is. Keyboard: tab through the document. Every explanation is also printed in full beneath the source.

%unimsg 0 findings/typed-arrays-in-the-graphic-vocabulary/v0

-- The kernel gained a typed array on 2026-09-02. @vocab/graphic/v0 was the
-- vocabulary with the most to gain from it and the one least able to take it,
-- and this document is what closing that gap cost and bought.
--
-- 49% OF THE CBOR on the file the vocabulary was read off. The prerequisite was
-- not the typed array at all: it was a declared coordinate grid, which docs/26
-- parked as a v1 question and @vocab/spatial/v0 later proved.

typed-arrays-in-the-graphic-vocabulary @findings/typed-arrays-in-the-graphic-vocabulary/v0 {
  title    "Typed arrays in the graphic vocabulary: 49% of the bytes, and the grid that had to come first"
  status   :open
  subject  -> @vocab/graphic/v0
  evidence [ -> @findings/the-transcript-writer/v0 ]
  assessed 2026-09-04

  the-question "WHICH OTHER VOCABULARIES GAIN FROM THE TYPED ARRAY, once
     @vocab/spatial/v0's transcript had taken it and halved. The survey was
     short: a typed array is a run of homogeneous numbers, and most of this
     repository's vocabularies hold trees, prose and claims. @vocab/ruleset/v0,
     @vocab/ui/v0, @vocab/rich-document/v0, @vocab/work/v0,
     @vocab/board-presentation/v0, @vocab/language/v0, @vocab/lexicon/v0 and
     @vocab/encyclopaedia/v0 have no such run to gain from.
     @vocab/measurement/v0 was built on it. ONE VOCABULARY HAD A LARGE ONE AND
     COULD NOT USE IT."

  why-a-path-could-not-be-a-typed-array "AND IT IS STRUCTURAL RATHER THAN A
     MATTER OF TASTE. A path was `d [ :move, 10, 20, :cubic, … ]` — one flat
     array of opcodes interleaved with numbers — and a typed array is
     HOMOGENEOUS. No amount of tuning reaches it from there. The opcodes and
     the numbers had to part company first, which is a breaking change to the
     one construct that vocabulary spends the most bytes on."

  the-grid-was-the-real-prerequisite "AND IT WAS ALREADY BEING CHOSEN, in
     private, by the only application that writes these documents continuously.

     @vocab/graphic/v0's own strongest evidence is marasim, which holds a
     document of that shape as its live editing model, and which reports — in
     the vocabulary's own words, quoting that project — that `a pointer event is
     a float and the scene refuses floats, so every number is quantised on ENTRY
     rather than on write`. A GRID WAS THEREFORE ALREADY PICKED AND NO DOCUMENT
     RECORDED IT. Two such documents could sit on different grids with nothing
     saying so.

     docs/26 PARKED THIS EXACT KEY as a v1 question and gave the right reason to
     want it — a declared resolution is `a thing an author should have to state
     rather than a thing an encoding should do quietly` — and lacked a reason to
     pay for it. @vocab/spatial/v0 supplied the first: its :precision is what
     makes a rotated coordinate comparable at all. The typed array supplied the
     second, because scaled integers need a scale.

     SO :precision LANDED FIRST AND THE ENCODING FOLLOWED. It would have been
     worth adding on its own."

  what-it-measured [
    | artefact                                        text          cbor          "gzipped text"
    | "the Ottoman arms, as it was"                   "2,661,062"   "2,082,610"   "496,816"
    | "the same, through tools/gupgrade"              "2,720,391"   "1,065,817"   "482,653"
    | "the source SVG, for reference"                 "1,946,176"   "—"           "392,366"
  ]

  the-binary-halves-and-the-text-does-not "49% OF THE CBOR — 2,082,610 to
     1,065,817 — and the document moves from 7% LARGER than the SVG it was
     converted from to 45% SMALLER.

     THE TEXT FORM GROWS BY 2%, because a scaled integer is a longer numeral
     than the decimal it replaces: `10101` against `0.010101` is a wash, but
     `1906437983` against `1906.437983` is not. That is the honest shape of the
     trade and it is in the vocabulary rather than only here."

  findings [
    | id    finding                                                                                      answer
    | "T1"  "a path is opcodes interleaved with numbers, and a typed array is homogeneous"               "split into :ops and :coords. The breaking change is recorded in the vocabulary, per @vocab/vocabulary/v0's draft rule"
    | "T2"  "there was no declared grid, so there was no scale to store integers against"                ":precision, required, with a :coordinate quantum and a :rounding rule"
    | "T3"  "an opcode was a symbol, and a symbol is not a number"                                       "a code from a closed six-row table. It costs legibility and it is 8 bytes to 1"
    | "T4"  "`:d` was a path's data AND the fourth component of an affine matrix"                        "the split ends the collision. Found by the converter mistaking a rotation for a path, not by reading the tables"
    | "T5"  "an opcode could repeat its arguments, which a two-array form cannot express without lookahead"  "one code per command. It costs 13,733 opcode bytes against a saving of a million"
    | "T6"  ":points looked like a second candidate and is a table of x and y rows"                      "left alone. Flattening a legible ten-row table to save a rounding error is not a trade"
  ]

  what-was-changed [
    | artefact                          change
    | "vocab/subjects/graphic-v0.umsg"  "amended in place, with the break recorded — the identifier does not move, because a draft that narrows records what stopped conforming instead"
    | "tools/gupgrade"                  "new. Carries a document of the earlier draft into the amended one, refusing rather than rounding when a coordinate misses the grid"
    | "tools/gcheck"                    "the gate reads :precision and the two arrays, and decodes RFC 8746 integer arrays itself, since the syntax package presents the tag and not the elements"
    | "tools/dgrender"                  "multiplies the integers back out by the quantum. Verified on the crescent: move 100,40 and an arc with its flags intact"
    | "tools/svg2umsg"                  "emits the amended shape and a :precision block"
    | "the three graphic examples"      "upgraded in place, and all three pass the amended gate"
  ]

  what-is-still-owed [
    | item                                                        why
    | "marasim"                                                   "it holds this shape as its live editing model and will not read the amended one. It is the same repository's project, so this is coordination rather than a compatibility problem — but nothing has been changed there"
    | "generated/graphic/ottoman.umsg"                            "regenerable, and the upgraded copy sits beside it as ottoman-typed.umsg rather than replacing it"
    | "a second real file"                                        "one 1.9 MB file measured the win. It is the same count of one docs/26 was honest about"
    | "whether a DOCUMENT should hold scaled integers at all"     "@vocab/spatial/v0 records the same question as open for its own documents, on the legibility argument. THIS DOCUMENT ANSWERS IT ONE WAY FOR ARTWORK — where the reader is a machine and the file is 1.9 MB — and that does not settle it for a scene somebody hand-writes"
  ]
}

The canonical encoding

Produced by the reference encoder when this page was built. Decoding these bytes and printing them in the text form returns the document above, byte for byte — that round trip is the claim the whole format rests on.

a1 78 26 74 79 70 65 64 2d 61 72 72 61 79 73 2d 69 6e 2d 74 68 65 2d 67
72 61 70 68 69 63 2d 76 6f 63 61 62 75 6c 61 72 79 da 00 01 11 d5 82 81
da 00 01 11 d6 78 32 66 69 6e 64 69 6e 67 73 2f 74 79 70 65 64 2d 61 72
72 61 79 73 2d 69 6e 2d 74 68 65 2d 67 72 61 70 68 69 63 2d 76 6f 63 61
62 75 6c 61 72 79 2f 76 30 ad 65 74 69 74 6c 65 78 5d 54 79 70 65 64 20
61 72 72 61 79 73 20 69 6e 20 74 68 65 20 67 72 61 70 68 69 63 20 76 6f
63 61 62 75 6c 61 72 79 3a 20 34 39 25 20 6f 66 20 74 68 65 20 62 79 74
65 73 2c 20 61 6e 64 20 74 68 65 20 67 72 69 64 20 74 68 61 74 20 68 61
64 20 74 6f 20 63 6f 6d 65 20 66 69 72 73 74 66 73 74 61 74 75 73 da 00
01 11 d4 64 6f 70 65 6e 67 73 75 62 6a 65 63 74 da 00 01 11 d7 70 76 6f
63 61 62 2f 67 72 61 70 68 69 63 2f 76 30 68 61 73 73 65 73 73 65 64 da
00 01 11 da 6a 32 30 32 36 2d 30 39 2d 30 34 68 65 76 69 64 65 6e 63 65
81 da 00 01 11 d7 78 21 66 69 6e 64 69 6e 67 73 2f 74 68 65 2d 74 72 61
6e 73 63 72 69 70 74 2d 77 72 69 74 65 72 2f 76 30 68 66 69 6e 64 69 6e
67 73 86 a3 62 69 64 62 54 31 66 61 6e 73 77 65 72 78 75 73 70 6c 69 74
20 69 6e 74 6f 20 3a 6f 70 73 20 61 6e 64 20 3a 63 6f 6f 72 64 73 2e 20
54 68 65 20 62 72 65 61 6b 69 6e 67 20 63 68 61 6e 67 65 20 69 73 20 72
65 63 6f 72 64 65 64 20 69 6e 20 74 68 65 20 76 6f 63 61 62 75 6c 61 72
79 2c 20 70 65 72 20 40 76 6f 63 61 62 2f 76 6f 63 61 62 75 6c 61 72 79
2f 76 30 27 73 20 64 72 61 66 74 20 72 75 6c 65 67 66 69 6e 64 69 6e 67
78 4c 61 20 70 61 74 68 20 69 73 20 6f 70 63 6f 64 65 73 20 69 6e 74 65
72 6c 65 61 76 65 64 20 77 69 74 68 20 6e 75 6d 62 65 72 73 2c 20 61 6e
64 20 61 20 74 79 70 65 64 20 61 72 72 61 79 20 69 73 20 68 6f 6d 6f 67
65 6e 65 6f 75 73 a3 62 69 64 62 54 32 66 61 6e 73 77 65 72 78 45 3a 70
72 65 63 69 73 69 6f 6e 2c 20 72 65 71 75 69 72 65 64 2c 20 77 69 74 68
20 61 20 3a 63 6f 6f 72 64 69 6e 61 74 65 20 71 75 61 6e 74 75 6d 20 61
6e 64 20 61 20 3a 72 6f 75 6e 64 69 6e 67 20 72 75 6c 65 67 66 69 6e 64
69 6e 67 78 4b 74 68 65 72 65 20 77 61 73 20 6e 6f 20 64 65 63 6c 61 72
65 64 20 67 72 69 64 2c 20 73 6f 20 74 68 65 72 65 20 77 61 73 20 6e 6f
20 73 63 61 6c 65 20 74 6f 20 73 74 6f 72 65 20 69 6e 74 65 67 65 72 73
20 61 67 61 69 6e 73 74 a3 62 69 64 62 54 33 66 61 6e 73 77 65 72 78 4e
61 20 63 6f 64 65 20 66 72 6f 6d 20 61 20 63 6c 6f 73 65 64 20 73 69 78
2d 72 6f 77 20 74 61 62 6c 65 2e 20 49 74 20 63 6f 73 74 73 20 6c 65 67
69 62 69 6c 69 74 79 20 61 6e 64 20 69 74 20 69 73 20 38 20 62 79 74 65
73 20 74 6f 20 31 67 66 69 6e 64 69 6e 67 78 34 61 6e 20 6f 70 63 6f 64
65 20 77 61 73 20 61 20 73 79 6d 62 6f 6c 2c 20 61 6e 64 20 61 20 73 79
6d 62 6f 6c 20 69 73 20 6e 6f 74 20 61 20 6e 75 6d 62 65 72 a3 62 69 64
62 54 34 66 61 6e 73 77 65 72 78 6f 74 68 65 20 73 70 6c 69 74 20 65 6e
64 73 20 74 68 65 20 63 6f 6c 6c 69 73 69 6f 6e 2e 20 46 6f 75 6e 64 20
62 79 20 74 68 65 20 63 6f 6e 76 65 72 74 65 72 20 6d 69 73 74 61 6b 69
6e 67 20 61 20 72 6f 74 61 74 69 6f 6e 20 66 6f 72 20 61 20 70 61 74 68
2c 20 6e 6f 74 20 62 79 20 72 65 61 64 69 6e 67 20 74 68 65 20 74 61 62
6c 65 73 67 66 69 6e 64 69 6e 67 78 43 60 3a 64 60 20 77 61 73 20 61 20
70 61 74 68 27 73 20 64 61 74 61 20 41 4e 44 20 74 68 65 20 66 6f 75 72
74 68 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f 66 20 61 6e 20 61 66 66 69 6e
65 20 6d 61 74 72 69 78 a3 62 69 64 62 54 35 66 61 6e 73 77 65 72 78 50
6f 6e 65 20 63 6f 64 65 20 70 65 72 20 63 6f 6d 6d 61 6e 64 2e 20 49 74
20 63 6f 73 74 73 20 31 33 2c 37 33 33 20 6f 70 63 6f 64 65 20 62 79 74
65 73 20 61 67 61 69 6e 73 74 20 61 20 73 61 76 69 6e 67 20 6f 66 20 61
20 6d 69 6c 6c 69 6f 6e 67 66 69 6e 64 69 6e 67 78 5d 61 6e 20 6f 70 63
6f 64 65 20 63 6f 75 6c 64 20 72 65 70 65 61 74 20 69 74 73 20 61 72 67
75 6d 65 6e 74 73 2c 20 77 68 69 63 68 20 61 20 74 77 6f 2d 61 72 72 61
79 20 66 6f 72 6d 20 63 61 6e 6e 6f 74 20 65 78 70 72 65 73 73 20 77 69
74 68 6f 75 74 20 6c 6f 6f 6b 61 68 65 61 64 a3 62 69 64 62 54 36 66 61
6e 73 77 65 72 78 56 6c 65 66 74 20 61 6c 6f 6e 65 2e 20 46 6c 61 74 74
65 6e 69 6e 67 20 61 20 6c 65 67 69 62 6c 65 20 74 65 6e 2d 72 6f 77 20
74 61 62 6c 65 20 74 6f 20 73 61 76 65 20 61 20 72 6f 75 6e 64 69 6e 67
20 65 72 72 6f 72 20 69 73 20 6e 6f 74 20 61 20 74 72 61 64 65 67 66 69
6e 64 69 6e 67 78 45 3a 70 6f 69 6e 74 73 20 6c 6f 6f 6b 65 64 20 6c 69
6b 65 20 61 20 73 65 63 6f 6e 64 20 63 61 6e 64 69 64 61 74 65 20 61 6e
64 20 69 73 20 61 20 74 61 62 6c 65 20 6f 66 20 78 20 61 6e 64 20 79 20
72 6f 77 73 6c 74 68 65 2d 71 75 65 73 74 69 6f 6e 79 02 4b 57 48 49 43
48 20 4f 54 48 45 52 20 56 4f 43 41 42 55 4c 41 52 49 45 53 20 47 41 49
4e 20 46 52 4f 4d 20 54 48 45 20 54 59 50 45 44 20 41 52 52 41 59 2c 20
6f 6e 63 65 0a 20 20 20 20 20 40 76 6f 63 61 62 2f 73 70 61 74 69 61 6c
2f 76 30 27 73 20 74 72 61 6e 73 63 72 69 70 74 20 68 61 64 20 74 61 6b
65 6e 20 69 74 20 61 6e 64 20 68 61 6c 76 65 64 2e 20 54 68 65 20 73 75
72 76 65 79 20 77 61 73 0a 20 20 20 20 20 73 68 6f 72 74 3a 20 61 20 74
79 70 65 64 20 61 72 72 61 79 20 69 73 20 61 20 72 75 6e 20 6f 66 20 68
6f 6d 6f 67 65 6e 65 6f 75 73 20 6e 75 6d 62 65 72 73 2c 20 61 6e 64 20
6d 6f 73 74 20 6f 66 20 74 68 69 73 0a 20 20 20 20 20 72 65 70 6f 73 69
74 6f 72 79 27 73 20 76 6f 63 61 62 75 6c 61 72 69 65 73 20 68 6f 6c 64
20 74 72 65 65 73 2c 20 70 72 6f 73 65 20 61 6e 64 20 63 6c 61 69 6d 73
2e 20 40 76 6f 63 61 62 2f 72 75 6c 65 73 65 74 2f 76 30 2c 0a 20 20 20
20 20 40 76 6f 63 61 62 2f 75 69 2f 76 30 2c 20 40 76 6f 63 61 62 2f 72
69 63 68 2d 64 6f 63 75 6d 65 6e 74 2f 76 30 2c 20 40 76 6f 63 61 62 2f
77 6f 72 6b 2f 76 30 2c 0a 20 20 20 20 20 40 76 6f 63 61 62 2f 62 6f 61
72 64 2d 70 72 65 73 65 6e 74 61 74 69 6f 6e 2f 76 30 2c 20 40 76 6f 63
61 62 2f 6c 61 6e 67 75 61 67 65 2f 76 30 2c 20 40 76 6f 63 61 62 2f 6c
65 78 69 63 6f 6e 2f 76 30 20 61 6e 64 0a 20 20 20 20 20 40 76 6f 63 61
62 2f 65 6e 63 79 63 6c 6f 70 61 65 64 69 61 2f 76 30 20 68 61 76 65 20
6e 6f 20 73 75 63 68 20 72 75 6e 20 74 6f 20 67 61 69 6e 20 66 72 6f 6d
2e 0a 20 20 20 20 20 40 76 6f 63 61 62 2f 6d 65 61 73 75 72 65 6d 65 6e
74 2f 76 30 20 77 61 73 20 62 75 69 6c 74 20 6f 6e 20 69 74 2e 20 4f 4e
45 20 56 4f 43 41 42 55 4c 41 52 59 20 48 41 44 20 41 20 4c 41 52 47 45
20 4f 4e 45 20 41 4e 44 0a 20 20 20 20 20 43 4f 55 4c 44 20 4e 4f 54 20
55 53 45 20 49 54 2e 70 77 68 61 74 2d 69 74 2d 6d 65 61 73 75 72 65 64
83 a4 64 63 62 6f 72 69 32 2c 30 38 32 2c 36 31 30 64 74 65 78 74 69 32
2c 36 36 31 2c 30 36 32 68 61 72 74 65 66 61 63 74 78 1b 74 68 65 20 4f
74 74 6f 6d 61 6e 20 61 72 6d 73 2c 20 61 73 20 69 74 20 77 61 73 6c 67
7a 69 70 70 65 64 20 74 65 78 74 67 34 39 36 2c 38 31 36 a4 64 63 62 6f
72 69 31 2c 30 36 35 2c 38 31 37 64 74 65 78 74 69 32 2c 37 32 30 2c 33
39 31 68 61 72 74 65 66 61 63 74 78 20 74 68 65 20 73 61 6d 65 2c 20 74
68 72 6f 75 67 68 20 74 6f 6f 6c 73 2f 67 75 70 67 72 61 64 65 6c 67 7a
69 70 70 65 64 20 74 65 78 74 67 34 38 32 2c 36 35 33 a4 64 63 62 6f 72
63 e2 80 94 64 74 65 78 74 69 31 2c 39 34 36 2c 31 37 36 68 61 72 74 65
66 61 63 74 78 1d 74 68 65 20 73 6f 75 72 63 65 20 53 56 47 2c 20 66 6f
72 20 72 65 66 65 72 65 6e 63 65 6c 67 7a 69 70 70 65 64 20 74 65 78 74
67 33 39 32 2c 33 36 36 70 77 68 61 74 2d 77 61 73 2d 63 68 61 6e 67 65
64 86 a2 66 63 68 61 6e 67 65 78 90 61 6d 65 6e 64 65 64 20 69 6e 20 70
6c 61 63 65 2c 20 77 69 74 68 20 74 68 65 20 62 72 65 61 6b 20 72 65 63
6f 72 64 65 64 20 e2 80 94 20 74 68 65 20 69 64 65 6e 74 69 66 69 65 72
20 64 6f 65 73 20 6e 6f 74 20 6d 6f 76 65 2c 20 62 65 63 61 75 73 65 20
61 20 64 72 61 66 74 20 74 68 61 74 20 6e 61 72 72 6f 77 73 20 72 65 63
6f 72 64 73 20 77 68 61 74 20 73 74 6f 70 70 65 64 20 63 6f 6e 66 6f 72
6d 69 6e 67 20 69 6e 73 74 65 61 64 68 61 72 74 65 66 61 63 74 78 1e 76
6f 63 61 62 2f 73 75 62 6a 65 63 74 73 2f 67 72 61 70 68 69 63 2d 76 30
2e 75 6d 73 67 a2 66 63 68 61 6e 67 65 78 82 6e 65 77 2e 20 43 61 72 72
69 65 73 20 61 20 64 6f 63 75 6d 65 6e 74 20 6f 66 20 74 68 65 20 65 61
72 6c 69 65 72 20 64 72 61 66 74 20 69 6e 74 6f 20 74 68 65 20 61 6d 65
6e 64 65 64 20 6f 6e 65 2c 20 72 65 66 75 73 69 6e 67 20 72 61 74 68 65
72 20 74 68 61 6e 20 72 6f 75 6e 64 69 6e 67 20 77 68 65 6e 20 61 20 63
6f 6f 72 64 69 6e 61 74 65 20 6d 69 73 73 65 73 20 74 68 65 20 67 72 69
64 68 61 72 74 65 66 61 63 74 6e 74 6f 6f 6c 73 2f 67 75 70 67 72 61 64
65 a2 66 63 68 61 6e 67 65 78 98 74 68 65 20 67 61 74 65 20 72 65 61 64
73 20 3a 70 72 65 63 69 73 69 6f 6e 20 61 6e 64 20 74 68 65 20 74 77 6f
20 61 72 72 61 79 73 2c 20 61 6e 64 20 64 65 63 6f 64 65 73 20 52 46 43
20 38 37 34 36 20 69 6e 74 65 67 65 72 20 61 72 72 61 79 73 20 69 74 73
65 6c 66 2c 20 73 69 6e 63 65 20 74 68 65 20 73 79 6e 74 61 78 20 70 61
63 6b 61 67 65 20 70 72 65 73 65 6e 74 73 20 74 68 65 20 74 61 67 20 61
6e 64 20 6e 6f 74 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 68 61 72 74 65
66 61 63 74 6c 74 6f 6f 6c 73 2f 67 63 68 65 63 6b a2 66 63 68 61 6e 67
65 78 77 6d 75 6c 74 69 70 6c 69 65 73 20 74 68 65 20 69 6e 74 65 67 65
72 73 20 62 61 63 6b 20 6f 75 74 20 62 79 20 74 68 65 20 71 75 61 6e 74
75 6d 2e 20 56 65 72 69 66 69 65 64 20 6f 6e 20 74 68 65 20 63 72 65 73
63 65 6e 74 3a 20 6d 6f 76 65 20 31 30 30 2c 34 30 20 61 6e 64 20 61 6e
20 61 72 63 20 77 69 74 68 20 69 74 73 20 66 6c 61 67 73 20 69 6e 74 61
63 74 68 61 72 74 65 66 61 63 74 6e 74 6f 6f 6c 73 2f 64 67 72 65 6e 64
65 72 a2 66 63 68 61 6e 67 65 78 2e 65 6d 69 74 73 20 74 68 65 20 61 6d
65 6e 64 65 64 20 73 68 61 70 65 20 61 6e 64 20 61 20 3a 70 72 65 63 69
73 69 6f 6e 20 62 6c 6f 63 6b 68 61 72 74 65 66 61 63 74 6e 74 6f 6f 6c
73 2f 73 76 67 32 75 6d 73 67 a2 66 63 68 61 6e 67 65 78 36 75 70 67 72
61 64 65 64 20 69 6e 20 70 6c 61 63 65 2c 20 61 6e 64 20 61 6c 6c 20 74
68 72 65 65 20 70 61 73 73 20 74 68 65 20 61 6d 65 6e 64 65 64 20 67 61
74 65 68 61 72 74 65 66 61 63 74 78 1a 74 68 65 20 74 68 72 65 65 20 67
72 61 70 68 69 63 20 65 78 61 6d 70 6c 65 73 72 77 68 61 74 2d 69 73 2d
73 74 69 6c 6c 2d 6f 77 65 64 84 a2 63 77 68 79 78 d8 69 74 20 68 6f 6c
64 73 20 74 68 69 73 20 73 68 61 70 65 20 61 73 20 69 74 73 20 6c 69 76
65 20 65 64 69 74 69 6e 67 20 6d 6f 64 65 6c 20 61 6e 64 20 77 69 6c 6c
20 6e 6f 74 20 72 65 61 64 20 74 68 65 20 61 6d 65 6e 64 65 64 20 6f 6e
65 2e 20 49 74 20 69 73 20 74 68 65 20 73 61 6d 65 20 72 65 70 6f 73 69
74 6f 72 79 27 73 20 70 72 6f 6a 65 63 74 2c 20 73 6f 20 74 68 69 73 20
69 73 20 63 6f 6f 72 64 69 6e 61 74 69 6f 6e 20 72 61 74 68 65 72 20 74
68 61 6e 20 61 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 70 72 6f 62
6c 65 6d 20 e2 80 94 20 62 75 74 20 6e 6f 74 68 69 6e 67 20 68 61 73 20
62 65 65 6e 20 63 68 61 6e 67 65 64 20 74 68 65 72 65 64 69 74 65 6d 67
6d 61 72 61 73 69 6d a2 63 77 68 79 78 60 72 65 67 65 6e 65 72 61 62 6c
65 2c 20 61 6e 64 20 74 68 65 20 75 70 67 72 61 64 65 64 20 63 6f 70 79
20 73 69 74 73 20 62 65 73 69 64 65 20 69 74 20 61 73 20 6f 74 74 6f 6d
61 6e 2d 74 79 70 65 64 2e 75 6d 73 67 20 72 61 74 68 65 72 20 74 68 61
6e 20 72 65 70 6c 61 63 69 6e 67 20 69 74 64 69 74 65 6d 78 1e 67 65 6e
65 72 61 74 65 64 2f 67 72 61 70 68 69 63 2f 6f 74 74 6f 6d 61 6e 2e 75
6d 73 67 a2 63 77 68 79 78 56 6f 6e 65 20 31 2e 39 20 4d 42 20 66 69 6c
65 20 6d 65 61 73 75 72 65 64 20 74 68 65 20 77 69 6e 2e 20 49 74 20 69
73 20 74 68 65 20 73 61 6d 65 20 63 6f 75 6e 74 20 6f 66 20 6f 6e 65 20
64 6f 63 73 2f 32 36 20 77 61 73 20 68 6f 6e 65 73 74 20 61 62 6f 75 74
64 69 74 65 6d 72 61 20 73 65 63 6f 6e 64 20 72 65 61 6c 20 66 69 6c 65
a2 63 77 68 79 79 01 0d 40 76 6f 63 61 62 2f 73 70 61 74 69 61 6c 2f 76
30 20 72 65 63 6f 72 64 73 20 74 68 65 20 73 61 6d 65 20 71 75 65 73 74
69 6f 6e 20 61 73 20 6f 70 65 6e 20 66 6f 72 20 69 74 73 20 6f 77 6e 20
64 6f 63 75 6d 65 6e 74 73 2c 20 6f 6e 20 74 68 65 20 6c 65 67 69 62 69
6c 69 74 79 20 61 72 67 75 6d 65 6e 74 2e 20 54 48 49 53 20 44 4f 43 55
4d 45 4e 54 20 41 4e 53 57 45 52 53 20 49 54 20 4f 4e 45 20 57 41 59 20
46 4f 52 20 41 52 54 57 4f 52 4b 20 e2 80 94 20 77 68 65 72 65 20 74 68
65 20 72 65 61 64 65 72 20 69 73 20 61 20 6d 61 63 68 69 6e 65 20 61 6e
64 20 74 68 65 20 66 69 6c 65 20 69 73 20 31 2e 39 20 4d 42 20 e2 80 94
20 61 6e 64 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 73 65 74 74 6c
65 20 69 74 20 66 6f 72 20 61 20 73 63 65 6e 65 20 73 6f 6d 65 62 6f 64
79 20 68 61 6e 64 2d 77 72 69 74 65 73 64 69 74 65 6d 78 35 77 68 65 74
68 65 72 20 61 20 44 4f 43 55 4d 45 4e 54 20 73 68 6f 75 6c 64 20 68 6f
6c 64 20 73 63 61 6c 65 64 20 69 6e 74 65 67 65 72 73 20 61 74 20 61 6c
6c 78 22 74 68 65 2d 67 72 69 64 2d 77 61 73 2d 74 68 65 2d 72 65 61 6c
2d 70 72 65 72 65 71 75 69 73 69 74 65 79 04 96 41 4e 44 20 49 54 20 57
41 53 20 41 4c 52 45 41 44 59 20 42 45 49 4e 47 20 43 48 4f 53 45 4e 2c
20 69 6e 0a 20 20 20 20 20 70 72 69 76 61 74 65 2c 20 62 79 20 74 68 65
20 6f 6e 6c 79 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 74 68 61 74 20 77
72 69 74 65 73 20 74 68 65 73 65 20 64 6f 63 75 6d 65 6e 74 73 20 63 6f
6e 74 69 6e 75 6f 75 73 6c 79 2e 0a 0a 20 20 20 20 20 40 76 6f 63 61 62
2f 67 72 61 70 68 69 63 2f 76 30 27 73 20 6f 77 6e 20 73 74 72 6f 6e 67
65 73 74 20 65 76 69 64 65 6e 63 65 20 69 73 20 6d 61 72 61 73 69 6d 2c
20 77 68 69 63 68 20 68 6f 6c 64 73 20 61 0a 20 20 20 20 20 64 6f 63 75
6d 65 6e 74 20 6f 66 20 74 68 61 74 20 73 68 61 70 65 20 61 73 20 69 74
73 20 6c 69 76 65 20 65 64 69 74 69 6e 67 20 6d 6f 64 65 6c 2c 20 61 6e
64 20 77 68 69 63 68 20 72 65 70 6f 72 74 73 20 e2 80 94 20 69 6e 0a 20
20 20 20 20 74 68 65 20 76 6f 63 61 62 75 6c 61 72 79 27 73 20 6f 77 6e
20 77 6f 72 64 73 2c 20 71 75 6f 74 69 6e 67 20 74 68 61 74 20 70 72 6f
6a 65 63 74 20 e2 80 94 20 74 68 61 74 20 60 61 20 70 6f 69 6e 74 65 72
20 65 76 65 6e 74 20 69 73 0a 20 20 20 20 20 61 20 66 6c 6f 61 74 20 61
6e 64 20 74 68 65 20 73 63 65 6e 65 20 72 65 66 75 73 65 73 20 66 6c 6f
61 74 73 2c 20 73 6f 20 65 76 65 72 79 20 6e 75 6d 62 65 72 20 69 73 20
71 75 61 6e 74 69 73 65 64 20 6f 6e 20 45 4e 54 52 59 0a 20 20 20 20 20
72 61 74 68 65 72 20 74 68 61 6e 20 6f 6e 20 77 72 69 74 65 60 2e 20 41
20 47 52 49 44 20 57 41 53 20 54 48 45 52 45 46 4f 52 45 20 41 4c 52 45
41 44 59 20 50 49 43 4b 45 44 20 41 4e 44 20 4e 4f 20 44 4f 43 55 4d 45
4e 54 0a 20 20 20 20 20 52 45 43 4f 52 44 45 44 20 49 54 2e 20 54 77 6f
20 73 75 63 68 20 64 6f 63 75 6d 65 6e 74 73 20 63 6f 75 6c 64 20 73 69
74 20 6f 6e 20 64 69 66 66 65 72 65 6e 74 20 67 72 69 64 73 20 77 69 74
68 20 6e 6f 74 68 69 6e 67 0a 20 20 20 20 20 73 61 79 69 6e 67 20 73 6f
2e 0a 0a 20 20 20 20 20 64 6f 63 73 2f 32 36 20 50 41 52 4b 45 44 20 54
48 49 53 20 45 58 41 43 54 20 4b 45 59 20 61 73 20 61 20 76 31 20 71 75
65 73 74 69 6f 6e 20 61 6e 64 20 67 61 76 65 20 74 68 65 20 72 69 67 68
74 20 72 65 61 73 6f 6e 20 74 6f 0a 20 20 20 20 20 77 61 6e 74 20 69 74
20 e2 80 94 20 61 20 64 65 63 6c 61 72 65 64 20 72 65 73 6f 6c 75 74 69
6f 6e 20 69 73 20 60 61 20 74 68 69 6e 67 20 61 6e 20 61 75 74 68 6f 72
20 73 68 6f 75 6c 64 20 68 61 76 65 20 74 6f 20 73 74 61 74 65 0a 20 20
20 20 20 72 61 74 68 65 72 20 74 68 61 6e 20 61 20 74 68 69 6e 67 20 61
6e 20 65 6e 63 6f 64 69 6e 67 20 73 68 6f 75 6c 64 20 64 6f 20 71 75 69
65 74 6c 79 60 20 e2 80 94 20 61 6e 64 20 6c 61 63 6b 65 64 20 61 20 72
65 61 73 6f 6e 20 74 6f 0a 20 20 20 20 20 70 61 79 20 66 6f 72 20 69 74
2e 20 40 76 6f 63 61 62 2f 73 70 61 74 69 61 6c 2f 76 30 20 73 75 70 70
6c 69 65 64 20 74 68 65 20 66 69 72 73 74 3a 20 69 74 73 20 3a 70 72 65
63 69 73 69 6f 6e 20 69 73 20 77 68 61 74 0a 20 20 20 20 20 6d 61 6b 65
73 20 61 20 72 6f 74 61 74 65 64 20 63 6f 6f 72 64 69 6e 61 74 65 20 63
6f 6d 70 61 72 61 62 6c 65 20 61 74 20 61 6c 6c 2e 20 54 68 65 20 74 79
70 65 64 20 61 72 72 61 79 20 73 75 70 70 6c 69 65 64 20 74 68 65 0a 20
20 20 20 20 73 65 63 6f 6e 64 2c 20 62 65 63 61 75 73 65 20 73 63 61 6c
65 64 20 69 6e 74 65 67 65 72 73 20 6e 65 65 64 20 61 20 73 63 61 6c 65
2e 0a 0a 20 20 20 20 20 53 4f 20 3a 70 72 65 63 69 73 69 6f 6e 20 4c 41
4e 44 45 44 20 46 49 52 53 54 20 41 4e 44 20 54 48 45 20 45 4e 43 4f 44
49 4e 47 20 46 4f 4c 4c 4f 57 45 44 2e 20 49 74 20 77 6f 75 6c 64 20 68
61 76 65 20 62 65 65 6e 0a 20 20 20 20 20 77 6f 72 74 68 20 61 64 64 69
6e 67 20 6f 6e 20 69 74 73 20 6f 77 6e 2e 78 25 77 68 79 2d 61 2d 70 61
74 68 2d 63 6f 75 6c 64 2d 6e 6f 74 2d 62 65 2d 61 2d 74 79 70 65 64 2d
61 72 72 61 79 79 01 93 41 4e 44 20 49 54 20 49 53 20 53 54 52 55 43 54
55 52 41 4c 20 52 41 54 48 45 52 20 54 48 41 4e 20 41 0a 20 20 20 20 20
4d 41 54 54 45 52 20 4f 46 20 54 41 53 54 45 2e 20 41 20 70 61 74 68 20
77 61 73 20 60 64 20 5b 20 3a 6d 6f 76 65 2c 20 31 30 2c 20 32 30 2c 20
3a 63 75 62 69 63 2c 20 e2 80 a6 20 5d 60 20 e2 80 94 20 6f 6e 65 20 66
6c 61 74 0a 20 20 20 20 20 61 72 72 61 79 20 6f 66 20 6f 70 63 6f 64 65
73 20 69 6e 74 65 72 6c 65 61 76 65 64 20 77 69 74 68 20 6e 75 6d 62 65
72 73 20 e2 80 94 20 61 6e 64 20 61 20 74 79 70 65 64 20 61 72 72 61 79
20 69 73 0a 20 20 20 20 20 48 4f 4d 4f 47 45 4e 45 4f 55 53 2e 20 4e 6f
20 61 6d 6f 75 6e 74 20 6f 66 20 74 75 6e 69 6e 67 20 72 65 61 63 68 65
73 20 69 74 20 66 72 6f 6d 20 74 68 65 72 65 2e 20 54 68 65 20 6f 70 63
6f 64 65 73 20 61 6e 64 0a 20 20 20 20 20 74 68 65 20 6e 75 6d 62 65 72
73 20 68 61 64 20 74 6f 20 70 61 72 74 20 63 6f 6d 70 61 6e 79 20 66 69
72 73 74 2c 20 77 68 69 63 68 20 69 73 20 61 20 62 72 65 61 6b 69 6e 67
20 63 68 61 6e 67 65 20 74 6f 20 74 68 65 0a 20 20 20 20 20 6f 6e 65 20
63 6f 6e 73 74 72 75 63 74 20 74 68 61 74 20 76 6f 63 61 62 75 6c 61 72
79 20 73 70 65 6e 64 73 20 74 68 65 20 6d 6f 73 74 20 62 79 74 65 73 20
6f 6e 2e 78 27 74 68 65 2d 62 69 6e 61 72 79 2d 68 61 6c 76 65 73 2d 61
6e 64 2d 74 68 65 2d 74 65 78 74 2d 64 6f 65 73 2d 6e 6f 74 79 01 ba 34
39 25 20 4f 46 20 54 48 45 20 43 42 4f 52 20 e2 80 94 20 32 2c 30 38 32
2c 36 31 30 20 74 6f 0a 20 20 20 20 20 31 2c 30 36 35 2c 38 31 37 20 e2
80 94 20 61 6e 64 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 20 6d 6f 76 65
73 20 66 72 6f 6d 20 37 25 20 4c 41 52 47 45 52 20 74 68 61 6e 20 74 68
65 20 53 56 47 20 69 74 20 77 61 73 0a 20 20 20 20 20 63 6f 6e 76 65 72
74 65 64 20 66 72 6f 6d 20 74 6f 20 34 35 25 20 53 4d 41 4c 4c 45 52 2e
0a 0a 20 20 20 20 20 54 48 45 20 54 45 58 54 20 46 4f 52 4d 20 47 52 4f
57 53 20 42 59 20 32 25 2c 20 62 65 63 61 75 73 65 20 61 20 73 63 61 6c
65 64 20 69 6e 74 65 67 65 72 20 69 73 20 61 20 6c 6f 6e 67 65 72 20 6e
75 6d 65 72 61 6c 0a 20 20 20 20 20 74 68 61 6e 20 74 68 65 20 64 65 63
69 6d 61 6c 20 69 74 20 72 65 70 6c 61 63 65 73 3a 20 60 31 30 31 30 31
60 20 61 67 61 69 6e 73 74 20 60 30 2e 30 31 30 31 30 31 60 20 69 73 20
61 20 77 61 73 68 2c 20 62 75 74 0a 20 20 20 20 20 60 31 39 30 36 34 33
37 39 38 33 60 20 61 67 61 69 6e 73 74 20 60 31 39 30 36 2e 34 33 37 39
38 33 60 20 69 73 20 6e 6f 74 2e 20 54 68 61 74 20 69 73 20 74 68 65 20
68 6f 6e 65 73 74 20 73 68 61 70 65 20 6f 66 20 74 68 65 0a 20 20 20 20
20 74 72 61 64 65 20 61 6e 64 20 69 74 20 69 73 20 69 6e 20 74 68 65 20
76 6f 63 61 62 75 6c 61 72 79 20 72 61 74 68 65 72 20 74 68 61 6e 20 6f
6e 6c 79 20 68 65 72 65 2e
canonical CBOR for docs/58-typed-arrays-in-the-graphic-vocabulary.umsg 6249 bytes

Every construct on this page

The formal columns are read from the specification when this page is generated. The last column is this site's plain-language gloss and is not normative — where they differ, the specification is right.

constructglyphcarriesexamplegloss
:annotationA bare name qualifying the value after it—for example a language tag or a unit such as kg. It is not a value itself; a bare name with nothing after it is an error, not a guess.
:array^type, or type:shape; then [ elements ]^f64 [ 1.5, 2.5 ] or ^i16:2x3 [ … ]A packed, homogeneous numeric array. The ^ marker gives every element its type and may also give the row-major shape: ^f64:2x3 [ … ].
:array-elementOne element of a typed array. Its type comes from the ^ marker, so 1.5 inside ^f64 is binary64 rather than an exact decimal.
:array-missingA missing position in a typed array. null here is not an element value: it adds a validity mask while preserving the array's shape.
:blockA block: named pairs, in braces. Its keys are sorted in the encoding and shown here as written.
:bytes~encoding:data~hex:ff00 or ~b64:iVBORw0KGgo=Raw octets, carried as octets. No base64 tax, no pretending they are text.
:comment--to end of line-- a noteA note for people. It travels with the pair it precedes and never reaches the bytes.
:decimalAn exact decimal. 19.99 is nineteen and ninety-nine hundredths, not the nearest double to it.
:extension!name, then value!acme/hint { zone 4 }A qualifier this reader may not know. It survives the round trip intact, and stays legible on the way past — the rule that separates an extension from a private convention.
:floatA binary float, marked so it can never be mistaken for the exact decimal beside it.
:hash#algorithm:hex#sha256:deadbeefThe digest of some content, with the algorithm said out loud so it is still meaningful in ten years.
:header%unimsg only%unimsg 0 labelDeclares the format version and what this document is. Optional, and useful exactly when a file arrives without context.
:identifier@word@ord-88213Gives this value a name, so another document can point at it without copying it.
:integerA whole number of any size. Past 2^53 it is still exact, which is the whole reason this is not JSON.
:keyA field name: the first thing in a pair. It is bare when possible and quoted when needed, and names the content without becoming part of the value.
:reference->an identifier or a path-> @cust-4471, -> @lexicon.entries.kitābPoints at a name. Nothing follows it while reading — resolution is somebody else's job, deliberately.
:reserved-literalOne of six bare words that are values rather than names. The list is fixed, so no value is coerced by what it looks like.
:sequenceAn ordered list. Order is preserved and is meaning.
:stringText. May span lines, so prose does not have to be escaped into one.
:symbol:word:dispatchedA name from a fixed vocabulary, not free text. :high is a value someone chose; "high" is a phrase someone typed.
:table-row|cells| sku qtyOne record of a table. A table is sugar for a sequence of blocks with the same keys, and encodes identically to the longhand.
:timestampA temporal value at the precision written. 2026-08 stays a month, and 03:52 stays a wall-clock time; neither is widened into an invented instant.