# README

This folder contains the JSON schema, a description of the communication API, and code from the syntheses mentioned in the corresponding "Diagrams as a Service" paper, submitted to the DIAGRAMS '26 conference.
The data is also available online on the linked GitHub repositories, this data is available here for permanent availability and transparency.
Note that this does not include code of the KIELER client itself, that can be found in its GitHub repository, currently found at [this repository](https://github.com/kieler/klighd-vscode).

## JSON Schema
The complete schema is in the `schema` folder.
It is currently also available in the `schema` folder of the [klighd-vscode repository on GitHub](https://github.com/kieler/klighd-vscode/tree/main/schema).
<!-- This is the schema of the current "main" branch. -->

## API
The API description is available in the `api` folder.
It is currently also available in the [klighd-vscode wiki on GitHub](https://github.com/kieler/klighd-vscode/wiki/Diagram-Server-Communication-%E2%80%90-Architectural-Overview).
<!-- This is the API from the wiki page, without the first section before the start of the API. -->

## Example syntheses
The code for the example syntheses is available in the `examples` folder.
The Python proof-of-concept example Plyghd in the `plyghd` subfolder is fully executable and can be verified in combination with the experimental client supporting the new features in the `client-binary` subfolder (only included for Linux-based operating systems).
This binary is based on open-source code published under the EPL-2.0 license, see the LICENSE file next to the binary.
The code and current releases of the client is available in the corresponding [GitHub repository](https://github.com/kieler/klighd-vscode/), the Plyghd example in its [GitHub repository](https://github.com/kieler/plyghd-ls-demonstrator/).
<!-- This is the klighd-linux binary built from the nre/henri-fork branch with the "currentValue" field of the "ClientLayoutOption" class changed to "true". -->
<!-- The Python example is exactly the code from the repository (minus the .gitignore) -->

The second example synthesis based on the Plyghd example is in the `thesis-supervision` subfolder.
Its is also fully executable and can be verified with the same client in the `client-binary` subfolder.
This serves as an example for a more complex diagram synthesis in Python that uses some extended pragmatic features of KLighD.

The Haskell applied example for the ForSyDe environment is available in the `forsyde` subfolder.
Its is also fully executable and can be verified with the same client in the `client-binary` subfolder.
This serves as an example for a more complex diagram synthesis in Haskell.
The full code is available in the corresponding [GitHub repository](https://github.com/sthaeron/forsyde-devtools/).
<!-- This is the file package sent from KTH, based on the repo (minus the .gitignore). -->


<!-- TODO: check which authors should be listed under the publication. Alex and Sören also have commits in the plyghd repo and in the wiki, ask KTH people for their contributors. -->
