Can a single Solidity file have several smart contracts?
Could you please clarify for me, is it possible for a Solidity file to contain multiple smart contracts within its structure? I'm curious to know if the language supports the compilation and deployment of multiple contracts from a single source file, or if each contract must be defined in its own separate file for organization and management purposes. Additionally, are there any best practices or considerations to keep in mind when structuring Solidity files in this manner?