@oim-media/spec 1.27.9 → 1.27.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CANONICAL_SPEC.md +3 -3
- package/README.md +14 -2
- package/package.json +1 -1
- package/schema/oim.schema.json +2 -2
- package/schema/oim2.schema.json +2763 -0
- package/schema/ovm.schema.json +2 -2
- package/vectors/README.md +4 -2
- package/vectors/golden/mask-window.web.png +0 -0
- package/vectors/golden/zone-group.web.png +0 -0
- package/vectors/mask-window.expected.json +45 -0
- package/vectors/mask-window.oim.png +0 -0
- package/vectors/zone-group.expected.json +46 -0
- package/vectors/zone-group.oim.png +0 -0
package/schema/ovm.schema.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://oim.media/spec/1.27.
|
|
3
|
+
"$id": "https://oim.media/spec/1.27.11/ovm.schema.json",
|
|
4
4
|
"title": "OVM document metadata",
|
|
5
|
-
"specVersion": "1.27.
|
|
5
|
+
"specVersion": "1.27.11",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"properties": {
|
|
8
8
|
"ovm_version": {
|
package/vectors/README.md
CHANGED
|
@@ -12,7 +12,7 @@ this says what **result** comes out of a specific one.
|
|
|
12
12
|
## The Normative Vectors
|
|
13
13
|
|
|
14
14
|
A reduced suite cannot tell apart an implementation that **reads the format**
|
|
15
|
-
from one that **gets a simple case right by chance**. These
|
|
15
|
+
from one that **gets a simple case right by chance**. These 39 vectors cover the
|
|
16
16
|
initial 20-vector matrix plus every capability added since contract 1.10.0:
|
|
17
17
|
|
|
18
18
|
| # | Vector | What it covers |
|
|
@@ -54,6 +54,8 @@ initial 20-vector matrix plus every capability added since contract 1.10.0:
|
|
|
54
54
|
| 35 | `background-pattern-order` | A pattern background listed last still paints under every layer; pattern tile size; unitless `letterSpacing` on centred text |
|
|
55
55
|
| 36 | `shape-shadows` | Hard shadows on a circle and on a circular photo frame: the shadow follows the shape, not its box |
|
|
56
56
|
| 37 | `artistic-text` | Artistic text (4.6): a curved 3D title with shaded extrusion, outer and inner strokes and a gradient, and a two-line word, drawn with the embedded Inter subset |
|
|
57
|
+
| 38 | `zone-group` | A 1.x zone becomes a 2.0 group: background, corners and backdrop blur kept; its layers keep their own x/y, the flex flow is retired (Decision 14 Nov) |
|
|
58
|
+
| 39 | `mask-window` | A window mask: a circle cut out of a dark cover with a white outline |
|
|
57
59
|
|
|
58
60
|
## How to use it from another language
|
|
59
61
|
|
|
@@ -70,7 +72,7 @@ without a look, which is a vector that no longer checks anything.
|
|
|
70
72
|
|
|
71
73
|
## The signature
|
|
72
74
|
|
|
73
|
-
All
|
|
75
|
+
All 39 vectors are signed with the public key published in `packages/spec/keys.json`.
|
|
74
76
|
The signature covers the canonical serialisation
|
|
75
77
|
of the metadata and the cryptographic hash of the pixels (`image_hash` over the `IDAT` chunks).
|
|
76
78
|
A reader that verifies must rebuild that canonical form following the seven rules
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Mask (window mode): a circle cut out of a dark cover with a white outline, over an orange background.",
|
|
3
|
+
"canvas": {
|
|
4
|
+
"natural_height": 600,
|
|
5
|
+
"natural_width": 800
|
|
6
|
+
},
|
|
7
|
+
"signed": true,
|
|
8
|
+
"key_version": "v1",
|
|
9
|
+
"reedit": "author_only",
|
|
10
|
+
"slots": [
|
|
11
|
+
{
|
|
12
|
+
"id": "bg",
|
|
13
|
+
"type": "container",
|
|
14
|
+
"position": [
|
|
15
|
+
0,
|
|
16
|
+
0
|
|
17
|
+
],
|
|
18
|
+
"name": "Background",
|
|
19
|
+
"content": {
|
|
20
|
+
"es": ""
|
|
21
|
+
},
|
|
22
|
+
"style": {
|
|
23
|
+
"width": "100.0cqw",
|
|
24
|
+
"height": "75.0cqw",
|
|
25
|
+
"fillColor": "#f97316"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "m",
|
|
30
|
+
"type": "mask",
|
|
31
|
+
"position": [
|
|
32
|
+
25,
|
|
33
|
+
20
|
|
34
|
+
],
|
|
35
|
+
"name": "Mask",
|
|
36
|
+
"content": {
|
|
37
|
+
"es": ""
|
|
38
|
+
},
|
|
39
|
+
"style": {
|
|
40
|
+
"width": "37.5cqw",
|
|
41
|
+
"height": "25.0cqw"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "1.x zone (Decision 14 Nov): becomes a 2.0 group with its background, corners and backdrop blur; its layers keep their own x/y, the flex flow is retired.",
|
|
3
|
+
"canvas": {
|
|
4
|
+
"natural_height": 600,
|
|
5
|
+
"natural_width": 800
|
|
6
|
+
},
|
|
7
|
+
"signed": true,
|
|
8
|
+
"key_version": "v1",
|
|
9
|
+
"reedit": "author_only",
|
|
10
|
+
"slots": [
|
|
11
|
+
{
|
|
12
|
+
"id": "inside",
|
|
13
|
+
"type": "container",
|
|
14
|
+
"position": [
|
|
15
|
+
15,
|
|
16
|
+
20
|
|
17
|
+
],
|
|
18
|
+
"name": "Inside",
|
|
19
|
+
"content": {
|
|
20
|
+
"es": ""
|
|
21
|
+
},
|
|
22
|
+
"style": {
|
|
23
|
+
"width": "10.0cqw",
|
|
24
|
+
"height": "10.0cqw",
|
|
25
|
+
"fillColor": "#1e293b"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "outside",
|
|
30
|
+
"type": "container",
|
|
31
|
+
"position": [
|
|
32
|
+
70,
|
|
33
|
+
60
|
|
34
|
+
],
|
|
35
|
+
"name": "Outside",
|
|
36
|
+
"content": {
|
|
37
|
+
"es": ""
|
|
38
|
+
},
|
|
39
|
+
"style": {
|
|
40
|
+
"width": "15.0cqw",
|
|
41
|
+
"height": "15.0cqw",
|
|
42
|
+
"fillColor": "#22c55e"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
Binary file
|