{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "MoonTxnWitness versioned-register history v1",
  "type": "object",
  "additionalProperties": false,
  "required": ["initial", "transactions"],
  "properties": {
    "schemaVersion": {"const": 1, "default": 1},
    "name": {"type": "string"},
    "model": {"enum": ["serializable", "strict-serializable"], "default": "serializable"},
    "initial": {"type": "object", "propertyNames": {"$ref": "#/$defs/identifier"}, "additionalProperties": {"$ref": "#/$defs/identifier"}},
    "versionOrders": {"type": "object", "propertyNames": {"$ref": "#/$defs/identifier"}, "additionalProperties": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"$ref": "#/$defs/identifier"}}},
    "transactions": {"type": "array", "maxItems": 512, "items": {"$ref": "#/$defs/transaction"}}
  },
  "$defs": {
    "identifier": {"type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[^\\u0000-\\u001f\\u007f]+$", "description": "Core additionally limits length to 256 UTF-16 code units."},
    "timestamp": {"type": ["integer", "null"], "minimum": 0, "maximum": 9007199254740991},
    "operation": {"type": "object", "additionalProperties": false, "required": ["type", "key", "version"], "properties": {"type": {"enum": ["read", "write"]}, "key": {"$ref": "#/$defs/identifier"}, "version": {"$ref": "#/$defs/identifier"}}},
    "transaction": {"type": "object", "additionalProperties": false, "required": ["id", "status", "ops"], "properties": {"id": {"$ref": "#/$defs/identifier"}, "status": {"enum": ["committed", "aborted", "unknown"]}, "start": {"$ref": "#/$defs/timestamp"}, "end": {"$ref": "#/$defs/timestamp"}, "ops": {"type": "array", "maxItems": 10000, "items": {"$ref": "#/$defs/operation"}}}}
  }
}
