I wrote some words (with an example!) about how to write custom async on-demand importers in Unity: https://blog.s-schoener.com/2024-11-22-unity-async-imports/
Unity Async On-Demand Imports

Hey! You can find me on Mastodon, Bluesky, or Twitter! For a while now, Unity has had a neat little feature: async, on-demand imports. It’s not widely used or implemented, but it exists. This blog post is going to point you in the general direction of how to implement such...

@sschoener oh wow, that is pretty cool! I’m wondering how many of “yeah this is actually possible” workflows are possible, just Unity does not clearly tell people about them
@sschoener like, even the whole asset dependencies concept I feel like is not known about widely enough

@aras Importers are under-documented, which is a shame because they are inherently hard to get right. Even Unity's own scripted importers are somewhat broken.

Maybe some friction to stop people from shooting themselves into their feet unless they actually put in the work is intentional?

@sschoener @aras I think one problem with the "async import" thing is that it's getting harder and harder to build real-world importers...

Like, need a material while importing the thing? And that's a Shader Graph?

Good luck doing the GatherDependencies thing and hoping that on a first project import things will actually work...

@herbst @sschoener @aras importers have import ordering to define which ones run first. So in your example if you knew you needed the results from another importer in your importer, set yours to run after the one you need. Setting up proper import ordering is pretty often overlooked even in Unity's own packages.
@rcalt2vt With proper dependency tracking import ordering should not be needed at all! It's only relevant for the "first import pass" where the importer should collect dependencies and then ensure that these dependencies run first before running the actual importer.
@herbst @rcalt2vt import ordering is an optimization right now and will go away in favor of proper dependency tracking.
@jdrewsen @herbst I wasn't about to leak anything coming so I didn't want to say it. =D
@rcalt2vt @jdrewsen @herbst it’s not a leak, it is revealing design thinking! Please “leak” more! ;)
@aras @rcalt2vt @herbst On the design front I can add that we are actively working on moving it out of experimental namespace and also towards a more standard c# Task based API with improved failure semantics.
@jdrewsen @aras @rcalt2vt @herbst so am I correct to assume that this would, eventually, get rid of the import popups that make you wait? if so, can't wait!
@logicalerror @aras @rcalt2vt @herbst That is orthogonal to the non-primary imports that @sschoener describes in the blog post. But you should pop by one day and have a peek at what we are up to on that front ;)