schema
Diese Seite richtet sich an Entwicklerinnen und Entwickler. Wer ein Zeichen nur finden, herunterladen, drucken oder auf eine Karte legen möchte, braucht sie nicht — dafür gibt es die Anleitungen.
@einsatzzeichen/schema ist das Vokabular des Projekts: die Typen der internen Repräsentation
(IR), die Einheitenrechnung und die Farbpalette. Es rendert nichts, kennt keinen Katalog und hat
null Fremdabhängigkeiten — reines TypeScript.
Zwei Dinge werden hier festgelegt, die überall sonst gelten. Erstens die Millimeter-Regel: alle
Längen in der IR und im Katalog sind Millimeter, umgerechnet wird erst an der Rendergrenze.
Zweitens die Farbpalette: PALETTE bildet die dreizehn Farbtoken auf ihre Hexwerte ab. Ein
Zeichen benennt Farbe über den Token, nie über den Hexwert — deshalb kann ein Render-Theme sie
austauschen, ohne dass die Zeichnung sich ändert.
Installation
Abschnitt betitelt „Installation“Kein Paket dieses Projekts liegt auf npm; alle sind private: true und zeigen mit main auf
./src/index.ts. Es gibt keinen Build-Schritt. Benutzt wird das Paket im Workspace:
{ "dependencies": { "@einsatzzeichen/schema": "workspace:*" } }Wer außerhalb des Workspace baut, löst @einsatzzeichen/* per Alias auf die Quelldateien auf —
so macht es auch diese Website (vite.resolve.alias in astro.config.mjs).
Hauptexporte
Abschnitt betitelt „Hauptexporte“| Export | Was es ist |
|---|---|
SymbolSpec |
die semantische Beschreibung eines Zeichens — kind, organization, strength, capabilities, … |
Drawing, Primitive, Style, Transform |
die IR: was gezeichnet wird, in Millimetern |
PALETTE, ColorToken, RgbHex, ColorPalette |
die dreizehn Farbtoken und ihre Werte |
UNITS_PER_MM, mmToUnits, unitsToMm, unitsEqual, TOLERANCE_UNITS |
Einheitenrechnung und Vergleichstoleranz |
SYMBOL_KINDS, ORGANIZATION_IDS, STRENGTH_IDS, CAPABILITY_IDS, STATE_IDS, COMMS_IDS, DAMAGE_IDS, WILDFIRE_IDS, … |
die erlaubten Werte je Feld der SymbolSpec |
CatalogEntry, CoverageEntry, CoverageManifest |
Katalogeintrag und Manifestzeile |
Review, ReviewSet, ReviewStatus, reviewIssues |
die Reviewform: technisch und fachlich, beide Pflicht |
SourceRecord, Licence, LicenceStatus, ProfileRecord |
Quellen- und Profilregister |
Beispiel
Abschnitt betitelt „Beispiel“import { PALETTE, mmToUnits, type SymbolSpec } from '@einsatzzeichen/schema';
const spec: SymbolSpec = { kind: 'formation', organization: 'thw', strength: 'gruppe',};
PALETTE.blau; // '#003296'mmToUnits(32); // Millimeter in SVG-Einheiten, an der RendergrenzeTexte und Code dieser Website sind mit KI-Unterstützung entstanden und werden von Menschen geprüft; der fachliche Reviewstatus steht an jedem Zeichen.