The input files used for generating names are not present in this repository.
They use [Phonagen](http://feuforeve.fr/Phonagen), and the languages used by the character generator are present as examples in the Phonagen repository.
For the `json` files, the type of the root is given.
When describing a field, the key of the field is followed by the expected type of the field in parentheses.
A `distribution` of type `type` is a map object whose keys correspond to the value of the `name` field of the given `type` and associated values are `number` giving the corresponding weight in the distribution.
-`tertiary` (`list`: `combined-element`): the list of tertiary elements usable by the generator. The composition may diverge from what is described in the comic.
-`tertiary-exact` (`list`: `combined-element`): the list of tertiary elements as described in the Floraverse comic, but not usable by the generator
-`reference-link` (`string`, optional): an URL to the page where the location is described. If a location has no `reference-link`, it means that it is the same as the parent location.
-`type` (`string`): the name of a `location-type` indicating the type of the place
-`restricted?` (`boolean`, optional): if `true`, indicate a location (and its sub-locations) cannot be freely used in generated contents. Default to `false`.
-`locations` (`list`: `place`, optional): a list of places located inside the place. Empty by default.
The `species` object contains the following fields:
-`name` (`string`): the name of the species
-`reference-link` (`string`): an URL to the page where the species is described.
-`endemic-in` (`list`: `string`): a list of `place` names where the species is usually found.
-`restricted-to-endemic-areas?` (`boolean`): if `true`, indicate the species can only be found in the places where it is endemic.
-`affinity` (`distribution`: `element`): the distribution of elemental affinity of the species
-`sex` (`distribution`: `sex`): the distribution of sexes of the species
-`reproduction` (`string`): the way the species reproduce. Possible values are:
-`sexual` for sexual reproduction
-`asexual` for asexual reproduction
-`artifact` for species whose member are built rather than born
-`asexual-parent-species` (`list`: `string`): a list of `species``name` used in asexual reproduction to indicate which species can generate a member of this species
-`generable-as-character?` (`boolean`): if `true`, the species can be used by the character generator to generate a character
-`citizen?` (`boolean`): if `true`, indicate that member of this species would be considered citizen in civilized places. Usually means that members of this species have a rather high level of intelligence.
-`pet?` (`boolean`): if `true`, indicate that member of this species could be raised as pets or domestic animals in civilized places.
-`wild?` (`boolean`): if `true`, indicate that member of this species are usually considered as wild animals in civilized places.
-`vegetal?` (`boolean`): if `true`, indicate a species whose members are unable to move on their own, like trees.
-`mimic?` (`boolean`): if `true`, indicate the species physically mimics other species, and member of this species (the real species) must be instanciated with another associated species (the immited species). Members of this species usually physically look like members of the immited species, but with modifications from their real species.
-`mimic-genes-used?` (`boolean`): if `true`, indicate the genes used to compute the species use the real species. If `false`, the genes use the immited species.
-`varieties` (`list`: `species`): a list of species based on this species. They used the values of this species as default values and can be considered as variations of a same species.
The `mimic-filter` object contains the following fields:
-`species` (`species`): a filter on the species fields. The associated value may be the value to search or an object of the form `{"not": [...]}` to list the values to exclude.
-`relationship` (`string`, optional): a filter indicating a relationship between the character of the mimic species and another character from which the species is copied.
The `crossbreed` object contains the following fields:
-`parents` (`list`: `string`): a list of parent species that give birth to a crossbreed; each string correspond to the name of an species.
-`child` (`species`): the crossbreed species; only fields that should be forced instead of computed are needed. An empty object indicate crossbreed is possible.
The root is an `object` whose fields indicate the name of the category and associated values are `list` of `string` containing the different words of the category.
-`undefined-article` (`string` or `token`): the token should be replaced by the value prefixed by the undefined article and a space.
-`plural` (`string` or `token`): the token should be replaced by the plural form of the value.
-`word` (`string`): the token should be replaced by one of the word of the indicated category (from `word-lists.json`).
-`species` (`string`): the token should be replaced by the `name` field of one of the `species` instance (from `species.json`) whose field indicated by the value is set to `true`.
-`nature` (value unused): the token should be replaced by a word from a category of `natures.json`. The value is unused and should be set to `true`.
-`location` (value unused): the token should be replaced by the `name` field of a `location` instance (from `geography.json`). The value is unused and should be set to `true`.
Some fields can take a `token` object as a value. Those should be replaced by a `string` before applying the token rule.
An `ability` object contains the following fields:
-`name` (`string`): the name of the ability
-`description` (`string`): the description of the ability
-`author` (`string`): the original author behind the ability
-`conditions` (`list`: `ability-condition`): a list of conditions to get the ability. A generated character can get the ability if one of the condition is respected.
An `ability-condition` object contains the following fields:
-`type` (`string`): indicate the kind of condition. The possible values are the strings `"species"` and `"affinity"`.
-`automatic?` (`boolean`): indicate if the ability is automatically got when the condition is respected
A species condition contains the following fields:
-`species` (`string` or `list`: `string`): The species or list of species a character should have in its genes to get the ability.
-`gene-threshold` (`number`): the percentage of genes of the species to get the ability
An affinity condition contains the following fields:
-`affinity` (`string`): the needed affinity to get the ability