code: def __make_innermsg(resource, rtype, ref, action=None, payload=None, limit=None):
          
          if action is not None and not isinstance(action, (tuple, list)):
              raise TypeError('action must be None/tuple/list')
          p = {M_RESOURCE: resource,
               M_TYPE: int(rtype),
               M_CLIENTREF: ref,
               # Ensure action path consists only of strings
               M_ACTION: tuple(u(element) for element in action) if action else None,
               M_PAYLOAD: payload}
          if limit is not None:  # Note: fmtted like "0/15" where 0 = offset, 15 = limit
              p[M_RANGE] = limit
          return p
docs: return innermsg chunk (dict)