← WebMCP Directory

Tool tree

tablee.lulab.fr

Media & PersonalTools verified
Website
tablee.lulab.fr exposes WebMCP tools to AI agents.
Explore capabilities

    page: Morpion

    tablee_tic_tac_toe_get_stateAnswer

    Lit uniquement l’état public et vérifiable du jeu Morpion ouvert.

    View tool JSON
    {
      "name": "tablee_tic_tac_toe_get_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lit uniquement l’état public et vérifiable du jeu Morpion ouvert.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/morpion"
    }
    tablee_tic_tac_toe_get_rulesAnswer

    Lit les règles courtes de Morpion sans modifier la partie.

    View tool JSON
    {
      "name": "tablee_tic_tac_toe_get_rules",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lit les règles courtes de Morpion sans modifier la partie.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/morpion"
    }
    tablee_tic_tac_toe_list_legal_movesAnswer

    Liste les actions que le joueur de cette page peut actuellement effectuer.

    View tool JSON
    {
      "name": "tablee_tic_tac_toe_list_legal_moves",
      "kind": "answer",
      "impl": "imperative",
      "description": "Liste les actions que le joueur de cette page peut actuellement effectuer.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/morpion"
    }
    tablee_tic_tac_toe_wait_for_position_changeAction

    Attend sans modifier la partie que son positionId change. À utiliser dans un tour Codex actif pour suivre une partie sans redemander au joueur de signaler chaque coup. Une expiration est normale : relancez alors cet outil avec le même positionId.

    View tool JSON
    {
      "name": "tablee_tic_tac_toe_wait_for_position_change",
      "kind": "act",
      "impl": "imperative",
      "description": "Attend sans modifier la partie que son positionId change. À utiliser dans un tour Codex actif pour suivre une partie sans redemander au joueur de signaler chaque coup. Une expiration est normale : relancez alors cet outil avec le même positionId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId de la dernière position lue."
          },
          "timeoutSeconds": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Durée maximale de cette attente ; 45 secondes par défaut."
          }
        },
        "required": [
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/morpion"
    }
    tablee_tic_tac_toe_start_gameAction

    Démarre une partie locale. Toute partie active exige confirmReplace=true et le dernier positionId.

    View tool JSON
    {
      "name": "tablee_tic_tac_toe_start_game",
      "kind": "act",
      "impl": "imperative",
      "description": "Démarre une partie locale. Toute partie active exige confirmReplace=true et le dernier positionId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "solo",
              "duo"
            ],
            "description": ""
          },
          "difficulty": {
            "type": "string",
            "enum": [
              "easy",
              "med",
              "hard"
            ],
            "description": "Niveau de difficulté."
          },
          "confirmReplace": {
            "type": "boolean"
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "mode",
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/morpion"
    }
    tablee_tic_tac_toe_play_moveAction

    Pose le symbole courant sur une case vide.

    View tool JSON
    {
      "name": "tablee_tic_tac_toe_play_move",
      "kind": "act",
      "impl": "imperative",
      "description": "Pose le symbole courant sur une case vide.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "row": {
            "type": "integer",
            "minimum": 1,
            "maximum": 3
          },
          "column": {
            "type": "integer",
            "minimum": 1,
            "maximum": 3
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "row",
          "column",
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/morpion"
    }

    page: 7 familles

    tablee_seven_families_get_stateAnswer

    Lit uniquement l’état public et vérifiable du jeu 7 familles ouvert.

    View tool JSON
    {
      "name": "tablee_seven_families_get_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lit uniquement l’état public et vérifiable du jeu 7 familles ouvert.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/7-familles"
    }
    tablee_seven_families_get_rulesAnswer

    Lit les règles courtes de 7 familles sans modifier la partie.

    View tool JSON
    {
      "name": "tablee_seven_families_get_rules",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lit les règles courtes de 7 familles sans modifier la partie.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/7-familles"
    }
    tablee_seven_families_list_legal_actionsAnswer

    Liste les actions que le joueur de cette page peut actuellement effectuer.

    View tool JSON
    {
      "name": "tablee_seven_families_list_legal_actions",
      "kind": "answer",
      "impl": "imperative",
      "description": "Liste les actions que le joueur de cette page peut actuellement effectuer.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/7-familles"
    }
    tablee_seven_families_wait_for_position_changeAction

    Attend sans modifier la partie que son positionId change. À utiliser dans un tour Codex actif pour suivre une partie sans redemander au joueur de signaler chaque coup. Une expiration est normale : relancez alors cet outil avec le même positionId.

    View tool JSON
    {
      "name": "tablee_seven_families_wait_for_position_change",
      "kind": "act",
      "impl": "imperative",
      "description": "Attend sans modifier la partie que son positionId change. À utiliser dans un tour Codex actif pour suivre une partie sans redemander au joueur de signaler chaque coup. Une expiration est normale : relancez alors cet outil avec le même positionId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId de la dernière position lue."
          },
          "timeoutSeconds": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Durée maximale de cette attente ; 45 secondes par défaut."
          }
        },
        "required": [
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/7-familles"
    }
    tablee_seven_families_start_gameAction

    Démarre une partie locale. Toute partie active exige confirmReplace=true et le dernier positionId.

    View tool JSON
    {
      "name": "tablee_seven_families_start_game",
      "kind": "act",
      "impl": "imperative",
      "description": "Démarre une partie locale. Toute partie active exige confirmReplace=true et le dernier positionId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "playerCount": {
            "type": "integer",
            "minimum": 2,
            "maximum": 4
          },
          "confirmReplace": {
            "type": "boolean"
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "playerCount",
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/7-familles"
    }
    tablee_seven_families_ready_turnAction

    Confirme le passage de l’appareil au joueur courant.

    View tool JSON
    {
      "name": "tablee_seven_families_ready_turn",
      "kind": "act",
      "impl": "imperative",
      "description": "Confirme le passage de l’appareil au joueur courant.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/7-familles"
    }
    tablee_seven_families_ask_cardAction

    Effectue une demande figurant exactement dans les demandes légales du joueur courant.

    View tool JSON
    {
      "name": "tablee_seven_families_ask_card",
      "kind": "act",
      "impl": "imperative",
      "description": "Effectue une demande figurant exactement dans les demandes légales du joueur courant.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "targetSeat": {
            "type": "integer",
            "minimum": 0,
            "maximum": 3
          },
          "cardId": {
            "type": "string",
            "minLength": 3,
            "maxLength": 80
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "targetSeat",
          "cardId",
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/7-familles"
    }

    page: Panier flash

    tablee_basket_flash_get_stateAnswer

    Lit uniquement l’état public et vérifiable du jeu Panier Flash ouvert.

    View tool JSON
    {
      "name": "tablee_basket_flash_get_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lit uniquement l’état public et vérifiable du jeu Panier Flash ouvert.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/panier-flash"
    }
    tablee_basket_flash_get_rulesAnswer

    Lit les règles courtes de Panier Flash sans modifier la partie.

    View tool JSON
    {
      "name": "tablee_basket_flash_get_rules",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lit les règles courtes de Panier Flash sans modifier la partie.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/panier-flash"
    }
    tablee_basket_flash_list_legal_actionsAnswer

    Liste les actions que le joueur de cette page peut actuellement effectuer.

    View tool JSON
    {
      "name": "tablee_basket_flash_list_legal_actions",
      "kind": "answer",
      "impl": "imperative",
      "description": "Liste les actions que le joueur de cette page peut actuellement effectuer.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/panier-flash"
    }
    tablee_basket_flash_wait_for_position_changeAction

    Attend sans modifier la partie que son positionId change. À utiliser dans un tour Codex actif pour suivre une partie sans redemander au joueur de signaler chaque coup. Une expiration est normale : relancez alors cet outil avec le même positionId.

    View tool JSON
    {
      "name": "tablee_basket_flash_wait_for_position_change",
      "kind": "act",
      "impl": "imperative",
      "description": "Attend sans modifier la partie que son positionId change. À utiliser dans un tour Codex actif pour suivre une partie sans redemander au joueur de signaler chaque coup. Une expiration est normale : relancez alors cet outil avec le même positionId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId de la dernière position lue."
          },
          "timeoutSeconds": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Durée maximale de cette attente ; 45 secondes par défaut."
          }
        },
        "required": [
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/panier-flash"
    }
    tablee_basket_flash_start_gameAction

    Démarre une partie locale. Toute partie active exige confirmReplace=true et le dernier positionId.

    View tool JSON
    {
      "name": "tablee_basket_flash_start_game",
      "kind": "act",
      "impl": "imperative",
      "description": "Démarre une partie locale. Toute partie active exige confirmReplace=true et le dernier positionId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "challenge",
              "practice"
            ],
            "description": ""
          },
          "confirmReplace": {
            "type": "boolean"
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "mode",
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/panier-flash"
    }
    tablee_basket_flash_shootAction

    Lance un tir borné à partir d’un geste vers le haut ; aucune visée automatique.

    View tool JSON
    {
      "name": "tablee_basket_flash_shoot",
      "kind": "act",
      "impl": "imperative",
      "description": "Lance un tir borné à partir d’un geste vers le haut ; aucune visée automatique.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "dragX": {
            "type": "number",
            "minimum": -360,
            "maximum": 360
          },
          "dragY": {
            "type": "number",
            "minimum": -540,
            "maximum": -28
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "dragX",
          "dragY",
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/panier-flash"
    }

    page: Echecs

    tablee_chess_get_stateAnswer

    Lit uniquement l’état public et vérifiable du jeu Échecs ouvert.

    View tool JSON
    {
      "name": "tablee_chess_get_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lit uniquement l’état public et vérifiable du jeu Échecs ouvert.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/echecs"
    }
    tablee_chess_get_rulesAnswer

    Lit les règles courtes de Échecs sans modifier la partie.

    View tool JSON
    {
      "name": "tablee_chess_get_rules",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lit les règles courtes de Échecs sans modifier la partie.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/echecs"
    }
    tablee_chess_list_legal_movesAction

    Liste les actions que le joueur de cette page peut actuellement effectuer.

    View tool JSON
    {
      "name": "tablee_chess_list_legal_moves",
      "kind": "act",
      "impl": "imperative",
      "description": "Liste les actions que le joueur de cette page peut actuellement effectuer.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/echecs"
    }
    tablee_chess_wait_for_position_changeAction

    Attend sans modifier la partie que son positionId change. À utiliser dans un tour Codex actif pour suivre une partie sans redemander au joueur de signaler chaque coup. Une expiration est normale : relancez alors cet outil avec le même positionId.

    View tool JSON
    {
      "name": "tablee_chess_wait_for_position_change",
      "kind": "act",
      "impl": "imperative",
      "description": "Attend sans modifier la partie que son positionId change. À utiliser dans un tour Codex actif pour suivre une partie sans redemander au joueur de signaler chaque coup. Une expiration est normale : relancez alors cet outil avec le même positionId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId de la dernière position lue."
          },
          "timeoutSeconds": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Durée maximale de cette attente ; 45 secondes par défaut."
          }
        },
        "required": [
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/echecs"
    }
    tablee_chess_start_gameAction

    Démarre une partie locale. Toute partie active exige confirmReplace=true et le dernier positionId.

    View tool JSON
    {
      "name": "tablee_chess_start_game",
      "kind": "act",
      "impl": "imperative",
      "description": "Démarre une partie locale. Toute partie active exige confirmReplace=true et le dernier positionId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "solo",
              "duo"
            ],
            "description": ""
          },
          "difficulty": {
            "type": "string",
            "enum": [
              "easy",
              "med",
              "hard"
            ],
            "description": "Niveau de difficulté."
          },
          "confirmReplace": {
            "type": "boolean"
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "mode",
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/echecs"
    }
    tablee_chess_play_moveAction

    Retrouve puis joue un coup légal exact, promotion comprise.

    View tool JSON
    {
      "name": "tablee_chess_play_move",
      "kind": "act",
      "impl": "imperative",
      "description": "Retrouve puis joue un coup légal exact, promotion comprise.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "pattern": "^[a-h][1-8]$"
          },
          "to": {
            "type": "string",
            "pattern": "^[a-h][1-8]$"
          },
          "promotion": {
            "type": "string",
            "enum": [
              "Q",
              "R",
              "B",
              "N"
            ],
            "description": ""
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "from",
          "to",
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/echecs"
    }

    page: Sudoku

    tablee_sudoku_get_stateAnswer

    Lit uniquement l’état public et vérifiable du jeu Sudoku ouvert.

    View tool JSON
    {
      "name": "tablee_sudoku_get_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lit uniquement l’état public et vérifiable du jeu Sudoku ouvert.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/sudoku"
    }
    tablee_sudoku_get_rulesAnswer

    Lit les règles courtes de Sudoku sans modifier la partie.

    View tool JSON
    {
      "name": "tablee_sudoku_get_rules",
      "kind": "answer",
      "impl": "imperative",
      "description": "Lit les règles courtes de Sudoku sans modifier la partie.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/sudoku"
    }
    tablee_sudoku_list_legal_actionsAnswer

    Liste les actions que le joueur de cette page peut actuellement effectuer.

    View tool JSON
    {
      "name": "tablee_sudoku_list_legal_actions",
      "kind": "answer",
      "impl": "imperative",
      "description": "Liste les actions que le joueur de cette page peut actuellement effectuer.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/sudoku"
    }
    tablee_sudoku_wait_for_position_changeAction

    Attend sans modifier la partie que son positionId change. À utiliser dans un tour Codex actif pour suivre une partie sans redemander au joueur de signaler chaque coup. Une expiration est normale : relancez alors cet outil avec le même positionId.

    View tool JSON
    {
      "name": "tablee_sudoku_wait_for_position_change",
      "kind": "act",
      "impl": "imperative",
      "description": "Attend sans modifier la partie que son positionId change. À utiliser dans un tour Codex actif pour suivre une partie sans redemander au joueur de signaler chaque coup. Une expiration est normale : relancez alors cet outil avec le même positionId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId de la dernière position lue."
          },
          "timeoutSeconds": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Durée maximale de cette attente ; 45 secondes par défaut."
          }
        },
        "required": [
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/sudoku"
    }
    tablee_sudoku_start_gameAction

    Démarre une partie locale. Toute partie active exige confirmReplace=true et le dernier positionId.

    View tool JSON
    {
      "name": "tablee_sudoku_start_game",
      "kind": "act",
      "impl": "imperative",
      "description": "Démarre une partie locale. Toute partie active exige confirmReplace=true et le dernier positionId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "difficulty": {
            "type": "string",
            "enum": [
              "facile",
              "moyen",
              "difficile"
            ],
            "description": "Niveau de difficulté."
          },
          "confirmReplace": {
            "type": "boolean"
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "difficulty",
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/sudoku"
    }
    tablee_sudoku_set_cellAction

    Fixe une valeur de 0 à 9 dans une case modifiable ; 0 efface.

    View tool JSON
    {
      "name": "tablee_sudoku_set_cell",
      "kind": "act",
      "impl": "imperative",
      "description": "Fixe une valeur de 0 à 9 dans une case modifiable ; 0 efface.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "row": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9
          },
          "column": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9
          },
          "value": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "row",
          "column",
          "value",
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/sudoku"
    }
    tablee_sudoku_toggle_noteAction

    Ajoute ou retire un chiffre au crayon dans une case vide.

    View tool JSON
    {
      "name": "tablee_sudoku_toggle_note",
      "kind": "act",
      "impl": "imperative",
      "description": "Ajoute ou retire un chiffre au crayon dans une case vide.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "row": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9
          },
          "column": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9
          },
          "value": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "row",
          "column",
          "value",
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/sudoku"
    }
    tablee_sudoku_use_hintAction

    Révèle une valeur correcte dans une case choisie ou encore incorrecte.

    View tool JSON
    {
      "name": "tablee_sudoku_use_hint",
      "kind": "act",
      "impl": "imperative",
      "description": "Révèle une valeur correcte dans une case choisie ou encore incorrecte.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "row": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9
          },
          "column": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9
          },
          "expectedPositionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "positionId retourné par la dernière lecture de l’état."
          }
        },
        "required": [
          "expectedPositionId"
        ],
        "additionalProperties": false
      },
      "page": "/sudoku"
    }