Schemas
Machine-readable, CC0, served from here.
Every schema in the repository, at a stable path, byte for byte the same file. Fetch one directly; there is no API in front of it.
Cassini Portable Meeting Manifest v1
requires: kind, version, profile, meeting, audio, integrity, speakers, transcripts
Cassini transcript body (cassini.words.v1)
requires: format, wordCount, items
About the $id
Each schema declares its own identity as a URL under cassini-format.codemyriad.io/schema/, and this site serves the same bytes at
that path, so the $id resolves once the site is at that domain. A $ref between schemas resolves against it, and every file written carries the
same URL in its CASSINI_PAYLOAD_SCHEMA tag, so a reader holding only the file
can still find the schema it claims to follow.
That identity is a wire string. It is in the bytes of every file, so it is not something to move casually.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://cassini-format.codemyriad.io/schema/cassini-portable-meeting-manifest-v1.schema.json",
"title": "Cassini Portable Meeting Manifest v1",
"description": "This schema is deliberately open. Every object below accepts members it does not declare, except integrity and every payloadRef, and a consumer MUST ignore a manifest member it does not recognise, at any depth, rather than treat its presence as an error. Those two objects are the exception because everything in them is an instruction, for reassembling bytes or for deciding whether this audio and this transcript belong together, so an unrecognised member there is a decode or verification failure and not a lost hint. Adding a member to either one is a new major version. Being open does not mean the file may be anything: every member this schema does declare keeps the type and the meaning declared here.",
"type": "object",
"required": [
"kind",
"version",
"profile",
"meeting",
"audio",
"integrity",
"speakers",
"transcripts"
],
"properties": {
"kind": {
…