# Open Meet Display (OMD), version 1.0 > A small JSON message format for live meet displays: scoreboards, LED and video boards, broadcast and live-stream graphics, and announcer screens. Meet-management software sends one message that says what one display should show now: a start list, results, team scores, an announcement, or a blank board. A receiver answers a probe saying which versions it reads. A sibling of Open Meet Exchange (OMX), with the same names, versions, and replies. From 1.0 a minor version only adds and only a major breaks. Read the raw files, not the rendered pages. Cite the pinned copies under https://2timer.app/omd/1.0/ so your implementation names the exact version it was built against; the unversioned URLs follow the newest version. ## Files - [spec.md](https://2timer.app/omd/1.0/spec.md): The specification: messages, the HTTP transport and the probe, security, versioning, testing, and the checklist - [conformance.md](https://2timer.app/omd/1.0/conformance.md): Every rule with a check and a pass condition (OMD-C1 onward), for receivers and producers - [integration-prompt.md](https://2timer.app/omd/1.0/integration-prompt.md): A prompt for a coding assistant: build a receiver - [examples.md](https://2timer.app/omd/1.0/examples.md): Every example message and the probe reply, in the order a receiver developer meets them - [examples/start-list.json](https://2timer.app/omd/1.0/examples/start-list.json): Start list - [examples/results-track-heat.json](https://2timer.app/omd/1.0/examples/results-track-heat.json): Results: track heat - [examples/results-field.json](https://2timer.app/omd/1.0/examples/results-field.json): Results: field event - [examples/results-xc-race.json](https://2timer.app/omd/1.0/examples/results-xc-race.json): Results: cross country race - [examples/team-scores.json](https://2timer.app/omd/1.0/examples/team-scores.json): Team scores: meet - [examples/team-scores-xc-race.json](https://2timer.app/omd/1.0/examples/team-scores-xc-race.json): Team scores: cross country race - [examples/announcement.json](https://2timer.app/omd/1.0/examples/announcement.json): Announcement - [examples/clear.json](https://2timer.app/omd/1.0/examples/clear.json): Clear - [examples/probe-reply.json](https://2timer.app/omd/1.0/examples/probe-reply.json): Probe reply - [schemas/meet-display-v1.schema.json](https://2timer.app/omd/1.0/schemas/meet-display-v1.schema.json): JSON Schema 2020-12 for one message; allows unknown fields and kinds - [schemas/probe-reply-v1.schema.json](https://2timer.app/omd/1.0/schemas/probe-reply-v1.schema.json): JSON Schema 2020-12 for a receiver's reply to the probe - [tools/omd-test-receiver.mjs](https://2timer.app/omd/1.0/tools/omd-test-receiver.mjs): Reference receiver, Node 18+, no dependencies: node omd-test-receiver.mjs --verbose - [tools/omd-check.mjs](https://2timer.app/omd/1.0/tools/omd-check.mjs): Checker, Node 18+, no dependencies: node omd-check.mjs message.json, or --probe reply.json; names the conformance test each problem fails - [fixtures/index.json](https://2timer.app/omd/1.0/fixtures/index.json): Crafted messages for the conformance tests, with what a receiver answers - [types/omd.d.ts](https://2timer.app/omd/1.0/types/omd.d.ts): TypeScript types generated from the schemas - [types/omd.py](https://2timer.app/omd/1.0/types/omd.py): Python 3.11 TypedDicts generated from the schemas ## Pages - [Open Meet Display](https://2timer.app/omd): an overview of what the format is and where to start - [Specification](https://2timer.app/omd/spec): the rendered specification; read spec.md above instead - [Integration prompt](https://2timer.app/omd/prompt): the prompt above, rendered - [Conformance tests](https://2timer.app/omd/conformance): conformance.md above, rendered - [Field reference](https://2timer.app/omd/reference): every field in the schemas, as tables - [Test page](https://2timer.app/omd/test): probe a receiver and send it the fixtures from a browser ## Earlier versions - [Draft 0.2](https://2timer.app/omd/0.2/spec.md) - [Draft 0.3](https://2timer.app/omd/0.3/spec.md)