LiveSetupTaskCompletedPayload live.setup.task_completed@1
Generated at from
openvibe-contracts v0.193.1 and
openvibe-sdk v0.48.0.
- Version
- 1.0.0
- Owner
- live
- Visibility
- internal
- Status
- active
- Compatibility
- backward
- Decision
- ADR-004
- Schema
https://openvibe.network/contracts/events/payloads/live.setup.task_completed.v1.json
live.setup.task_completed v1 (OpenVibe.Live server/streaming/setup-progress.js): a streamer finished one of the tasks of Live's go-live setup hub for the first time (their first stream slot, first custom emote, first follower, ...). Live records each task once per person (live_setup_tasks) and writes this event to its outbox in the same transaction, when it next works out the person's progress. OpenVibe.Quest turns each task into a quest (owner Q16: Live's setup steps become quests). Envelope: subject { type: user, id: usr_... } the streamer, actor the same person, visibility internal. Never carries what the person made, only which task it was.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
task | enum | yes | The setup hub's task id: slot, method, restream, golive, profile, offline, emote, sound, goal, powerchat, panels, share, mods, requests, moderation, robot, aibot, paste. |
|
user | identity.subject-ref | yes | The streamer who finished it. | |
title | string | The task's title as the hub shows it. |
| |
group | string | The hub's group: Stream, Look & feel, Community & money, Grow, Build & mod. |
| |
completed_at | string |
| ||
done | integer | How many of the hub's tasks the person has done, this one included. |
| |
total | integer |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: emote
{
"task": "emote",
"user": {
"type": "user",
"id": "usr_01J8Z3V9Q6N1X2Y3Z4A5B6C7D8"
},
"title": "Upload a custom emote",
"group": "Look & feel",
"completed_at": "2026-10-15T18:00:00.000Z",
"done": 5,
"total": 18
}Rejected: no-user
{
"task": "slot"
}Rejected: unknown-task
{
"task": "buy-coins",
"user": {
"type": "user",
"id": "usr_01J8Z3V9Q6N1X2Y3Z4A5B6C7D8"
}
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('live.setup.task_completed@1', value); // { valid, errors: [{ path, message }] }