After playing around with the preview version of .NET 8 I noticed that in the new Blazor Web App template (which combines webassembly and server side rendering) there are two Program.cs files. I get that for each environment an individual entry point is needed. But its somewhat magic to me how Blazor knows which main function to call. Does the assembly generated by the client project have some special attributes that allows the Blazor app to know that this is the dll for the webassembly rendering or how exactly does this work?