// Protocol buffers for feature extractor.

syntax = "proto2";

package syntaxnet;

message Parameter {
  optional string name = 1;
  optional string value = 2;
}

// Descriptor for feature function.
message FeatureFunctionDescriptor {
  // Feature function type.
  required string type = 1;

  // Feature function name.
  optional string name = 2;

  // Default argument for feature function.
  optional int32 argument = 3 [default = 0];

  // Named parameters for feature descriptor.
  repeated Parameter parameter = 4;

  // Nested sub-feature function descriptors.
  repeated FeatureFunctionDescriptor feature = 7;
};

// Descriptor for feature extractor.
message FeatureExtractorDescriptor {
  // Top-level feature function for extractor.
  repeated FeatureFunctionDescriptor feature = 1;
};
