{"version":"0.20.0","name":"kanvas_import","description":"Import exact session-scoped source data or media. dataset takes exactly one of csv, lossless JSON TEXT or rows (2 MiB wire, 20000 rows, 64 columns). asset needs bounded base64 bytes, never a URL/path. Returns scoped IDs. Required: operation. Required fields by operation: dataset(sessionId,name); asset(sessionId,name,mimeType,base64).","inputSchema":{"type":"object","properties":{"operation":{"type":"string","enum":["dataset","asset"],"description":"Required operation; supply only the fields in its matching branch."},"sessionId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"name":{"type":"string","minLength":1,"maxLength":160},"csv":{"type":"string","minLength":1,"maxLength":2097152,"x-maxUtf8Bytes":2097152,"description":"Original CSV text; maximum 2 MiB UTF-8 bytes as well as the character limit. Byte bound is enforced by the server."},"json":{"type":"string","minLength":1,"maxLength":2097152,"x-maxUtf8Bytes":2097152,"description":"Lossless original JSON text; maximum 2 MiB UTF-8 bytes as well as the character limit. Byte bound is enforced by the server."},"rows":{"minItems":1,"maxItems":20000,"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"source":{"type":"object","properties":{"title":{"type":"string","maxLength":500},"url":{"type":"string","maxLength":2048},"locator":{"type":"string","maxLength":500},"timestamp":{"type":"string","maxLength":60}},"additionalProperties":false},"mimeType":{"type":"string","minLength":1,"maxLength":120},"base64":{"type":"string","minLength":4,"maxLength":8388608}},"required":["operation"],"oneOf":[{"properties":{"operation":{"const":"dataset"},"sessionId":{},"name":{},"csv":{},"json":{},"rows":{},"source":{}},"required":["operation","sessionId","name"],"additionalProperties":false,"oneOf":[{"required":["csv"],"not":{"anyOf":[{"required":["json"]},{"required":["rows"]}]}},{"required":["json"],"not":{"anyOf":[{"required":["csv"]},{"required":["rows"]}]}},{"required":["rows"],"not":{"anyOf":[{"required":["csv"]},{"required":["json"]}]}}],"description":"Import exactly one of csv, json text, or rows."},{"properties":{"operation":{"const":"asset"},"sessionId":{},"name":{},"mimeType":{},"base64":{}},"required":["operation","sessionId","name","mimeType","base64"],"additionalProperties":false,"description":"Transfer actual base64 media bytes, not a filename or URL."}],"examples":[{"operation":"dataset","sessionId":"s","name":"Example measurements","rows":[{"label":"Example A","value":12}]},{"operation":"asset","sessionId":"s","name":"example-pixel.png","mimeType":"image/png","base64":"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAusB9Wl6Ot8AAAAASUVORK5CYII="}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}}