# Documentation

<!-- toc is generated with GitHub Actions do not remove toc markers -->

<!-- toc -->

- [The Processing](#the-processing)
- [Contributing](#contributing)
- [Usage](#usage)
- [Advanced](#advanced)
- [Integration](#integration)
- [Development](#development)
- [Presets](#presets)
- [Interpretation of JSON Schema](#interpretation-of-json-schema)
- [Migration](#migration)
- [Coming from other tools](#coming-from-other-tools)
- [API Documentation](#api-documentation)
- [Languages](#languages)

<!-- tocstop -->

This document gives the overview of all the available documentation for Modelina.

### [The Processing](./input-processing.md)
Contains information how the internals of the processing works.

This document contains all the information you need to understand the internal meta model and processes.

### [Contributing](./contributing.md)
Contains all the information you need to contribute to this project.

### [Usage](./usage.md)
Contains simple use-cases that you'll encounter when using Modelina.

### [Advanced](./advanced.md)
Contains many of the advanced use-cases that you may stumble upon when pushing the limits of Modelina.

### [Integration](./integration.md)
Contains many advanced ways to integrate Modelina _(i.e. websites)_. 

### [Development](./development.md)
Explains how to setup the project for development. 

### [Presets](./presets.md)
Goes more in-depth into how the preset system works, which enables full customization of generators.

### [Interpretation of JSON Schema](./inputs/JSON_Schema.md)
Explains how a JSON Schema is interpreted to a data model.

### [Migration](./migrations/README.md)
As time goes on, major versions are inevitable and expected! You can find the migration guides here.

### [Coming from other tools](./other-tools.md)
Contains specific information about the differences between a lot of other common model generation tools. 

### [API Documentation](https://modelina.org/apidocs)

No one wants to read the code to find information about it, instead use the [/apidocs](https://modelina.org/apidocs) page on the website to find what you are looking for!

### Languages
Each language has its own limitations, corner cases, and features; thus, each language has separate documentation.
- [C++](./languages/Cplusplus.md)
- [C#](./languages/Csharp.md)
- [Dart](./languages/Dart.md)
- [Go](./languages/Go.md)
- [Java](./languages/Java.md)
- [JavaScript](./languages/JavaScript.md)
- [Kotlin](./languages/Kotlin.md)
- [PHP](./languages/Php.md)
- [Python](./languages/Python.md)
- [Rust](./languages/Rust.md)
- [Scala](./languages/Scala.md)
- [TypeScript](./languages/TypeScript.md)
