protocol

# `json_patch_protocol`

JSON Patch (RFC 6902) application protocol.

Availability:
`logtalk_load(json_patch(loader))`
Author: Paulo Moura
Version: 1:0:0
Date: 2026-07-03
Compilation flags:
`static`
Dependencies:
(none)
Remarks:
(none)
Inherited public predicates:
(none)

## Public predicates

### `apply/3`

Applies a JSON Patch document represented as a list of operation objects to a JSON term and returns the patched JSON term.

Compilation flags:
`static`
Template:
`apply(Patch,OldJSON,NewJSON)`
Mode and number of proofs:
`apply(++list,++term,--term)` - `zero_or_one_or_error`
Exceptions:
`Patch` is a variable:
`instantiation_error`
`OldJSON` is a variable:
`instantiation_error`
`Patch` is neither a variable nor a list:
`type_error(list,Patch)`
An operation in `Patch` is malformed:
`domain_error(json_patch_operation,Operation)`

## Protected predicates

(none)

## Private predicates

(none)

## Operators

(none)