Shoes catalog product shoes.product@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk v0.161.0.

Version
1.0.0
Owner
shoes
Visibility
public
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/shoes/product.v1.json

shoes.product@1: a shoes, socks, laces, care, insoles or kids catalog line with source-cited facts. Offers are attached separately so catalogs can be shared without duplicating prices.

Fields

FieldTypeRequiredDescriptionConstraints
idstringyes
  • minLength 1
  • maxLength 160
kindenumyes
  • one of "shoe", "laces", "socks", "care", "insoles", "kids"
titlestringyes
  • minLength 1
  • maxLength 240
brandstring | nullyes
  • maxLength 120
modelstring | null
  • maxLength 160
urlstring | null
  • format uri
  • maxLength 2000
imagestring | null
  • format uri
  • maxLength 2000
sizesarray of string
  • maxItems 500
  • items: maxLength 40
materialsarray of string
  • maxItems 40
  • items: maxLength 80
usesarray of string
  • maxItems 40
  • items: maxLength 80
sourcehttps://openvibe.network/contracts/shoes/product.v1.json#/$defs/sourceyes
checked_atstringyes
  • format date-time
factshttps://openvibe.network/contracts/shoes/product.v1.json#/$defs/factyes
  • maxItems 100

Examples

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

Valid: sock
{
  "id": "darn-tough-hiker-micro-crew",
  "kind": "socks",
  "title": "Hiker Micro Crew Socks",
  "brand": "Darn Tough",
  "model": null,
  "url": "https://darntough.com/products/hiker-micro-crew",
  "image": null,
  "sizes": [
    "S",
    "M",
    "L"
  ],
  "materials": [
    "merino wool"
  ],
  "uses": [
    "hiking"
  ],
  "source": {
    "name": "Darn Tough",
    "url": "https://darntough.com/pages/size-chart"
  },
  "checked_at": "2026-11-09T12:00:00Z",
  "facts": [
    {
      "name": "sock size chart",
      "value": "shoe size maps to a brand sock-size range",
      "source": {
        "name": "Darn Tough",
        "url": "https://darntough.com/pages/size-chart"
      }
    }
  ]
}
Rejected: unknown-kind
{
  "id": "example-product",
  "kind": "raffle",
  "title": "Example",
  "brand": null,
  "source": {
    "name": "Example",
    "url": "https://example.com"
  },
  "checked_at": "2026-11-09T12:00:00Z",
  "facts": []
}

Validate

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