Processor Map Format
To not have to always compile all files from source again, the processor is able to save a map of the files it has compiled. This map is stored in a binary format. The file format is defined using the following structure:
struct Utf8String {
  uint16_t length;
  uint8_t data[length];
};
struct ProcessorMap {
  uint32_t magic;
  uint16_t major;
  uint16_t minor;
  uint16_t package_count;
  Package packages[package_count];
};
struct Package {
  Utf8String name;
  uint16_t subpackage_count;
  Package subpackages[subpackage_count];
  uint16_t class_count;
  Class classes[class_count];
  uint16_t method_count;
  Method functions[method_count];
  uint16_t field_count;
  Field fields[field_count];
};
struct Class {
  Utf8String name;
  uint16_t flags;
  Utf8String super_class;
  uint16_t interface_count;
  Utf8String interfaces[interface_count];
  uint16_t class_count;
  Class classes[class_count];
  uint16_t constructor_count;
  Method constructors[constructor_count];
  uint16_t method_count;
  Method methods[method_count];
  uint16_t field_count;
  Field fields[field_count];
};
struct Method {
  Utf8String signature;
  uint16_t flags;
};
struct Field {
  Utf8String name;
  Utf8String type;
  uint16_t flags;
};