openvibers/openvibe.contracts Commits
0.425.0: a feed card says who posted it and what a deal costs (#479)
Changes
@@@ -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,@@@ -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."}}nnew file mode 100644@@@ -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 filennew file mode 100644@@@ -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 filennew file mode 100644@@@ -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 filennew file mode 100644@@@ -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 filennew file mode 100644@@@ -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@@@ -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@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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"@@@ -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;}[]];};@@@ -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",
@@ -1,5 +1,18 @@
@@ -1,5 +1,18 @@
# Changelog
# 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
## 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,
**Agents have souls** (actor-characters.md; Design rules 175 `actor-is-the-work`, 176 `souls-grow-by-yes`). The owner,
@@ -5,7 +5,20 @@
@@ -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.",
"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",
"type": "object",
"additionalProperties": false,
"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": {
"properties": {
"id": {
"id": {
"type": "string",
"type": "string",
@@ -15,7 +28,35 @@
@@ -15,7 +28,35 @@
},
},
"kind": {
"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.",
"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": {
"url": {
"type": "string",
"type": "string",
@@ -23,14 +64,20 @@
@@ -23,14 +64,20 @@
"maxLength": 2000,
"maxLength": 2000,
"description": "The thing itself: the post, stream, job board, report page or wiki page."
"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": {
"text": {
"type": "string",
"type": "string",
"maxLength": 280,
"maxLength": 280,
"description": "The source's first 280 characters, on one line; empty when it has none."
"description": "The source's first 280 characters, on one line; empty when it has none."
},
},
"at": {
"at": {
- "type": ["string", "null"],
+ "type": [
+ "string",
+ "null"
+ ],
"format": "date-time",
"format": "date-time",
"description": "When it happened; null only for a trending card."
"description": "When it happened; null only for a trending card."
},
},
@@ -44,31 +91,101 @@
@@ -44,31 +91,101 @@
"maxLength": 40,
"maxLength": 40,
"description": "The source service: live, community, media-hub, pics, games, quest, chat, today, work, deals, news, report, wiki, blog, tools, network…"
"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": {
"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": {
"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
"additionalProperties": false
},
},
"subject": {
"subject": {
- "type": ["string", "null"],
+ "type": [
+ "string",
+ "null"
+ ],
"pattern": "^usr_[0-9A-HJKMNP-TV-Z]{26}$",
"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."
"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": {
"media": {
- "type": ["object", "null"],
+ "type": [
+ "object",
+ "null"
+ ],
"description": "The card's first picture, as a Media thumbnail; null when it has none.",
"description": "The card's first picture, as a Media thumbnail; null when it has none.",
- "required": ["thumb", "ratio"],
+ "required": [
+ "thumb",
+ "ratio"
+ ],
"properties": {
"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
"additionalProperties": false
},
},
@@ -76,11 +193,28 @@
@@ -76,11 +193,28 @@
"type": "object",
"type": "object",
"description": "The numbers the source knows; each present only when it knows it.",
"description": "The numbers the source knows; each present only when it knows it.",
"properties": {
"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
"additionalProperties": false
},
},
@@ -91,31 +225,106 @@
@@ -91,31 +225,106 @@
"trend": {
"trend": {
"type": "object",
"type": "object",
"description": "Present on report cards: which way the number moved and by how much.",
"description": "Present on report cards: which way the number moved and by how much.",
- "required": ["direction"],
+ "required": [
+ "direction"
+ ],
"properties": {
"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
"additionalProperties": false
},
},
"group": {
"group": {
"type": "object",
"type": "object",
"description": "A run of the same kind folded into one card (two or more items).",
"description": "A run of the same kind folded into one card (two or more items).",
- "required": ["count", "items"],
+ "required": [
+ "count",
+ "items"
+ ],
"properties": {
"properties": {
- "count": { "type": "integer", "minimum": 2 },
+ "count": {
+ "type": "integer",
+ "minimum": 2
+ },
"items": {
"items": {
"type": "array",
"type": "array",
"minItems": 2,
"minItems": 2,
"items": {
"items": {
"type": "object",
"type": "object",
- "required": ["id", "url", "title", "media"],
+ "required": [
+ "id",
+ "url",
+ "title",
+ "media"
+ ],
"properties": {
"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
"additionalProperties": false
}
}
@@ -124,11 +333,18 @@
@@ -124,11 +333,18 @@
"additionalProperties": false
"additionalProperties": false
},
},
"label": {
"label": {
- "enum": ["Trending", "AI", "System", "Live"],
+ "enum": [
+ "Trending",
+ "AI",
+ "System",
+ "Live"
+ ],
"description": "Present only when the card needs one."
"description": "Present only when the card needs one."
},
},
"visibility": {
"visibility": {
- "enum": ["followers"],
+ "enum": [
+ "followers"
+ ],
"description": "Present only for an item returned to a follower or its author; never public."
"description": "Present only for an item returned to a follower or its author; never public."
}
}
}
}
new file mode 100644
new file mode 100644
@@ -0,0 +1,26 @@
@@ -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
\ No newline at end of file
new file mode 100644
new file mode 100644
@@ -0,0 +1,25 @@
@@ -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
\ No newline at end of file
new file mode 100644
new file mode 100644
@@ -0,0 +1,53 @@
@@ -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
\ No newline at end of file
new file mode 100644
new file mode 100644
@@ -0,0 +1,53 @@
@@ -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
\ No newline at end of file
new file mode 100644
new file mode 100644
@@ -0,0 +1,26 @@
@@ -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
\ No newline at end of file
@@ -141361,7 +141361,7 @@
@@ -141361,7 +141361,7 @@
"object",
"object",
"null"
"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": [
"required": [
"name",
"name",
"avatar"
"avatar"
@@ -141380,6 +141380,31 @@
@@ -141380,6 +141380,31 @@
"null"
"null"
],
],
"maxLength": 2000
"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
"additionalProperties": false
@@ -141522,6 +141547,44 @@
@@ -141522,6 +141547,44 @@
"object",
"object",
"null"
"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
"additionalProperties": false
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Actor API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.AI API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Bench API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Billing API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Blog API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Bot API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Chat API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Codes API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Community API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe Connect API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Coupons API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Deals API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Design API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Domains API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Events API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Exchange API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Food API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Games API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Git API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Host API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Inventory API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Live API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Mail API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.MediaHub API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Media API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Network API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.News API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenRestream API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Play API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Quest API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Report API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Reviews API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Run API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Search API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Services API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Sources API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Space API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Tips API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Today API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Tools API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Trade API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.VIP API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Vision API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Watch API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Wiki API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Work API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Zone API",
"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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -376490,11 +376490,23 @@ export interface FeedItem {
@@ -376490,11 +376490,23 @@ export interface FeedItem {
site: string;
site: string;
site_name: 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: {
actor: {
name: string | null;
name: string | null;
avatar: 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;
} | 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.
* 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 {
@@ -376554,18 +376566,63 @@ export interface FeedItem {
url: string;
url: string;
title: string;
title: string;
media: {} | null;
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;
id: string;
url: string;
url: string;
title: string;
title: string;
media: {} | null;
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;
id: string;
url: string;
url: string;
title: string;
title: string;
media: {} | null;
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;
}[]
}[]
];
];
};
};
@@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
{
{
"name": "openvibe-contracts",
"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.",
"description": "Machine-readable contracts for the OpenVibe network: schemas, manifests, ids, error envelope, capability checks.",
"main": "index.js",
"main": "index.js",
"types": "generated/typescript/index.d.ts",
"types": "generated/typescript/index.d.ts",