Current Problem:
Currently all of your Projects get access to all packages, so even your Avatar Project will have a button to add the World SDK and to add tools / Packages which are made for world creation. This can lead to confusion and could result in a creator accidentally adding things like U# and the World SDK to their Avatar Project.
My Suggestion:
Differentiate Packages between ones who are made for
Worlds
, ones made for
Avatars
and ones who work for
Worlds & Avatars
There are multiple ways I think you could do this:
  1. Add a
    Compatibility
    section to Manifest. This could define what this package is made for, either
    Worlds
    ,
    Avatars
    or
    Worlds & Avatars
    .
  2. Go by what
    gitDependencies
    a package has. If a package has
    com.vrchat.avatars
    make the package only appear for Avatar Projects, if it has
    com.vrchat.worlds
    make it only appear for Worlds.
  3. Just have different sections for adding User Packages. Have one section for
    World Packages
    and one for
    Avatar Packages
    .
To define if a Project is a World or Avatar Project, I would just go by what SDK they have installed. So, if they have the Avatar SDK installed, only show Packages for Avatar Creation, if they have the World SDK installed, only show Packages for World Creation (and also the ones who are made for both of course).
Conclusion:
I think that in general splitting up Packages into these categories will be a good thing. It would prevent people from accidentally adding Packages made for Worlds into Avatar Projects (and the other way around). It could also keep things more organized if you have a lot of different packages.