Build the malformed-envelope cases for one RPC endpoint — the dispatcher's
envelope parse, method lookup, and GET read restriction.
The POST cases and the GET read cases ride the endpoint's first read method
(side_effects: false), the GET mutation cases its first mutation that
needs an account. _testing_* and protocol methods are never chosen. A case
whose method the endpoint lacks is left out.
Every read (side_effects: false) gets a GET with each of
RPC_NON_OBJECT_PARAMS → invalid_params: the query string is no envelope,
so the dispatcher's params validation is what refuses it.
Three cases pin an order against auth, sent with no credential: a GET of
a mutating method is refused invalid_request (the read restriction runs
after the method lookup and before authorization), a batch array is
refused invalid_request with id: null (the envelope parse runs first,
and batches are unsupported), and a GET with non-object params on a
read requiring an identity is the 401 (params validation runs after authorization).