import type { JsonObject } from './common'; export type PuzzleAnchorStatus = | 'missing' | 'inferred' | 'confirmed' | 'locked'; export interface PuzzleAnchorItem { key: string; label: string; value: string; status: PuzzleAnchorStatus; } export interface PuzzleAnchorPack { themePromise: PuzzleAnchorItem; visualSubject: PuzzleAnchorItem; visualMood: PuzzleAnchorItem; compositionHooks: PuzzleAnchorItem; tagsAndForbidden: PuzzleAnchorItem; } export interface PuzzleCreatorIntent { sourceMode: 'agent_chat'; rawMessagesSummary: string; themePromise: string; visualSubject: string; visualMood: string[]; compositionHooks: string[]; themeTags: string[]; forbiddenDirectives: string[]; } export interface PuzzleGeneratedImageCandidate { candidateId: string; imageSrc: string; assetId: string; prompt: string; actualPrompt?: string | null; sourceType: 'generated' | 'uploaded'; selected: boolean; } export interface PuzzleResultDraft { levelName: string; summary: string; themeTags: string[]; forbiddenDirectives: string[]; creatorIntent: PuzzleCreatorIntent | null; anchorPack: PuzzleAnchorPack; candidates: PuzzleGeneratedImageCandidate[]; selectedCandidateId: string | null; coverImageSrc: string | null; coverAssetId: string | null; generationStatus: 'idle' | 'generating' | 'ready'; metadata?: JsonObject | null; }