v0.2.0 — enforce and complete the grammar
First published release. The v0.1.0 schema described a grammar but did not enforce one: its root used "id" rather than "$id" and wrapped definitions in components.schemas, so under draft 2020-12 the root carried no assertion keywords and accepted every instance.
Fixed — the schema now validates. The eight-way oneOf over leaf conditions collapses into one recursive Filter, which makes {"age": {"$gt": 18, "$ne": 30}} expressible (it was rejected before) and removes the {}-matches-everything ambiguity. "regex" → dropped (not a JSON Schema keyword), examples corrected to arrays, $in/$nin now accept booleans and null.
Added — $nor, $nbetween, the string family, $regex/$flags, $exists, $type, the collection operators, $search, field-level $not, and {"$field": "path"} for WHERE price > cost. Plus a field-path grammar, conformance profiles, SPEC.md for the semantics a schema cannot express, and OpenAPI 3.1 / 3.2 integration examples.
Breaking — $isnull → $isNull; #/components/schemas/* → #/$defs/*. Filter documents are otherwise unaffected.
Full detail in CHANGELOG.md.