Removed fields
Seven field names belonged to a vocabulary the engine no longer uses. Six of them went on being
delivered for a while after the rename, so that nobody had to migrate in the same release; the
seventh, ruleGroupId, could not be. None of them is returned by the endpoints below any more.
Every replacement below is already in the response, and has been since the rename.
What was removed, and what to read instead
On GET /v1/snippets and
GET /v1/snippets/:id:
normLevel— readauthorityType.legalWeight— no replacement on a legal source; see below.ruleGroupId— readsnippetKey, after remapping once; see below.
On every citation in regulatory_references of GET /v1/jobs/:jobId:
primary_norm_level— readprimary_authority_type.primary_id— readprimary_source.source_key.supporting_norm_level— readsupporting_authority_type.supporting_id— readsupporting_source.source_key.
contractVersion on the job response stays 1. The four citation names were declared optional and
deprecated in the published schema — in their own field descriptions, since 2026-08-20 — and in the
job reference since 2026-08-30, so removing them is not a change to the
versioned contract. They were not marked from the day they first appeared: for the first weeks after
the rename they were delivered without being flagged as deprecated anywhere. This page did not name
them until now either: before this release it covered the legal-source endpoints only.
normLevel became authorityType
normLevel was a set of Swedish strings: "Lag", "Förordning", "Föreskrift" and so on.
authorityType is a fixed, jurisdiction-neutral vocabulary of fourteen values:
CONSTITUTIONAL_LAW, STATUTE, ORDINANCE, AGENCY_REGULATION, LOCAL_REGULATION, EU_TREATY,
EU_REGULATION, EU_DIRECTIVE, EU_DECISION, CASE_LAW, SUPERVISORY_DECISION,
PREPARATORY_WORKS, GENERAL_ADVICE, GUIDANCE.
One distinction did not survive: "Vägledning" and "Granskningsstöd" are the same thing now.
Both are GUIDANCE.
The same holds on a citation: primary_authority_type and supporting_authority_type use the
fourteen values where primary_norm_level and supporting_norm_level used the Swedish strings.
primary_id is the source key, not the label
primary_id was the key of the cited source in used_rules. Its successor is
primary_source.source_key — not primary_label, which is a short per-analysis label (L1,
L2, …) that did not exist before the rename. The same goes for supporting_id and
supporting_source.source_key. A source that is null means the model cited a label the run never
issued; the engine reports that rather than inventing a source.
legalWeight has no replacement, and that is the point
legalWeight said whether a norm binds. It is no longer a property of a source, because it is not
one: whether a norm binds is derived per analysis, from the source's authorityType against the norm
hierarchies of the jurisdictions that analysis covers. The same authorityType can bind in one
profile and be interpretive support in another. A list of legal sources has no analysis to derive
against, so there is nothing honest to put in its place.
ruleGroupId needs a one-time remap to snippetKey
ruleGroupId was never delivered under its old name after the rename. snippetKey fills the same
role — a stable, tenant-independent key for an authored source — but with different values, and a
source now has exactly one row rather than a chain of historical versions. A ruleGroupId you saved
before the rename matches nothing we send, and publishing snippetKey under the old name would have
looked like a hit without being one.
If you hold saved ruleGroupId values, they need mapping to snippetKey once. Get in touch and we
will do it with you.