use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct CreateSquareHoleSessionRequest { #[serde(default)] pub seed_text: Option, #[serde(default)] pub theme_text: Option, #[serde(default)] pub twist_rule: Option, #[serde(default)] pub shape_count: Option, #[serde(default)] pub difficulty: Option, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct SendSquareHoleMessageRequest { pub client_message_id: String, pub text: String, #[serde(default)] pub quick_fill_requested: Option, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct ExecuteSquareHoleActionRequest { pub action: String, #[serde(default)] pub game_name: Option, #[serde(default)] pub summary: Option, #[serde(default)] pub tags: Option>, #[serde(default)] pub cover_image_src: Option, #[serde(default)] pub regenerate_visual_assets: Option, #[serde(default)] pub visual_asset_slot: Option, #[serde(default)] pub visual_asset_option_id: Option, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct SquareHoleShapeOptionResponse { pub option_id: String, pub shape_kind: String, pub label: String, pub target_hole_id: String, pub image_prompt: String, #[serde(default)] pub image_src: Option, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct SquareHoleHoleOptionResponse { pub hole_id: String, pub hole_kind: String, pub label: String, pub image_prompt: String, #[serde(default)] pub image_src: Option, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct SquareHoleAnchorItemResponse { pub key: String, pub label: String, pub value: String, pub status: String, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct SquareHoleAnchorPackResponse { pub theme: SquareHoleAnchorItemResponse, pub twist_rule: SquareHoleAnchorItemResponse, pub shape_count: SquareHoleAnchorItemResponse, pub difficulty: SquareHoleAnchorItemResponse, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct SquareHoleCreatorConfigResponse { pub theme_text: String, pub twist_rule: String, pub shape_count: u32, pub difficulty: u32, #[serde(default)] pub shape_options: Vec, #[serde(default)] pub hole_options: Vec, #[serde(default)] pub background_prompt: String, #[serde(default)] pub cover_image_src: Option, #[serde(default)] pub background_image_src: Option, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct SquareHoleResultDraftResponse { pub profile_id: String, pub game_name: String, pub theme_text: String, pub twist_rule: String, pub summary: String, pub tags: Vec, #[serde(default)] pub cover_image_src: Option, #[serde(default)] pub background_prompt: String, #[serde(default)] pub background_image_src: Option, #[serde(default)] pub shape_options: Vec, #[serde(default)] pub hole_options: Vec, pub shape_count: u32, pub difficulty: u32, pub publish_ready: bool, pub blockers: Vec, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct SquareHoleAgentMessageResponse { pub id: String, pub role: String, pub kind: String, pub text: String, pub created_at: String, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct SquareHoleSessionSnapshotResponse { pub session_id: String, pub current_turn: u32, pub progress_percent: u32, pub stage: String, pub anchor_pack: SquareHoleAnchorPackResponse, pub config: SquareHoleCreatorConfigResponse, #[serde(default)] pub draft: Option, pub messages: Vec, #[serde(default)] pub last_assistant_reply: Option, #[serde(default)] pub published_profile_id: Option, pub updated_at: String, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct SquareHoleSessionResponse { pub session: SquareHoleSessionSnapshotResponse, } #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct SquareHoleActionResponse { pub session: SquareHoleSessionSnapshotResponse, }