* It's using `sys.argv`, not `argparse`.
* Thus there's no `--help`.
* Supply it with: 1) Filename of a schema definition, 2) filename of a full
EDDN message text to test for compliance.
* No output if both schema and message load *and* the message passes the
schema. Else you'll get python exception output from `jsonschema.validate()`.
1. Get the designation of the version correct.
2. That empty `#` fragment is a SHOULD NOT, so just don't.
3. Append `_<source>` to the "filename" where necessary.
* Add new mandatory `data-source` field.
* `CarrierName` now optional (not in CAPI data).
* `Items` is defined a lot more loosely, due to Journal vs CAPI
differences.
I brainfarted, slinging a `.+` into this to generalise it, when the code
is using `str.startswith()`, not a regex match.
So, use two tests, `.startswith()` for the static portion, then a
`.find()` for the remainder after the variant part.
This causes issues, at the least, with compressed messages that 'look' like
they decompressed body is form-encoded. 18385 messages in the last month
rejected due to this.
No actually valid form-encoded messages in that time frame.
* Per-signal `timestamp` due to the nature of USS signals.
* Keeping `message`->`timestamp` so any Listener relying on it being there
isn't tripped up (it's present in all other schemas).
* Specifiy that each `signals` member should have `event` key/value pair
removed.
* Mandate removal of `SystemAddress` from each `signals` member.
* Receivers: Only `horizons` and `odyssey` augmentations are optional.
* Updated examples for these changes.
* Purely event-based batching, no timer.
* Outline Horizons/Odyssey differences.
* Point out that USS are manually scanned, so different in time nature.
* StarSystem renamed from systemName.
* StarSystem and StarPos now mandatory.
1. Unix, not DOS, line-endings.
2. `message`->`timestamp` instead of per signal.
3. `message`->`SystemAddress` instead of per signal.
4. `StarSystem` and `StarPos` augmentations now mandatory.