{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.runlocal.ai/schemas/v1/bundle.json",
  "title": "Request bundle",
  "description": "The upload envelope. The whole body is at most 8388608 bytes of UTF-8 including base64 overhead. A json file that states content travels in the request itself, so the envelope of a request whose files are all JSON is readable from end to end.",
  "type": "object",
  "required": [
    "request",
    "objects"
  ],
  "properties": {
    "request": {
      "description": "The complete request document. Write it as JSON. A string holding the same JSON is the older form and is still read. At most 6291456 bytes of UTF-8 either way."
    },
    "objects": {
      "description": "File names mapped to standard padded base64 of the exact bytes. The keys must equal the names of the request's files that travel with it and that do not state content. A file with a location has its bytes at another place, and a file with content states its value in the request itself, so neither has an entry here. Every entry is checked for padded standard base64, byte length, and SHA-256.",
      "type": "object",
      "maxProperties": 128,
      "additionalProperties": {
        "type": "string",
        "contentEncoding": "base64"
      }
    },
    "validation": {
      "description": "The optional client validation report. It is checked against the computed request digests and retained as untrusted client data. Write it as JSON. A string holding the same JSON is the older form and is still read. At most 524288 bytes of UTF-8 either way."
    }
  },
  "additionalProperties": false
}
