or a more semantically meaning one...the use of the inner array is arguably a hack here meant to avoid the overhead and new type creation by assigning meaning to array slots.
i.e.,
create type table_with_schema (name text, schema text);
I would likewise attempt to do away with the outer array as well if the overall structure of the example follows reality closely enough.