# Versa Protocol Schema
**Warning: While the Versa schema is considered stable, certain down-stream artifacts such as the Rust crate may not be.**
There are broadly two kinds of types represented in this repository: Protocol Bindings and Purchase Details
This repository references the root JSON schema files, at https://github.com/versa-protocol/schema
## Protocol Bindings
Protocol Bindings represent the types of requests, responses, and error codes to be expected when developing client implementations according to the specifications of the Versa Protocol. These types are defined in the `protocol_bindings` directory.
## Purchase Details
Purchase Details represent the receipt and invoice data schemas to be handled when developing client implementations according to the specifications of the Versa Protocol. These types are defined in the `purchase_details` directory.
Versa uses [semantic versioning](https://semver.org/) to ensure the stability of its data model. The current schema version **1.5.0**
Previous schema versions will be maintained in this repo under their version tag after the first major version release (1.0.0)
## Build Process
This crate uses the [typify](https://crates.io/crates/typify) crate to construct the receipt schema bindings from our json schema
## Features
- mysql: Enables mysql conversion for certain protocol bindings
## TODO
- [ ] Rust stable crate
- [ ] Complete protocol bindings
- [ ] Expanded diesel database support