Currently FAssetCategoryPath only supports one sub-category. When used in relation to UAssetDefinitionDefault it only allows for that asset to be placed in that submenu. This can become a problem quickly when trying to organize a large project.
struct ASSETDEFINITION_API FAssetCategoryPath
{
FAssetCategoryPath(const FText& InCategory);
FAssetCategoryPath(const FText& InCategory, const FText& SubCategory);
FAssetCategoryPath(const FAssetCategoryPath& InCategory, const FText& InSubCategory);
FAssetCategoryPath(TConstArrayView<FText> InCategoryPath);
FName GetCategory() const { return CategoryPath[0].Key; }
FText GetCategoryText() const { return CategoryPath[0].Value; }
bool HasSubCategory() const { return CategoryPath.Num() > 1; }
FName GetSubCategory() const { return HasSubCategory() ? CategoryPath[1].Key : NAME_None; }
FText GetSubCategoryText() const { return HasSubCategory() ? CategoryPath[1].Value : FText::GetEmpty(); }
FAssetCategoryPath operator / (const FText& SubCategory) const { return FAssetCategoryPath(*this, SubCategory); }
private:
TArray<TPair<FName, FText>> CategoryPath;
};