Assets 
For visual novels assets are the key feature. You might want high quality assets and both with small weight so they will be loaded quickly. However, older browsers may not support such formats as .webp or .avif. To provide support for both new browsers with cool formats, and not to forget about old browsers, you can use the asset function.
But it is fully optional. You can stick to webp for characters and backgrounds (as it supports transparency and wight not as much as png).
How to use 
You will need to pass image URL's in favourite first order. So which you want more should go first. Currently asset function support checking for avif, webp, and jxl.
asset('./img.avif', './img.webp', './img.png') // avif
asset('./img.webp', './img.png')               // webp
asset('./img.png')                             // png
asset('./img.png', './img.webp', './img.avif') // pngCharacters Usage 
Asset function can be used for character emotions.
import { novely, asset, EN } from '@novely/core';
const engine = novely({
  characters: {
    Ann: {
      name: 'Ann',
      color: '#D282A6',
      emotions: {
        happy: [
          asset('./ann_happy.avif', './ann_happy.webp', './ann_happy.png')
        ]
      }
    }
  }
})Backgrounds Usage 
Can be used for backgrounds.
import { novely, asset, EN } from '@novely/core';
const forest = asset('./forest.webp', './forest.jpeg');
const forestPortrait = asset('./forest-portrait.webp', './forest-portrait..jpeg');
engine.script({
  start: [
    engine.action.showBackground(forest),
    engine.action.showBackground({
      '(orientation: portrait)': forestPortrait,
      '(orientation: landscape)': forest,
      'all': forest,
    })
  ]
})Audio Usage 
Can be used for voices, music, and sounds.
import { novely, asset, EN } from '@novely/core';
const music2014playlist = asset('./music.ogg', './music.mp3');
engine.script({
  start: [
    engine.action.playMusic(music2014playlist)
  ]
})