def all_sample_keys(self) -> List[str]:
        """Return the unique keys of all samples in this :class:`SampleSheet`.

        The keys are discovered first by the order of samples and second by
        the order of keys upon those samples.

        """
        all_keys: List[str] = []
        for key in chain.from_iterable([sample.keys() for sample in self]):
            if key not in all_keys:
                all_keys.append(key)
        return all_keys