private function determineMapperFqcn(array $data)
    {
        $type = $this->getSystemType($data);
        $fqcn = $this->mapperNamespace.'\\'.$type;

        if (isset($this->dataMapperMatchers[$type])) {
            $matchedFqcn = $this->dataMapperMatchers[$type]($data);

            if (!$matchedFqcn) {
                return $fqcn;
            }

            if (!\class_exists($matchedFqcn, \true)) {
                throw new \RuntimeException(\sprintf(
                    'Mapper class "%s" does not exist.',
                    $matchedFqcn
                ));
            }

            return $matchedFqcn;
        }

        return $fqcn;
    }