Referencing other proto files
In any programming language, you can create reusable bundles of code and package them up into libraries that can be referenced by any application. In .NET, for example, you can create a project of a Class Library type that you can reference from your main application project. Or, if such a library is meant to be accessible by other projects that aren't part of your solution, you can publish it as a NuGet package.
Similar principles are available in Protobuf. You can reference other proto files from inside your proto file. Another similarity between Protobuf and any major programming language is that you can add references to both internal and external proto files. We will have a look at how to apply them both.
Just like you would use namespaces in C# to import external libraries, you use the equivalent in Protobuf. The package
directive in a proto file is what sets the name of the Protobuf package. Then, if any other proto file will need to...