{
  "lab_id": "DAT016-LAB1",
  "objective": "Design and falsify one bounded gRPC streaming reliability policy using local evidence.",
  "critical_dimensions": [
    "rpc_shapes",
    "deadline",
    "cancellation",
    "flow_control",
    "deadlock_boundary"
  ],
  "required_evidence": [
    "positive baseline",
    "deadline/cancellation negative probe",
    "slow receiver flow-control observation",
    "bounded deadlock-risk simulation",
    "changed-context transfer",
    "residual limitation"
  ],
  "runtime_rule": "Only disposable loopback gRPC runtime may be observed. External network, external services, and production behavior are out of scope.",
  "decision_rule": "Runner writes raw observations only; learner supplies final reliability/backpressure decision.",
  "safety": "All probes are bounded by message count, deadline, watchdog, or process timeout.",
  "probe_semantics_rule": "The four named probe IDs and their expected classes are contract data and must be executed exactly once.",
  "prediction_completeness_rule": "All four required case predictions must be present before runtime execution.",
  "provenance_rule": "Any local runtime evidence must bind service contract, probe cases, golden policy, requirements, toolchain policy, runtime fixture, static preflight, and learner decision by SHA-256.",
  "flow_control_boundary_rule": "Local write/yield timing is bounded implementation evidence only; it does not prove network delivery, peer processing, or business admission safety."
}
