///|
fn main {
  try {
    let schema : Json = {
      "type": "object",
      "required": ["id"],
      "properties": { "id": { "type": "integer", "minimum": 1, "maximum": 10 } },
    }
    let value = @engine.generate_value(schema, 42)
    guard @engine.validate_value(schema, value).is_empty() else {
      abort("generated value violated schema")
    }
    println(value.stringify())
    // Public 0.9 instance engine: this example needs no host regex/format leaves.
    let modern_schema = @json.parse(
      "{\"type\":\"integer\",\"maximum\":9223372036854775807}",
      preserve_number_repr=true,
    )
    let exact = @json.parse("9223372036854775807", preserve_number_repr=true)
    let result = @engine.modern_validate(
      modern_schema,
      Json::empty_object(),
      exact,
      Json::empty_object(),
      fn(_, _) { abort("regex provider required") },
      fn(_, _) { abort("format provider required") },
    )
    assert_eq(@engine.field(result, "valid"), Json(true))
    println("modern exact int64: verified=true")
    println("portable core: verified=true")
  } catch {
    _ => abort("portable core example failed")
  }
}