Table of Contents

Class Annotation

Namespace
LMKit.Document.Annotations
Assembly
LM-Kit.NET.dll

One annotation record of the LM-Kit annotation standard - the canonical, format-agnostic markup model (see Annotations/ANNOTATION-STANDARD.md, the single source of truth). The same record annotates any supported medium - a document page, an image, a frame - and never carries the vocabulary of a specific storage format: schema adapters load it from and save it to concrete formats with perfect conversion, and the appearance engine generates its visual form with full fidelity on every target.

Geometry is in unrotated content points with a TOP-LEFT origin (y grows downward). Rotation is degrees clockwise about the rect centre; the rect and point lists stay in the unrotated frame.

Properties an annotation kind does not use stay at their defaults and are omitted from the wire. Unknown kinds and unknown wire properties round-trip untouched (Subtype raw string + ExtensionJson).

public sealed class Annotation
Inheritance
Annotation
Inherited Members

Properties

Align

Paragraph alignment of a FreeText mark.

Author

Display author. Servers may overwrite with a resolved identity - the wire value is never trusted as authorship proof.

BlendMode

Compositing mode of the mark's paint. Default Normal; Multiply is the text-highlight / highlighter-ink look.

BorderStyle

Stroke pattern. Default solid; dashed uses [3w, 3w].

BorderWidth

Stroke width in points for stroked kinds. Default 1.

Color

Stroke / text / icon colour as #RRGGBB, or null for the kind's default.

Contents

Text content: the FreeText body, the sticky-note comment, or the comment attached to any other mark.

Created

Creation timestamp in the standard's compact form (D:YYYYMMDDHHmmSS…). Producers set it once; adapters convert to their target's convention.

Custom

Consumer-defined payload carried verbatim (serialized JSON). Never interpreted by LM-Kit.

DestPage

Internal target page (zero-based) of a Link; wins over Uri when both are set.

ExtensionJson

Unknown top-level wire properties, preserved verbatim as raw JSON keyed by property name - the standard's forward-compatibility guarantee. Null when none.

Flags

Behavioral traits of the mark (printable, hidden, locked…). Combine freely; see AnnotationFlags.

FontFamily

Font family of a FreeText mark.

FontSize

Font size in points of a FreeText mark. Default 14.

FontStyle

Font slant of a FreeText mark.

FontWeight

Font weight of a FreeText mark.

Id

Stable identity of the record across edits and round-trips.

InkList

The stroke set of an Ink mark - one point list per stroke.

InteriorColor

Fill colour as #RRGGBB (Square, Circle, FreeText box, Redact burn), or null for no fill.

Kind

The standard kind this record represents - the typed view over Subtype. Setting it rewrites Subtype (no-op for Unknown, which keeps the raw string).

LineEnding

Decoration at the LAST point of a Line.

LinePoints

The two endpoints of a Line.

LineStart

Decoration at the FIRST point of a Line.

Modified

Last-modification timestamp, same form as Created.

Opacity

Constant opacity of the whole mark in [0, 1]. Default 1.

PageIndex

Zero-based index of the annotated unit: a page, an image frame…

Rect

Bounding rectangle of the unrotated mark, or null when the record has no rect of its own (derived from points for Line/PolyLine/Ink when absent).

Rotation

Rotation in degrees clockwise about the rect centre. Default 0. The rect and point lists stay in the unrotated frame; appearance generation bakes the rotation into the rendered form.

SegmentRects

Per-segment marked regions - one rectangle per marked line of content (text markup, Redact, Link). Null when unused.

Source

Provenance: "document" when loaded from the annotated file itself, "external" when it came from an external store. Assigned by loaders; never persisted into files.

Subtype

The raw wire kind name ("Highlight", "Square", "Text"…). Preserved verbatim so kinds outside the v1 vocabulary round-trip. Prefer Kind for semantics.

Uri

External target of a Link; null otherwise.

Vertices

The vertex chain of a PolyLine / Polygon (2+).

Share