How to handle conditional subquery's

It is difficult order subquestions

If questions document key same as _id

SELECT
     (SELECT RAW q
      FROM Contacts AS q USE KEYS (ARRAY v.question FOR v WITHIN {d} WHEN v.question IS NOT MISSING END)
      WHERE _type = 'question') questions,
      d.`order`
FROM Contacts AS c
UNNEST c.data AS d
WHERE c._type = "dynform"
ORDER BY d.`order` ;

If questions document key not same as _id

SELECT
     (SELECT RAW q
      FROM Contacts AS q
      WHERE _type = 'question' AND _id IN (ARRAY v.question FOR v WITHIN {d} WHEN v.question IS NOT MISSING END)) questions,
      d.`order`
FROM Contacts AS c
UNNEST c.data AS d
WHERE c._type = "dynform"
ORDER BY d.`order` ;