{
  "kind": "client_class",
  "expect": "valid",
  "description": "Fixity-pilot-shape: Reforge-inspired non-CCD client observing repeated-signal payloads through Lifeloop dispatch",
  "data": {
    "client_id": "fixity-pilot",
    "description": "Fixity pilot: consumes DispatchEnvelope payload bodies or body_ref values, returns CallbackResponse, and emits client-owned context_signal payloads plus side-channel evidence.",
    "payload_kinds": ["fixity.context_signal", "fixity.experience"],
    "example_payload": {
      "schema_version": "lifeloop.v0.2",
      "payload_id": "pay-fixity-1",
      "client_id": "fixity-pilot",
      "payload_kind": "fixity.context_signal",
      "format": "client-defined",
      "content_encoding": "utf8",
      "body": "{\"schema\":\"lifeloop-fixity-pilot.v0.1\",\"kind\":\"frame-signal\"}",
      "byte_size": 61,
      "acceptable_placements": [
        { "placement": "pre_prompt_frame", "requirement": "preferred" },
        { "placement": "receipt_only", "requirement": "optional" }
      ],
      "idempotency_key": "idem-fixity-1"
    }
  }
}
