docs: def proof_req_infos2briefs(proof_req: dict, infos: Union[dict, Sequence[dict]]) -> list:
      """
      Given a proof request and corresponding cred-info(s), return a list of cred-briefs
      (i.e., cred-info plus interval).
  
      The proof request must have cred def id restrictions on all requested attribute specifications.
  
      :param proof_req: proof request
      :param infos: cred-info or sequence thereof; e.g.,
  
      ::
  
          [
              {
                  'attrs': {
                      'auditDate': '2018-07-30',
                      'greenLevel': 'Silver',
                      'legalName': 'Tart City'
                  },
                  'cred_rev_id': '48',
                  'cred_def_id': 'WgWxqztrNooG92RXvxSTWv:3:CL:17:tag',
                  'referent': 'c15674a9-7321-440d-bbed-e1ac9273abd5',
                  'rev_reg_id': 'WgWxqztrNooG92RXvxSTWv:4:WgWxqztrNooG92RXvxSTWv:3:CL:17:tag:CL_ACCUM:0',
                  'schema_id': 'WgWxqztrNooG92RXvxSTWv:2:green:1.0'
              },
              ...
          ]
  
      :return: list of cred-briefs
      """
  
      rv = []
      refts = proof_req_attr_referents(proof_req)
      for info in iter_briefs(infos):
          if info['cred_def_id'] not in refts:
              continue
          brief = {
              'cred_info': info,
              'interval': {}
          }
          fro = None
          to = None
          for uuid in refts[info['cred_def_id']].values():
              interval = proof_req['requested_attributes'][uuid].get('non_revoked', {})
              if 'from' in interval:
                  fro = min(fro or interval['from'], interval['from'])
              if 'to' in interval:
                  to = max(to or interval['to'], interval['to'])
  
          if to:
              brief['interval']['to'] = to
          if fro:
              brief['interval']['from'] = fro
          if not brief['interval']:
              brief['interval'] = None
  
          rv.append(brief)
  
      return rv