{
  "schemaVersion": 1,
  "lessonId": "deployment-03",
  "contentHash": "2bb69b19747a5a934d1051e96f9936cb9b6418e6a8a670ac3781c7f73f427b3f",
  "rendererHash": "a1bd5b648f4731ae5d5f0a24811c2540d1a0a132149ce589d17c4113509cbedf",
  "kind": "executed",
  "generatedAt": "2026-10-20T10:46:49.818939+00:00",
  "provenance": "recorded_cpu_computation",
  "environment": {
    "backend": "cpu",
    "deviceCount": 1,
    "jax": "0.9.2",
    "numpy": "2.4.4",
    "matplotlib": "3.10.8"
  },
  "stdout": "Verified serialized bytes: 1312\n",
  "data": {
    "kind": "bar",
    "labels": [
      "score 0",
      "score 1"
    ],
    "ylabel": "output score",
    "series": [
      {
        "label": "direct",
        "y": [
          3.0999999046325684,
          -0.4500000476837158
        ]
      },
      {
        "label": "restored artifact",
        "y": [
          3.0999999046325684,
          -0.4500000476837158
        ]
      }
    ]
  },
  "diagram": {
    "title": "Four different deployment boundaries",
    "prediction": "Which row is tested by the exported object alone?",
    "reading": "Read top to bottom from the raw request to the response. Each row has a distinct contract and a distinct failure. The exported computation handles the numeric call; request fields, artifact identity and response meaning require surrounding checks. The fresh-process experiment exercises loading and calling under the installed CPU runtime.",
    "alt": "Read top to bottom from the raw request to the response. Each row has a distinct contract and a distinct failure. The exported computation handles the numeric call; request fields, artifact identity and response meaning require surrounding checks. The fresh-process experiment exercises loading and calling under the installed CPU runtime.",
    "scope": "Architecture and dataflow mechanism diagram.",
    "height": 4.2,
    "panel": {
      "kind": "table",
      "headers": [
        "Boundary",
        "Contract",
        "Example failure"
      ],
      "rows": [
        [
          "Raw request",
          "feature order + finite values",
          "wrong units"
        ],
        [
          "Artifact load",
          "bytes + runtime support",
          "wrong artifact"
        ],
        [
          "Numeric call",
          "shape + dtype + operations",
          "wrong batch"
        ],
        [
          "Response",
          "score order + labels",
          "swapped labels"
        ]
      ],
      "widths": [
        0.24,
        0.43,
        0.33
      ]
    }
  }
}
