multiversal/README.md
2022-03-17 23:19:20 -05:00

38 lines
1.4 KiB
Markdown

Multiversal Interfaces
======================
Interfaces to Apple's classic Mac OS APIs (pre-Carbon, i.e. 20th century),
encoded in YAML files along with a Ruby program to convert them
1. to C/C++ headers for use with Retro68.
2. to C++ headers for use as part of Executor 2000
The API definition files were automatically generated from the header files
that were originally included with Executor 2000.
As Executor was a clean-room implementation of Mac OS and is now available
under a liberal license, the resulting header files can be used and
redistributed freely. The translator program can still be found in the separate
`multiversal-parser` repository.
JSON Schema
-----------
A JSON schema definition for the definition files is available in the file
`multiversal.schema.json`. When it's finished, it will serve as documentation
for the API definition YAML files.
If you're using `vscode` to edit the YAML files, you can set up automatic schema
validation (= error messages and completion hints as you type) by installing the
`YAML` extension and adding
"yaml.schemas": {
"multiversal.schema.json": "defs/*.yaml"
}
to your vscode workspace settings (`.vscode/settings.json`). If you have checked
out the Multiversal Interfaces as a submodule of Executor 2000 or Retro68, add the
subdirectory to the relative paths:
"yaml.schemas": {
"multiversal/multiversal.schema.json": "multiversal/defs/*.yaml"
}