File Format
data class FileFormat<T>(val canonicalName: String, val extensions: Array<String>, val canRead: Boolean, val canWrite: Boolean, val basis: String?, val formatKey: String, val transcoder: Transcoder<T>)
A file format which is often specified by a single definition or a single suffix. For example, PNG can be a file type and is a different file type from JPEG.
A file format can have a wild card transcoder defined using the optional transcoder parameter. It is often implemented for often esoteric formats; for example, often converting to JPEG requires the removal of the alpha channel, which means JPEG has a custom transcoder parameter that removes the alpha channel.