{"version":"0.20.0","name":"kanvas_video","description":"Video on a display: control play/pause/seek/volume/rate/fullscreen; status reads playback state. Required: operation. Required fields by operation: control(sessionId,displayId,requestId,expectedRevision,command); status(sessionId,displayId).","inputSchema":{"type":"object","properties":{"operation":{"type":"string","enum":["control","status"],"description":"Required operation; supply only the fields in its matching branch."},"sessionId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"displayId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"requestId":{"type":"string","minLength":1,"maxLength":128},"expectedRevision":{"type":"integer","minimum":0,"maximum":9007199254740991},"command":{"type":"object","properties":{"action":{"type":"string","enum":["play","pause","seek","restart","mute","unmute","volume","rate","skip","fullscreen"]},"time":{"type":"number","minimum":0,"maximum":86400},"value":{"type":"number","minimum":-86400,"maximum":86400},"fullscreen":{"type":"boolean"}},"required":["action"],"additionalProperties":false,"allOf":[{"if":{"properties":{"action":{"const":"seek"}},"required":["action"]},"then":{"required":["time"]}},{"if":{"properties":{"action":{"enum":["volume","rate","skip"]}},"required":["action"]},"then":{"required":["value"]}},{"if":{"properties":{"action":{"const":"volume"}},"required":["action"]},"then":{"properties":{"value":{"minimum":0,"maximum":1}}}},{"if":{"properties":{"action":{"const":"rate"}},"required":["action"]},"then":{"properties":{"value":{"minimum":0.25,"maximum":4}}}}]},"commandId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"}},"required":["operation"],"oneOf":[{"properties":{"operation":{"const":"control"},"sessionId":{},"displayId":{},"requestId":{},"expectedRevision":{},"command":{}},"required":["operation","sessionId","displayId","requestId","expectedRevision","command"],"additionalProperties":false,"description":"Send a command to the already loaded video; action belongs inside command."},{"properties":{"operation":{"const":"status"},"sessionId":{},"displayId":{},"commandId":{}},"required":["operation","sessionId","displayId"],"additionalProperties":false}],"examples":[{"operation":"control","sessionId":"s","displayId":"d","expectedRevision":3,"requestId":"r0","command":{"action":"pause"}},{"operation":"status","sessionId":"s","displayId":"d"}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}}