commy-wire 0.2.1

Commy wire contract (spec, JSON Schema, golden vectors, shared Rust wire types).
Documentation
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/ThinkersJournal/commy-wire/schema/control.schema.json",
  "title": "Commy control message (draft 1)",
  "oneOf": [
    {
      "properties": {
        "type": { "const": "Authenticate" },
        "data": {
          "type": "object",
          "required": ["request_id", "protocol_version", "tenant_id", "client_id", "auth_method", "credentials"],
          "properties": {
            "request_id": { "type": "string" },
            "protocol_version": { "type": "integer", "minimum": 0, "maximum": 4294967295 },
            "tenant_id": { "type": "string" },
            "client_id": { "type": "string" },
            "auth_method": { "type": "string" },
            "credentials": { "type": "string" }
          },
          "additionalProperties": false
        }
      }
    },
    {
      "properties": {
        "type": { "const": "FlushAck" },
        "data": {
          "type": "object",
          "required": ["request_id", "file_id", "seq"],
          "properties": {
            "request_id": { "type": "string" },
            "file_id": { "type": "integer", "minimum": 0, "maximum": 4294967295 },
            "seq": { "type": "integer", "minimum": 0 }
          },
          "additionalProperties": false
        }
      }
    },
    {
      "properties": {
        "type": { "const": "Resync" },
        "data": {
          "type": "object",
          "required": ["request_id", "file_id"],
          "properties": {
            "request_id": { "type": "string" },
            "file_id": { "type": "integer", "minimum": 0, "maximum": 4294967295 }
          },
          "additionalProperties": false
        }
      }
    },
    {
      "properties": {
        "type": { "const": "ResyncDone" },
        "data": {
          "type": "object",
          "required": ["request_id", "file_id", "seq", "size"],
          "properties": {
            "request_id": { "type": "string" },
            "file_id": { "type": "integer", "minimum": 0, "maximum": 4294967295 },
            "seq": { "type": "integer", "minimum": 0 },
            "size": { "type": "integer", "minimum": 0 }
          },
          "additionalProperties": false
        }
      }
    },
    {
      "properties": {
        "type": { "const": "GetServiceFilePath" },
        "data": {
          "type": "object",
          "required": ["request_id", "service_id"],
          "properties": { "request_id": { "type": "string" }, "service_id": { "type": "string" } },
          "additionalProperties": false
        }
      }
    },
    {
      "properties": {
        "type": { "const": "ServiceFilePath" },
        "data": {
          "type": "object",
          "required": ["request_id", "service_id", "file_id"],
          "properties": {
            "request_id": { "type": "string" },
            "service_id": { "type": "string" },
            "file_id": { "type": "integer", "minimum": 0, "maximum": 4294967295 },
            "path": { "type": "string" },
            "nonce_path": { "type": "string" }
          },
          "dependentRequired": { "path": ["nonce_path"], "nonce_path": ["path"] },
          "additionalProperties": false
        }
      }
    },
    {
      "properties": {
        "type": { "const": "ConfirmLocal" },
        "data": {
          "type": "object",
          "required": ["request_id", "file_id", "nonce"],
          "properties": {
            "request_id": { "type": "string" },
            "file_id": { "type": "integer", "minimum": 0, "maximum": 4294967295 },
            "nonce": { "type": "string" }
          },
          "additionalProperties": false
        }
      }
    },
    {
      "properties": {
        "type": { "const": "ConfirmLocalAck" },
        "data": {
          "type": "object",
          "required": ["request_id", "file_id"],
          "properties": {
            "request_id": { "type": "string" },
            "file_id": { "type": "integer", "minimum": 0, "maximum": 4294967295 }
          },
          "additionalProperties": false
        }
      }
    },
    { "$ref": "error.schema.json" }
  ],
  "required": ["type", "data"]
}