0.1 · pre-release

An open standard for restaurants

Your dining room, your menu, your guests — described once, and yours to keep.

ORDER is one open document for everything a restaurant runs on — its profile, floor plan, tables, service periods, menu, and reservations. Export it, carry it to any platform, and keep a copy that is genuinely yours. No lock-in.

  • Yours to export
  • Take it anywhere
  • Open licence · CC BY 4.0
Sala Principale · floor plan
12.0 m Bar t8 t12 20:00 t6 t3 Lunch · 12:00–15:00 two turns of ninety minutes
Reserved Seated Open

Why it exists

Your data shouldn’t be held hostage by your software.

Change booking systems today and your floor plan, your tables, your service rules, and your guest history usually stay behind. ORDER exists so a restaurant can pick all of it up and walk — the way GDPR Article 20 always intended.

The reason it gets stuck is simple: nobody ever standardised the operational restaurant. Three bodies of prior art already touch restaurant data — and not one of them has a word for the things you run on.

Already out there What it covers Has no word for
schema.org Menu, profile, opening hours, reservations — for search engines any word for a table, a seat, a section, or a floor plan
Menu-sync specs Enterprise menu distribution to point-of-sale systems floor plans, tables, or service periods
Reserve with Google Materialised availability slots the restaurant itself — a one-way feed for a single consumer

The floor, the tables, and the rules that make them bookable have no interchange format at all. ORDER is that format. Read the full rationale

Your rules, not a timetable

ORDER carries the rules you actually set — “lunch, Monday to Wednesday, noon to three, in two turns of ninety minutes” — not the brittle list of slots those rules happen to produce this week. The rules travel; the slots are a lossy print-out of them.

Reads on Google, too

ORDER lines up with schema.org wherever a word for something exists, so every export doubles as the structured data search engines read — while staying strict enough to reject a document that is wrong, which a vocabulary built to describe the whole web cannot.

Portable by design

There is no lock-in to unpick. The schema is a file, the reference checker is a library, and importing a restaurant’s data costs a vendor nothing to support. Built with GDPR Article 20 in mind.

What ORDER describes

Your restaurant, in four chapters.

Everything that makes a restaurant a restaurant — the room, the menu, the hours, and the people you keep it for — written down in one place, in terms that belong to you.

Your dining room

Rooms and their floor plan, every table and where it sits, seat counts, and the groups you join together for a party of eight.

  • Rooms
  • Floor plan
  • Tables
  • Table groups

Your menu

The sections and the dishes within them, prices and their variants, allergens, and the little labels — vegan, spicy, house favourite.

  • Sections
  • Items
  • Prices
  • Allergens
  • Labels

Your service

When you open, and for whom — lunch and dinner, the turns within them, and the days you close. The rules you set, not a frozen list of slots.

  • Service periods
  • Turns
  • Closures

Your guests

The reservations themselves — who is coming, when, and for how many — kept in an optional module, so everything else stays free of personal data.

  • Reservations
  • Covers
  • Optional module

For developers

Underneath, it’s just an open document.

None of the warmth above costs you rigour. ORDER is a single normative JSON Schema, a reference validator, and two clean projections — open-licensed, versioned, and machine-checkable.

Schema
JSON Schema 2020-12, at a versioned URL
Validator
MIT reference library — structure + reference graph
Projections
schema.org JSON-LD · Reserve with Google
Modules
core (no personal data) · reservations
Licence
spec CC BY 4.0 · code MIT
Read the conformance rules
trattoria-da-mario.order.json
{
	"order_version": "0.1",
	"modules": ["core", "reservations"],
	"restaurant": {
		"ref": "trattoria-da-mario",
		"name": "Trattoria da Mario",
		"timezone": "Europe/Rome",
		"currency": "EUR"
	},
	"rooms": [{ "ref": "main", "name": "Sala Principale" }],
	"tables": [
		{
			"ref": "t12",
			"room_ref": "main",
			"seats": { "min": 2, "max": 6 }
		}
	],
	"service_periods": [
		{
			"ref": "lunch",
			"days": ["monday", "tuesday", "wednesday"],
			"opens": "12:00",
			"closes": "15:00"
		}
	]
}

A complete ORDER document. Validates against the published schema.