diff --git a/src/game/engine/scenes/headless/player_api_main.gd b/src/game/engine/scenes/headless/player_api_main.gd index 0470be20..71f1615f 100644 --- a/src/game/engine/scenes/headless/player_api_main.gd +++ b/src/game/engine/scenes/headless/player_api_main.gd @@ -475,6 +475,21 @@ func _handle_request(req: Dictionary) -> void: "view": var view_json: String = String(_api.view_json(target_slot)) _emit_response_with_view(rid_int, has_id, view_json) + "suggest": + # Stage 6.1.6 — read-only "what would the in-box AI do here". + # `suggest_json` returns a full `{"ok":...,"actions":[...]}` + # envelope; splice in the request id and forward verbatim. + # Side-effect-free: no state mutation, no turn advance. + var suggest_str: String = String(_api.suggest_json(target_slot)) + var suggest_env: Dictionary = JSON.parse_string(suggest_str) as Dictionary + if suggest_env.is_empty(): + _emit_response_error( + rid_int, has_id, "internal", "gdext returned non-JSON suggest envelope" + ) + return + if has_id: + suggest_env["id"] = rid_int + _write_line(JSON.stringify(suggest_env)) "act": var action_payload: Dictionary = req.get("action", {}) as Dictionary if action_payload.is_empty():