EDDN/schemas/journal-README.md

124 lines
4.2 KiB
Markdown

# EDDN Journal Schema
## Introduction
Here we document how to take data from miscellaneous ED Journal
events and properly structure it for sending to EDDN.
This is the historical "all Journal events" schema that will be deprecated
in the future. Please check for a schema specific to the journal event
under consideration to see if data should be sent on that event specific
schema instead.
Please consult [EDDN Schemas README](./README-EDDN-schemas.md) for general
documentation for a schema such as this.
## Senders
The primary data source for this schema is the ED Journal events:
- `Docked`
- `FSDJump`
- `Scan`
- `Location`
- `SAASignalsFound`
- `CarrierJump`
- `CodexEntry` - But see the separate
[codexentry schema](./codexentry-README.md) documentation.
### Key Renames
Many of the key names have a different case defined in this schema, make
sure you are renaming them as appropriate.
### Elisions
#### Remove _Localised key/values
All keys whose name ends with `_Localised`, i.e. the `Name_Localised`
key/values in Items.
#### Personal data in `Docked` events
The following keys+values should be removed from `Docked` event data:
- `Wanted`
- `ActiveFine`
- `CockpitBreach`
#### Personal data in `FSDJump` events
The following keys+values should be removed from `FSDJump` event data:
- `Wanted`
- `BoostUsed`
- `FuelLevel`
- `FuelUsed`
- `JumpDist`
- `HappiestSystem` from within the list of `Factions`.
- `HomeSystem` from within the list of `Factions`.
- `MyReputation` from within the list of `Factions`.
- `SquadronFaction` from within the list of `Factions`.
#### Personal data in `Location` events
The following keys+values should be removed from `Location` event data:
- `Wanted`
- `Latitude`
- `Longitude`
- `HappiestSystem` from within the list of `Factions`.
- `HomeSystem` from within the list of `Factions`.
- `MyReputation` from within the list of `Factions`.
- `SquadronFaction` from within the list of `Factions`.
### Augmentations
#### 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 the`Fileheader` 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 the`Fileheader` 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"`.
#### horizons flag
You **MUST** add this key/value pair, using the value from the `LoadGame` event.
Note caveats in [docs/Developers.md](../docs/Developers.md).
#### odyssey flag
You **MUST** add this key/value pair, using the value from the `LoadGame` event.
Note caveats in [docs/Developers.md](../docs/Developers.md).
#### StarSystem
If not already present, you MUST add a `StarSystem` string containing the
name of the system from the last `FSDJump`, `CarrierJump`, or `Location` event.
**You MUST apply a location cross-check, as per
[Other data augmentations](../docs/Developers.md#other-data-augmentations).**
This should only apply to `SAASignalsFound` events.
#### StarPos
If not already present, you MUST add a `StarPos` array containing the
system co-ordinates from the last `FSDJump`, `CarrierJump`, or `Location`
event.
**You MUST apply a location cross-check, as per
[Other data augmentations](../docs/Developers.md#other-data-augmentations).**
This should only apply to `Docked`, `Scan` and `SAASignalsFound` events.