GRANSKA

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 — read authorityType.
  • legalWeight — no replacement on a legal source; see below.
  • ruleGroupId — read snippetKey, after remapping once; see below.

On every citation in regulatory_references of GET /v1/jobs/:jobId:

  • primary_norm_level — read primary_authority_type.
  • primary_id — read primary_source.source_key.
  • supporting_norm_level — read supporting_authority_type.
  • supporting_id — read supporting_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.