Your C++ struct is the schema: a proto3 serializer in C++26 reflection
I built a header-only proto3 wire-format library with one constraint: no .proto files, no codegen, no descriptor runtime. The user writes a plain C++ struct, and that struct is the schema: