openvibers/openvibe.contracts Commits

0.425.0: a feed card says who posted it and what a deal costs (#479)

OP OpenVibers committed 3 h ago · 2bd287a491 · 57 files, +664 −132

* 0.425.0: a feed card says who posted it and what a deal costs (feed.item@1 1.1.0)

The owner, 11-13: "it should say who posted it … their level … their username effects"; "update the listings for
deals". Optional: actor.handle, actor.level; group.items[].price { amount, currency }, was, store. Fixtures valid and
invalid.

* feed.item@1: actor.fx, the name effect a person wears (looked up server-side)

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex 84d3f6cc..cf9b9a5e 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -1,5 +1,18 @@
# Changelog
++## 0.425.0 — 2026-11-13
++
++**A feed card says who posted it and what a deal costs** (the owner, 11-13: "it should say who posted it, and it
++should show like … their level … more details of the user … their username effects"; "update the listings for
++deals"). `feed.item@1` 1.1.0, every new field optional:
++
++- `actor.handle` (the username, no @), `actor.level` (null when the person hides it) and `actor.fx` (the name effect
++ they wear, an Inventory token such as `name-fx-rainbow`, looked up by the feed's server so no site needs Inventory in
++ its connect-src; Shared's items.css draws it).
++- `group.items[].price` (`{ amount, currency }`), `was` and `store`: a folded run of deals lists each with its price,
++ its old price and where it is sold.
++- Fixtures: `person-handle-level`, `deal-group-prices`; invalid `level-zero`, `price-currency-lowercase`, `fx-not-a-token`.
++
## 0.424.0 — 2026-11-13
**Agents have souls** (actor-characters.md; Design rules 175 `actor-is-the-work`, 176 `souls-grow-by-yes`). The owner,
ddiff --git a/contracts/feed/item.v1.json b/contracts/feed/item.v1.json
iindex 4deee6b9..6afdd650 100644
---- a/contracts/feed/item.v1.json
++++ b/contracts/feed/item.v1.json
@@@ -5,7 +5,20 @@
"description": "feed.item@1: one card of OpenVibe's one feed, served by OpenVibe.Network (GET /api/v1/feed and GET /api/frame/feed; OpenVibe.Community's Pulse reads the same feed). Every card names the service it came from, a stable id, its own link, and only public or follower-visible activity. Kinds: post, pic, clip, video, live, stream, rundown, quest, member, chat, event, wiki, update, work, deal, news, report, poll, game, meme, paste, episode, space, avatar, banner, follow, site.",
"type": "object",
"additionalProperties": false,
-- "required": ["id", "kind", "url", "title", "text", "at", "site", "site_name", "actor", "subject", "media", "counts"],
++ "required": [
++ "id",
++ "kind",
++ "url",
++ "title",
++ "text",
++ "at",
++ "site",
++ "site_name",
++ "actor",
++ "subject",
++ "media",
++ "counts"
++ ],
"properties": {
"id": {
"type": "string",
@@@ -15,7 +28,35 @@
},
"kind": {
"description": "What happened. live is a channel on air now (a go-live that ended is stream); stream is a past broadcast, including a watched-together summary; work is one grouped row of new jobs per hour; report is a number with its trend.",
-- "enum": ["post", "pic", "clip", "video", "live", "stream", "rundown", "quest", "member", "chat", "event", "wiki", "update", "work", "deal", "news", "report", "poll", "game", "meme", "paste", "episode", "space", "avatar", "banner", "follow", "site"]
++ "enum": [
++ "post",
++ "pic",
++ "clip",
++ "video",
++ "live",
++ "stream",
++ "rundown",
++ "quest",
++ "member",
++ "chat",
++ "event",
++ "wiki",
++ "update",
++ "work",
++ "deal",
++ "news",
++ "report",
++ "poll",
++ "game",
++ "meme",
++ "paste",
++ "episode",
++ "space",
++ "avatar",
++ "banner",
++ "follow",
++ "site"
++ ]
},
"url": {
"type": "string",
@@@ -23,14 +64,20 @@
"maxLength": 2000,
"description": "The thing itself: the post, stream, job board, report page or wiki page."
},
-- "title": { "type": "string", "maxLength": 300 },
++ "title": {
++ "type": "string",
++ "maxLength": 300
++ },
"text": {
"type": "string",
"maxLength": 280,
"description": "The source's first 280 characters, on one line; empty when it has none."
},
"at": {
-- "type": ["string", "null"],
++ "type": [
++ "string",
++ "null"
++ ],
"format": "date-time",
"description": "When it happened; null only for a trending card."
},
@@@ -44,31 +91,101 @@
"maxLength": 40,
"description": "The source service: live, community, media-hub, pics, games, quest, chat, today, work, deals, news, report, wiki, blog, tools, network…"
},
-- "site_name": { "type": "string", "maxLength": 40 },
++ "site_name": {
++ "type": "string",
++ "maxLength": 40
++ },
"actor": {
-- "type": ["object", "null"],
-- "description": "Who did it; null for AI, system, aggregate and trending cards.",
-- "required": ["name", "avatar"],
++ "type": [
++ "object",
++ "null"
++ ],
++ "description": "Who did it; null for AI, system, aggregate and trending cards. handle and level (1.1.0) let a card name the person (@handle, their level); the name effects come from Inventory by `subject`.",
++ "required": [
++ "name",
++ "avatar"
++ ],
"properties": {
-- "name": { "type": ["string", "null"], "maxLength": 80 },
-- "avatar": { "type": ["string", "null"], "maxLength": 2000 }
++ "name": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 80
++ },
++ "avatar": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 2000
++ },
++ "handle": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "pattern": "^[A-Za-z0-9_.-]{1,40}$",
++ "description": "The person's username, without the @ (1.1.0). Optional."
++ },
++ "level": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1,
++ "maximum": 1000,
++ "description": "The person's OpenVibe level, when they show it (Network's levels; a person who hides it from the leaderboard sends null) (1.1.0). Optional."
++ },
++ "fx": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "pattern": "^name-fx-[a-z]{2,24}$",
++ "description": "The name effect the person wears (Inventory's live.name_effect.css@1 token, e.g. name-fx-rainbow), looked up by the feed's server so no site needs Inventory in its connect-src; openvibe-shared items.css draws it (1.1.0). Optional."
++ }
},
"additionalProperties": false
},
"subject": {
-- "type": ["string", "null"],
++ "type": [
++ "string",
++ "null"
++ ],
"pattern": "^usr_[0-9A-HJKMNP-TV-Z]{26}$",
"description": "The acting person's subject, when one is known; null for AI, system and aggregate cards. The Following filter and For you ranking read it."
},
"media": {
-- "type": ["object", "null"],
++ "type": [
++ "object",
++ "null"
++ ],
"description": "The card's first picture, as a Media thumbnail; null when it has none.",
-- "required": ["thumb", "ratio"],
++ "required": [
++ "thumb",
++ "ratio"
++ ],
"properties": {
-- "thumb": { "type": "string", "pattern": "^https://", "maxLength": 2000 },
-- "preview": { "type": "string", "pattern": "^https://", "maxLength": 2000 },
-- "ratio": { "type": "number", "exclusiveMinimum": 0 },
-- "length": { "type": "number", "minimum": 0, "description": "Seconds, when the card is a video." }
++ "thumb": {
++ "type": "string",
++ "pattern": "^https://",
++ "maxLength": 2000
++ },
++ "preview": {
++ "type": "string",
++ "pattern": "^https://",
++ "maxLength": 2000
++ },
++ "ratio": {
++ "type": "number",
++ "exclusiveMinimum": 0
++ },
++ "length": {
++ "type": "number",
++ "minimum": 0,
++ "description": "Seconds, when the card is a video."
++ }
},
"additionalProperties": false
},
@@@ -76,11 +193,28 @@
"type": "object",
"description": "The numbers the source knows; each present only when it knows it.",
"properties": {
-- "views": { "type": "integer", "minimum": 0 },
-- "likes": { "type": "integer", "minimum": 0 },
-- "comments": { "type": "integer", "minimum": 0 },
-- "watchers": { "type": "integer", "minimum": 0, "description": "People who watched a stream (peak for a past broadcast)." },
-- "people": { "type": "integer", "minimum": 0, "description": "A count a report card is about (people online, jobs, stories)." }
++ "views": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "likes": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "comments": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "watchers": {
++ "type": "integer",
++ "minimum": 0,
++ "description": "People who watched a stream (peak for a past broadcast)."
++ },
++ "people": {
++ "type": "integer",
++ "minimum": 0,
++ "description": "A count a report card is about (people online, jobs, stories)."
++ }
},
"additionalProperties": false
},
@@@ -91,31 +225,106 @@
"trend": {
"type": "object",
"description": "Present on report cards: which way the number moved and by how much.",
-- "required": ["direction"],
++ "required": [
++ "direction"
++ ],
"properties": {
-- "direction": { "enum": ["up", "down", "flat"] },
-- "pct": { "type": "number", "minimum": 0 },
-- "previous": { "type": "integer", "minimum": 0 }
++ "direction": {
++ "enum": [
++ "up",
++ "down",
++ "flat"
++ ]
++ },
++ "pct": {
++ "type": "number",
++ "minimum": 0
++ },
++ "previous": {
++ "type": "integer",
++ "minimum": 0
++ }
},
"additionalProperties": false
},
"group": {
"type": "object",
"description": "A run of the same kind folded into one card (two or more items).",
-- "required": ["count", "items"],
++ "required": [
++ "count",
++ "items"
++ ],
"properties": {
-- "count": { "type": "integer", "minimum": 2 },
++ "count": {
++ "type": "integer",
++ "minimum": 2
++ },
"items": {
"type": "array",
"minItems": 2,
"items": {
"type": "object",
-- "required": ["id", "url", "title", "media"],
++ "required": [
++ "id",
++ "url",
++ "title",
++ "media"
++ ],
"properties": {
-- "id": { "type": "string" },
-- "url": { "type": "string", "pattern": "^https://" },
-- "title": { "type": "string" },
-- "media": { "type": ["object", "null"] }
++ "id": {
++ "type": "string"
++ },
++ "url": {
++ "type": "string",
++ "pattern": "^https://"
++ },
++ "title": {
++ "type": "string"
++ },
++ "media": {
++ "type": [
++ "object",
++ "null"
++ ]
++ },
++ "price": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "description": "What it costs now (1.1.0; deals). Optional.",
++ "required": [
++ "amount",
++ "currency"
++ ],
++ "properties": {
++ "amount": {
++ "type": "number",
++ "minimum": 0
++ },
++ "currency": {
++ "type": "string",
++ "pattern": "^[A-Z]{3}$"
++ }
++ },
++ "additionalProperties": false
++ },
++ "was": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0,
++ "description": "What it cost before, in the same currency (1.1.0; deals). Optional."
++ },
++ "store": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 60,
++ "description": "Where it is sold (1.1.0; deals). Optional."
++ }
},
"additionalProperties": false
}
@@@ -124,11 +333,18 @@
"additionalProperties": false
},
"label": {
-- "enum": ["Trending", "AI", "System", "Live"],
++ "enum": [
++ "Trending",
++ "AI",
++ "System",
++ "Live"
++ ],
"description": "Present only when the card needs one."
},
"visibility": {
-- "enum": ["followers"],
++ "enum": [
++ "followers"
++ ],
"description": "Present only for an item returned to a follower or its author; never public."
}
}
ddiff --git a/fixtures/feed.item/invalid/fx-not-a-token.json b/fixtures/feed.item/invalid/fx-not-a-token.json
nnew file mode 100644
iindex 00000000..780a6322
---- /dev/null
++++ b/fixtures/feed.item/invalid/fx-not-a-token.json
@@@ -0,0 +1,26 @@
++{
++ "id": "f:example:post:person",
++ "kind": "post",
++ "url": "https://openvibe.community/p/example",
++ "title": "Livin' large",
++ "text": "",
++ "at": "2026-11-13T04:28:38.000Z",
++ "site": "community",
++ "site_name": "Community",
++ "actor": {
++ "name": "Goosely",
++ "avatar": null,
++ "handle": "goosely",
++ "level": 23,
++ "fx": "<script>"
++ },
++ "subject": "usr_01JQ8Z6K6M0V8Y2Q3R4S5T6V7W",
++ "media": {
++ "thumb": "https://openvibe.community/p/example/screenshot?w=640",
++ "ratio": 1.777
++ },
++ "counts": {
++ "likes": 4,
++ "comments": 2
++ }
++}
\\ No newline at end of file
ddiff --git a/fixtures/feed.item/invalid/level-zero.json b/fixtures/feed.item/invalid/level-zero.json
nnew file mode 100644
iindex 00000000..6d11e9e5
---- /dev/null
++++ b/fixtures/feed.item/invalid/level-zero.json
@@@ -0,0 +1,25 @@
++{
++ "id": "f:example:post:person",
++ "kind": "post",
++ "url": "https://openvibe.community/p/example",
++ "title": "Livin' large",
++ "text": "",
++ "at": "2026-11-13T04:28:38.000Z",
++ "site": "community",
++ "site_name": "Community",
++ "actor": {
++ "name": "Goosely",
++ "avatar": null,
++ "handle": "goosely",
++ "level": 0
++ },
++ "subject": "usr_01JQ8Z6K6M0V8Y2Q3R4S5T6V7W",
++ "media": {
++ "thumb": "https://openvibe.community/p/example/screenshot?w=640",
++ "ratio": 1.777
++ },
++ "counts": {
++ "likes": 4,
++ "comments": 2
++ }
++}
\\ No newline at end of file
ddiff --git a/fixtures/feed.item/invalid/price-currency-lowercase.json b/fixtures/feed.item/invalid/price-currency-lowercase.json
nnew file mode 100644
iindex 00000000..e61fa8b8
---- /dev/null
++++ b/fixtures/feed.item/invalid/price-currency-lowercase.json
@@@ -0,0 +1,53 @@
++{
++ "id": "g:deal:deals:2026-11-13T08",
++ "kind": "deal",
++ "url": "https://openvibe.deals/d/example-one",
++ "title": "3 new deals",
++ "text": "",
++ "at": "2026-11-13T08:09:37.287Z",
++ "site": "deals",
++ "site_name": "Deals",
++ "actor": null,
++ "subject": null,
++ "media": null,
++ "counts": {
++ "people": 3
++ },
++ "group": {
++ "count": 3,
++ "items": [
++ {
++ "id": "f:deals:offer:1",
++ "url": "https://openvibe.deals/d/example-one",
++ "title": "Class V Brimmer",
++ "media": {
++ "thumb": "https://openvibe.media/t/brimmer.jpg"
++ },
++ "price": {
++ "amount": 24.99,
++ "currency": "usd"
++ },
++ "was": 40,
++ "store": "REI"
++ },
++ {
++ "id": "f:deals:offer:2",
++ "url": "https://openvibe.deals/d/example-two",
++ "title": "Tamriel Rebuilt",
++ "media": null,
++ "price": {
++ "amount": 0,
++ "currency": "USD"
++ },
++ "was": null,
++ "store": "GOG.com"
++ },
++ {
++ "id": "f:deals:offer:3",
++ "url": "https://openvibe.deals/d/example-three",
++ "title": "Trefoil pants",
++ "media": null
++ }
++ ]
++ }
++}
\\ No newline at end of file
ddiff --git a/fixtures/feed.item/valid/deal-group-prices.json b/fixtures/feed.item/valid/deal-group-prices.json
nnew file mode 100644
iindex 00000000..375a0cb7
---- /dev/null
++++ b/fixtures/feed.item/valid/deal-group-prices.json
@@@ -0,0 +1,53 @@
++{
++ "id": "g:deal:deals:2026-11-13T08",
++ "kind": "deal",
++ "url": "https://openvibe.deals/d/example-one",
++ "title": "3 new deals",
++ "text": "",
++ "at": "2026-11-13T08:09:37.287Z",
++ "site": "deals",
++ "site_name": "Deals",
++ "actor": null,
++ "subject": null,
++ "media": null,
++ "counts": {
++ "people": 3
++ },
++ "group": {
++ "count": 3,
++ "items": [
++ {
++ "id": "f:deals:offer:1",
++ "url": "https://openvibe.deals/d/example-one",
++ "title": "Class V Brimmer",
++ "media": {
++ "thumb": "https://openvibe.media/t/brimmer.jpg"
++ },
++ "price": {
++ "amount": 24.99,
++ "currency": "USD"
++ },
++ "was": 40,
++ "store": "REI"
++ },
++ {
++ "id": "f:deals:offer:2",
++ "url": "https://openvibe.deals/d/example-two",
++ "title": "Tamriel Rebuilt",
++ "media": null,
++ "price": {
++ "amount": 0,
++ "currency": "USD"
++ },
++ "was": null,
++ "store": "GOG.com"
++ },
++ {
++ "id": "f:deals:offer:3",
++ "url": "https://openvibe.deals/d/example-three",
++ "title": "Trefoil pants",
++ "media": null
++ }
++ ]
++ }
++}
\\ No newline at end of file
ddiff --git a/fixtures/feed.item/valid/person-handle-level.json b/fixtures/feed.item/valid/person-handle-level.json
nnew file mode 100644
iindex 00000000..11baa93e
---- /dev/null
++++ b/fixtures/feed.item/valid/person-handle-level.json
@@@ -0,0 +1,26 @@
++{
++ "id": "f:example:post:person",
++ "kind": "post",
++ "url": "https://openvibe.community/p/example",
++ "title": "Livin' large",
++ "text": "",
++ "at": "2026-11-13T04:28:38.000Z",
++ "site": "community",
++ "site_name": "Community",
++ "actor": {
++ "name": "Goosely",
++ "avatar": null,
++ "handle": "goosely",
++ "level": 23,
++ "fx": "name-fx-rainbow"
++ },
++ "subject": "usr_01JQ8Z6K6M0V8Y2Q3R4S5T6V7W",
++ "media": {
++ "thumb": "https://openvibe.community/p/example/screenshot?w=640",
++ "ratio": 1.777
++ },
++ "counts": {
++ "likes": 4,
++ "comments": 2
++ }
++}
\\ No newline at end of file
ddiff --git a/generated/json-schema/bundle.json b/generated/json-schema/bundle.json
iindex 07f30e8f..396581db 100644
---- a/generated/json-schema/bundle.json
++++ b/generated/json-schema/bundle.json
@@@ -141361,7 +141361,7 @@
"object",
"null"
],
-- "description": "Who did it; null for AI, system, aggregate and trending cards.",
++ "description": "Who did it; null for AI, system, aggregate and trending cards. handle and level (1.1.0) let a card name the person (@handle, their level); the name effects come from Inventory by `subject`.",
"required": [
"name",
"avatar"
@@@ -141380,6 +141380,31 @@
"null"
],
"maxLength": 2000
++ },
++ "handle": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "pattern": "^[A-Za-z0-9_.-]{1,40}$",
++ "description": "The person's username, without the @ (1.1.0). Optional."
++ },
++ "level": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1,
++ "maximum": 1000,
++ "description": "The person's OpenVibe level, when they show it (Network's levels; a person who hides it from the leaderboard sends null) (1.1.0). Optional."
++ },
++ "fx": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "pattern": "^name-fx-[a-z]{2,24}$",
++ "description": "The name effect the person wears (Inventory's live.name_effect.css@1 token, e.g. name-fx-rainbow), looked up by the feed's server so no site needs Inventory in its connect-src; openvibe-shared items.css draws it (1.1.0). Optional."
}
},
"additionalProperties": false
@@@ -141522,6 +141547,44 @@
"object",
"null"
]
++ },
++ "price": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "description": "What it costs now (1.1.0; deals). Optional.",
++ "required": [
++ "amount",
++ "currency"
++ ],
++ "properties": {
++ "amount": {
++ "type": "number",
++ "minimum": 0
++ },
++ "currency": {
++ "type": "string",
++ "pattern": "^[A-Z]{3}$"
++ }
++ },
++ "additionalProperties": false
++ },
++ "was": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0,
++ "description": "What it cost before, in the same currency (1.1.0; deals). Optional."
++ },
++ "store": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 60,
++ "description": "Where it is sold (1.1.0; deals). Optional."
}
},
"additionalProperties": false
ddiff --git a/generated/openapi/actor.json b/generated/openapi/actor.json
iindex 18e07f3f..6cc3cb5a 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.424.0",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 25b15716..80a7a998 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.424.0",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 85952e90..119c83ff 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.424.0",
-- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 4109f9c7..5f83c82e 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.424.0",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 b816a470..a5ade86e 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.424.0",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 410756a6..a2be1507 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.424.0",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 d02ec0b8..3cd43454 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.424.0",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 3217d85d..93946eb0 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.424.0",
-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 c26a5991..99da7cbe 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.424.0",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 996d8ca4..cc9a9491 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.424.0",
-- "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 7fb94788..89e8fcf3 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.424.0",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 0ba62eed..d3029f01 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.424.0",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 78348998..b3989019 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.424.0",
-- "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 127420de..04c9ff0f 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.424.0",
-- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 362d0968..59691cfe 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.424.0",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 94ca3738..239480f0 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.424.0",
-- "description": "Routes of OpenVibe.Exchange as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Exchange as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 6d30117e..bb606893 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.424.0",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 0dab00bb..6d0329e7 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.424.0",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.425.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/git.json b/generated/openapi/git.json
iindex cf08e963..5d0b1116 100644
---- a/generated/openapi/git.json
++++ b/generated/openapi/git.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Git API",
-- "version": "0.424.0",
-- "description": "Routes of OpenVibe.Git as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Git as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 f85bb3b7..69a14ee0 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.424.0",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 55dab361..5bd5952d 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.424.0",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 26d65cdd..9427e553 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.424.0",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 41fbcd0a..aa83955f 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.424.0",
-- "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 5ac90d2a..b5e77279 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.424.0",
-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 a814adf1..2c74a4e0 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.424.0",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 5e776d37..2a79db0e 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.424.0",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 4eef4cf0..bafbda4b 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.424.0",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 9f9078e8..10e64e6b 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.424.0",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 2d4e5243..aa799dfb 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.424.0",
-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 4f8724d3..229c8c05 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.424.0",
-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 0555f2c7..6a35327f 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.424.0",
-- "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 5331b2a7..1141ce94 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.424.0",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 06bc4cbb..3c8f5f8a 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.424.0",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 a1918478..fb91bb27 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.424.0",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 35619131..a8ff6a24 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.424.0",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 9ae0bbc9..3c570738 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.424.0",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 82dd8615..6f9f1358 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.424.0",
-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 d4c3e290..04f3434c 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.424.0",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 fed2bcb8..687efcc3 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.424.0",
-- "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 125e5497..1f314e4e 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.424.0",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 fb6ff76a..64e0e9f0 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.424.0",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 504bfd0c..0c0973e3 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.424.0",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 0e041aaa..44e029e1 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.424.0",
-- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 4ee77cb0..20aac05c 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.424.0",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 3eeb51e7..84f3399d 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.424.0",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 5ef794bc..faa41b70 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.424.0",
-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 daf5f0d2..ebd197f6 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.424.0",
-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.424.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.425.0",
++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.425.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 d7fd28e5..1524bb7c 100644
---- a/generated/typescript/index.d.ts
++++ b/generated/typescript/index.d.ts
@@@ -376490,11 +376490,23 @@ export interface FeedItem {
site: string;
site_name: string;
/**
-- * Who did it; null for AI, system, aggregate and trending cards.
++ * Who did it; null for AI, system, aggregate and trending cards. handle and level (1.1.0) let a card name the person (@handle, their level); the name effects come from Inventory by `subject`.
*/
actor: {
name: string | null;
avatar: string | null;
++ /**
++ * The person's username, without the @ (1.1.0). Optional.
++ */
++ handle?: string | null;
++ /**
++ * The person's OpenVibe level, when they show it (Network's levels; a person who hides it from the leaderboard sends null) (1.1.0). Optional.
++ */
++ level?: number | null;
++ /**
++ * The name effect the person wears (Inventory's live.name_effect.css@1 token, e.g. name-fx-rainbow), looked up by the feed's server so no site needs Inventory in its connect-src; openvibe-shared items.css draws it (1.1.0). Optional.
++ */
++ fx?: string | null;
} | null;
/**
* The acting person's subject, when one is known; null for AI, system and aggregate cards. The Following filter and For you ranking read it.
@@@ -376554,18 +376566,63 @@ export interface FeedItem {
url: string;
title: string;
media: {} | null;
++ /**
++ * What it costs now (1.1.0; deals). Optional.
++ */
++ price?: {
++ amount: number;
++ currency: string;
++ } | null;
++ /**
++ * What it cost before, in the same currency (1.1.0; deals). Optional.
++ */
++ was?: number | null;
++ /**
++ * Where it is sold (1.1.0; deals). Optional.
++ */
++ store?: string | null;
},
{
id: string;
url: string;
title: string;
media: {} | null;
++ /**
++ * What it costs now (1.1.0; deals). Optional.
++ */
++ price?: {
++ amount: number;
++ currency: string;
++ } | null;
++ /**
++ * What it cost before, in the same currency (1.1.0; deals). Optional.
++ */
++ was?: number | null;
++ /**
++ * Where it is sold (1.1.0; deals). Optional.
++ */
++ store?: string | null;
},
...{
id: string;
url: string;
title: string;
media: {} | null;
++ /**
++ * What it costs now (1.1.0; deals). Optional.
++ */
++ price?: {
++ amount: number;
++ currency: string;
++ } | null;
++ /**
++ * What it cost before, in the same currency (1.1.0; deals). Optional.
++ */
++ was?: number | null;
++ /**
++ * Where it is sold (1.1.0; deals). Optional.
++ */
++ store?: string | null;
}[]
];
};
ddiff --git a/package.json b/package.json
iindex 26303b32..26db6787 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.424.0",
++ "version": "0.425.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",