Assemblies - Capi-Metaverse/Template GitHub Wiki
An assembly is a C# code library that contains the compiled classes and structs that are defined by your scripts and which also define references to other assemblies.
By default, Unity compiles almost all of your game scripts into the predefined assembly, Assembly-CSharp.dll.
If we use the predefined assembly, the project will have certain drawbacks:
-
Every time you change one script, Unity has to recompile all the other scripts, increasing overall compilation time for iterative code changes.
-
Any script can directly access types defined in any other script, which can make it more difficult to refactor and improve your code.
-
All scripts are compiled for all platforms.

To organize your project code into assemblies, create a folder for each desired assembly and move the scripts that should belong to each assembly into the relevant folder. Then create Assembly Definition assets to specify the assembly properties.
Unity takes all of the scripts in a folder that contains an Assembly Definition asset and compiles them into an assembly, using the name and other settings defined by the asset. Unity also includes scripts in any child folders in the same assembly, unless the child folder has its own Assembly Definition or Assembly Reference asset.