docs← Back to article

Markdown for LLMs

LDC-E1101 — Package name segment outside the canonical syntax

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

Download this articlePlain text ↗
# LDC-E1101 — Package name segment outside the canonical syntax

## What it means

A package name is a lowercase dotted path: each segment starts with a
lowercase letter, followed by lowercase letters, digits, or underscores.
Anything else — an uppercase letter, a dash, a leading digit — steps
outside the shape the compiler accepts, and the check stops at the
offending segment.

The repair is a rename: adjust the segment and every import that names
the package. No declaration logic ever needs to change.

## Example

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

entity Applicant;
```

## Fix

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

entity Applicant;
```

## Engine message

The engine reports this in its own wording:

```text
example.law:2:9: error LDC-E1101: package name segment "Demo" is outside the §22 canonical syntax (lowercase dotted, [a-z][a-z0-9_]*)
```

## Related

- [Vocabulary](/constructs/vocabulary/) — how names are declared and which positions take them.
- [LDC-E1113](/diagnostics/LDC-E1113/) — a package must not claim a standard-library name either.