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:11:0
Date: 2021-10-30
Compilation flags:
`static`
Dependencies:
(none)
Remarks:
(none)
Inherited public predicates:
(none)

- Public predicates

  - `name/1`

  - `description/1`

  - `home/1`

  - `clone/1`

  - `archive/1`

- Protected predicates

- Private predicates

- Operators

## 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`

## Protected predicates

(none)

## Private predicates

(none)

## Operators

(none)