///|
fn main {
  let args = @env.args()
  let record = @lib.parse_record(demo_record()) catch {
    error => {
      println("moonbit-genbank: " + error.message())
      return
    }
  }
  if args.contains("--json") {
    println(record.to_json_string())
  } else {
    print_summary(record)
  }
}

///|
fn print_summary(record : @lib.Record) -> Unit {
  println("accession: \{record.accession}")
  println("locus: \{record.locus.name} (\{record.locus.length} bp)")
  println("features: \{record.features.length()}")
  println("cds checks: \{record.check_cds_translations().length()}")
}

///|
fn demo_record() -> String {
  let text =
    #|LOCUS       DEMO0001        12 bp    DNA     linear   SYN 28-JUL-2026
    #|DEFINITION  Minimal MoonBit GenBank demo record.
    #|ACCESSION   DEMO0001
    #|FEATURES             Location/Qualifiers
    #|     source          1..12
    #|                     /organism="synthetic construct"
    #|     CDS             1..12
    #|                     /gene="demo"
    #|                     /translation="MAIV"
    #|ORIGIN
    #|        1 atggccattgta
    #|//
  text
}