Skip to content

Types

Defined in: packages/types/src/doc.ts:14

A named orientation of a piece (e.g. die face)

name: string

Defined in: packages/types/src/doc.ts:15

rotation: Vector3Tuple

Defined in: packages/types/src/doc.ts:16


Defined in: packages/types/src/doc.ts:187

The Automerge document shape — a digital analog of the physical game. Pieces are stacked on each other and positioned relatively.

// A token, sitting on a card, sitting on a chessboard
{
"$schema": "https://registry.probability.nz/npm/@probability-nz/types/-/types-0.0.0.tgz/dist/analog.json",
"templates": {},
"children": [
{
"name": "Chess Board",
"position": [0, 0.1, 0],
"locked": true,
"src": "Chess_Board.glb",
"children": [
{
"name": "card",
"position": [0, 0.002, 0],
"children": [
{ "name": "pawn", "position": [0, 0.3, 0], "children": [] }
]
}
]
}
]
}

optional __automergeMoves: __AutomergeMoves

Defined in: packages/types/src/doc.ts:196

Tracks Automerge objectId changes when pieces are reparented.

$schema: "https://registry.probability.nz/npm/@probability-nz/types/-/types-0.0.0.tgz/dist/analog.json"

Defined in: packages/types/src/doc.ts:188

children: Piece[]

Defined in: packages/types/src/doc.ts:189

templates: Templates

Defined in: packages/types/src/doc.ts:190


Defined in: packages/types/src/hashroute.ts:31

Connection context passed to plugins via the URL hash.

https://example.com/plugin#{"doc":"automerge:...","sync":["wss://..."],"delegation":"..."}

optional delegation: string

Defined in: packages/types/src/hashroute.ts:40

Will be a base64url-encoded KeyHive/Beelay Ed25519 Signed<Delegation>.

doc: AutomergeUrl

Defined in: packages/types/src/hashroute.ts:33

Automerge document URL

sync: [string, ...string[]]

Defined in: packages/types/src/hashroute.ts:35

Sync server WebSocket URLs


Defined in: packages/types/src/doc.ts:64

A game piece in a manifest or document

optional children: Piece[]

Defined in: packages/types/src/doc.ts:65

optional color: string | null

Defined in: packages/types/src/doc.ts:50

CSS color string, or null for no tint

"#808080"

PieceTemplate.color

optional faces: Face[]

Defined in: packages/types/src/doc.ts:57

Named face orientations (e.g. for dice)

PieceTemplate.faces

optional locked: boolean

Defined in: packages/types/src/doc.ts:55

Make piece non-interactive?

false

PieceTemplate.locked

optional name: string

Defined in: packages/types/src/doc.ts:24

PieceTemplate.name

optional position: Vector3Tuple

Defined in: packages/types/src/doc.ts:35

World position in meters.

[0, 0, 0]

PieceTemplate.position

optional rotation: Vector3Tuple

Defined in: packages/types/src/doc.ts:45

Euler rotation (degrees)

[0, 0, 0]

PieceTemplate.rotation

optional scale: Vector3Tuple

Defined in: packages/types/src/doc.ts:40

Unitless multiplier applied to the model.

[1, 1, 1]

PieceTemplate.scale

optional src: string

Defined in: packages/types/src/doc.ts:26

Path to a glTF/GLB model

PieceTemplate.src

optional template: string

Defined in: packages/types/src/doc.ts:30

Key into the sibling templates object to inherit defaults from

PieceTemplate.template


Defined in: packages/types/src/doc.ts:23

Piece template — shared fields for pieces

optional color: string | null

Defined in: packages/types/src/doc.ts:50

CSS color string, or null for no tint

"#808080"

optional faces: Face[]

Defined in: packages/types/src/doc.ts:57

Named face orientations (e.g. for dice)

optional locked: boolean

Defined in: packages/types/src/doc.ts:55

Make piece non-interactive?

false

optional name: string

Defined in: packages/types/src/doc.ts:24

optional position: Vector3Tuple

Defined in: packages/types/src/doc.ts:35

World position in meters.

[0, 0, 0]

optional rotation: Vector3Tuple

Defined in: packages/types/src/doc.ts:45

Euler rotation (degrees)

[0, 0, 0]

optional scale: Vector3Tuple

Defined in: packages/types/src/doc.ts:40

Unitless multiplier applied to the model.

[1, 1, 1]

optional src: string

Defined in: packages/types/src/doc.ts:26

Path to a glTF/GLB model

optional template: string

Defined in: packages/types/src/doc.ts:30

Key into the sibling templates object to inherit defaults from


Templates = Record<string, PieceTemplate>

Defined in: packages/types/src/doc.ts:89

Reusable piece defaults, keyed by template name. Templates can inherit from other templates via the template field, and share syntax with pieces minus a children property.

{
"$schema": "https://registry.probability.nz/npm/@probability-nz/types/-/types-0.0.0.tgz/dist/analog.json",
"templates": {
"defaults": { "scale": [0.1, 0.1, 0.1] },
"redToken": { "template": "defaults", "name": "Red token", "src": "redToken.glb" }
},
"children": [
{ "template": "redToken", "position": [0.0, 0, 0] },
{ "template": "redToken", "position": [0.1, 0, 0] },
{ "template": "redToken", "position": [0.2, 0, 0] }
]
}

Defined in: packages/types/src/presence.ts:31

Cursor focus (what the user is looking at) — no automerge equivalent

action: "focus"

Defined in: packages/types/src/presence.ts:32

path: AnchoredPath

Defined in: packages/types/src/presence.ts:33


Defined in: packages/types/src/presence.ts:51

Move — no automerge equivalent yet (planned feature)

action: "move"

Defined in: packages/types/src/presence.ts:52

path: AnchoredPath

Defined in: packages/types/src/presence.ts:53

to: AnchoredPath

Defined in: packages/types/src/presence.ts:54


Defined in: packages/types/src/presence.ts:61

Presence state broadcast between peers

optional client: string

Defined in: packages/types/src/presence.ts:63

optional color: string

Defined in: packages/types/src/presence.ts:62

optional cursors: Record<string, { position?: Vector3Tuple; rotation?: Vector3Tuple; }>

Defined in: packages/types/src/presence.ts:66

optional op: FocusOp | PutOp | MoveOp

Defined in: packages/types/src/presence.ts:64


Defined in: packages/types/src/presence.ts:40

Anchored version of automerge’s PutPatch

action: "put"

Defined in: packages/types/src/presence.ts:41

optional conflict: boolean

Defined in: packages/types/src/presence.ts:44

path: AnchoredPath

Defined in: packages/types/src/presence.ts:42

value: JsonValue

Defined in: packages/types/src/presence.ts:43


Client = string

Defined in: packages/types/src/presence.ts:18

Client identifier in npm format: name@version or name#commit (e.g. "my-plugin@1.0.0", "@garbo-succus/probability-nz#c0mM1t").


Color = string

Defined in: packages/types/src/presence.ts:11

Any valid CSS color string (e.g. "red", "#abc", "rgb(0,0,0)").

Defined in: packages/types/src/doc.ts:149

Static game definition — imported to create a new GameState. Similar to a GameState but with a scenarios array on the root instead of children.

// 2-4 and 4-8 player scenarios
{
"$schema": "https://registry.probability.nz/npm/@probability-nz/types/-/types-0.0.0.tgz/dist/analog.json",
"templates": { "token": { "src": "token.glb" } },
"scenarios": [
{
"name": "2-4 player setup",
"children": [
{
"name": "Game board",
"src": "gameboard.glb",
"children": [
{ "template": "token" },
{ "template": "token" },
{ "template": "token" },
{ "template": "token" }
]
}
]
},
{
"name": "4-8 player setup",
"children": [
{
"name": "Game board",
"src": "gameboard.glb",
"children": [
{ "template": "token" },
{ "template": "token" },
{ "template": "token" },
{ "template": "token" },
{ "template": "token" },
{ "template": "token" },
{ "template": "token" },
{ "template": "token" }
]
}
]
}
]
}

$schema: "https://registry.probability.nz/npm/@probability-nz/types/-/types-0.0.0.tgz/dist/analog.json"

Defined in: packages/types/src/doc.ts:150

scenarios: Scenario[]

Defined in: packages/types/src/doc.ts:152

templates: Templates

Defined in: packages/types/src/doc.ts:151


Defined in: packages/types/src/doc.ts:95

A named starting arrangement of pieces

children: Piece[]

Defined in: packages/types/src/doc.ts:97

optional name: string

Defined in: packages/types/src/doc.ts:96


Vector3Tuple = [number, number, number]

Defined in: packages/types/src/doc.ts:8

[x, y, z] — right-handed Y-up coordinate system (from Three.js).

AnchoredPath = [string, ...Prop[]]

Defined in: packages/types/src/presence.ts:25

A path anchored to a specific Automerge object. First element is always an ObjID string.

`["2@abc123", "children", 0, "position"]`

AutomergeUrl = RepoAutomergeUrl & `automerge:${string}`

Defined in: packages/types/src/hashroute.ts:4

Automerge document URL (e.g. automerge:111111111111111111).


JsonValue = string | number | boolean | null | JsonArray | JsonObject

Defined in: packages/types/src/hashroute.ts:15

JSON-serializable value


Prop = string | number

Defined in: node_modules/.pnpm/@automerge+automerge@3.2.4/node_modules/@automerge/automerge/dist/wasm_types.d.ts:8

const SCHEMA_URL: "https://registry.probability.nz/npm/@probability-nz/types/-/types-0.0.0.tgz/dist/analog.json" = "https://registry.probability.nz/npm/@probability-nz/types/-/types-0.0.0.tgz/dist/analog.json"

Defined in: packages/types/src/doc.ts:1