public static List<ShapeId> getPrioritizedServiceAuth(Model model, ToShapeId service) {
        var index = ServiceIndex.of(model);

        // Get the effective auth schemes first and add them to an ordered set. This
        // is important to do because the effective schemes are explicitly ordered in
        // the model by the auth trait, and we want to document the auth options in
        // that same order.
        var authSchemes = new LinkedHashSet<>(index.getEffectiveAuthSchemes(service, AuthSchemeMode.MODELED).keySet());

        // Since the auth trait can exclude some of the service's auth types, we need
        // to add those in last.
        authSchemes.addAll(index.getAuthSchemes(service).keySet());

        return List.copyOf(authSchemes);
    }
Gets a priority-ordered list of the service's auth types.

<p>This includes all the auth types bound to the service, not just those present
in the {@code auth} trait. Auth types not present in the auth trait are at the
end of the list, in alphabetical order.

@param model The model being generated from.
@param service The service being documented.
@return returns a priority-ordered list of service auth types.
smithy-docgen/src/main/java/software/amazon/smithy/docgen/DocgenUtils.java