GamesWorldPublishedPayload games.world.published@1

Generated at from openvibe-contracts v0.221.0 and openvibe-sdk v0.65.0.

Version
1.0.0
Owner
games
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/events/payloads/games.world.published.v1.json

games.world.published v1 (OpenVibe.Games apps/server/src/worlds/worldRoutes.ts): a player published one of their creator worlds for the first time, so it is listed at https://openvibe.games/worlds and anyone can join it. Written to Games' outbox in the transaction that publishes it; unpublishing and publishing again does not repeat it. OpenVibe.Quest credits the owner's "Publish a creator world" quest from it. Envelope: subject { type: world, id: <world id> }, actor the owner, visibility public.

Fields

FieldTypeRequiredDescriptionConstraints
worldstringyesThe creator world id. Also the envelope subject id.
  • pattern ^w[0-9a-z]{10}$
owneridentity.subject-refyesThe player who made and published it.
titlestringyes
  • minLength 1
  • maxLength 60
urlstringyesWhere anyone joins it: https://openvibe.games/play?world=<id>.
  • format uri
published_atstringyes
  • format date-time

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: first
{
  "world": "wk3j9x0a2bq",
  "owner": {
    "type": "user",
    "id": "usr_01J8Z3V9Q6N1X2Y3Z4A5B6C7D8"
  },
  "title": "Moon base",
  "url": "https://openvibe.games/play?world=wk3j9x0a2bq",
  "published_at": "2026-10-15T23:00:00.000Z"
}
Rejected: bad-world-id
{
  "world": "../scraplandia",
  "owner": {
    "type": "user",
    "id": "usr_01J8Z3V9Q6N1X2Y3Z4A5B6C7D8"
  },
  "title": "Moon base",
  "url": "https://openvibe.games/play?world=x",
  "published_at": "2026-10-15T23:00:00.000Z"
}
Rejected: no-owner
{
  "world": "wk3j9x0a2bq",
  "title": "Moon base",
  "url": "https://openvibe.games/play?world=wk3j9x0a2bq",
  "published_at": "2026-10-15T23:00:00.000Z"
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('games.world.published@1', value);   // { valid, errors: [{ path, message }] }