Currently they are required, but can have a possibly nil value (maybe allows nil, optional allows the key to be missing). I needed to do that because you could submit a catalog under v2 for example and it would have no transaction-uuid. Then you could later retrieve it via the v4 api, where it would properly have a nil transaction-uuid.