Preheat oven to 400 F degrees.
Start by tossing the sliced potatoes and red onion with the olive oil, salt, pepper, thyme and oregano in a medium size bowl.
Spread them in a single layer on the bottom of a 9x13 inch baking pan.
Bake for 20 minutes until they begin to soften and turn golden.
While the potatoes are baking, sweat the eggplant slices by placing on paper towels then sprinkling some salt over each slice. Let them sit like that for about 10 minutes then flip them over and sprinkle with additional salt. After 10 minutes you can soak up any water you may see over the eggplant with paper towels.
Spread the eggplant slices over the potatoes in a single layer. Drizzle with the olive oil, season with salt, pepper, then sprinkle with the thyme and oregano.
Place the pan back in the oven and bake for another 20 minutes.
Once again spread the zucchini slices over the eggplant layer in a single layer, then repeat by drizzling olive oil, seasoning with salt, pepper and sprinkle with the thyme and oregano.
Bake for another 20 minutes.
In the meantime, prepare the meat. Heat the olive oil in a large skillet over medium high heat. Add the onion and saute until it softens, for about 3 minutes. Add the garlic and cook for about 30 seconds, just until the garlic becomes aromatic.
Add the ground meat and using a wooden spoon break it up into small pieces. Cook until it's no longer pink, about 5 minutes. Season with salt and pepper. Add the allspice, Italian seasoning, tomato paste and stir well. Stir in the chopped tomatoes and cook for another 5 minutes, stirring occasionally, until most of the liquid evaporates. Set aside.
To make the bechamel sauce, melt the butter in a saucepan over medium heat. As soon as the butter has melted whisk in the flour until it gets fully incorporated into the butter. Start to add the milk slowly. I usually add it in about 4 batches, so add 1/4 of the milk at a time, whisk until all the liquid is absorbed by the flour and repeat until you have whisked in all the milk.
When the sauce start to bubble, it will be ready to whisk in the pepper and nutmeg.
Add the egg yolks to the sauce and whisk them in well. Stir in the Parmesan cheese, bring the sauce to a boil again and remove from heat.
Add about 1/4 of this sauce to the meat mixture and stir.
Spread the meat filling over the vegetable layers, then pour the bechamel sauce over the meat and smooth it out with a spatula or spoon.
Bake for another 30 minutes or until the top is golden brown.
Remove from the oven and allow it to cool at least 1 hour before cutting it into pieces.
Garnish with parsley if preferred before serving.