* 1. [Conditions](#Conditions)
* 1.1. [ConditionCap](#ConditionCap)
* 1.2. [ConditionCommitment](#ConditionCommitment)
* 1.3. [ConditionDeposit](#ConditionDeposit)
* 1.4. [ConditionOrchestration](#ConditionOrchestration)
* 1.5. [ConditionPayment](#ConditionPayment)
* 1.6. [ConditionPrdAddressSet](#ConditionPrdAddressSet)
* 1.7. [ConditionPublish](#ConditionPublish)
* 2. [Methods](#Methods)
* 2.1. [DepositMethod](#DepositMethod)
* 2.2. [CommitmentMethod](#CommitmentMethod)
* 2.3. [PaymentMethod](#PaymentMethod)
* 3. [Items](#Items)
* 3.1. [ItemArtefact](#ItemArtefact)
* 3.2. [ItemCommitmentPublicAttributeGroup](#ItemCommitmentPublicAttributeGroup)
* 3.3. [ItemMemberPublicAttributeGroup](#ItemMemberPublicAttributeGroup)
* 3.4. [ItemDepositPublicAttributeGroup](#ItemDepositPublicAttributeGroup)
* 3.5. [ItemCommitmentRoleConfidentialAttributeGroup](#ItemCommitmentRoleConfidentialAttributeGroup)
* 3.6. [ItemCommitmentPrivateAttributeGroup](#ItemCommitmentPrivateAttributeGroup)
* 3.7. [ItemCommitment](#ItemCommitment)
* 3.8. [ItemDepositRoleConfidentialAttributeGroup](#ItemDepositRoleConfidentialAttributeGroup)
* 3.9. [ItemDepositPrivateAttributeGroup](#ItemDepositPrivateAttributeGroup)
* 3.10. [ItemDeposit](#ItemDeposit)
* 3.11. [ItemEnum](#ItemEnum)
* 3.12. [ItemPaymentPublicAttributeGroup](#ItemPaymentPublicAttributeGroup)
* 3.13. [ItemPaymentRoleConfidentialAttributeGroup](#ItemPaymentRoleConfidentialAttributeGroup)
* 3.14. [ItemPaymentPrivateAttributeGroup](#ItemPaymentPrivateAttributeGroup)
* 3.15. [ItemPayment](#ItemPayment)
* 3.16. [ItemPeerPublicAttributeGroup](#ItemPeerPublicAttributeGroup)
* 3.17. [ItemPeerPrivateAttributeGroup](#ItemPeerPrivateAttributeGroup)
* 3.18. [ItemPeer](#ItemPeer)
* 3.19. [ItemProcess](#ItemProcess)
* 3.20. [ItemProcessPublicAttributeGroup](#ItemProcessPublicAttributeGroup)
* 3.21. [Item](#Item)
* 4. [Encryption](#Encryption)
* 4.1. [KeyEncryption](#KeyEncryption)
* 4.2. [Aes256GcmIv96Bit](#Aes256GcmIv96Bit)
* 5. [Messages](#Messages)
* 5.1. [MessageClient](#MessageClient)
* 5.2. [MessageConnect](#MessageConnect)
* 5.3. [Message](#Message)
* 5.4. [Pow](#Pow)
* 6. [Metadata](#Metadata)
* 6.1. [MetadataContractPublic](#MetadataContractPublic)
* 6.2. [MetadataPrivate](#MetadataPrivate)
* 6.3. [MetadataPrivate](#MetadataPrivate-1)
* 6.4. [MetadataRoleConfidential](#MetadataRoleConfidential)
* 6.5. [MetaData](#MetaData)
* 6.6. [Amount](#Amount)
* 6.7. [Number](#Number)
* 7. [PCD](#PCD)
* 7.1. [Pagination](#Pagination)
* 7.2. [PcdItemEncAttributePublic](#PcdItemEncAttributePublic)
* 7.3. [PcdItemEncAttributeRoleConfidential](#PcdItemEncAttributeRoleConfidential)
* 7.4. [PcdItemEncAttributePrivate](#PcdItemEncAttributePrivate)
* 7.5. [PcdItemGenericEnc](#PcdItemGenericEnc)
* 7.6. [PcdItemEnc](#PcdItemEnc)
* 7.7. [RequestPcd](#RequestPcd)
* 8. [PRD](#PRD)
* 8.1. [RequestPrdConfirm](#RequestPrdConfirm)
* 8.2. [RequestPrdKeyBackup](#RequestPrdKeyBackup)
* 8.3. [RequestPrdKeyHello](#RequestPrdKeyHello)
* 8.4. [RequestPrdList](#RequestPrdList)
* 8.5. [RequestPrdMessage](#RequestPrdMessage)
* 8.6. [RequestPrdList](#RequestPrdList-1)
* 8.7. [RequestPrdResponse](#RequestPrdResponse)
* 8.8. [RequestPrdUpdate](#RequestPrdUpdate)
* 8.9. [KeyRoleConfidential](#KeyRoleConfidential)
* 8.10. [RequestPrd](#RequestPrd)
* 8.11. [RoleArtefact](#RoleArtefact)
* 8.12. [Request](#Request)
* 8.13. [RoleDeposit](#RoleDeposit)
* 8.14. [RoleCommitment](#RoleCommitment)
* 8.15. [RoleMember](#RoleMember)
* 8.16. [RolePayment](#RolePayment)
* 8.17. [RoleProcess](#RoleProcess)
* 8.18. [Role](#Role)
* 8.19. [TransactionModeDistribution](#TransactionModeDistribution)
* 8.20. [TransactionModeDirect](#TransactionModeDirect)
* 8.21. [TransactionMode](#TransactionMode)
* 8.22. [RolesGroup](#RolesGroup)
* 8.23. [SharedProcess](#SharedProcess)
* 8.24. [SharedPeer](#SharedPeer)
* 8.25. [Relay](#Relay)
* 8.26. [L1Node](#L1Node)
* 8.27. [L1Miner](#L1Miner)
* 8.28. [L2Node](#L2Node)
* 8.29. [L2Certif](#L2Certif)
* 8.30. [SharedPeer](#SharedPeer-1)
* 8.31. [RolePeer](#RolePeer)
# Specs - Datas
## 1. Conditions
### 1.1. ConditionCap
| Attribute Name | Type | Option | Description |
|------------------|-----------------|--------|-----------------------------------------------------------|
| role_deposit | String | | Represents the deposit role in the condition. |
| role_transaction | TransactionMode | | Specifies the transaction mode associated with this role. |
### 1.2. ConditionCommitment
| Attribute Name | Type | Option | Description |
|------------------|-----------------|--------|-----------------------------------------------------------|
| role_artefact | String | | Represents the artefact role in the condition. |
| role_transaction | TransactionMode | | Specifies the transaction mode associated with this role. |
### 1.3. ConditionDeposit
| Attribute Name | Type | Option | Description |
|------------------|-----------------|--------|-----------------------------------------------------------|
| role_deposit | String | | Represents the deposit role in the condition. |
| role_transaction | TransactionMode | | Specifies the transaction mode associated with this role. |
### 1.4. ConditionOrchestration
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|----------------------------------------------------------|
| role_ok | String | | Represents the successful outcome role in the condition. |
| role_ko | String | | Represents the failed outcome role in the condition. |
### 1.5. ConditionPayment
| Attribute Name | Type | Option | Description |
|------------------|-----------------|--------|-----------------------------------------------------------|
| payment_amount | String | | Represents the amount to be paid in the condition. |
| payment_method | PaymentMode | | Specifies the payment method to be used. |
| role_transaction | TransactionMode | | Specifies the transaction mode associated with this role. |
### 1.6. ConditionPrdAddressSet
| Attribute Name | Type | Option | Description |
|---------------------------------------|-------------|--------|------------------------------------------------------------|
| from_role | String | | Identifies the originating role in the condition. |
| prd_sp_address_list | Vec | | Lists addresses involved in the condition. |
| prd_sp_address_required_list | Vec | | Lists required addresses for the condition to be met. |
| prd_sp_address_quota | i32 | | Specifies the quota of addresses for the condition. |
| prd_prd_value_ok_list | Vec | | Lists the values that are considered acceptable. |
| prd_value_ko_list | Vec | | Lists the values that are considered failures. |
| prd_value_none_list | Vec | | Lists the values that are considered neutral or no-op. |
| prd_sp_address_value_min | i64 | | The minimum value for an address to be considered. |
| prd_sp_address_value_min_per | i64 | | The minimum percentage for the minimum address value. |
| prd_sp_address_value_min_ok | bool | | Indicates if the minimum address value is considered OK. |
| prd_sp_adddress_value_ok_min_per | i64 | | The minimum percentage for an address value to be OK. |
| prd_sp_address_value_ok_max | i64 | | The maximum value for an address to be considered OK. |
| prd_sp_adderss_value_ko_max_per | i64 | | The maximum percentage for an address value to be KO. |
| prd_sp_address_value_none_max | i64 | | The maximum value for an address to be considered neutral. |
| prd_sp_adderss_value_none_max_per | i64 | | The maximum percentage for a neutral address value. |
| prd_sp_address_score_min | i32 | | The minimum score for an address to be considered. |
| prd_sp_address_score_min_min_required | i32 | | The minimum required score for an address. |
| prd_sp_address_score_min_min_ok | bool | | Indicates if the minimum score is considered OK. |
| prd_sp_address_score_min_min_per | i64 | | The minimum percentage for the minimum score. |
| prd_value_auto_ok | bool | | Automatically consider values as OK. |
| prd_value_auto_ko | bool | | Automatically consider values as KO. |
| prd_value_auto_none | bool | | Automatically consider values as neutral or no-op. |
### 1.7. ConditionPublish
| Attribute Name | Type | Option | Description |
|-------------------------|--------|--------|---------------------------------------------------------------|
| pcd_data_size_max_unit | String | | Specifies the maximum unit size for published data. |
| pcd_data_size_max_total | i64 | | Specifies the total maximum data size allowed. |
| pcd_number_min | i32 | | The minimum number of publications required. |
| pcd_number_max | i32 | | The maximum number of publications allowed. |
| pcd_amount_max_total | Amount | | The maximum total amount for publications. |
| prd_waiting_timeout | u64 | | The waiting timeout for a publication to be considered valid. |
| pcd_waiting_timeout | u64 | | The waiting timeout for the condition to be considered met. |
## 2. Methods
### 2.1. DepositMethod
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|------------------------------|
| method | String | | Represents a deposit method. |
### 2.2. CommitmentMethod
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|---------------------------------|
| method | String | | Represents a commitment method. |
### 2.3. PaymentMethod
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|------------------------------------------------------|
| method | String | | La méthode de paiement représentée par cette struct. |
## 3. Items
### 3.1. ItemArtefact
| Attribute Name | Type | Option | Description |
|-----------------------------------|-------------|--------|-------------------------------------------------------------------|
| item | Item | | Represents the item associated with this artefact. |
| public_attribute_group | Vec | | A list of public attributes associated with the artefact. |
| role_confidential_attribute_group | Vec | | A list of role-specific confidential attributes for the artefact. |
| private_attribute_group | Vec | | A list of private attributes associated with the artefact. |
### 3.2. ItemCommitmentPublicAttributeGroup
| Attribute Name | Type | Option | Description |
|--------------------------|-------------|--------|--------------------------------------------------------------------------|
| for_sp_address_list | Vec | | A list of service provider addresses related to this commitment. |
| goal_list | Vec | | A list of goals associated with this commitment. |
| provider_type | String | | The type of provider making the commitment. |
| commitment_pcd_hash_list | Vec | | A list of hashes for the commitment's PCD documents. |
| ref_item_hash_list | Vec | | A list of reference hashes for items related to this commitment. |
| ref_pcd_hash_list | Vec | | A list of reference hashes for PCD documents related to this commitment. |
| payload_public_list | Vec | | A list of public payloads associated with this commitment. |
### 3.3. ItemMemberPublicAttributeGroup
| Attribute Name | Type | Option | Description |
|------------------------------|-------------|--------|---------------------------------------------------------------|
| sp_address_public | String | | The public service provider address. |
| sp_address_public_sig | String | | The signature for the public service provider address. |
| sp_address_revoke_public | String | | The public address for revoking service provider access. |
| sp_address_revoke_public_sig | String | | The signature for the public address for revoking access. |
| third_sp_address_list_public | Vec | | A list of public addresses for third-party service providers. |
| data_size_max | i64 | | The maximum size of data allowed. |
| payment_method_list_public | Vec | | A list of public payment methods available. |
| succession_process_hash | String | | The hash of the succession process associated with this item. |
### 3.4. ItemDepositPublicAttributeGroup
| Attribute Name | Type | Option | Description |
|------------------------|-------------|--------|----------------------------------------------------------------|
| for_sp_address_list | Vec | | A list of service provider addresses targeted by this deposit. |
| for_address_list | Vec | | A list of addresses targeted by this deposit. |
| goal_list | Vec | | A list of goals associated with this deposit. |
| provider_type | String | | The type of provider making the deposit. |
| ref_item_hash_list | Vec | | A list of item hashes referenced by this deposit. |
| ref_pcd_hash_list | Vec | | A list of PCD document hashes referenced by this deposit. |
| payload_list_public | Vec | | A list of public payloads associated with this deposit. |
| audit_code_list_public | Vec | | A list of public audit codes associated with this deposit. |
### 3.5. ItemCommitmentRoleConfidentialAttributeGroup
| Attribute Name | Type | Option | Description |
|---------------------------|-------------|--------|------------------------------------------------------------------|
| payload_list_confidential | Vec | | A list of confidential payloads associated with this commitment. |
### 3.6. ItemCommitmentPrivateAttributeGroup
| Attribute Name | Type | Option | Description |
|----------------------|-------------|--------|-------------------------------------------------------------|
| payload_list_private | Vec | | A list of private payloads associated with this commitment. |
### 3.7. ItemCommitment
| Attribute Name | Type | Option | Description |
|-----------------------------------|----------------------------------------------|--------|---------------------------------------------------------------------|
| item | Item | | Represents the item associated with this commitment. |
| public_attribute_group | ItemCommitmentPublicAttributeGroup | | The public attribute group associated with this commitment. |
| role_confidential_attribute_group | ItemCommitmentRoleConfidentialAttributeGroup | | The role-specific confidential attribute group for this commitment. |
| private_attribute_group | ItemCommitmentPrivateAttributeGroup | | The private attribute group associated with this commitment. |
### 3.8. ItemDepositRoleConfidentialAttributeGroup
| Attribute Name | Type | Option | Description |
|------------------------------|-------------|--------|------------------------------------------------------------------|
| payload_list_confidential | Vec | | A list of confidential payloads associated with this deposit. |
| audit_code_list_confidential | Vec | | A list of confidential audit codes associated with this deposit. |
### 3.9. ItemDepositPrivateAttributeGroup
| Attribute Name | Type | Option | Description |
|----------------------|-------------|--------|----------------------------------------------------------|
| payload_list_private | Vec | | A list of private payloads associated with this deposit. |
| audit_code_private | String | | A private audit code associated with this deposit. |
### 3.10. ItemDeposit
| Attribute Name | Type | Option | Description |
|-----------------------------------|-------------------------------------------|--------|------------------------------------------------------------------|
| item | Item | | Represents the item associated with this deposit. |
| public_attribute_group | ItemDepositPublicAttributeGroup | | The public attribute group associated with this deposit. |
| role_confidential_attribute_group | ItemDepositRoleConfidentialAttributeGroup | | The role-specific confidential attribute group for this deposit. |
| private_attribute_group | ItemDepositPrivateAttributeGroup | | The private attribute group associated with this deposit. |
### 3.11. ItemEnum
Cette énumération représente différents types d'items au sein d'un système, où chaque variante encapsule une struct spécifique à un type d'item :
* `Process(ItemProcess)`: Contient un item de type `ItemProcess`, représentant un processus.
* `Peer(ItemPeer)`: Contient un item de type `ItemPeer`, représentant un pair.
* `Member(ItemMember)`: Contient un item de type `ItemMember`, représentant un membre.
* `Payment(ItemPayment)`: Contient un item de type `ItemPayment`, représentant un paiement.
* `Deposit(ItemDeposit)`: Contient un item de type `ItemDeposit`, représentant un dépôt.
* `Artefact(ItemArtefact)`: Contient un item de type `ItemArtefact`, représentant un artefact.
* `Commitment(ItemCommitment)`: Contient un item de type `ItemCommitment`, représentant un engagement.
### 3.12. ItemPaymentPublicAttributeGroup
| Attribute Name | Type | Option | Description |
|--------------------------|-------------|--------|-----------------------------------------------------------------------|
| for_sp_address_list | Vec | | A list of service provider addresses related to this payment. |
| goal_list | Vec | | A list of goals associated with this payment. |
| provider_type | String | | The type of provider making the payment. |
| commitment_pcd_hash_list | Vec | | A list of hashes for the payment's commitment precondition documents. |
| order_pcd_hash_list | Vec | | A list of hashes for the payment's order precondition documents. |
| invoice_pcd_hash_list | Vec | | A list of hashes for the payment's invoice precondition documents. |
| pay_pcd_hash_list | Vec | | A list of hashes for the payment precondition documents. |
| ref_item_hash_list | Vec | | A list of item hashes referenced by this payment. |
| ref_pcd_hash_list | Vec | | A list of precondition document hashes referenced by this payment. |
| payload_list_public | Vec | | A list of public payloads associated with this payment. |
| audit_code_list_public | Vec | | A list of public audit codes associated with this payment. |
### 3.13. ItemPaymentRoleConfidentialAttributeGroup
| Attribute Name | Type | Option | Description |
|------------------------------|-------------|--------|------------------------------------------------------------------|
| payload_list_confidential | Vec | | A list of confidential payloads associated with this payment. |
| audit_code_list_confidential | Vec | | A list of confidential audit codes associated with this payment. |
### 3.14. ItemPaymentPrivateAttributeGroup
| Attribute Name | Type | Option | Description |
|----------------------|-------------|--------|----------------------------------------------------------|
| payload_list_private | Vec | | A list of private payloads associated with this payment. |
| audit_code_private | String | | A private audit code associated with this payment. |
### 3.15. ItemPayment
| Attribute Name | Type | Option | Description |
|-----------------------------------|-------------------------------------------|--------|------------------------------------------------------------------|
| item | Item | | Represents the item associated with this payment. |
| public_attribute_group | ItemPaymentPublicAttributeGroup | | The public attribute group associated with this payment. |
| role_confidential_attribute_group | ItemPaymentRoleConfidentialAttributeGroup | | The role-specific confidential attribute group for this payment. |
| private_attribute_group | ItemPaymentPrivateAttributeGroup | | The private attribute group associated with this payment. |
### 3.16. ItemPeerPublicAttributeGroup
| Attribute Name | Type | Option | Description |
|------------------------------|-------------|--------|-------------------------------------------------------------------------------|
| sp_address | String | | The service provider's address associated with this peer. |
| domain | String | | The domain associated with this peer. |
| ip_address | String | | The IP address associated with this peer. |
| pow_difficulty | u32 | | The Proof of Work (PoW) difficulty level required by this peer. |
| pow_pattern | String | | The PoW pattern used by this peer. |
| pow_prefix | String | | The PoW prefix used by this peer. |
| data_size_max | i64 | | The maximum data size allowed by this peer. |
| timestamp_delay_max | u64 | | The maximum delay (in timestamps) allowed by this peer. |
| daily_hash_list | Vec | | A daily list of hashes associated with this peer. |
| daily_sp_tx_mine_list | Vec | | A daily list of service provider transactions mined by this peer. |
| daily_sp_tx_mine_reward_list | Vec | | A daily list of rewards for service provider transactions mined by this peer. |
### 3.17. ItemPeerPrivateAttributeGroup
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|-----------------------------------------------------------|
| config | String | | A private configuration string associated with this peer. |
### 3.18. ItemPeer
| Attribute Name | Type | Option | Description |
|-------------------------|-------------------------------|--------|---------------------------------------------------------------|
| item | Item | | Représente les informations de base de l'item. |
| layer_list | Vec | | Une liste des couches (layers) auxquelles ce pair appartient. |
| public_attribute_group | ItemPeerPublicAttributeGroup | | Groupe d'attributs publics associés à ce pair. |
| private_attribute_group | ItemPeerPrivateAttributeGroup | | Groupe d'attributs privés associés à ce pair. |
### 3.19. ItemProcess
| Attribute Name | Type | Option | Description |
|-------------------------------------|---------------------------------|--------|----------------------------------------------------------|
| item | Item | | Represents the item associated with this process. |
| item_process_public_attribute_group | ItemProcessPublicAttributeGroup | | The public attribute group associated with this process. |
### 3.20. ItemProcessPublicAttributeGroup
| Attribute Name | Type | Option | Description |
|----------------|------------|--------|-----------------------------------------------------------|
| roles_group | RolesGroup | | Represents a group of roles associated with this process. |
### 3.21. Item
| Attribute Name | Type | Option | Description |
|----------------------------|--------------------------|--------|---------------------------------------------------------------------------|
| uuid | String | | A unique identifier for the item. |
| version | i64 | | The version of the item. |
| hash | Option | | An optional hash for the item. |
| item_type | String | | The type of the item. `type` is a reserved keyword in Rust, renamed here. |
| name | String | | The name of the item. |
| pagination_number_per_pcd | u32 | | The pagination number per Portable Contract Document (PCD). |
| metadata_contract_public | MetadataContractPublic | | Public metadata contract associated with the item. |
| metadata_role_confidential | MetadataRoleConfidential | | Role-specific confidential metadata associated with the item. |
| metadata_private | MetadataPrivate | | Private metadata associated with the item. |
## 4. Encryption
### 4.1. KeyEncryption
| Attribute Name | Type | Option | Description |
|----------------|----------------|--------|---------------------------------------------------------------|
| attribute_name | Option | Yes | An optional name of the attribute this encryption key is for. |
| key | Option | Yes | An optional encryption key. |
| algorithm | Option | Yes | An optional encryption algorithm used with this key. |
### 4.2. Aes256GcmIv96Bit
| Attribute Name | Type | Option | Description |
|----------------|-----------------------|--------|------------------------------------------------------------------------------|
| key | GenericArray | | Represents an encryption key for the AES-256-GCM algorithm with a 96-bit IV. |
## 5. Messages
### 5.1. MessageClient
| Attribute Name | Type | Option | Description |
|----------------|---------|--------|------------------------------------------------------------------|
| message | Message | | Represents a message, assuming `Message` is a predefined struct. |
| request_enc | String | | The encrypted request content. |
| request_hash | String | | The hash of the request content. |
### 5.2. MessageConnect
| Attribute Name | Type | Option | Description |
|----------------|---------|--------|------------------------------------------------------------------|
| message | Message | | Represents a message, assuming `Message` is a predefined struct. |
### 5.3. Message
| Attribute Name | Type | Option | Description |
|---------------------|--------------------|--------|------------------------------------------------------------------------------------|
| shared_peer_list | Vec | | A list of shared peers, assuming `SharedPeer` is a predefined struct. |
| shared_process_list | Vec | | A list of shared processes, assuming `SharedProcess` is a predefined struct. |
| faucet_sp_address | String | | The service provider address for a faucet. |
| pow | Pow | | Represents a Proof of Work (PoW) challenge, assuming `Pow` is a predefined struct. |
### 5.4. Pow
| Attribute Name | Type | Option | Description |
|----------------|-------------|--------|---------------------------------------------------------|
| data_hash | String | | The hash of the data for which the PoW is being solved. |
| timestamp | Option | Yes | An optional timestamp associated with the PoW solution. |
| nonce | Option | Yes | An optional nonce value used in the PoW calculation. |
| pattern | String | | The pattern that the PoW solution must match. |
| difficulty | usize | | The difficulty level of the PoW challenge. |
## 6. Metadata
### 6.1. MetadataContractPublic
| Attribute Name | Type | Option | Description |
|----------------|----------|--------|------------------------------------------------------------|
| meta_data | MetaData | | Represents the public metadata associated with a contract. |
### 6.2. MetadataPrivate
| Attribute Name | Type | Option | Description |
|----------------|----------|--------|------------------------------------------------------------|
| meta_data | MetaData | | Represents the private metadata associated with an entity. |
### 6.3. MetadataPrivate
| Attribute Name | Type | Option | Description |
|----------------|----------|--------|------------------------------------------------------------|
| meta_data | MetaData | | Represents the private metadata associated with an entity. |
### 6.4. MetadataRoleConfidential
| Attribute Name | Type | Option | Description |
|----------------|----------|--------|-------------------------------------------------------------------------------|
| meta_data | MetaData | | Represents the role-specific confidential metadata associated with an entity. |
### 6.5. MetaDataa
| Attribute Name | Type | Option | Description |
|----------------------|--------------------|--------|----------------------------------------------------------------|
| tag_list | Vec | | A list of tags associated with the metadata. |
| zone_list | Vec | | A list of zones associated with the metadata. |
| label_list | Vec | | A list of labels associated with the metadata. |
| ref_list | Vec | | A list of references associated with the metadata. |
| data_list | Vec | | A list of data entries associated with the metadata. |
| amount | Amount | | An amount associated with the metadata. |
| number | Number | | A number associated with the metadata. |
| render_template_list | Vec | | A list of render templates associated with the metadata. |
| legal_text_list | Vec | | A list of legal texts associated with the metadata. |
| key_list | Vec | | A list of key encryption methods associated with the metadata. |
### 6.6. Amount
| Attribute Name | Type | Option | Description |
|--------------------|-------------|--------|----------------------------------------------------------------------------------|
| timestamp | u64 | | A timestamp associated with the amount. |
| change_source_list | Vec | | A list of sources for changes to the amount. |
| amount_cent | i64 | | The amount in cents, allowing for precise financial transactions. |
| amount_unit | String | | The unit of the amount, such as "USD", "EUR", etc. |
| amount_unit_ref | String | | A reference to an external unit system, providing context for the `amount_unit`. |
### 6.7. Number
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|-----------------------------------------------------------------|
| fixed_state | bool | | Indicates whether the number is in a fixed state or can change. |
| number | i32 | | The numeric value. |
| number_unit | String | | The unit of measurement for the number, if applicable. |
## 7. PCD
### 7.1. Pagination
| Attribute Name | Type | Option | Description |
|----------------|-------|--------|--------------------------------------------------|
| start | usize | | L'indice de départ pour la pagination. |
| number | usize | | Le nombre d'éléments par page. |
| page_index | usize | | L'indice de la page actuelle pour la pagination. |
### 7.2. PcdItemEncAttributePublic
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|---------------------------------------------------|
| attribute_name | String | | The name of the attribute. |
| data_enc | String | | The encrypted data associated with the attribute. |
### 7.3. PcdItemEncAttributeRoleConfidential
| Attribute Name | Type | Option | Description |
|----------------|---------------|--------|---------------------------------------------------|
| attribute_name | String | | The name of the attribute. |
| data_enc | String | | The encrypted data associated with the attribute. |
| key | KeyEncryption | | The key used for encrypting the data. |
### 7.4. PcdItemEncAttributePrivate
| Attribute Name | Type | Option | Description |
|----------------|--------|--------|---------------------------------------------------------|
| attribute_name | String | | The name of the attribute. |
| data_enc | String | | The encrypted data associated with this attribute name. |
### 7.5. PcdItemGenericEnc
| Attribute Name | Type | Option | Description |
|-----------------------------------------------|--------------------------------------------------|--------|----------------------------------------------------------|
| item_enc | PcdItemEnc | | The encrypted item. |
| pcd_item_enc_attribute_public_list | Option> | Yes | Optional list of public encrypted attributes. |
| pcd_item_enc_attribute_role_confidential_list | Option> | Yes | Optional list of role-confidential encrypted attributes. |
| pcd_item_enc_attribute_private_list | Option> | Yes | Optional list of private encrypted attributes. |
### 7.6. PcdItemEnc
| Attribute Name | Type | Option | Description |
|-----------------------------------------------|------------------------------------------|--------|-------------------------------------------------|
| version | i64 | | The version of the item. |
| item_type | String | | The type of the item. |
| name | String | | The name of the item. |
| pagination_number_per_pcd | u32 | | The pagination number per PCD. |
| pcd_item_enc_attribute_public_list | Vec | | List of public encrypted attributes. |
| pcd_item_enc_attribute_role_confidential_list | Vec | | List of role-confidential encrypted attributes. |
| pcd_item_enc_attribute_private_list | Vec | | List of private encrypted attributes. |
### 7.7. RequestPcd
| Attribute Name | Type | Option | Description |
|----------------|------------------------|--------|-------------------------------------------------------------------|
| request | Request | | The request, assuming `Request` is a predefined struct. |
| item_list | Vec | | List of generic encrypted items. |
| pagination | Pagination | | Pagination details, assuming `Pagination` is a predefined struct. |
## 8. PRD
### 8.1. RequestPrdConfirm
| Attribute Name | Type | Option | Description |
|-----------------------------------|------------|--------|-----------------------------------------------------|
| prd | RequestPrd | | The PRD (Portable Request Document) request. |
| code_confirm_enc_by_shared_secret | String | | The confirmation code encrypted by a shared secret. |
### 8.2. RequestPrdKeyBackup
| Attribute Name | Type | Option | Description |
|------------------------------------------|------------|--------|-----------------------------------------------------------------------------|
| prd | RequestPrd | | The PRD (Portable Request Document) request. |
| device_footprint_enc_by_sp_shared_secret | String | | The device footprint encrypted by a service provider's shared secret. |
| part_1_enc_hash_enc_by_sp_shared_secret | String | | The first part of the hash encrypted by a service provider's shared secret. |
| shard_enc_by_sp_shared_secret | String | | The shard encrypted by a service provider's shared secret. |
### 8.3. RequestPrdKeyHello
pub struct RequestPrdKeyHello {
pub prd: RequestPrd,
pub part_1_enc_hash_enc_by_sp_shared_secret: String,
}
### 8.4. RequestPrdList
| Attribute Name | Type | Option | Description |
|----------------|------------|--------|-----------------------------------------|
| prd | RequestPrd | | Represents a Portable Request Document. |
### 8.5. RequestPrdMessage
| Attribute Name | Type | Option | Description |
|----------------|------------|--------|-----------------------------------------|
| prd | RequestPrd | | Represents a Portable Request Document. |
### 8.6. RequestPrdList
| Attribute Name | Type | Option | Description |
|----------------|------------|--------|-----------------------------------------|
| prd | RequestPrd | | Represents a Portable Request Document. |
### 8.7. RequestPrdResponse
| Attribute Name | Type | Option | Description |
|----------------------------------------|-----------------------|--------|--------------------------------------------------------------|
| prd | RequestPrd | | Represents a Portable Request Document. |
| sig_value | String | | The signature value for the response. |
| pcd_origin_hash | Option | Yes | Optional hash of the originating PCD. |
| payment_method_enc_by_shared_secret | Option | Yes | Encrypted payment method, encrypted with a shared secret. |
| deposit_method_enc_by_shared_secret | Option | Yes | Encrypted deposit method, encrypted with a shared secret. |
| commitment_method_enc_by_shared_secret | Option | Yes | Encrypted commitment method, encrypted with a shared secret. |
| certif_key_enc_by_shared_secret | Option | Yes | Encrypted certification key, encrypted with a shared secret. |
| shared_secret_key | Option | Yes | Optional encryption key used for shared secrets. |
### 8.8. RequestPrdUpdate
| Attribute Name | Type | Option | Description |
|--------------------------|-------------|--------|-----------------------------------------------|
| prd | RequestPrd | | Represents a Portable Request Document. |
| pcd_new_version_hash | String | | The hash of the new version of the PCD. |
| payment_pcd_hash_list | Vec | | A list of hashes for payment-related PCDs. |
| cap_pcd_hash_list | Vec | | A list of hashes for capability-related PCDs. |
| deposit_pcd_hash_list | Vec | | A list of hashes for deposit-related PCDs. |
| commitment_pcd_hash_list | Vec | | A list of hashes for commitment-related PCDs. |
| ask_payment_method | String | | The requested payment method. |
| ask_deposit_method | String | | The requested deposit method. |
| ask_commitment_method | String | | The requested commitment method. |
### 8.9. KeyRoleConfidential
### 8.10. RequestPrd
### 8.11. RoleArtefact
### 8.12. Request
### 8.13. RoleDeposit
### 8.14. RoleCommitment
### 8.15. RoleMember
### 8.16. RolePayment
### 8.17. RoleProcess
### 8.18. Role
### 8.19. TransactionModeDistribution
### 8.20. TransactionModeDirect
### 8.21. TransactionMode
### 8.22. RolesGroup
### 8.23. SharedProcess
### 8.24. SharedPeer
### 8.25. Relay
### 8.26. L1Node
### 8.27. L1Miner
### 8.28. L2Node
### 8.29. L2Certif
### 8.30. SharedPeer
### 8.31. RolePeer