///|
/// Small deterministic command-line smoke example for the library APIs.
fn main {
  let fasta = ">demo_cds example\nATGCGTTAA\n>partial\nATGCGT\n"
  let parsed = @io.parse_fasta(fasta)
  let mut options = @analysis.AnalysisOptions::default()
  let mut orf_options = options.orf_options
  orf_options = { ..orf_options, min_length_nt: 9 }
  options = { ..options, orf_options, }
  let reports = @analysis.analyze_records(parsed.records, options)
  let table = @tables.standard_table()

  println("moonbit-genetic-code CLI")
  println("registered_tables=" + @tables.list_all_tables().length().to_string())
  println("table=" + table.id.to_string() + " name=" + table.name)
  println(
    "records=" +
    reports.length().to_string() +
    " parse_issues=" +
    parsed.issues.length().to_string(),
  )
  for report in reports {
    println(
      "record=" +
      report.identifier +
      " length=" +
      report.profile.length.to_string() +
      " protein=" +
      report.translation.protein +
      " cds_valid=" +
      report.cds.is_valid.to_string() +
      " orfs=" +
      report.orfs.count.to_string() +
      " codons=" +
      report.usage.total_codons.to_string(),
    )
  }
}