protocol

# `registry_protocol`

Registry specification protocol. Objects implementing this protocol should be named after the pack with a `_registry` suffix and saved in a file with the same name as the object.

Author: Paulo Moura
Version: 0:12:0
Date: 2022-06-28
Compilation flags:
`static`
Dependencies:
(none)
Remarks:
(none)
Inherited public predicates:
(none)

## Public predicates

### `name/1`

Registry name. Preferably a valid unquoted atom.

Compilation flags:
`static`
Template:
`name(Name)`
Mode and number of proofs:
`name(?atom)` - `zero_or_one`

### `description/1`

Registry one line description.

Compilation flags:
`static`
Template:
`description(Description)`
Mode and number of proofs:
`description(?atom)` - `zero_or_one`

### `home/1`

Registry home HTTPS or file URL.

Compilation flags:
`static`
Template:
`home(Home)`
Mode and number of proofs:
`home(?atom)` - `zero_or_one`

### `clone/1`

Registry git clone HTTPS URL (must end with the `.git` extension). Git repos should have the same name as the registry.

Compilation flags:
`static`
Template:
`clone(URL)`
Mode and number of proofs:
`clone(?atom)` - `zero_or_one`

### `archive/1`

Registry archive download HTTPS URL.

Compilation flags:
`static`
Template:
`archive(URL)`
Mode and number of proofs:
`archive(?atom)` - `zero_or_one`

### `note/2`

Table of notes per action.

Compilation flags:
`static`
Template:
`note(Action,Note)`
Mode and number of proofs:
`note(?atom,-atom)` - `zero_or_more`
Remarks:

> - Action: Possible values are `add`, `update`, and `delete`. When unbound, the note apply to all actions.

> - Note: Note to print when performing an action on a registry.

## Protected predicates

(none)

## Private predicates

(none)

## Operators

(none)