message Quaternion { required double w = 1; required double x = 2; required double y = 3; required double z = 4; } message Vector3 { required double x = 1 [default = 0]; required double y = 2 [default = 0]; required double z = 3 [default = 0]; } message Matrix3 { required Vector3 x = 1; required Vector3 y = 2; required Vector3 z = 3; }