QuestDailyProgress quest.daily-progress@1
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
- Version
- 1.0.0
- Owner
- quest
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/quest/daily-progress.v1.json
quest.daily-progress@1: the caller's own progress, counted from Events in their IANA time zone.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
date | string | yes |
| |
title | string | yes |
| |
story | string | yes |
| |
steps | array of object | yes |
| |
steps[].id | string | yes | ||
steps[].event_type | string | yes | ||
steps[].site | string | yes | ||
steps[].sentence | string | yes | ||
steps[].href | string | yes |
| |
steps[].weight | integer | yes | ||
steps[].count | const | yes |
| |
steps[].verification | string | yes | ||
steps[].status | const | yes |
| |
steps[].source | string | yes | ||
steps[].progress | integer | yes |
| |
steps[].done | boolean | yes | ||
source | enum | yes |
| |
finished_today | integer | yes |
| |
progress | integer | yes |
| |
completed | boolean | yes | ||
completed_at | string | null |
| ||
streak | integer | yes |
| |
time_zone | string | yes |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: mine
{
"date": "2026-11-08",
"title": "Around the network",
"story": "Visit three places today.",
"steps": [
{
"id": "stream",
"event_type": "live.stream.started",
"site": "openvibe.live",
"sentence": "Do something on openvibe.live",
"href": "https://openvibe.live/",
"weight": 1,
"count": 1,
"verification": "event subject, count within the person's local day",
"status": "approved",
"source": "quest",
"progress": 1,
"done": true
},
{
"id": "chat",
"event_type": "chat.room.message.created",
"site": "openvibe.chat",
"sentence": "Do something on openvibe.chat",
"href": "https://openvibe.chat/",
"weight": 1,
"count": 1,
"verification": "event subject, count within the person's local day",
"status": "approved",
"source": "quest",
"progress": 0,
"done": false
},
{
"id": "wiki",
"event_type": "wiki.revision.created",
"site": "openvibe.wiki",
"sentence": "Do something on openvibe.wiki",
"href": "https://openvibe.wiki/",
"weight": 1,
"count": 1,
"verification": "event subject, count within the person's local day",
"status": "approved",
"source": "quest",
"progress": 0,
"done": false
}
],
"source": "rotation",
"finished_today": 3,
"progress": 1,
"completed": false,
"completed_at": null,
"streak": 0,
"time_zone": "America/Los_Angeles"
}Rejected: too-much
{
"date": "2026-11-08",
"title": "Around the network",
"story": "Visit three places today.",
"steps": [
{
"id": "stream",
"event_type": "live.stream.started",
"site": "openvibe.live",
"sentence": "Do something on openvibe.live",
"href": "https://openvibe.live/",
"weight": 1,
"count": 1,
"verification": "event subject, count within the person's local day",
"status": "approved",
"source": "quest",
"progress": 1,
"done": true
},
{
"id": "chat",
"event_type": "chat.room.message.created",
"site": "openvibe.chat",
"sentence": "Do something on openvibe.chat",
"href": "https://openvibe.chat/",
"weight": 1,
"count": 1,
"verification": "event subject, count within the person's local day",
"status": "approved",
"source": "quest",
"progress": 1,
"done": true
},
{
"id": "wiki",
"event_type": "wiki.revision.created",
"site": "openvibe.wiki",
"sentence": "Do something on openvibe.wiki",
"href": "https://openvibe.wiki/",
"weight": 1,
"count": 1,
"verification": "event subject, count within the person's local day",
"status": "approved",
"source": "quest",
"progress": 1,
"done": true
}
],
"source": "rotation",
"finished_today": 3,
"progress": 4,
"completed": true,
"completed_at": "2026-11-08T22:00:00Z",
"streak": 1,
"time_zone": "UTC"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('quest.daily-progress@1', value); // { valid, errors: [{ path, message }] }