A structure has no name to offer
Booking a trade as a leg of a structure needs a structure to name, and the structure is chosen by a person. It cannot be:
select id, kind, template_code, party_id from ores_trading_structures_tbl where valid_to = ores_utility_infinity_timestamp_fn(); -- 01a17539-… | Package | (empty) | 01a17539-…
There is a kind, an optional template code, and the party. No name, no reference. The trade list settles for the word Structure and a count of the trades it holds; a picker cannot.
The member row is fine: structure_members carries trade_id,
structure_id, role and sequence_number, and the role in use today is
leg. The write is trading.v1.structure_members.put.
Two ways to give a structure something to be called, and the first is smaller: derive one from its members and kind, such as Package of 3 plus the first member's identifier, which the screen can compute without a model change; or give the table a name or a reference of its own, which is the model change the prototype's structure page probably assumed.
Until one is chosen, the trade-leg acceptance criterion of Build Book a trade cannot be met by a screen, only by the shell.