Skip to content

Common types

Building blocks used by all ReqSeq file formats and commands. See docs/adr/0004 and 0005.

Element ID: random UUID version 4, lower case, never changes (D-017, SR-002).

Type: string.

Display ID: type prefix, dash, the trailing hex characters of the UUID with dashes removed, at least 6, more until unique in the workspace (D-017, SR-002 AK3). The file name uses 12 (D-056).

Type: string.

UUID, short ID or identifier (e.g. SR-036), any case; several matches give ref.ambiguous.

Type: string.

A UUID version 4 as a caller gives it, in any case; the tool stores it in lower case (spec question #316).

Type: string.

A reference to an element as the tool writes it in outputs: UUID or short ID in their canonical form.

Type: uuid or shortId.

How an output names an element it gives elsewhere by UUID only (#588), for people: its short ID, its identifier when it has one (#305) and its title, as element.list gives them.

Type: object.

Field Type Required Description
id uuid yes Element ID: random UUID version 4, lower case, never changes (D-017, SR-002).
repository string yes Workspace name of the repository of its file.
shortId shortId yes Display ID: type prefix, dash, the trailing hex characters of the UUID with dashes removed, at least 6, more until unique in the workspace (D-017, SR-002 AK3). The file name uses 12 (D-056).
identifier string no
title string yes

Fassung: normal-form version, colon, first 16 hex characters of the SHA-256 over the canonical content (D-013, D-027, ADR-0005). Example: n1:9f86d081884c7d65.

Type: string.

SHA-256 of the bytes of an element file, lower-case hex: a write precondition, never stored and not a version (ADR-0005).

Type: string.

Fixed metamodel key of a type, property, relation kind or status value. Readable English, lower case, dashes (D-043, SR-010 AK2).

Type: string.

A metamodel value as a person gives it: its key or its display name, in any case (Obsolete names the status obsolete). The tool stores the key (SR-012 AK3).

Type: string.

Target of a relation as stored in the source file (D-013, D-058, SR-005, SR-021). Within the same repository: id, version, title. Across repositories: id, version, repository (workspace name of the target’s repository), never title or text (D-058). Written as one flow mapping per line (SR-102, ADR-0004).

Type: object.

Field Type Required Description
id uuid yes Element ID: random UUID version 4, lower case, never changes (D-017, SR-002).
version version yes Fassung: normal-form version, colon, first 16 hex characters of the SHA-256 over the canonical content (D-013, D-027, ADR-0005). Example: n1:9f86d081884c7d65.
title string no
repository string no Workspace name of the target’s repository; required across repositories (D-058), absent within one.

Relations a caller gives to element.create or element.update by relation kind key, each with the element reference of its target or a list of them (UUID, short ID or identifier, as relation.add takes them). The tool checks them as relation.add does and stores each target with its current version (#175).

Type: object.

Target of a relation as a caller gives it to element.create, element.update or element.bulkUpdate (SR-021). Only id and, across repositories, repository name the target; id is an element reference like the one relation.add takes (UUID, short ID or identifier), and the tool writes the target’s UUID (#169). A plain string item is the same as { id } with it (#196). A target the property already stores keeps its stored version and form; for every other target the tool writes its current version and the title (same repository) or repository (across repositories) itself. A given version or title is ignored (spec question #177).

Type: object.

Field Type Required Description
id elementRef yes UUID, short ID or identifier (e.g. SR-036), any case; several matches give ref.ambiguous.
version version no Fassung: normal-form version, colon, first 16 hex characters of the SHA-256 over the canonical content (D-013, D-027, ADR-0005). Example: n1:9f86d081884c7d65.
title string no
repository string no Workspace name of the target’s repository; absent for the source’s own repository. A short ID or identifier is resolved in it.

A calendar date YYYY-MM-DD (RFC 3339 full-date).

Type: string.

The item under test (Prüfling): the concrete build or sample that was checked. No white space at either end and no control characters other than tab, line feed and carriage return.

Type: string.

A date and time with time zone (RFC 3339 date-time), for example 2026-10-26T09:30:00Z.

Type: string.

Full Git object ID (SHA-1 or SHA-256).

Type: string.

Path relative to the repository or file it appears in, forward slashes, no .. segments.

Type: string.

A file or folder on the local machine, relative or absolute. CLI: relative to the current folder (the CLI makes it absolute before the call); API and MCP: relative to the workspace root, and only inside the repositories of the workspace, also after links are followed; ~ is not expanded (SR-142, ADR-0009).

Type: string.

A finding or hint. Commands return problems as data so every access shows the same result (SR-080).

Type: object.

Field Type Required Description
code problemCode yes Stable codes. New codes are added here first, in the PR that needs them.
severity one of "error", "warning", "info" yes
message string yes
file string no
repository string no Workspace name of the repository the problem is about (element files of several repositories, the metamodel repository, a repository Git cannot read); file, when given, is relative to that repository.
line integer no
elementId uuid no Element ID: random UUID version 4, lower case, never changes (D-017, SR-002).
elementRepository string no Workspace name of the repository of the element the problem is about, when repository and file name another file (the evidence record of evidence.outdated, SR-025 AK4). With elementFile it names one copy of a UUID several files share (SR-088).
elementFile string no The file of the element the problem is about, relative to elementRepository; given with it.
elementShortId shortId no Short ID of the element elementId names, for display (SR-002 AK3); given on every problem that names an element of the workspace, by every command that has read the elements.
elementIdentifier string no Identifier of the element elementId names (the value of its property with the meaning identifier, #305), for display next to elementShortId; given with it when the element has one.
targetId uuid no Element ID: random UUID version 4, lower case, never changes (D-017, SR-002).
storedVersion version no Fassung: normal-form version, colon, first 16 hex characters of the SHA-256 over the canonical content (D-013, D-027, ADR-0005). Example: n1:9f86d081884c7d65.
currentVersion version no Fassung: normal-form version, colon, first 16 hex characters of the SHA-256 over the canonical content (D-013, D-027, ADR-0005). Example: n1:9f86d081884c7d65.
storedDate string or null no
currentDate string or null no
hintId string no Stable ID of a confirmable hint (D-042); on the hint.* problems of hint.confirm, the ID as given.

Stable codes. New codes are added here first, in the PR that needs them.

Type: one of "file.invalid-yaml", "file.conflict-markers", "file.unreadable", "file.faulty", "file.yaml-warning", "file.skipped", "element.invalid", "element.duplicate-id", "element.duplicate-identifier", "element.file-name-clash", "element.unknown-type", "element.unknown-property", "element.missing-required", "element.wrong-value-kind", "element.status-not-allowed", "element.missing-status", "element.statement-without-text", "relation.missing-target", "relation.unresolved-link", "relation.not-a-link", "relation.inaccessible-target", "relation.not-allowed", "relation.outdated", "relation.target-superseded", "relation.not-found", "relation.version-added", "hint.not-confirmable", "hint.not-found", "trace.cycle", "trace.no-parent", "variant.core-changed", "variant.superseded-in-validity", "variant.nested", "variant.target-not-core", "variant.core-changed-since-baseline", "variant.core-new-since-baseline", "evidence.unknown-element", "evidence.invalid-record", "evidence.outdated", "evidence.not-enriched", "evidence.folder-missing", "evidence.ambiguous-element", "baseline.invalid", "baseline.repository-commit-differs", "filter.invalid", "filter.duplicate-name", "metamodel.invalid", "metamodel.meaning-unassigned", "workspace.repository-missing", "workspace.metamodel-mismatch", "workspace.invalid", "workspace.not-watched", "git.unavailable", "git.revision-missing", "reqif.replaces-local", "reqif.choice-unused", "reqif.edited-elsewhere", "reqif.mapping-differs".

Error of a command call. Same codes over CLI (stderr, exit code), API (HTTP body) and MCP (tool error). command.not-implemented: the command is in the catalog, but this version does not implement it yet (a later stage).

Type: object.

Field Type Required Description
code one of "input.invalid", "ref.unknown", "ref.ambiguous", "workspace.not-found", "workspace.read-only", "element.read-only", "element.not-found", "metamodel.meaning-unassigned", "relation.not-allowed", "variant.nested", "baseline.uncommitted-changes", "baseline.exists", "reqif.invalid", "reqif.unmapped", "reqif.conflict", "git.unavailable", "git.commit-not-found", "file.changed-on-disk", "file.faulty", "file.read-only", "file.not-regular", "file.folder-missing", "command.not-implemented", "internal" yes
message string yes
details object no

True when a result is incomplete because targets are in repositories that are not available locally (SR-006 AK2, SR-036 AK3).

Type: boolean.

Which elements a command works on: a saved filter, an inline filter, a package, a baseline or explicit IDs, optionally seen through a variant view.

Type: object.

Field Type Required Description
ids array of elementRef no
filter string no Name of a saved filter (SR-070).
where condition no Combinable condition (SR-069). Exactly one operator per object. all: every condition holds ([] holds), any: some holds ([] does not), not: it does not hold.
package elementRef no UUID, short ID or identifier (e.g. SR-036), any case; several matches give ref.ambiguous.
baseline string no Name of a baseline, or its file name in the baselines folder (with or without .yaml). Not every command takes it yet.
view view no core, a variant ID, or absent for all. A variant’s view: the core requirements it neither excludes nor replaces, plus those valid for it; elements without validity property are in every view (SR-043).

A view as the tool writes it in outputs: core or the canonical UUID or short ID of a variant (SR-043).

Type: "core" or elementId.

core, a variant ID, or absent for all. A variant’s view: the core requirements it neither excludes nor replaces, plus those valid for it; elements without validity property are in every view (SR-043).

Type: "core" or elementRef.

SR-031, SR-034. indirect = indirectly verified via children.

Type: one of "open", "verified", "indirect", "failed", "outdated".

offen, erfolgreich, nicht erfolgreich, veraltet.

Type: one of "open", "validated", "failed", "outdated".

An object of a ReqIF file by its IDENTIFIER in the source, with the UUID of its element when there is one (ADR-0013).

Type: object.

Field Type Required Description
identifier string yes
id uuid no Element ID: random UUID version 4, lower case, never changes (D-017, SR-002).

Content of a ReqIF file that is not taken over without loss (SR-053 AK2, SR-095 AK3): the object, its element when there is one, a stable code and the reason (ADR-0013).

Type: object.

Field Type Required Description
identifier string yes IDENTIFIER of the SPEC-OBJECT, SPEC-RELATION or SPECIFICATION.
kind one of "spec-object", "spec-relation", "specification" yes
id uuid no Element ID: random UUID version 4, lower case, never changes (D-017, SR-002).
code one of "omitted-type", "omitted-attribute", "omitted-value", "hierarchy", "relation-end-not-imported", "relation-not-allowed", "relation-duplicate", "type-without-origin", "date-time", "xhtml-style", "xhtml-rowspan", "xhtml-colspan", "xhtml-cell-block", "xhtml-element", "image-missing", "image-outside" yes
reason string yes

A type, attribute, relation type or enumeration value of a ReqIF file that the mapping neither maps nor omits (SR-055 AK1). source is its LONG-NAME or IDENTIFIER; sourceType the SPEC-OBJECT-TYPE of an attribute or value, attribute the attribute of a value.

Type: object.

Field Type Required Description
kind one of "type", "attribute", "relation", "value" yes
source string yes
sourceType string no
attribute string no