EDDN/schemas/fcmaterials_journal-README.md

2.8 KiB

EDDN FCMaterials Schema

Introduction

This is the documentation for how to take data from an ED FCMaterials.json file and properly structure it for sending to EDDN.

Please consult EDDN Schemas README for general documentation for a schema such as this.

If you find any discrepancies between what this document says and what is defined in the relevant Schema file, then you should, in the first instance, assume that it is the Schema file that is correct. PLEASE open an issue on GitHub to report any such anomalies you find so that we can check and resolve the discrepancy.

Senders

The data source for this schema is the file FCMaterials.json. That it has been freshly written is signalled by the ED Journal event FCMaterials. NB: This schema is not, currently, for sending CAPI /market-sourced data about these materials.

So, monitor the Journal as normal, and when you see a FCMaterials event open the FCMaterials.json file for reading, read it, and close it again. Use the data you got from reading this file, not merely the Journal event.

Your message should primarily be the contents of this file, with the addition of any augmentations, as noted below.

Augmentations

horizons and odyssey flags

Please read horizons and odyssey flags in the Developers' documentation.

gameversion

You MUST always add this field to the header object.

  1. If you are using Journal files directly then you MUST use the value of the gameversion element from theFileheader event.
  2. If you are using the CAPI /journal endpoint to retrieve and process Journal events then:
    1. You will not have Fileheader available.
    2. If gameversion is present in the LoadGame event, as in 4.0 clients, use its value.
    3. If LoadGame does not have a gameversion element, as with 3.8 Horizons clients (up to at least 3.8.0.407), you MUST set gameversion, but with the value "CAPI".

gamebuild

You MUST always add this field to the header object.

  1. If you are using Journal files directly then you MUST use the value of the build value from theFileheader event.
  2. If you are using the CAPI /journal endpoint to retrieve and process Journal events then:
    1. You will not have Fileheader available.
    2. If build is present in the LoadGame event, as in 4.0 clients, use its value.
    3. If LoadGame does not have a build element, as with 3.8 Horizons clients (up to at least 3.8.0.407), you MUST set gamebuild, but with the value "CAPI".

Listeners

The advice above for Senders, combined with the actual Schema file should provide all the information you need to process these events.