96 lines
1.7 KiB
Plaintext
96 lines
1.7 KiB
Plaintext
module default {
|
|
|
|
type GameBoard {
|
|
overloaded required id: uuid {
|
|
readonly := true;
|
|
constraint exclusive;
|
|
}
|
|
url: str {
|
|
readonly := true;
|
|
}
|
|
required created_at: datetime {
|
|
readonly := true;
|
|
}
|
|
required turns: int32 {
|
|
readonly := true;
|
|
}
|
|
required map: str {
|
|
readonly := true;
|
|
}
|
|
required single type: GameType {
|
|
readonly := true;
|
|
constraint exclusive;
|
|
on source delete delete target;
|
|
}
|
|
required single ruleset: Ruleset {
|
|
readonly := true;
|
|
constraint exclusive;
|
|
on source delete delete target;
|
|
}
|
|
required winner: str {
|
|
readonly := true;
|
|
}
|
|
required multi moves: Moves {
|
|
readonly := true;
|
|
on source delete delete target;
|
|
}
|
|
required single snake: Snake {
|
|
readonly := true;
|
|
on source delete delete target;
|
|
}
|
|
}
|
|
|
|
type GameType {
|
|
required name: str {
|
|
readonly := true;
|
|
}
|
|
required is_ladder: bool {
|
|
readonly := true;
|
|
}
|
|
}
|
|
|
|
type Ruleset {
|
|
required name: str {
|
|
readonly := true;
|
|
}
|
|
required version: str {
|
|
readonly := true;
|
|
}
|
|
required settings: json {
|
|
readonly := true;
|
|
}
|
|
}
|
|
|
|
type Snake {
|
|
required type: str {
|
|
readonly := true;
|
|
}
|
|
required multi calculations: Calculations {
|
|
readonly := true;
|
|
on source delete delete target;
|
|
}
|
|
}
|
|
|
|
type Moves {
|
|
required turn: int32 {
|
|
readonly := true;
|
|
}
|
|
required snake_move: str {
|
|
readonly := true;
|
|
}
|
|
required game_board: json {
|
|
readonly := true;
|
|
}
|
|
}
|
|
|
|
type Calculations {
|
|
required turn: int32 {
|
|
readonly := true;
|
|
}
|
|
required data: array<json> {
|
|
readonly := true;
|
|
}
|
|
}
|
|
|
|
}
|