jsoncompat 0.3.1

JSON Schema Compatibility Checker
Documentation
# Story JSON Format

`default-story.json` defines schema versions, left/right state pairings, and transition order.

## Shape

```json
{
  "versions": [{ "id": "v1", "schema": { "type": "object", "properties": {}, "required": [] } }],
  "states": [{ "id": "s1", "leftVersionId": "v1", "rightVersionIds": ["v1"] }],
  "transitions": [{ "id": "t1", "fromStateId": "s1", "toStateId": "s2", "seedWireFrom": "left_before" }],
  "initialStateId": "s1"
}
```

## Notes

- `versions[].schema` supports a focused JSON Schema subset:
  - objects with `properties` + `required`
  - scalar fields (`string`, `integer`, `number`, `boolean`, `null`)
  - arrays with `items`
  - nullable unions via `type: ["<type>", "null"]`
- `seedWireFrom` is validated and reserved for future transition seeding policies.
- `states[].rightVersionIds` supports one or more reader versions. Multiple entries represent a reader union (`vA | vB`) where decode accepts any listed variant.
- Legacy `states[].rightVersionId` is still accepted and normalized to a one-element `rightVersionIds` array.
- Exactly one outgoing transition per state is currently supported in runtime validation.