apply_breakdown_operations Atomically edit a Breakdown: sources (play sessions, document sources with a hosted documentId, file sets), excerpt moments (captions, notes, tags), frames, findings and open questions. Patches include the expected previous value of each field; put_finding/put_question send expected null to create. Findings cite moment IDs as evidence. Reuse revisionAfter; dryRun does not save. Retry lost responses with identical requestId/input; after a conflict reread affected items and use a new requestId. Details: /docs/mcp/apply_breakdown_operations. Build the breakdown from evidence. Typical flow: read the transcript, then put_finding for each system, screen or observation with a short title, a section (Core loop, Systems, Screens, UX, Economy, Progression, Questions…), a Markdown body and evidence=[moment IDs]. Use patch_moment to add screen captions and tags to moments (expected holds the previous value of each patched field; missing text is ''), attach_frame to reference an uploaded raster asset, and put_question for what the recording did not show (answer later with status answered). add_moments inserts many excerpts at once (sourceId must exist; time in seconds for play sessions, fileId for file sets, blockId for documents); remove_source also removes its moments, strips evidence references and, for a document source, deletes the hosted document. put_* with expected null creates, with the current item replaces; remove_* needs the exact current item. reorder_sources takes every source ID once with the expected current order. Play sessions are created by the browser upload flow; add_source creates document sources (documentId, then write with apply_document_operations) and files sources (upload assets first, then add_source or add_files). Operations are atomic; merge_non_overlapping allows unrelated concurrent edits. Reuse revisionAfter; dryRun validates without writing; retry an uncertain result with the identical requestId and payload.