docs← Back to article

Markdown for LLMs

LDC-E1373 — Source link outside the dictionary

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# LDC-E1373 — Source link outside the dictionary

## What it means

A source annotation records how a declaration relates to its source:
it formalizes it, quotes it, interprets it, and so on. Its named attributes
are limited to `relation`, `coverage`, and `quote`. Unknown attribute names
and relation/coverage values outside their closed dictionaries are refused
at the annotation, including declarations nested in an interpretation.
Valid attributes are preserved in typed anchor nodes; a misspelled name
must not silently disappear during lowering. Quote shape and inclusion
are checked separately by E5208.

The repair is to use one of the listed relations. The annotation
describes the link; it must speak the language the tooling reads.

## Example

```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";

@source(relation = "bogus")
entity A;
```

## Fix

```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";

@source(relation = "formalizes")
entity A;
```

## Engine message

The engine reports this in its own wording:

```text
example.law:5:1: error LDC-E1373: @source: relation = "bogus" — value outside the §33 dictionary (allowed: formalizes, interprets, quotes, paraphrases, derives_from, applies, limits, invalidates, distinguishes); a link attribute is not lowered into CLIR (errata E-0183), and a typo is otherwise caught by nothing
```

## Related

- [Sources](/constructs/sources/) — anchoring declarations to their sources.