Minecraft wiki entry for Resource_Pack, associated text: The root tag
 providers: A list of providers that are merged onto this font.
A font provider. The contents depend on the value of the "type" tag.
 type: The type of the font provider. Can be one of the following:
bitmap: A bitmap font.
 file: The resource location of the used file, starting from assets/<namespace>/textures.
 height: Optional. The height of the character, measured in pixels. Can be negative. This tag is separate from the area used in the source texture and just rescales the displayed result. Default is 8.
 ascent: The ascent of the character, measured in pixels. This value adds a vertical shift to the displayed result.
 chars: A list of strings containing the characters replaced by this provider, as well as their order within the texture. All elements must describe the same number of characters. The texture is split into one equally sized row for each element of this list. Each row is split into one equally sized character for each character within one list element.
legacy_unicode: A legacy unicode font. This format is deprecated and only prioritized when the "Force Unicode Font" option is turned on.
 sizes: The resource location inside assets/<namespace>/font describing a binary file describing the horizontal start and end positions for each character from 0 to 15. The file extension of the target file should be .bin.
 template: The resource location inside assets/<namespace>/textures that leads to the texture files that should be used for this provider. The game replaces %s from the value of this tag with the first two characters of the hex code of the replaced characters, so a single provider of this type can point into multiple texture files.
ttf: A TrueType font.[more information needed]
 file: The resource location of the TrueType font file within assets/<namespace>/font.
 shift: The distance by which the characters of this provider are shifted.
Left shift
Downwards shift
 size: Font size to render at.
 oversample: Resolution to render at.
 skip: String or array of strings to exclude.