----iOS----

-quickstart for loading last edited report on main menu
-duplicate existing report with new name
-cleanup empty uuid folders in case user gets an internal folder created but never saves

*-always save report data (file locations, title, etc.) to internal dir (might already be done?)
    -no more option to save data internally -> ALWAYS save report_data.json internally
*-update project title -> should update recently used data
    -this sort of works, something is wrong with the upgrade process where the UUID is not brought over properly; need to test and fix (maybe fixed already and my dataset is wrong?)
*-add dropdown to Add Items button to have add items from folder and remove choose working folder option (data always saved internally)
    -not going to do this; they can always select multiple items from the current picker
*-Now that the BaseFolder is always internal...update options for PDF output location
    -output in internal dir (default)
    -always ask me every time (opens save file picker after generating PDF to ask user where they want it)
    -always put in X folder (uses existing option)
-add option to backup added files to internal data directory (always on for iOS)
-make backup of last generated PDF somewhere
-iOS-specific (MAUI essentials?)
    -maui community essentials https://learn.microsoft.com/en-us/dotnet/communitytoolkit/maui/get-started?tabs=CommunityToolkitMaui
        -I don't think this is what we are looking for ultimately....?
        -https://github.com/AvaloniaUI/Avalonia.Essentials
        -https://github.com/AvaloniaUI/AvaloniaMauiHybrid -- this may have to be the way to go or perhaps grab code from https://github.com/AvaloniaUI/Avalonia.Controls.Maui/tree/main/src/Avalonia.Controls.Maui.Essentials because we don't need the avalonia tie in stuff if it "just works"...but don't know if it will "just work" yet. apparently native APIs are available through net10.0-ios or whatnot but I'd rather use the existing wrappers/tutorials since those will just work just like we want...
    -auto save on every action
    -Take picture
        -https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/device-media/picker?view=net-maui-10.0&tabs=macios
    -Add pic from gallery
        -see above link
    -Add file (uses Files picking, I think this already mostly works just need to copy to internal data dir)
    -Generate PDF -> Share/print screen to share/print
        -https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/data/share?view=net-maui-10.0&tabs=macios
    -Make sure clipboard works (not sure if it will out of the box or not)
        -https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/data/clipboard?view=net-maui-10.0

-----------

https://stackoverflow.com/questions/78855900/error-ios-projects-must-build-with-publishtrimmed-true-when-trimming-is-disabl
https://blog.verslu.is/maui/exclude-assemblies-from-trimming/

-p:UseParallelGC=true for faster builds? or /p:MtouchUseLlvm=false? or -p:EnableAssemblyILStripping=false?
possible hints for building publish iOS binaries: https://github.com/dotnet/maui/issues/25022#issuecomment-2385334527

linker stuff: https://blog.verslu.is/maui/exclude-assemblies-from-trimming/
PublishFolderType documentation: https://github.com/dotnet/macios/blob/main/dotnet/BundleContents.md

https://signpath.org/

magick "2026-01-29 — \$210 — WORK PERMIT.pdf" -background white -alpha background -alpha off -density 288 -resize 25% page-%03d.jpg
https://github.com/dlemstra/Magick.NET/blob/main/docs/ConvertPDF.md
https://stackoverflow.com/questions/65089839/add-an-external-pdf-page-to-pdfsharp-migradoc
https://github.com/mephraim/ghostscriptsharp
https://stackoverflow.com/a/71485279/3938401

need a PDF viewer that works with annotations
https://github.com/BobLd/PdfPig.Rendering.Skia/ works but quality is low for some reason, I don't know why. probably need a bug report or some option that is hidden.
                using (var document = UglyToad.PdfPig.PdfDocument.Open(filePath, UglyToad.PdfPig.Rendering.Skia.SkiaRenderingParsingOptions.Instance))
                {

                    document.AddSkiaPageFactory(); // Same as document.AddPageFactory<SKPicture, SkiaPageFactory>() and document.AddPageFactory<PdfPageSize, PageSizeFactory>()

                    for (int p = 1; p <= document.NumberOfPages; p++)
                    {
                        using var skBitmap = document.GetPageAsSKBitmap(p, 1);
                        using (var fs = new FileStream(Path.Combine(convertedDir, $"{fileName}_{p}PIG.jpeg"), FileMode.Create))
                        using (var ms = document.GetPageAsPng(p, 1, 4))
                        {
                            MemoryStream memoryStream = new MemoryStream();
                            skBitmap.Encode(memoryStream, SkiaSharp.SKEncodedImageFormat.Jpeg, 100);
                            memoryStream.Position = 0L;

                            ms.WriteTo(fs);
                        }
                    }
                }
https://github.com/GowenGit/docnet -- may need to fork this and publish our own package if some OS doesn't work

*-add more items
*-save last opened folder to settings somewhere

---Features---
*-save report to disk
*-separate save button to come back to things later
*-add resort by date option
*-when scanning files don't add kinds we cannot read/use
*-Fix buttons not enabling/disabling appropritely
*-if files not found show user error
*-add preview or open button or something to each item
    https://gitflic.ru/project/jackhammer/pdf-forge-net/file?commit=7bdce6132a70ab12664a8f2482003836c7af2ab6

*-check if last remembered dir exists on auto-load!
*-show working directory
*-set DMG title in publish
*-Get linux publish command working and zip up/publish
    dotnet publish -c Release -r linux-x64 -p:StripSymbols=False -p:PublishAot=False
    dotnet publish -c Release -r linux-arm64 -p:StripSymbols=False -p:PublishAot=False

---Publishing---
*-Published app has unneeded .DSYM file (fixed via .app builder)
*-Published app has Assets folder already copied to it; don't want that in output macOS folder but it's being copied there anyway (fixed via .app builder)
*-macOS x64 build