Write a Python function to parse a deeply nested JSON payload containing corporate ownership structures and return a flat list of ultimate beneficial owners (UBOs). The input is a decoded Python dictionary with an ownership array. Each node has type, name, and, for companies, an owners array; person nodes are UBOs. Return unique person names in depth-first, left-to-right order. Assume the payload is valid and contains no cycles.
ownership array.type and name fields.type equal to person.owners array.def parse_ubos(payload):