MemeTemplate meme.template@1
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
- Version
- 1.0.0
- Owner
- meme
- Visibility
- public
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/meme/template.v1.json
meme.template@1: a reusable meme image with its source, reuse licence and caption layout. Public templates have passed any required review.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
id | string | yes |
| |
name | string | yes |
| |
image_url | string | yes |
| |
box_count | integer | yes |
| |
source | string | yes |
| |
license | string | yes |
| |
credit | string |
| ||
source_url | string |
| ||
attribution | string |
| ||
created_at | string | yes |
| |
layout | object | |||
layout.width | integer | yes |
| |
layout.height | integer | yes |
| |
layout.boxes | array of object | yes |
| |
captions | integer |
| ||
uses_today | integer |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: commons-template
{
"id": "tpl_distracted-boyfriend",
"name": "Distracted Boyfriend",
"image_url": "https://openvibe.media/o/med_01ARZ3NDEKTSV4RRFFQ69G5FAV",
"box_count": 3,
"source": "Wikimedia Commons",
"license": "CC BY-SA 4.0",
"credit": "Photographer",
"source_url": "https://commons.wikimedia.org/wiki/File:Example.jpg",
"created_at": "2026-11-08T00:00:00.000Z",
"layout": {
"width": 440,
"height": 280,
"boxes": [
{
"x": 4,
"y": 5,
"w": 90,
"h": 20
}
]
},
"captions": 10,
"uses_today": 2
}Rejected: no-image
{
"id": "tpl_example",
"name": "Example",
"box_count": 2,
"source": "Commons",
"license": "CC BY-SA",
"created_at": "2026-11-08T00:00:00.000Z"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('meme.template@1', value); // { valid, errors: [{ path, message }] }