# Class BSV::Registry::ProtocolDefinitionData <a id="class-BSV-Registry-ProtocolDefinitionData"></a>

**Inherits:** `Object`

Registry data for a protocol definition.

## Attributes
### `definition_type` [R] <a id="attribute-i-definition_type"></a> <a id="definition_type-instance_method"></a>
- **@return** [String] always DefinitionType::PROTOCOL

### `description` [R] <a id="attribute-i-description"></a> <a id="description-instance_method"></a>
- **@return** [String] description of the protocol's purpose

### `documentation_url` [R] <a id="attribute-i-documentation_url"></a> <a id="documentation_url-instance_method"></a>
- **@return** [String] URL to the protocol documentation

### `icon_url` [R] <a id="attribute-i-icon_url"></a> <a id="icon_url-instance_method"></a>
- **@return** [String] URL or opaque string for the protocol icon

### `name` [R] <a id="attribute-i-name"></a> <a id="name-instance_method"></a>
- **@return** [String] human-readable name

### `protocol_id` [R] <a id="attribute-i-protocol_id"></a> <a id="protocol_id-instance_method"></a>
- **@return** [Array] two-element BRC-43 protocol ID, e.g. [1, 'protomap']

### `registry_operator` [R] <a id="attribute-i-registry_operator"></a> <a id="registry_operator-instance_method"></a>
- **@return** [String, nil] public key hex of the registry operator

## Public Instance Methods
### `initialize(protocol_id:, name:, icon_url:, description:, documentation_url:, registry_operator: = nil)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
- **@param** `protocol_id` [Array] two-element [security_level, protocol_name]
- **@param** `name` [String]
- **@param** `icon_url` [String]
- **@param** `description` [String]
- **@param** `documentation_url` [String]
- **@param** `registry_operator` [String, nil]
- **@return** [ProtocolDefinitionData] a new instance of ProtocolDefinitionData
