Serai
The spec

The Linked Commons Model.

LCM v0.1 — draftThe Linked Commons Model is the canonical data and event schema of the Serai Project — the shared language every certified connector normalizes to.

apaleo.jsonjson
{
  "specversion": "1.0",
  "type": "lcm.reservation.created",
  "source": "//serai/connector/apaleo/prop-001",
  "id": "0197f3c2-7d1e-7a4b-9c3d-2f8a1b6e4d90",
  "time": "2026-07-12T14:03:21Z",
  "lcmprovenance": "apaleo",
  "data": {
    "snapshot": {
      "reservationId": "0197f3c2-11aa-7bb2-8c01-55d2e9a04f18",
      "status": "confirmed",
      "arrival": "2026-08-01",
      "departure": "2026-08-04",
      "total": {
        "amount": 74250,
        "currency": "EUR"
      }
    }
  }
}
stayntouch.jsonjson
{
  "specversion": "1.0",
  "type": "lcm.reservation.created",
  "source": "//serai/connector/stayntouch/prop-014",
  "id": "0197f3c2-89aa-7c3e-9d21-4f0b6c2e7a11",
  "time": "2026-07-12T14:03:21Z",
  "lcmprovenance": "stayntouch",
  "data": {
    "snapshot": {
      "reservationId": "0197f3c2-11aa-7bb2-8c01-55d2e9a04f18",
      "status": "confirmed",
      "arrival": "2026-08-01",
      "departure": "2026-08-04",
      "total": {
        "amount": 74250,
        "currency": "EUR"
      }
    }
  }
}
Illustrative sample — two connectors, one identical event shape.
The event envelope

A full event, end to end.

reservation.created.jsonjson
{
  "specversion": "1.0",
  "type": "lcm.reservation.created",
  "source": "//serai/connector/apaleo/prop-001",
  "id": "0197f3c2-7d1e-7a4b-9c3d-2f8a1b6e4d90",
  "time": "2026-07-12T14:03:21Z",
  "datacontenttype": "application/json",
  "lcmprovenance": "apaleo",
  "lcmsequence": 4021,
  "lcmbusinessdate": "2026-07-12",
  "data": {
    "snapshot": {
      "reservationId": "0197f3c2-11aa-7bb2-8c01-55d2e9a04f18",
      "externalIds": [
        {
          "system": "apaleo",
          "idType": "reservationId",
          "value": "BER-4471"
        }
      ],
      "status": "confirmed",
      "arrival": "2026-08-01",
      "departure": "2026-08-04",
      "total": {
        "amount": 74250,
        "currency": "EUR"
      }
    },
    "delta": {
      "status": {
        "from": null,
        "to": "confirmed"
      }
    }
  }
}
Illustrative sample payload.
Design posture

Event-first. Additive-only. The largest possible superset.

The model aims to be the largest possible superset — translators map per system, and unsupported operations return "not implemented". Updates are strictly additive: fields are added, never removed, and connectors pick up model updates automatically. The versioned spec, the connector engine, and the connectors are to be released under Apache-2.0 at the published gate.

The doc set

Structured for growth, drafted in the open.

Prior-art critique

Content lands from the spec repository as it stabilizes.

draft
Design principles

Content lands from the spec repository as it stabilizes.

draft
Entity model & state machines

Content lands from the spec repository as it stabilizes.

draft
Event catalog & contracts

Content lands from the spec repository as it stabilizes.

draft
JSON Schemas — envelope + payloads

Content lands from the spec repository as it stabilizes.

draft
Connector mappings

Content lands from the spec repository as it stabilizes.

draft
Architecture & flow diagrams

Content lands from the spec repository as it stabilizes.

draft
v1 scope

What v1 carries — and what it deliberately leaves out.

In scope — v1
  • Master data (property, chain/brand, spaces, categories)
  • Profiles (guests, companies, agents; consent; merge)
  • Reservations (bookings, stay segments, group blocks)
  • ARI (rate plans, daily rates, availability, restrictions)
  • Financial (folios, charges, payments, invoices)
  • POS (outlets, checks, lines, tenders, room-charge postings)
  • Housekeeping (room status, OOO/OOS)
  • Groups & events (blocks, functions — minimal)
Out — extension points reserved
  • Distribution/channel management beyond ARI
  • Loyalty beyond membership references
  • Spa/activity scheduling
  • Door locks/IoT
  • Kiosk
  • Messaging