The fields are required, typed and can have default values. I don't have anything else besides that implementing the rest of the things without them seemed unintuitive/difficult. See also the description of the PR - ease of filtering by the actor (pid1). For pid2 the ease of filtering "from the other side". Everything could be built by hand based on the json data but the question is why...