From 7c856c0f2c17a4d82ceee1e6532f54222f90a747 Mon Sep 17 00:00:00 2001 From: Kayh Date: Wed, 15 May 2024 01:38:52 -0400 Subject: [PATCH] add capnproto schema --- world/README.md | 3 +-- world/schemas/world_server.capnp | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 world/schemas/world_server.capnp diff --git a/world/README.md b/world/README.md index 8a9c33a..602ace6 100644 --- a/world/README.md +++ b/world/README.md @@ -18,5 +18,4 @@ This DWN acts as a location for world discovery. ## Networking -Networking within an instance uses [WebTransport](https://developer.mozilla.org/en-US/docs/Web/API/WebTransport), -following a [protobuf](https://protobuf.dev/) specification. +Networking within an instance follows a [Cap'n Proto](https://capnproto.org/) schema over [WebTransport](https://developer.mozilla.org/en-US/docs/Web/API/WebTransport). diff --git a/world/schemas/world_server.capnp b/world/schemas/world_server.capnp new file mode 100644 index 0000000..79294bd --- /dev/null +++ b/world/schemas/world_server.capnp @@ -0,0 +1,27 @@ +@0xae09eca2c525e50a; + +struct Result(T) { + union { + success @0: T; + error @1: Text; + } +} + +interface WorldServer { + joinInstance @0 (instance: Instance) -> (response :Result(JoinResponse)); + + struct Instance { + recordId @0 :Text; + } + + struct JoinResponse { + playerId @0: UInt16; + } + + listPlayers @1 () -> (response: List(Player)); + + struct Player { + playerId @0: UInt16; + did @1: Text; + } +}