I don't like using the body. GET's are easily shareable, bookmarkeable, etc, (even editable by humans). etc. thans to query strings. I rather have a GET with better (shorter) serialization for parameters and a standarized max-length of 16k or something like that.
Look to Hispanic countries. They've been dealing with this for a very long time. https://en.wikipedia.org/wiki/Spanish_naming_customs
Generally, if a parent has two surnames, the child will take the first of them, so you normally will have two surnames, the first or only from your father, and the first or only from your mother. (Note that this algorithm does eliminate matrilineal names, because a child will effectively be receiving their two surnames from their grandfathers.
From what I understand, if the genetic lineage is particularly elite, you might keep more. My wife grew up in Latin America among the Hispanic elite, and apparently some of her friends had more than two surnames because their bloodlines were extremely blue and they wanted to preserve reference to the lineage.
This is a bit like how Prince Harry and Meghan Markle's kids have the surname Mountbatten-Windsor. The former is a cadet branch of the German House of Hesse, and the latter is a rebranding of the extremely German Haus Sachsen-Coburg und Gotha (and of course right there is a triple-barrel name, Sachsen-Coburg-Gotha.