Archive entry index file specification

This is a specification that will tell how to properly fill the index file (a small text (.txt) file that contains various metadata required to describe the archive entry such as episode, level, demo, asset, etc.). These files usually have the same name as the uploaded archive, but in some cases it might differ, like, it's multiple downloads for the single entry like different versions of the same or additional content.

You can take a look on the example file to get brief understanding of how it usually filled.

General formatting description:

Every file should contain a field, named by spaceless label that ends by the colon (:) character, and the field value on the next line. The rest of fields allows you to place only one line for the value:

FieldOne:
Just a value
FieldTwo:
Also value
FieldThree:
And one another value
...

but some fields like list of download files, showcases, list of authors, etc. might allow multiple lines with a condition that line should never end by the colon character:

MultiFieldOne:
Just a value line one
Another line
Third
Fourth
And any other
MultiFieldTwo:
Also value
Just a value
...

The Description: field is a very special: once it starts, all the field parsing will be disabled and all the rest of file will be treated as a description content. So, the Description field must always appear at the end of file, and all other fields prior to Description. To make visual convenience it's required to add an empty line before the Description: and after the last field value added into the file. Unlike other fields, it's allowed to end values by colon since it no longer makes sense here.

FieldOne:
Just a value
FieldTwo:
Also value
FieldThree:
And one another value

Descritpion:
Write anything that you want
and it's nothing will happen:

Seriously?

Absolutely!

Full list of supported data fields:

Source:

This is required field

A URL to the post where you found the episode, or an explanation if source was lost, or episode was contributed by its author directly, or something also. If you want to put multiple sources, write them in a single line and separate them by a comma with a leading space.

This line accepts only next formatting:

If you want to explain explicit reason why source is lost or absence, do write the "Note:" field.

Example values:

Source:
https://example.com/forum/topic1234

Source:
<lost>

Source:
<submitted-by-author>

Source:
Chat=Mega Game Developers at Discord

Author:

This is required field

The name of author, or list of multiple authors per line, or name of the team if there is no known people who participated development. The person from the team who published the final work on the original source also should be mentioned by the Publisher: field.

The "Creator:" works as an alias to this field. Also, plural forms like "Authors:" or "Creators:" do work too.

Example values:

Author:
The Duder

Authors:
The Duder
His Girlfriend
His Mom
His Grandpa

Publisher:

Optional name of the publisher: if it was a large project developed by many people, then it's a name of person who authors the posted topic and filled the content with all descriptions, showcases and downloads.

If this entry developed by the single person and matches the person who published this, then this field is not needed.

Example values:

Publsiher:
The Leader

Publsiher:
The Duder

Submitter:

A name of person who actually uploaded or submitted entry to you for uploading to this archive. Just put your name or nickname here. If entry is given to you by another person, put here their name instead.

Example values:

Submitter:
ArchiveDude

Submitter:
One Kool Person

Homepage:

The optional URL that leads to author's homepage if given. It should be a valid URL.

Example value:

Homepage:
https://super-project.org/super/

ReleaseDate:

The date of the first release of episode/level/game/package/etc.

It must be in the next format: YYYY-MM-DD. Example: 2015-05-12.

Example value:

ReleaseDate:
2015-05-12

UpdateDate:

If entry received several updates, you can also specify the date of the latest update for the episode/level/game/package/etc.

It must be in the next format: YYYY-MM-DD. Example: 2015-05-12.

Example value:

UpdateDate:
2019-02-21

Languages:

A list of languages that is used to show in-game messages, dialogues, and/or text written on images. TheXTech supports multi-language episodes and therefore some episodes might contain multiple different translations including original language.

It's required to write a comma-separated lower-case two-letter language codes (for example en,ru,es), and it's allowed to specify the dialect name if needed (for example, en-gb,zh-cn,zh-tw,pt-br).

The "Language:" works as an alias to this field if you want to specify a single language only, but that doesn't matter as both variants works same.

Example values:

Languages:
es

Languages:
en,es,ru

Languages:
en-gb,pt-br,ru,zh-cn

TargetEngine:

The optional key of target engine for which this content primarily developed. Don't specify this until you want to tell that this content developed for a different engine than current directory. See list-engines.txt file to find a list of allowed target engine keys.

Example values:

TargetEngine:
smbx13

TargetEngine:
thextech

TargetEngine:
x2b3

TargetEngine:
smbx38a

EngineVersion:

The optional target version of engine for which this content primarily developed. Do specify this if this content is unable to work in different versions. See list-engines.txt file to find a list of allowed versions for every target engine.

Example values:

EngineVersion:
1.3.7.x

EngineVersion:
Beta 4, Patch 3

EngineVersion:
1.4.4

CompatEngines:

The optional comma-separated list of engine keys, which were confirmed to be compatible with this content if more than one engine can play this. See list-engines.txt file to find list of allowed keys.

Example value:

CompatEngines:
smbx13,lunadll,lunalua,thextech

Assets:

The optional name of game asset pack for the engine that was used to create this pack. See the list of available keys at the list-assets.txt file.

Example values:

Assets:
smbx

Assets:
nspr

Assets:
a2xt

Tags:

The optional comma-separated list of tags for this content. They can be used to simplify filtering of content by search filters, or find similar content. See list-tags.txt to get the list of allowed tag keys.

Example value:

Tags:
collect-a-thon,easy,joke,puzzle

Note:

A special note to show at the entry page. For example, it's a special modified version, or there are special requirements to get this level/episode/content work, explain them here. You can use minor Markdown formatting here like links or font weight and decorations here.

Example values:

Note:
This episode can work on **your slipper** if you kill a cockroach.

Note:
It's a fixed level, original is buggy: the toilet leads to the **garden**, not to **sewers** as expected.

Logo:

Optional name of logo picture filename that will be shown at the top of the entry page or in search results: by default, the namesake PNG, GIF, or JPEG file will be used. By default the namesake picture file will be used as a logo. You can specify this field if logo has different name than the index file.

Example value:

Logo:
The Super Logo.png

Showcases:

An optional list of file name values to include showcase screenshots or extra pictures. The "Screenshots:" works as an alias to this field. Suggested to begin name of screenshots with the same name as the info file.

Example value:

Showcases:
The Super - Trailer.mp4
The Super - Showcase 1.png
The Super - Showcase 2.png
The Super - Secret.png
The Super - Castle.png

Preservation advices:

If original author's post contains extra pictures and video trailers, download them and place together with the content archive's file(s) and list them in the "Showcases:" field. It's suggested to give them names like "Episode Name - Showcase X.png" but it's allowed to name the appendix differently if that required to preserve titles and/or categories given by author.

Any YouTube videos should be downloaded and places as standalone MP4 or WebM files: it's no guarantee video will survive any events like account deletion or copyright attacks. There are a lot of known cases where such videos often unexpectedly removed for any reason.

Files:

An optional list of "Label=FileName" values to indicate which files are part of this level/episode/demo entry. Use this if entry has more than one file to download. Other things like patches or additional downloads also can be listed here. Logos and screenshots should be listed at "Showcases:" paragraph.

Important: The primary download (or "latest version") should always appear at the top of the list. If it's a list of versions, they should be ordered in descent order from newest to oldest. If there are various minor patches included, they should go after the primary download.

Example value:

Files:
Main release=The Super - Main.7z
Old version=The Super - Old.7z
First Demo=The Super - Prototype.7z

ShortDesc:

A brief description (up to 1024 characters) of the entry. Supposed to be primarily displayed in various content managers, in search results, catalogues, etc. Write it as short as possible. Don't use any formatting here, but you can use line breaks.

The "ShortDescription:" works as an alias to this field that will work too.

Example values:

ShortDesc:
My super episode about the Super Cockroach!

ShortDesc:
More slippers for all my cockroaches!
Aren't enough cockroaches was slipped before?


Description:

The infinite space for the detailed description of the entry that will be shown at the entry's page. You can copy and paste the full text content of the main post and apply minor formatting using Markdown syntax. Easy to select from the bottom of the post and up to the title. If you want to simplify formatting conversion you might want to use a thing like this one to quickly convert copied formatted text into Markdown-formatted.

If any pictures or videos included, download them and refer them according Showcases: field specification.

Important: This field must be placed in the bottom of the index file as all lines after this label will be treated as a part of the description (i.e. any other labels written after this, will not being parsed), and before this label, the empty line is required.

Example value:

Description:
# My super episode released!
Under this tag, **everything** is just gets inserted as a description tag with no parsing of any other tags.
Explain all the details of the episode, or just copy-paste content of author's post/article that explains this entry.

You can *just* write stuff with Markdown, and it should work:
- Including
  - This
  - Silly
  - List
- And this
  - Too

# Head:
One

## Sub-Head:
Two

### Sub-Sub-Head:
Three