syntax = "proto3"; package shoebill; service Repo { rpc Download (Bundle) returns (Bundle); } message Bundle { BundleDefinition Definition = 1; BundleType Type = 2; } message BundleDefinition { Metadata Metadata = 1; Spec Spec = 2; } message Metadata { string Name = 1; string Version = 2; repeated Maintainer Maintainers = 3; } message Spec { string Type = 1; } enum BundleType { TYPE_UNSPECIFIED = 0; TYPE_PACKAGE = 1; TYPE_LIBRARY = 2; } message Maintainer { string Name = 1; string Email = 2; string Website = 3; }