openapi: 3.0.3 info: title: SWOOSH Transition API version: 0.1.0 paths: /transition: post: summary: Propose a guarded state transition requestBody: required: true content: application/json: schema: type: object required: [current_state_hash, transition, inputs_hash, signer, idem_key, hlc, window_id] properties: current_state_hash: { type: string } transition: { type: string } inputs_hash: { type: string } signer: { type: string, description: "HMMM identity" } idem_key: { type: string } hlc: { type: string } window_id: { type: string } evidence: type: array items: { type: string, description: "UCXL DR links or content hashes" } responses: "202": description: Accepted "400": description: Rejected (guard failed / stale / duplicate) /state: get: summary: Read current orchestrator state (projected) parameters: - in: query name: projection schema: type: string example: "Council,Ingestion" responses: "200": description: Current state snapshot content: application/json: schema: type: object properties: hash: { type: string } projection: { type: object }