public static function forStringType(int $string_type): self
    {
        $steps = array(
            /* @formatter:off */
            self::STEP_TRANSCODE => new TranscodeStep($string_type), 
            self::STEP_MAP => new MapStep(), 
            self::STEP_NORMALIZE => new NormalizeStep(), 
            self::STEP_PROHIBIT => new ProhibitStep(), 
            self::STEP_CHECK_BIDI => new CheckBidiStep(), 
            // @todo Vary by string type
            self::STEP_INSIGNIFICANT_CHARS => 
                new InsignificantNonSubstringSpaceStep()
            /* @formatter:on */
        );
        return new self($steps);
    }