see also the TODO comments in the files themselves

check WEBP_REDUCE_SIZE works with all #if in png2webp.c

configure: LOSSYISERROR NOVLA DOFLUSH USEGETOPT
maybe just use autoconf

nmake? remake compile-msvc.bat ?
try to figure out how to use clang-cl on windows instead of msys2
it's in the native tools %path% now
make a separate build batch for it (or cmake?)
make sure NOTHREADS is !WEBP_USE_THREAD

add some flags to libpng configure. no phys and other useless stuff

minimize static build by making strings match some library one where possible

rewrite w2p error handling to avoid the openwdone nonsense
try to minimize null frees without making a bigger exe
maybe no gotos at all, in the same order, and let the compiler figure it out?
same with p2w, just completely redo both

parallelize more, multiple conversions at once?
needs no global pnglen, total rewrite of terminal output
maybe remove all global vars?
clang-tidy --checks='-*,cppcoreguidelines-avoid-non-const-global-variables'
no setjmp/longjmp ??
use custom struct with png_create_(read|write)_struct and png_get_error_ptr

try to make close+remove atomic, like a delete on close flag: FIO01-C
windows: FILE_SHARE_DELETE, FILE_DISPOSITION_INFO
freebsd: funlinkat
other OSes: ???
maybe instead make a temporary file and copy or rename it on success?
postpones EEXIST until after encoding is done, as well as decoding as before
linux 3.11+ (not android): O_TMPFILE, linkat. how to do -f?
windows: FILE_SHARE_DELETE, FILE_RENAME_INFO
other OSes: ???

rename to pngtowebp because of webp2? or just have png2webp2 a separate thing
support symlink/rename to webp(to|2)png, inverting -r ? p2w w2p?

negative cli flags?

look into other PNG interfaces, maybe make a simple custom one
didn't like libspng. try lodepng?
maybe option to use libwebp imageio for input and output
just be a wrapper and nothing else

restrict const register static etc? or just rely on clang

-DALWAYS_{BATCH|PIPE} (disable flag parsing, set verbose to always)

time_t stuff in exestamp.c?

sync old private dropbox version with git or delete it

versions for newer lossless image formats
jxl
webp2 once it's released. see rename comment

maybe for comparison, jxl's predecessors:
flif -> fuif -> jxl <- pik

maybe try heif/heic/avif encoders, probably not great for lossless:
heic: libheif with backends:
	libde265? same author but only compatible with decoding?
	libx265
avif:
	frontends (try without backends too?):
		libheif	again
		libavif	official
	backends:
		libaom	slow, official
		rav1e	fast, "safe" (lying), exe or lib? rust not c

netpbm interface version of pamtowebp and webptopam, get them to add it?
also make pamtorgbapam (like `pamtoavs|avstopam`)?
pamtorgbpam would basically be ppmtoppm
