syntax = "proto2";

package main;

import "google/protobuf/descriptor.proto";

extend google.protobuf.FileOptions {
	optional String file_option = 50000;
}

extend google.protobuf.MessageOptions {
	optional String message_option = 50000;
}
extend google.protobuf.FieldOptions {
	optional String filed_option = 50000;
}

extend google.protobuf.ServiceOptions {
	optional String service_option = 50000;
}
extend google.protobuf.MethodOptions {
	optional String method_option = 50000;
}

option (file_option) = {
	value: "this is a file option"
};

message Message {
	option (message_option) = {
		value: "message option"
	};

	optional string name = 1 [
		(filed_option) = {
			value: ""
		}
	];
}

service HelloService {
	option (service_option) = {
		value: "message option"
	};

	rpc Hello(String) returns(String) {
		option (method_option) = {
			value: ""
		};
	}
}

message String {
	optional string value = 1;
}