// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: ar/v1/property.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Messages.AR.V1 {

  /// <summary>Holder for reflection information generated from ar/v1/property.proto</summary>
  public static partial class PropertyReflection {

    #region Descriptor
    /// <summary>File descriptor for ar/v1/property.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static PropertyReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "ChRhci92MS9wcm9wZXJ0eS5wcm90bxIFYXIudjEaF2FyL3YxL3Blcm1pc3Np",
            "b25zLnByb3RvGhtidWYvdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8ivwUKCFBy",
            "b3BlcnR5Eg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1lEhIK",
            "BGljb24YAyABKAlSBGljb24SIAoLZGVzY3JpcHRpb24YBCABKAlSC2Rlc2Ny",
            "aXB0aW9uEjQKBHR5cGUYBSABKA4yEy5hci52MS5Qcm9wZXJ0eVR5cGVCC7pI",
            "CIIBAhAByAEBUgR0eXBlEhQKBXZhbHVlGAYgASgJUgV2YWx1ZRIWCgZleHRy",
            "YXMYByABKAlSBmV4dHJhcxJhChttaW5pbXVtX3JlcXVpcmVkX3Blcm1pc3Np",
            "b24YCCABKA4yFy5hci52MS5Xb3JrZXJQZXJtaXNzaW9uQgi6SAWCAQIQAVIZ",
            "bWluaW11bVJlcXVpcmVkUGVybWlzc2lvbhI3CgZvcmlnaW4YCSABKA4yFS5h",
            "ci52MS5Qcm9wZXJ0eU9yaWdpbkIIukgFggECEAFSBm9yaWdpbhI+Cgdvcmln",
            "aW5zGAogAygOMhUuYXIudjEuUHJvcGVydHlPcmlnaW5CDbpICpIBByIFggEC",
            "EAFSB29yaWdpbnMSLAoSbWlycm9yX3Byb3BlcnR5X2lkGAsgASgJUhBtaXJy",
            "b3JQcm9wZXJ0eUlkEhQKBWdyb3VwGAwgASgJUgVncm91cBIaCghvcmRlcmlu",
            "ZxgNIAEoBVIIb3JkZXJpbmcSHQoKaGlkZV9ncm91cBgOIAEoCFIJaGlkZUdy",
            "b3VwOpkBukiVARqSAQohbWlycm9yX2lkX3NldF9pZl9vcmlnaW5faXNfbWly",
            "cm9yEitNaXJyb3IgSUQgbXVzdCBiZSBzZXQgd2hlbiBvcmlnaW4gaXMgbWly",
            "cm9yGkAhdGhpcy5taXJyb3JfcHJvcGVydHlfaWQuc3RhcnRzV2l0aCgncHJv",
            "cC0nKSAmJiB0aGlzLm9yaWdpbiA9PSAyKt4CCgxQcm9wZXJ0eVR5cGUSHQoZ",
            "UFJPUEVSVFlfVFlQRV9VTlNQRUNJRklFRBAAEhYKElBST1BFUlRZX1RZUEVf",
            "Qk9PTBABEhUKEVBST1BFUlRZX1RZUEVfSU5UEAISFwoTUFJPUEVSVFlfVFlQ",
            "RV9GTE9BVBADEhgKFFBST1BFUlRZX1RZUEVfRE9VQkxFEAQSGAoUUFJPUEVS",
            "VFlfVFlQRV9TVFJJTkcQBRIZChVQUk9QRVJUWV9UWVBFX1ZFQ1RPUjMQBhIW",
            "ChJQUk9QRVJUWV9UWVBFX1BPU0UQBxIYChRQUk9QRVJUWV9UWVBFX0FOQ0hP",
            "UhAIEhcKE1BST1BFUlRZX1RZUEVfQ09MT1IQCRIXChNQUk9QRVJUWV9UWVBF",
            "X0FHRU5UEAoSFgoSUFJPUEVSVFlfVFlQRV9FTlVNEAsSHAoYUFJPUEVSVFlf",
            "VFlQRV9FTlVNX01VTFRJEAwqaAoOUHJvcGVydHlPcmlnaW4SHwobUFJPUEVS",
            "VFlfT1JJR0lOX1VOU1BFQ0lGSUVEEAASGQoVUFJPUEVSVFlfT1JJR0lOX0ZJ",
            "WEVEEAESGgoWUFJPUEVSVFlfT1JJR0lOX01JUlJPUhACQokBCgljb20uYXIu",
            "djFCDVByb3BlcnR5UHJvdG9QAVovZ2l0aHViLmNvbS9jb2JvdGFyL3Byb3Rv",
            "Y29sL21lc3NhZ2VzL2FyL3YxO2FydjGiAgNBWFiqAg5NZXNzYWdlcy5BUi5W",
            "McoCBUFyXFYx4gIRQXJcVjFcR1BCTWV0YWRhdGHqAgZBcjo6VjFiBnByb3Rv",
            "Mw=="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Messages.AR.V1.PermissionsReflection.Descriptor, global::Buf.Validate.ValidateReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Messages.AR.V1.PropertyType), typeof(global::Messages.AR.V1.PropertyOrigin), }, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.AR.V1.Property), global::Messages.AR.V1.Property.Parser, new[]{ "Id", "Name", "Icon", "Description", "Type", "Value", "Extras", "MinimumRequiredPermission", "Origin", "Origins", "MirrorPropertyId", "Group", "Ordering", "HideGroup" }, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Enums
  /// <summary>
  /// Used to specify the type of a property
  /// </summary>
  public enum PropertyType {
    [pbr::OriginalName("PROPERTY_TYPE_UNSPECIFIED")] Unspecified = 0,
    [pbr::OriginalName("PROPERTY_TYPE_BOOL")] Bool = 1,
    [pbr::OriginalName("PROPERTY_TYPE_INT")] Int = 2,
    [pbr::OriginalName("PROPERTY_TYPE_FLOAT")] Float = 3,
    [pbr::OriginalName("PROPERTY_TYPE_DOUBLE")] Double = 4,
    [pbr::OriginalName("PROPERTY_TYPE_STRING")] String = 5,
    [pbr::OriginalName("PROPERTY_TYPE_VECTOR3")] Vector3 = 6,
    [pbr::OriginalName("PROPERTY_TYPE_POSE")] Pose = 7,
    [pbr::OriginalName("PROPERTY_TYPE_ANCHOR")] Anchor = 8,
    [pbr::OriginalName("PROPERTY_TYPE_COLOR")] Color = 9,
    [pbr::OriginalName("PROPERTY_TYPE_AGENT")] Agent = 10,
    [pbr::OriginalName("PROPERTY_TYPE_ENUM")] Enum = 11,
    [pbr::OriginalName("PROPERTY_TYPE_ENUM_MULTI")] EnumMulti = 12,
  }

  /// <summary>
  /// Specifies where the value of a property originates from.
  /// </summary>
  public enum PropertyOrigin {
    [pbr::OriginalName("PROPERTY_ORIGIN_UNSPECIFIED")] Unspecified = 0,
    /// <summary>
    /// The value of the property is fixed and must be changed manually
    /// </summary>
    [pbr::OriginalName("PROPERTY_ORIGIN_FIXED")] Fixed = 1,
    /// <summary>
    /// The value of the property mirrors the value of another property
    /// </summary>
    [pbr::OriginalName("PROPERTY_ORIGIN_MIRROR")] Mirror = 2,
  }

  #endregion

  #region Messages
  /// <summary>
  /// Properties are used by various components to define them, such as: feedback, actions, and conditions.
  /// </summary>
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class Property : pb::IMessage<Property>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Property> _parser = new pb::MessageParser<Property>(() => new Property());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Property> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.AR.V1.PropertyReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Property() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Property(Property other) : this() {
      id_ = other.id_;
      name_ = other.name_;
      icon_ = other.icon_;
      description_ = other.description_;
      type_ = other.type_;
      value_ = other.value_;
      extras_ = other.extras_;
      minimumRequiredPermission_ = other.minimumRequiredPermission_;
      origin_ = other.origin_;
      origins_ = other.origins_.Clone();
      mirrorPropertyId_ = other.mirrorPropertyId_;
      group_ = other.group_;
      ordering_ = other.ordering_;
      hideGroup_ = other.hideGroup_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Property Clone() {
      return new Property(this);
    }

    /// <summary>Field number for the "id" field.</summary>
    public const int IdFieldNumber = 1;
    private string id_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Id {
      get { return id_; }
      set {
        id_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 2;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "icon" field.</summary>
    public const int IconFieldNumber = 3;
    private string icon_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Icon {
      get { return icon_; }
      set {
        icon_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "description" field.</summary>
    public const int DescriptionFieldNumber = 4;
    private string description_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Description {
      get { return description_; }
      set {
        description_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "type" field.</summary>
    public const int TypeFieldNumber = 5;
    private global::Messages.AR.V1.PropertyType type_ = global::Messages.AR.V1.PropertyType.Unspecified;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Messages.AR.V1.PropertyType Type {
      get { return type_; }
      set {
        type_ = value;
      }
    }

    /// <summary>Field number for the "value" field.</summary>
    public const int ValueFieldNumber = 6;
    private string value_ = "";
    /// <summary>
    /// the current value of the property (JSON encoded)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Value {
      get { return value_; }
      set {
        value_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "extras" field.</summary>
    public const int ExtrasFieldNumber = 7;
    private string extras_ = "";
    /// <summary>
    /// JSON encoded extra values, e.g. {min: -0.1, max: 0.5, step: 0.1} for a double property.
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Extras {
      get { return extras_; }
      set {
        extras_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "minimum_required_permission" field.</summary>
    public const int MinimumRequiredPermissionFieldNumber = 8;
    private global::Messages.AR.V1.WorkerPermission minimumRequiredPermission_ = global::Messages.AR.V1.WorkerPermission.Unspecified;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Messages.AR.V1.WorkerPermission MinimumRequiredPermission {
      get { return minimumRequiredPermission_; }
      set {
        minimumRequiredPermission_ = value;
      }
    }

    /// <summary>Field number for the "origin" field.</summary>
    public const int OriginFieldNumber = 9;
    private global::Messages.AR.V1.PropertyOrigin origin_ = global::Messages.AR.V1.PropertyOrigin.Unspecified;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Messages.AR.V1.PropertyOrigin Origin {
      get { return origin_; }
      set {
        origin_ = value;
      }
    }

    /// <summary>Field number for the "origins" field.</summary>
    public const int OriginsFieldNumber = 10;
    private static readonly pb::FieldCodec<global::Messages.AR.V1.PropertyOrigin> _repeated_origins_codec
        = pb::FieldCodec.ForEnum(82, x => (int) x, x => (global::Messages.AR.V1.PropertyOrigin) x);
    private readonly pbc::RepeatedField<global::Messages.AR.V1.PropertyOrigin> origins_ = new pbc::RepeatedField<global::Messages.AR.V1.PropertyOrigin>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Messages.AR.V1.PropertyOrigin> Origins {
      get { return origins_; }
    }

    /// <summary>Field number for the "mirror_property_id" field.</summary>
    public const int MirrorPropertyIdFieldNumber = 11;
    private string mirrorPropertyId_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string MirrorPropertyId {
      get { return mirrorPropertyId_; }
      set {
        mirrorPropertyId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "group" field.</summary>
    public const int GroupFieldNumber = 12;
    private string group_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Group {
      get { return group_; }
      set {
        group_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "ordering" field.</summary>
    public const int OrderingFieldNumber = 13;
    private int ordering_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int Ordering {
      get { return ordering_; }
      set {
        ordering_ = value;
      }
    }

    /// <summary>Field number for the "hide_group" field.</summary>
    public const int HideGroupFieldNumber = 14;
    private bool hideGroup_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HideGroup {
      get { return hideGroup_; }
      set {
        hideGroup_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Property);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Property other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Id != other.Id) return false;
      if (Name != other.Name) return false;
      if (Icon != other.Icon) return false;
      if (Description != other.Description) return false;
      if (Type != other.Type) return false;
      if (Value != other.Value) return false;
      if (Extras != other.Extras) return false;
      if (MinimumRequiredPermission != other.MinimumRequiredPermission) return false;
      if (Origin != other.Origin) return false;
      if(!origins_.Equals(other.origins_)) return false;
      if (MirrorPropertyId != other.MirrorPropertyId) return false;
      if (Group != other.Group) return false;
      if (Ordering != other.Ordering) return false;
      if (HideGroup != other.HideGroup) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Id.Length != 0) hash ^= Id.GetHashCode();
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (Icon.Length != 0) hash ^= Icon.GetHashCode();
      if (Description.Length != 0) hash ^= Description.GetHashCode();
      if (Type != global::Messages.AR.V1.PropertyType.Unspecified) hash ^= Type.GetHashCode();
      if (Value.Length != 0) hash ^= Value.GetHashCode();
      if (Extras.Length != 0) hash ^= Extras.GetHashCode();
      if (MinimumRequiredPermission != global::Messages.AR.V1.WorkerPermission.Unspecified) hash ^= MinimumRequiredPermission.GetHashCode();
      if (Origin != global::Messages.AR.V1.PropertyOrigin.Unspecified) hash ^= Origin.GetHashCode();
      hash ^= origins_.GetHashCode();
      if (MirrorPropertyId.Length != 0) hash ^= MirrorPropertyId.GetHashCode();
      if (Group.Length != 0) hash ^= Group.GetHashCode();
      if (Ordering != 0) hash ^= Ordering.GetHashCode();
      if (HideGroup != false) hash ^= HideGroup.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Id.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Id);
      }
      if (Name.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Name);
      }
      if (Icon.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Icon);
      }
      if (Description.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Description);
      }
      if (Type != global::Messages.AR.V1.PropertyType.Unspecified) {
        output.WriteRawTag(40);
        output.WriteEnum((int) Type);
      }
      if (Value.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Value);
      }
      if (Extras.Length != 0) {
        output.WriteRawTag(58);
        output.WriteString(Extras);
      }
      if (MinimumRequiredPermission != global::Messages.AR.V1.WorkerPermission.Unspecified) {
        output.WriteRawTag(64);
        output.WriteEnum((int) MinimumRequiredPermission);
      }
      if (Origin != global::Messages.AR.V1.PropertyOrigin.Unspecified) {
        output.WriteRawTag(72);
        output.WriteEnum((int) Origin);
      }
      origins_.WriteTo(output, _repeated_origins_codec);
      if (MirrorPropertyId.Length != 0) {
        output.WriteRawTag(90);
        output.WriteString(MirrorPropertyId);
      }
      if (Group.Length != 0) {
        output.WriteRawTag(98);
        output.WriteString(Group);
      }
      if (Ordering != 0) {
        output.WriteRawTag(104);
        output.WriteInt32(Ordering);
      }
      if (HideGroup != false) {
        output.WriteRawTag(112);
        output.WriteBool(HideGroup);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Id.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Id);
      }
      if (Name.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Name);
      }
      if (Icon.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Icon);
      }
      if (Description.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Description);
      }
      if (Type != global::Messages.AR.V1.PropertyType.Unspecified) {
        output.WriteRawTag(40);
        output.WriteEnum((int) Type);
      }
      if (Value.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Value);
      }
      if (Extras.Length != 0) {
        output.WriteRawTag(58);
        output.WriteString(Extras);
      }
      if (MinimumRequiredPermission != global::Messages.AR.V1.WorkerPermission.Unspecified) {
        output.WriteRawTag(64);
        output.WriteEnum((int) MinimumRequiredPermission);
      }
      if (Origin != global::Messages.AR.V1.PropertyOrigin.Unspecified) {
        output.WriteRawTag(72);
        output.WriteEnum((int) Origin);
      }
      origins_.WriteTo(ref output, _repeated_origins_codec);
      if (MirrorPropertyId.Length != 0) {
        output.WriteRawTag(90);
        output.WriteString(MirrorPropertyId);
      }
      if (Group.Length != 0) {
        output.WriteRawTag(98);
        output.WriteString(Group);
      }
      if (Ordering != 0) {
        output.WriteRawTag(104);
        output.WriteInt32(Ordering);
      }
      if (HideGroup != false) {
        output.WriteRawTag(112);
        output.WriteBool(HideGroup);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Id.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Id);
      }
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (Icon.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Icon);
      }
      if (Description.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Description);
      }
      if (Type != global::Messages.AR.V1.PropertyType.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type);
      }
      if (Value.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Value);
      }
      if (Extras.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Extras);
      }
      if (MinimumRequiredPermission != global::Messages.AR.V1.WorkerPermission.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MinimumRequiredPermission);
      }
      if (Origin != global::Messages.AR.V1.PropertyOrigin.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Origin);
      }
      size += origins_.CalculateSize(_repeated_origins_codec);
      if (MirrorPropertyId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MirrorPropertyId);
      }
      if (Group.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Group);
      }
      if (Ordering != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Ordering);
      }
      if (HideGroup != false) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Property other) {
      if (other == null) {
        return;
      }
      if (other.Id.Length != 0) {
        Id = other.Id;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.Icon.Length != 0) {
        Icon = other.Icon;
      }
      if (other.Description.Length != 0) {
        Description = other.Description;
      }
      if (other.Type != global::Messages.AR.V1.PropertyType.Unspecified) {
        Type = other.Type;
      }
      if (other.Value.Length != 0) {
        Value = other.Value;
      }
      if (other.Extras.Length != 0) {
        Extras = other.Extras;
      }
      if (other.MinimumRequiredPermission != global::Messages.AR.V1.WorkerPermission.Unspecified) {
        MinimumRequiredPermission = other.MinimumRequiredPermission;
      }
      if (other.Origin != global::Messages.AR.V1.PropertyOrigin.Unspecified) {
        Origin = other.Origin;
      }
      origins_.Add(other.origins_);
      if (other.MirrorPropertyId.Length != 0) {
        MirrorPropertyId = other.MirrorPropertyId;
      }
      if (other.Group.Length != 0) {
        Group = other.Group;
      }
      if (other.Ordering != 0) {
        Ordering = other.Ordering;
      }
      if (other.HideGroup != false) {
        HideGroup = other.HideGroup;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Id = input.ReadString();
            break;
          }
          case 18: {
            Name = input.ReadString();
            break;
          }
          case 26: {
            Icon = input.ReadString();
            break;
          }
          case 34: {
            Description = input.ReadString();
            break;
          }
          case 40: {
            Type = (global::Messages.AR.V1.PropertyType) input.ReadEnum();
            break;
          }
          case 50: {
            Value = input.ReadString();
            break;
          }
          case 58: {
            Extras = input.ReadString();
            break;
          }
          case 64: {
            MinimumRequiredPermission = (global::Messages.AR.V1.WorkerPermission) input.ReadEnum();
            break;
          }
          case 72: {
            Origin = (global::Messages.AR.V1.PropertyOrigin) input.ReadEnum();
            break;
          }
          case 82:
          case 80: {
            origins_.AddEntriesFrom(input, _repeated_origins_codec);
            break;
          }
          case 90: {
            MirrorPropertyId = input.ReadString();
            break;
          }
          case 98: {
            Group = input.ReadString();
            break;
          }
          case 104: {
            Ordering = input.ReadInt32();
            break;
          }
          case 112: {
            HideGroup = input.ReadBool();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Id = input.ReadString();
            break;
          }
          case 18: {
            Name = input.ReadString();
            break;
          }
          case 26: {
            Icon = input.ReadString();
            break;
          }
          case 34: {
            Description = input.ReadString();
            break;
          }
          case 40: {
            Type = (global::Messages.AR.V1.PropertyType) input.ReadEnum();
            break;
          }
          case 50: {
            Value = input.ReadString();
            break;
          }
          case 58: {
            Extras = input.ReadString();
            break;
          }
          case 64: {
            MinimumRequiredPermission = (global::Messages.AR.V1.WorkerPermission) input.ReadEnum();
            break;
          }
          case 72: {
            Origin = (global::Messages.AR.V1.PropertyOrigin) input.ReadEnum();
            break;
          }
          case 82:
          case 80: {
            origins_.AddEntriesFrom(ref input, _repeated_origins_codec);
            break;
          }
          case 90: {
            MirrorPropertyId = input.ReadString();
            break;
          }
          case 98: {
            Group = input.ReadString();
            break;
          }
          case 104: {
            Ordering = input.ReadInt32();
            break;
          }
          case 112: {
            HideGroup = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
