Make ConditionSyntaxError extend from system_error instead of directly from runtime_error, so that callers can use the exception's code to distinguish between different causes.
The game will not load the blueprint master before the other plugin, so if the latter overrides any records from the former, those changes won't be seen in-game.
There are probably many (pre-CK) plugins that have the official BlueprintShips-Starfield.esm blueprint master as a master but not actually override any of its records. Ideally such plugins would be updated to remove the unnecessary master or uninstalled, but as having it doesn't seem to do any harm, I don't think it's worth preventing LOOT from sorting in this situation.
Also validate that no non-blueprint masters or non-masters are expected
to load after any blueprint masters.
The addition of a new EdgeType may be considered a breaking change to
the API, since it can result in the caller receiving a value it doesn't
know how to handle, but it doesn't break ABI compatibility. LOOT has
explicit handling for unknown values, so is fine.
Adding it to the sorting interface because it'll be needed by the
sorting logic, but I'm not yet sure if it'll be useful as part of
PluginInterface (and adding it there would break ABI).