openvibers/openvibe.contracts Commits

Add Meme entry and render contracts (#374)

OP OpenVibers committed 4 days ago · 7036399e4f · 61 files, +1280 −95

* Add Meme entry and render contracts

* 0.360.0: on top of main (Meme entry and render contracts)

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex 6ca44a51..5f755069 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -1,5 +1,9 @@
# Changelog
++## 0.360.0 — 2026-11-09
++
++- Meme entry and render contracts
++
## 0.359.0 — 2026-11-09
- Media multipart uploads in contracts and OpenAPI
ddiff --git a/contracts/catalog.json b/contracts/catalog.json
iindex 7e37b6bf..e2b60525 100644
---- a/contracts/catalog.json
++++ b/contracts/catalog.json
@@@ -10560,6 +10560,33 @@
"compatibility": "backward",
"status": "active",
"adr": "ADR-001"
++ },
++ {
++ "id": "meme.entry",
++ "version": "1.0.0",
++ "owner": "meme",
++ "schema": "meme/entry.v1.json",
++ "visibility": "public",
++ "compatibility": "backward",
++ "status": "active"
++ },
++ {
++ "id": "meme.template",
++ "version": "1.0.0",
++ "owner": "meme",
++ "schema": "meme/template.v1.json",
++ "visibility": "public",
++ "compatibility": "backward",
++ "status": "active"
++ },
++ {
++ "id": "meme.render",
++ "version": "1.0.0",
++ "owner": "meme",
++ "schema": "meme/render.v1.json",
++ "visibility": "public",
++ "compatibility": "backward",
++ "status": "active"
}
]
}
ddiff --git a/contracts/meme/entry.v1.json b/contracts/meme/entry.v1.json
nnew file mode 100644
iindex 00000000..ec7c5c71
---- /dev/null
++++ b/contracts/meme/entry.v1.json
@@@ -0,0 +1,35 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/meme/entry.v1.json",
++ "title": "MemeEntry",
++ "description": "meme.entry@1: a cited, public entry in the OpenVibe.Meme internet-meme encyclopedia, including its origin, timeline, variations, examples and related entries.",
++ "type": "object",
++ "required": ["id", "slug", "title", "scope", "kind", "status", "summary", "meaning", "usage", "first_seen_at", "last_seen_at", "visibility", "revision", "origin", "web_origin", "citations", "timeline", "spread", "variations", "examples", "related"],
++ "properties": {
++ "id": { "type": "string", "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$" },
++ "slug": { "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "maxLength": 80 },
++ "title": { "type": "string", "minLength": 1, "maxLength": 160 },
++ "scope": { "const": "internet" },
++ "kind": { "type": "string", "enum": ["classic", "format", "meme"] },
++ "status": { "type": "string", "enum": ["rising", "peaked", "classic", "dead"] },
++ "summary": { "type": ["string", "null"], "maxLength": 600 },
++ "meaning": { "type": ["string", "null"], "maxLength": 4000 },
++ "usage": { "type": ["string", "null"], "maxLength": 4000 },
++ "labels": { "type": "array", "items": { "type": "string", "maxLength": 40 }, "maxItems": 20 },
++ "first_seen_at": { "type": ["string", "null"], "format": "date-time" },
++ "last_seen_at": { "type": ["string", "null"], "format": "date-time" },
++ "visibility": { "const": "public" },
++ "revision": { "type": "integer", "minimum": 1 },
++ "origin": { "type": ["object", "null"] },
++ "web_origin": { "type": ["object", "null"] },
++ "citations": { "type": "array", "items": { "type": "object" }, "maxItems": 1000 },
++ "timeline": { "type": "array", "items": { "type": "object" }, "maxItems": 1000 },
++ "spread": { "type": "array", "items": { "type": "object" }, "maxItems": 100 },
++ "variations": { "type": "array", "items": { "type": "object" }, "maxItems": 100 },
++ "examples": { "type": "array", "items": { "type": "object" }, "maxItems": 100 },
++ "related": { "type": "array", "items": { "type": "object" }, "maxItems": 30 },
++ "revisions": { "type": "array", "items": { "type": "object" }, "maxItems": 200 },
++ "url": { "type": "string", "format": "uri" }
++ },
++ "additionalProperties": true
++}
ddiff --git a/contracts/meme/render.v1.json b/contracts/meme/render.v1.json
nnew file mode 100644
iindex 00000000..00da45a9
---- /dev/null
++++ b/contracts/meme/render.v1.json
@@@ -0,0 +1,29 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/meme/render.v1.json",
++ "title": "MemeRenderRequest",
++ "description": "meme.render@1: a request to render 1–4 caption lines over an approved template. PNG is the default; GIF and MP4 return short, looped exports. Editor positions and crop coordinates are percentages of the canvas.",
++ "type": "object",
++ "required": ["template_id", "lines"],
++ "properties": {
++ "template_id": { "type": "string", "minLength": 1, "maxLength": 80 },
++ "lines": { "type": "array", "minItems": 1, "maxItems": 4, "items": { "type": "string", "maxLength": 120 } },
++ "format": { "type": "string", "enum": ["png", "gif", "mp4"], "default": "png" },
++ "editor": {
++ "type": "object",
++ "properties": {
++ "font_style": { "type": "string", "enum": ["impact", "modern", "soft"] },
++ "font_size": { "type": "integer", "minimum": 10, "maximum": 64 },
++ "color": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
++ "outline": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
++ "outline_width": { "type": "integer", "minimum": 0, "maximum": 8 },
++ "crop_x": { "type": "number", "minimum": 0, "maximum": 100 },
++ "crop_y": { "type": "number", "minimum": 0, "maximum": 100 },
++ "boxes": { "type": "array", "minItems": 1, "maxItems": 4, "items": { "type": "object", "required": ["x", "y", "w", "h"], "properties": { "x": { "type": "number", "minimum": 0, "maximum": 100 }, "y": { "type": "number", "minimum": 0, "maximum": 100 }, "w": { "type": "number", "exclusiveMinimum": 0, "maximum": 100 }, "h": { "type": "number", "exclusiveMinimum": 0, "maximum": 100 } }, "additionalProperties": false } },
++ "stickers": { "type": "array", "maxItems": 8, "items": { "type": "object", "required": ["emoji", "x", "y"], "properties": { "emoji": { "type": "string", "enum": ["✨", "😂", "🔥", "💀", "👀", "❤️", "🙌"] }, "x": { "type": "number", "minimum": 0, "maximum": 100 }, "y": { "type": "number", "minimum": 0, "maximum": 100 } }, "additionalProperties": false } }
++ },
++ "additionalProperties": false
++ }
++ },
++ "additionalProperties": false
++}
ddiff --git a/contracts/meme/template.v1.json b/contracts/meme/template.v1.json
nnew file mode 100644
iindex 00000000..e5ade92d
---- /dev/null
++++ b/contracts/meme/template.v1.json
@@@ -0,0 +1,24 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/meme/template.v1.json",
++ "title": "MemeTemplate",
++ "description": "meme.template@1: a reusable meme image with its source, reuse licence and caption layout. Public templates have passed any required review.",
++ "type": "object",
++ "required": ["id", "name", "image_url", "box_count", "source", "license", "created_at"],
++ "properties": {
++ "id": { "type": "string", "minLength": 1, "maxLength": 80 },
++ "name": { "type": "string", "minLength": 1, "maxLength": 80 },
++ "image_url": { "type": "string", "format": "uri-reference", "maxLength": 2048 },
++ "box_count": { "type": "integer", "minimum": 1, "maximum": 8 },
++ "source": { "type": "string", "maxLength": 160 },
++ "license": { "type": "string", "maxLength": 200 },
++ "credit": { "type": "string", "maxLength": 300 },
++ "source_url": { "type": "string", "format": "uri", "maxLength": 2048 },
++ "attribution": { "type": "string", "maxLength": 500 },
++ "created_at": { "type": "string", "format": "date-time" },
++ "layout": { "type": "object", "required": ["width", "height", "boxes"], "properties": { "width": { "type": "integer", "minimum": 64, "maximum": 4096 }, "height": { "type": "integer", "minimum": 64, "maximum": 4096 }, "boxes": { "type": "array", "minItems": 1, "maxItems": 8, "items": { "type": "object" } } }, "additionalProperties": true },
++ "captions": { "type": "integer", "minimum": 0 },
++ "uses_today": { "type": "integer", "minimum": 0 }
++ },
++ "additionalProperties": true
++}
ddiff --git a/fixtures/meme.entry/invalid/no-slug.json b/fixtures/meme.entry/invalid/no-slug.json
nnew file mode 100644
iindex 00000000..e2a6e46a
---- /dev/null
++++ b/fixtures/meme.entry/invalid/no-slug.json
@@@ -0,0 +1,23 @@
++{
++ "id": "mem_01ARZ3NDEKTSV4RRFFQ69G5FAV",
++ "slug": "Bad Slug",
++ "title": "A meme",
++ "scope": "internet",
++ "kind": "meme",
++ "status": "rising",
++ "summary": null,
++ "meaning": null,
++ "usage": null,
++ "first_seen_at": null,
++ "last_seen_at": null,
++ "visibility": "public",
++ "revision": 1,
++ "origin": null,
++ "web_origin": null,
++ "citations": [],
++ "timeline": [],
++ "spread": [],
++ "variations": [],
++ "examples": [],
++ "related": []
++}
ddiff --git a/fixtures/meme.entry/valid/distracted-boyfriend.json b/fixtures/meme.entry/valid/distracted-boyfriend.json
nnew file mode 100644
iindex 00000000..89d4910d
---- /dev/null
++++ b/fixtures/meme.entry/valid/distracted-boyfriend.json
@@@ -0,0 +1,26 @@
++{
++ "id": "mem_01ARZ3NDEKTSV4RRFFQ69G5FAV",
++ "slug": "distracted-boyfriend",
++ "title": "Distracted Boyfriend",
++ "scope": "internet",
++ "kind": "format",
++ "status": "classic",
++ "summary": "A person turns to look at something new while their partner reacts.",
++ "meaning": "A template for comparing a tempting novelty with a familiar choice.",
++ "usage": "Label the three roles to show a switch of attention.",
++ "labels": ["reaction", "comparison"],
++ "first_seen_at": "2017-08-21T00:00:00.000Z",
++ "last_seen_at": "2026-11-08T00:00:00.000Z",
++ "visibility": "public",
++ "revision": 1,
++ "origin": { "source": "photograph", "url": "https://example.org/origin", "title": "The photograph" },
++ "web_origin": { "source": "photograph", "url": "https://example.org/origin", "title": "The photograph" },
++ "citations": [],
++ "timeline": [],
++ "spread": [],
++ "variations": [],
++ "examples": [],
++ "related": [],
++ "revisions": [],
++ "url": "https://openvibe.meme/m/distracted-boyfriend"
++}
ddiff --git a/fixtures/meme.render/invalid/empty-lines.json b/fixtures/meme.render/invalid/empty-lines.json
nnew file mode 100644
iindex 00000000..6a964d33
---- /dev/null
++++ b/fixtures/meme.render/invalid/empty-lines.json
@@@ -0,0 +1,5 @@
++{
++ "template_id": "tpl_classic",
++ "lines": [],
++ "format": "png"
++}
ddiff --git a/fixtures/meme.render/valid/editor-mp4.json b/fixtures/meme.render/valid/editor-mp4.json
nnew file mode 100644
iindex 00000000..0a0fbb3d
---- /dev/null
++++ b/fixtures/meme.render/valid/editor-mp4.json
@@@ -0,0 +1,16 @@
++{
++ "template_id": "tpl_classic",
++ "lines": ["Ship the fix", "then celebrate"],
++ "format": "mp4",
++ "editor": {
++ "font_style": "impact",
++ "font_size": 30,
++ "color": "#ffffff",
++ "outline": "#000000",
++ "outline_width": 3,
++ "crop_x": 50,
++ "crop_y": 50,
++ "boxes": [{ "x": 5, "y": 7, "w": 90, "h": 24 }, { "x": 5, "y": 68, "w": 90, "h": 24 }],
++ "stickers": [{ "emoji": "🔥", "x": 52, "y": 54 }]
++ }
++}
ddiff --git a/fixtures/meme.template/invalid/no-image.json b/fixtures/meme.template/invalid/no-image.json
nnew file mode 100644
iindex 00000000..634392c3
---- /dev/null
++++ b/fixtures/meme.template/invalid/no-image.json
@@@ -0,0 +1,8 @@
++{
++ "id": "tpl_example",
++ "name": "Example",
++ "box_count": 2,
++ "source": "Commons",
++ "license": "CC BY-SA",
++ "created_at": "2026-11-08T00:00:00.000Z"
++}
ddiff --git a/fixtures/meme.template/valid/commons-template.json b/fixtures/meme.template/valid/commons-template.json
nnew file mode 100644
iindex 00000000..699d867c
---- /dev/null
++++ b/fixtures/meme.template/valid/commons-template.json
@@@ -0,0 +1,14 @@
++{
++ "id": "tpl_distracted-boyfriend",
++ "name": "Distracted Boyfriend",
++ "image_url": "https://openvibe.media/o/med_01ARZ3NDEKTSV4RRFFQ69G5FAV",
++ "box_count": 3,
++ "source": "Wikimedia Commons",
++ "license": "CC BY-SA 4.0",
++ "credit": "Photographer",
++ "source_url": "https://commons.wikimedia.org/wiki/File:Example.jpg",
++ "created_at": "2026-11-08T00:00:00.000Z",
++ "layout": { "width": 440, "height": 280, "boxes": [{ "x": 4, "y": 5, "w": 90, "h": 20 }] },
++ "captions": 10,
++ "uses_today": 2
++}
ddiff --git a/generated/json-schema/bundle.json b/generated/json-schema/bundle.json
iindex 17a331a4..f1e107d9 100644
---- a/generated/json-schema/bundle.json
++++ b/generated/json-schema/bundle.json
@@@ -115481,6 +115481,457 @@
}
}
}
++ },
++ "meme.entry": {
++ "version": "1.0.0",
++ "owner": "meme",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/meme/entry.v1.json",
++ "title": "MemeEntry",
++ "description": "meme.entry@1: a cited, public entry in the OpenVibe.Meme internet-meme encyclopedia, including its origin, timeline, variations, examples and related entries.",
++ "type": "object",
++ "required": [
++ "id",
++ "slug",
++ "title",
++ "scope",
++ "kind",
++ "status",
++ "summary",
++ "meaning",
++ "usage",
++ "first_seen_at",
++ "last_seen_at",
++ "visibility",
++ "revision",
++ "origin",
++ "web_origin",
++ "citations",
++ "timeline",
++ "spread",
++ "variations",
++ "examples",
++ "related"
++ ],
++ "properties": {
++ "id": {
++ "type": "string",
++ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"
++ },
++ "slug": {
++ "type": "string",
++ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
++ "maxLength": 80
++ },
++ "title": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 160
++ },
++ "scope": {
++ "const": "internet"
++ },
++ "kind": {
++ "type": "string",
++ "enum": [
++ "classic",
++ "format",
++ "meme"
++ ]
++ },
++ "status": {
++ "type": "string",
++ "enum": [
++ "rising",
++ "peaked",
++ "classic",
++ "dead"
++ ]
++ },
++ "summary": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 600
++ },
++ "meaning": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 4000
++ },
++ "usage": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 4000
++ },
++ "labels": {
++ "type": "array",
++ "items": {
++ "type": "string",
++ "maxLength": 40
++ },
++ "maxItems": 20
++ },
++ "first_seen_at": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "date-time"
++ },
++ "last_seen_at": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "date-time"
++ },
++ "visibility": {
++ "const": "public"
++ },
++ "revision": {
++ "type": "integer",
++ "minimum": 1
++ },
++ "origin": {
++ "type": [
++ "object",
++ "null"
++ ]
++ },
++ "web_origin": {
++ "type": [
++ "object",
++ "null"
++ ]
++ },
++ "citations": {
++ "type": "array",
++ "items": {
++ "type": "object"
++ },
++ "maxItems": 1000
++ },
++ "timeline": {
++ "type": "array",
++ "items": {
++ "type": "object"
++ },
++ "maxItems": 1000
++ },
++ "spread": {
++ "type": "array",
++ "items": {
++ "type": "object"
++ },
++ "maxItems": 100
++ },
++ "variations": {
++ "type": "array",
++ "items": {
++ "type": "object"
++ },
++ "maxItems": 100
++ },
++ "examples": {
++ "type": "array",
++ "items": {
++ "type": "object"
++ },
++ "maxItems": 100
++ },
++ "related": {
++ "type": "array",
++ "items": {
++ "type": "object"
++ },
++ "maxItems": 30
++ },
++ "revisions": {
++ "type": "array",
++ "items": {
++ "type": "object"
++ },
++ "maxItems": 200
++ },
++ "url": {
++ "type": "string",
++ "format": "uri"
++ }
++ },
++ "additionalProperties": true
++ }
++ },
++ "meme.template": {
++ "version": "1.0.0",
++ "owner": "meme",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/meme/template.v1.json",
++ "title": "MemeTemplate",
++ "description": "meme.template@1: a reusable meme image with its source, reuse licence and caption layout. Public templates have passed any required review.",
++ "type": "object",
++ "required": [
++ "id",
++ "name",
++ "image_url",
++ "box_count",
++ "source",
++ "license",
++ "created_at"
++ ],
++ "properties": {
++ "id": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 80
++ },
++ "name": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 80
++ },
++ "image_url": {
++ "type": "string",
++ "format": "uri-reference",
++ "maxLength": 2048
++ },
++ "box_count": {
++ "type": "integer",
++ "minimum": 1,
++ "maximum": 8
++ },
++ "source": {
++ "type": "string",
++ "maxLength": 160
++ },
++ "license": {
++ "type": "string",
++ "maxLength": 200
++ },
++ "credit": {
++ "type": "string",
++ "maxLength": 300
++ },
++ "source_url": {
++ "type": "string",
++ "format": "uri",
++ "maxLength": 2048
++ },
++ "attribution": {
++ "type": "string",
++ "maxLength": 500
++ },
++ "created_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "layout": {
++ "type": "object",
++ "required": [
++ "width",
++ "height",
++ "boxes"
++ ],
++ "properties": {
++ "width": {
++ "type": "integer",
++ "minimum": 64,
++ "maximum": 4096
++ },
++ "height": {
++ "type": "integer",
++ "minimum": 64,
++ "maximum": 4096
++ },
++ "boxes": {
++ "type": "array",
++ "minItems": 1,
++ "maxItems": 8,
++ "items": {
++ "type": "object"
++ }
++ }
++ },
++ "additionalProperties": true
++ },
++ "captions": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "uses_today": {
++ "type": "integer",
++ "minimum": 0
++ }
++ },
++ "additionalProperties": true
++ }
++ },
++ "meme.render": {
++ "version": "1.0.0",
++ "owner": "meme",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/meme/render.v1.json",
++ "title": "MemeRenderRequest",
++ "description": "meme.render@1: a request to render 1–4 caption lines over an approved template. PNG is the default; GIF and MP4 return short, looped exports. Editor positions and crop coordinates are percentages of the canvas.",
++ "type": "object",
++ "required": [
++ "template_id",
++ "lines"
++ ],
++ "properties": {
++ "template_id": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 80
++ },
++ "lines": {
++ "type": "array",
++ "minItems": 1,
++ "maxItems": 4,
++ "items": {
++ "type": "string",
++ "maxLength": 120
++ }
++ },
++ "format": {
++ "type": "string",
++ "enum": [
++ "png",
++ "gif",
++ "mp4"
++ ],
++ "default": "png"
++ },
++ "editor": {
++ "type": "object",
++ "properties": {
++ "font_style": {
++ "type": "string",
++ "enum": [
++ "impact",
++ "modern",
++ "soft"
++ ]
++ },
++ "font_size": {
++ "type": "integer",
++ "minimum": 10,
++ "maximum": 64
++ },
++ "color": {
++ "type": "string",
++ "pattern": "^#[0-9a-fA-F]{6}$"
++ },
++ "outline": {
++ "type": "string",
++ "pattern": "^#[0-9a-fA-F]{6}$"
++ },
++ "outline_width": {
++ "type": "integer",
++ "minimum": 0,
++ "maximum": 8
++ },
++ "crop_x": {
++ "type": "number",
++ "minimum": 0,
++ "maximum": 100
++ },
++ "crop_y": {
++ "type": "number",
++ "minimum": 0,
++ "maximum": 100
++ },
++ "boxes": {
++ "type": "array",
++ "minItems": 1,
++ "maxItems": 4,
++ "items": {
++ "type": "object",
++ "required": [
++ "x",
++ "y",
++ "w",
++ "h"
++ ],
++ "properties": {
++ "x": {
++ "type": "number",
++ "minimum": 0,
++ "maximum": 100
++ },
++ "y": {
++ "type": "number",
++ "minimum": 0,
++ "maximum": 100
++ },
++ "w": {
++ "type": "number",
++ "exclusiveMinimum": 0,
++ "maximum": 100
++ },
++ "h": {
++ "type": "number",
++ "exclusiveMinimum": 0,
++ "maximum": 100
++ }
++ },
++ "additionalProperties": false
++ }
++ },
++ "stickers": {
++ "type": "array",
++ "maxItems": 8,
++ "items": {
++ "type": "object",
++ "required": [
++ "emoji",
++ "x",
++ "y"
++ ],
++ "properties": {
++ "emoji": {
++ "type": "string",
++ "enum": [
++ "✨",
++ "😂",
++ "🔥",
++ "💀",
++ "👀",
++ "❤️",
++ "🙌"
++ ]
++ },
++ "x": {
++ "type": "number",
++ "minimum": 0,
++ "maximum": 100
++ },
++ "y": {
++ "type": "number",
++ "minimum": 0,
++ "maximum": 100
++ }
++ },
++ "additionalProperties": false
++ }
++ }
++ },
++ "additionalProperties": false
++ }
++ },
++ "additionalProperties": false
++ }
}
}
}
ddiff --git a/generated/openapi/actor.json b/generated/openapi/actor.json
iindex b02f60ea..c06c1aa7 100644
---- a/generated/openapi/actor.json
++++ b/generated/openapi/actor.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Actor API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/ai.json b/generated/openapi/ai.json
iindex d8eaba9e..0dee2bec 100644
---- a/generated/openapi/ai.json
++++ b/generated/openapi/ai.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.AI API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/bench.json b/generated/openapi/bench.json
iindex a252a00e..739ab409 100644
---- a/generated/openapi/bench.json
++++ b/generated/openapi/bench.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Bench API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/billing.json b/generated/openapi/billing.json
iindex fd70e123..f09a77a1 100644
---- a/generated/openapi/billing.json
++++ b/generated/openapi/billing.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Billing API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/blog.json b/generated/openapi/blog.json
iindex be19d7b2..af4567cd 100644
---- a/generated/openapi/blog.json
++++ b/generated/openapi/blog.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Blog API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/bot.json b/generated/openapi/bot.json
iindex 03ce46e4..cff46047 100644
---- a/generated/openapi/bot.json
++++ b/generated/openapi/bot.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Bot API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/chat.json b/generated/openapi/chat.json
iindex b1ee4954..cad88eab 100644
---- a/generated/openapi/chat.json
++++ b/generated/openapi/chat.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Chat API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/codes.json b/generated/openapi/codes.json
iindex af38aabe..0f5a1435 100644
---- a/generated/openapi/codes.json
++++ b/generated/openapi/codes.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Codes API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/community.json b/generated/openapi/community.json
iindex 8c2b465c..2ec7e341 100644
---- a/generated/openapi/community.json
++++ b/generated/openapi/community.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Community API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/connect.json b/generated/openapi/connect.json
iindex 26f418ba..0c03ccc8 100644
---- a/generated/openapi/connect.json
++++ b/generated/openapi/connect.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe Connect API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/coupons.json b/generated/openapi/coupons.json
iindex 09ee4007..d6d6d853 100644
---- a/generated/openapi/coupons.json
++++ b/generated/openapi/coupons.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Coupons API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/deals.json b/generated/openapi/deals.json
iindex 37d4b4d6..9d38581d 100644
---- a/generated/openapi/deals.json
++++ b/generated/openapi/deals.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Deals API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/design.json b/generated/openapi/design.json
iindex 4ac6fc74..b2adcc06 100644
---- a/generated/openapi/design.json
++++ b/generated/openapi/design.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Design API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/domains.json b/generated/openapi/domains.json
iindex b312c0b1..981dbf1a 100644
---- a/generated/openapi/domains.json
++++ b/generated/openapi/domains.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Domains API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/events.json b/generated/openapi/events.json
iindex df721994..5f7e2391 100644
---- a/generated/openapi/events.json
++++ b/generated/openapi/events.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Events API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/exchange.json b/generated/openapi/exchange.json
iindex 266acec5..656a1685 100644
---- a/generated/openapi/exchange.json
++++ b/generated/openapi/exchange.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Exchange API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Exchange as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Exchange as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/food.json b/generated/openapi/food.json
iindex 759f26ae..40b8c9b9 100644
---- a/generated/openapi/food.json
++++ b/generated/openapi/food.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Food API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/games.json b/generated/openapi/games.json
iindex bbc0928f..49f4e30a 100644
---- a/generated/openapi/games.json
++++ b/generated/openapi/games.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Games API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/host.json b/generated/openapi/host.json
iindex 99a3766d..66a4fd34 100644
---- a/generated/openapi/host.json
++++ b/generated/openapi/host.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Host API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/inventory.json b/generated/openapi/inventory.json
iindex 3d6ee465..fe6ea4cc 100644
---- a/generated/openapi/inventory.json
++++ b/generated/openapi/inventory.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Inventory API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/live.json b/generated/openapi/live.json
iindex 22397831..e933b184 100644
---- a/generated/openapi/live.json
++++ b/generated/openapi/live.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Live API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/mail.json b/generated/openapi/mail.json
iindex d4e80019..a0764b03 100644
---- a/generated/openapi/mail.json
++++ b/generated/openapi/mail.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Mail API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/media-hub.json b/generated/openapi/media-hub.json
iindex 736c0628..64edec07 100644
---- a/generated/openapi/media-hub.json
++++ b/generated/openapi/media-hub.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.MediaHub API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/media.json b/generated/openapi/media.json
iindex c227567b..27d60f71 100644
---- a/generated/openapi/media.json
++++ b/generated/openapi/media.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Media API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/network.json b/generated/openapi/network.json
iindex 6a3be0b9..a2be8073 100644
---- a/generated/openapi/network.json
++++ b/generated/openapi/network.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Network API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/news.json b/generated/openapi/news.json
iindex d07da6dc..177799e0 100644
---- a/generated/openapi/news.json
++++ b/generated/openapi/news.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.News API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/openre.json b/generated/openapi/openre.json
iindex 9cad7e83..c352876f 100644
---- a/generated/openapi/openre.json
++++ b/generated/openapi/openre.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenRestream API",
-- "version": "0.359.0",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/play.json b/generated/openapi/play.json
iindex 92ef7b46..bd1b902a 100644
---- a/generated/openapi/play.json
++++ b/generated/openapi/play.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Play API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/quest.json b/generated/openapi/quest.json
iindex c23c667a..b9ccc626 100644
---- a/generated/openapi/quest.json
++++ b/generated/openapi/quest.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Quest API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/report.json b/generated/openapi/report.json
iindex 923ce945..d3620873 100644
---- a/generated/openapi/report.json
++++ b/generated/openapi/report.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Report API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/reviews.json b/generated/openapi/reviews.json
iindex 6b26be41..52559bf9 100644
---- a/generated/openapi/reviews.json
++++ b/generated/openapi/reviews.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Reviews API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/run.json b/generated/openapi/run.json
iindex 1de03385..12554740 100644
---- a/generated/openapi/run.json
++++ b/generated/openapi/run.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Run API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/search.json b/generated/openapi/search.json
iindex 92502e64..20163ac9 100644
---- a/generated/openapi/search.json
++++ b/generated/openapi/search.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Search API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/services.json b/generated/openapi/services.json
iindex 1d30acd2..ef016785 100644
---- a/generated/openapi/services.json
++++ b/generated/openapi/services.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Services API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/sources.json b/generated/openapi/sources.json
iindex 007c0702..1a0a5905 100644
---- a/generated/openapi/sources.json
++++ b/generated/openapi/sources.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Sources API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/space.json b/generated/openapi/space.json
iindex 966d66d7..a7ed9bc7 100644
---- a/generated/openapi/space.json
++++ b/generated/openapi/space.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Space API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tips.json b/generated/openapi/tips.json
iindex d65aca2f..72654aba 100644
---- a/generated/openapi/tips.json
++++ b/generated/openapi/tips.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Tips API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/today.json b/generated/openapi/today.json
iindex 203a92d3..ef51d1d0 100644
---- a/generated/openapi/today.json
++++ b/generated/openapi/today.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Today API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tools.json b/generated/openapi/tools.json
iindex ee19891b..144219f6 100644
---- a/generated/openapi/tools.json
++++ b/generated/openapi/tools.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Tools API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/trade.json b/generated/openapi/trade.json
iindex 724de55e..79f39811 100644
---- a/generated/openapi/trade.json
++++ b/generated/openapi/trade.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Trade API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/vip.json b/generated/openapi/vip.json
iindex 30956f97..d64ad83f 100644
---- a/generated/openapi/vip.json
++++ b/generated/openapi/vip.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.VIP API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/vision.json b/generated/openapi/vision.json
iindex e4c0db1e..f2598b0f 100644
---- a/generated/openapi/vision.json
++++ b/generated/openapi/vision.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Vision API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/watch.json b/generated/openapi/watch.json
iindex af334a77..8a3a39cc 100644
---- a/generated/openapi/watch.json
++++ b/generated/openapi/watch.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Watch API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/wiki.json b/generated/openapi/wiki.json
iindex 712114f2..5eec7240 100644
---- a/generated/openapi/wiki.json
++++ b/generated/openapi/wiki.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Wiki API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/work.json b/generated/openapi/work.json
iindex a815a897..b8119db9 100644
---- a/generated/openapi/work.json
++++ b/generated/openapi/work.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Work API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/zone.json b/generated/openapi/zone.json
iindex 5ce253e3..73ca9eff 100644
---- a/generated/openapi/zone.json
++++ b/generated/openapi/zone.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Zone API",
-- "version": "0.359.0",
-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.359.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.360.0",
++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.360.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/typescript/index.d.ts b/generated/typescript/index.d.ts
iindex f14bb2f5..a1263ad1 100644
---- a/generated/typescript/index.d.ts
++++ b/generated/typescript/index.d.ts
@@@ -317981,3 +317981,526 @@ export interface ChatViewPreference {
*/
conversation_id?: string | number;
}
++
++/** [email protected] (owner: meme) */
++/**
++ * meme.entry@1: a cited, public entry in the OpenVibe.Meme internet-meme encyclopedia, including its origin, timeline, variations, examples and related entries.
++ */
++export interface MemeEntry {
++ id: string;
++ slug: string;
++ title: string;
++ scope: "internet";
++ kind: "classic" | "format" | "meme";
++ status: "rising" | "peaked" | "classic" | "dead";
++ summary: string | null;
++ meaning: string | null;
++ usage: string | null;
++ /**
++ * @maxItems 20
++ */
++ labels?:
++ | []
++ | [string]
++ | [string, string]
++ | [string, string, string]
++ | [string, string, string, string]
++ | [string, string, string, string, string]
++ | [string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string, string, string, string, string, string, string]
++ | [string, string, string, string, string, string, string, string, string, string, string, string, string, string]
++ | [
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string
++ ]
++ | [
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string
++ ]
++ | [
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string
++ ]
++ | [
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string
++ ]
++ | [
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string
++ ]
++ | [
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string,
++ string
++ ];
++ first_seen_at: string | null;
++ last_seen_at: string | null;
++ visibility: "public";
++ revision: number;
++ origin: {} | null;
++ web_origin: {} | null;
++ /**
++ * @maxItems 1000
++ */
++ citations: {}[];
++ /**
++ * @maxItems 1000
++ */
++ timeline: {}[];
++ /**
++ * @maxItems 100
++ */
++ spread: {}[];
++ /**
++ * @maxItems 100
++ */
++ variations: {}[];
++ /**
++ * @maxItems 100
++ */
++ examples: {}[];
++ /**
++ * @maxItems 30
++ */
++ related: {}[];
++ /**
++ * @maxItems 200
++ */
++ revisions?: {}[];
++ url?: string;
++ [k: string]: unknown | undefined;
++}
++
++/** [email protected] (owner: meme) */
++/**
++ * meme.template@1: a reusable meme image with its source, reuse licence and caption layout. Public templates have passed any required review.
++ */
++export interface MemeTemplate {
++ id: string;
++ name: string;
++ image_url: string;
++ box_count: number;
++ source: string;
++ license: string;
++ credit?: string;
++ source_url?: string;
++ attribution?: string;
++ created_at: string;
++ layout?: {
++ width: number;
++ height: number;
++ /**
++ * @minItems 1
++ * @maxItems 8
++ */
++ boxes:
++ | [{}]
++ | [{}, {}]
++ | [{}, {}, {}]
++ | [{}, {}, {}, {}]
++ | [{}, {}, {}, {}, {}]
++ | [{}, {}, {}, {}, {}, {}]
++ | [{}, {}, {}, {}, {}, {}, {}]
++ | [{}, {}, {}, {}, {}, {}, {}, {}];
++ [k: string]: unknown | undefined;
++ };
++ captions?: number;
++ uses_today?: number;
++ [k: string]: unknown | undefined;
++}
++
++/** [email protected] (owner: meme) */
++/**
++ * meme.render@1: a request to render 1–4 caption lines over an approved template. PNG is the default; GIF and MP4 return short, looped exports. Editor positions and crop coordinates are percentages of the canvas.
++ */
++export interface MemeRenderRequest {
++ template_id: string;
++ /**
++ * @minItems 1
++ * @maxItems 4
++ */
++ lines: [string] | [string, string] | [string, string, string] | [string, string, string, string];
++ format?: "png" | "gif" | "mp4";
++ editor?: {
++ font_style?: "impact" | "modern" | "soft";
++ font_size?: number;
++ color?: string;
++ outline?: string;
++ outline_width?: number;
++ crop_x?: number;
++ crop_y?: number;
++ /**
++ * @minItems 1
++ * @maxItems 4
++ */
++ boxes?:
++ | [
++ {
++ x: number;
++ y: number;
++ w: number;
++ h: number;
++ }
++ ]
++ | [
++ {
++ x: number;
++ y: number;
++ w: number;
++ h: number;
++ },
++ {
++ x: number;
++ y: number;
++ w: number;
++ h: number;
++ }
++ ]
++ | [
++ {
++ x: number;
++ y: number;
++ w: number;
++ h: number;
++ },
++ {
++ x: number;
++ y: number;
++ w: number;
++ h: number;
++ },
++ {
++ x: number;
++ y: number;
++ w: number;
++ h: number;
++ }
++ ]
++ | [
++ {
++ x: number;
++ y: number;
++ w: number;
++ h: number;
++ },
++ {
++ x: number;
++ y: number;
++ w: number;
++ h: number;
++ },
++ {
++ x: number;
++ y: number;
++ w: number;
++ h: number;
++ },
++ {
++ x: number;
++ y: number;
++ w: number;
++ h: number;
++ }
++ ];
++ /**
++ * @maxItems 8
++ */
++ stickers?:
++ | []
++ | [
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ }
++ ]
++ | [
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ }
++ ]
++ | [
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ }
++ ]
++ | [
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ }
++ ]
++ | [
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ }
++ ]
++ | [
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ }
++ ]
++ | [
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ }
++ ]
++ | [
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ },
++ {
++ emoji: "✨" | "😂" | "🔥" | "💀" | "👀" | "❤️" | "🙌";
++ x: number;
++ y: number;
++ }
++ ];
++ };
++}
ddiff --git a/package-lock.json b/package-lock.json
iindex eac4adc8..9c66fbbe 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -1,12 +1,12 @@
{
"name": "openvibe-contracts",
-- "version": "0.359.0",
++ "version": "0.360.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openvibe-contracts",
-- "version": "0.359.0",
++ "version": "0.360.0",
"license": "AGPL-3.0-only",
"dependencies": {
"ajv": "^8.17.1",
ddiff --git a/package.json b/package.json
iindex 7ae86dfa..0edd1ee9 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.359.0",
++ "version": "0.360.0",
"description": "Machine-readable contracts for the OpenVibe network: schemas, manifests, ids, error envelope, capability checks.",
"main": "index.js",
"types": "generated/typescript/index.d.ts",