///|
fn main raise {
  let model = @ifc.parse(@ifc.minimal_fixture())
  let summary = model.summary()
  println("moonbit-ifc example")
  println("schema: \{summary.schema}")
  println("entities: \{summary.entity_count}")
  println("products: \{summary.product_count}")
  println("property sets: \{summary.property_set_count}")
  println("geometry entities: \{summary.geometry_count}")
  println("quality: \{@ifc.model_quality_grade(model)}")
  let schema_report = @ifc.validate_schema(model)
  println("schema check: \{schema_report.headline()}")
  println("schema details:\n\{schema_report.format()}")
  for product in model.products() {
    let name = product.name.unwrap_or("(unnamed)")
    println("- \{product.ifc_type} #\{product.id}: \{name}")
  }
}