Debrief Maritime Analysis Schemas¶
LinkML schemas for Debrief v4.x maritime tactical analysis platform. Defines GeoJSON profile extensions for tracks and reference locations. This is a tracer bullet implementation covering core entity types.
URI: https://debrief.info/schemas/debrief
Name: debrief
Featured Classes¶
The schemas below see the most use across the Debrief codebase. Start here for a quick tour; the full alphabetical tree is below.
Plot features (GeoJSON)¶
These classes define what actually gets drawn on the map and persisted in a STAC item's GeoJSON payload.
- TrackFeature — vessel track with timestamped positions and styling
- ReferenceLocation — fixed reference point or set of points
- SensorData — named sensor and its bearing/range contact series
- SensorContact — a single bearing / range observation
Analysis tooling¶
Metadata that describes the analysis tools exposed by debrief-calc and their inputs.
- Tool — analysis operation with name, version, selection requirements
- ToolParameter — typed parameter declaration (string / number / bool / enum)
- SelectionRequirement — feature-kind and cardinality constraints
Provenance and replay¶
Every transformation records lineage so it can be replayed — these classes capture that chain.
- LogEntry — activity record (what ran, when, against which features)
- WasGeneratedBy — W3C PROV term linking outputs to tool + parameters
- ParameterValue — typed parameter value preserved for replay
- InputFeatureState — pre-operation feature snapshot
Session state (live plot)¶
The shape of the in-memory state a VS Code / web-shell session exposes to the rest of the app.
- GeoJSONFeature — tool-result feature layer entry
- FeatureSelection — currently-selected feature identifiers
- ViewportPolygon — 4-corner polygon describing current view
- TimeInstant — a single point in time (epoch + ISO forms)
- TimeRange — a temporal interval (start, end)
Catalog and platform metadata¶
How Debrief identifies vessels and discovers their metadata from STAC catalogs.
- PlatformRecord — resolved metadata for a single platform (ship, aircraft, etc.)
- BranchRecord — reference to a branched plot in the STAC catalog
Styling¶
- PositionStyle — default styling applied to track positions
Classes¶
| Class | Description |
|---|---|
| BaseFeatureProperties | Abstract base for all GeoJSON feature properties classes |
| CircleAnnotationProperties | Properties for a CircleAnnotation |
| LineAnnotationProperties | Properties for a LineAnnotation |
| MultiPointFeatureProperties | Properties for a MultiPointFeature (multi-point tool results) |
| MultiPolygonFeatureProperties | Properties for a MultiPolygonFeature (multi-polygon tool results) |
| NarrativeEntryProperties | Properties for a NarrativeEntry annotation |
| PolyAnnotationProperties | Properties for a PolyAnnotation |
| RectangleAnnotationProperties | Properties for a RectangleAnnotation |
| ReferenceLocationProperties | Properties for a ReferenceLocation |
| TextAnnotationProperties | Properties for a TextAnnotation |
| TrackProperties | Properties for a TrackFeature |
| VectorAnnotationProperties | Properties for a VectorAnnotation |
| BranchOrigin | Reverse link on a branch plot's system record, pointing to the source plot |
| BranchRecord | Reference to a branched plot |
| BrowserFilterSlice | Multi-axis filter state for the STAC browser panel |
| CircleAnnotation | GeoJSON Feature for circle annotations |
| Coordinate | A geographic coordinate [longitude, latitude] |
| DatasetAxisMetadata | Axis label and type metadata for a dataset chart |
| DatasetDataPoint | A single structured data record within a series or flat dataset |
| DatasetEntry | Standard envelope for all tool result datasets, matching the runtime DatasetE... |
| DatasetMetadata | Chart metadata for a dataset entry |
| DatasetSeries | A named data series within a multi-series dataset |
| DocumentSlice | Editor lifecycle state including dirty tracking and undo history |
| FeatureSelection | Set of selected feature identifiers with metadata (FR-017) |
| FeaturesSlice | Feature selection and visibility state |
| FileProvEntry | File-level provenance event (snapshot or branch creation) |
| GeoJSONEmptyPoint | GeoJSON Point geometry with empty coordinates (for non-spatial features) |
| GeoJSONFeature | GeoJSON Feature representation used for tool result layers |
| GeoJSONGeometry | GeoJSON geometry object (type + coordinates pair) |
| GeoJSONLineString | GeoJSON LineString geometry |
| GeoJSONMultiLineString | GeoJSON MultiLineString geometry for compound tracks |
| GeoJSONMultiPoint | GeoJSON MultiPoint geometry for reference point sets |
| GeoJSONMultiPolygon | GeoJSON MultiPolygon geometry for multi-polygon tool results |
| GeoJSONPoint | GeoJSON Point geometry |
| GeoJSONPolygon | GeoJSON Polygon geometry |
| InputFeatureState | Pre-operation state of a feature captured before a coordinate-mutating tool e... |
| LastToolExecution | Record of the last tool execution, enabling single-step undo |
| LevelDefinition | Named nesting level within a feature hierarchy (Feature 053, FR-010) |
| LineAnnotation | GeoJSON Feature for line segment annotations |
| LineProperties | Styling schema for LineString and MultiLineString geometries |
| LogEntry | A PROV-aligned provenance record stored on GeoJSON features |
| MeasuredArrayPosition | Timestamped geographic position of a towed array centre |
| MultiPointFeature | GeoJSON Feature for multi-point tool results |
| MultiPolygonFeature | GeoJSON Feature for multi-polygon tool results |
| NarrativeEntry | GeoJSON Feature for timestamped narrative/log entries |
| ParameterValue | A typed parameter value with replay metadata |
| PlatformRecord | Fully-resolved metadata for a single platform within a STAC item |
| PlotSummary | Projection of a STAC Item for UI consumption (e |
| PlotTimeExtent | Temporal extent of a plot expressed as ISO 8601 strings |
| PointMetadataEntry | Metadata for a single point within a MultiPoint reference set |
| PointProperties | Styling schema for Point and MultiPoint geometries |
| PolyAnnotation | GeoJSON Feature for arbitrary polygon annotations |
| PolygonProperties | Styling schema for Polygon and MultiPolygon geometries |
| PositionStyle | Default styling configuration for track positions |
| PositionStyleOverride | Per-position style override |
| RectangleAnnotation | GeoJSON Feature for rectangle annotations |
| ReferenceLocation | GeoJSON Feature for fixed reference points or reference point sets |
| ResultsSlice | Accumulated tool result layers and last-execution record for undo support |
| ResultTypePath | Slash-delimited hierarchical type path |
| SegmentMetadata | Per-segment metadata for compound tracks |
| SelectionRequirement | A constraint specifying which feature kinds a tool accepts, with minimum and ... |
| SensorContact | Single sensor measurement record |
| SensorData | Named sensor with contact measurements |
| SessionFile | Persisted session file format (FR-024) |
| SessionState | Root entity containing all session state slices (FR-001, FR-002) |
| SnapshotLinks | Doubly-linked references to adjacent snapshots |
| SnapshotRef | Reference to a snapshot file |
| SpatialSlice | Geographic view state for the map display |
| StacExtensionProperties | Extension properties added to STAC item |
| StacItemSummary | Minimal STAC Item projection for browser tree display and metadata filtering |
| SystemRecordProperties | Properties for the non-spatial system record feature |
| SystemState | GeoJSON Feature for storing non-spatial system state |
| SystemStateProperties | Properties for SYSTEM features storing application state |
| TemporalSlice | Time-related state including navigation, playback, and filtering |
| TextAnnotation | GeoJSON Feature for text annotations at a position |
| TimeFilter | Constraints on the visible time window |
| TimeInstant | A point in time with dual representations (FR-032, FR-033) |
| TimeRange | A temporal interval with inclusive start and end |
| TimestampedPosition | Temporal and kinematic metadata for a single track position |
| TimeStep | Step size for discrete time navigation (FR-008) |
| Tool | An analysis operation with a name, description, version, and selection requir... |
| ToolParameter | A configurable parameter for a tool |
| ToolResultAnnotations | Annotations for MCP tool result content items |
| TrackFeature | GeoJSON Feature representing a vessel track |
| TrackStyle | Composite styling for TrackFeature, supporting both line path and position ma... |
| TUAData | Named TUA solution collection |
| TUASolution | Single Target Uncertainty Area estimate |
| TuneAnnotation | Records a parameter modification (appended, not replacing original) |
| VectorAnnotation | GeoJSON Feature for vector annotations |
| ViewportPolygon | Geographic area as a 4-corner polygon supporting rotated views (FR-012, FR-01... |
| WasGeneratedBy | Identifies the tool and its parameters for a specific invocation |
Slots¶
| Slot | Description |
|---|---|
| $schema | JSON Schema URI |
| activity_id | Unique operation identifier (UUID v4) |
| addressingMode | How addresses at this level are interpreted |
| after_leg | Name of following TMA leg (DYNAMIC_INFILL) |
| ambiguous_bearing | Ambiguous bearing (second solution) in degrees |
| array_centre_mode | How bearing line origin is calculated relative to host platform |
| asset | Relative path to snapshot GeoJSON file |
| base_frequency | Base frequency in Hz (TMA segments) |
| bbox | Bounding box [minLon, minLat, maxLon, maxLat] |
| bearing | Bearing to contact in degrees (0-360) |
| before_leg | Name of preceding TMA leg (DYNAMIC_INFILL) |
| branch_id | Unique branch identifier |
| branch_origin | Reverse link to source plot (set when this plot is a branch) |
| branched_at | When the branch was created (ISO 8601 with timezone) |
| branched_from | Activity ID of the branch point |
| branches | Branch records |
| catalog_id | Parent catalog identifier |
| center | Map center [longitude, latitude] - for spatial state |
| centre_lat | Absolute latitude (mutual exclusive with bearing/range) |
| centre_lon | Absolute longitude (mutual exclusive with bearing/range) |
| color | Stroke color (CSS color string) |
| comment | Operator note |
| contacts | Array of sensor measurements |
| coordinates | [longitude, latitude] in degrees |
| course | Course in degrees (0-360) |
| currentTime | Current playback/display time (FR-005) |
| dash_array | Dash pattern (SVG format, e |
| data_points | Array of structured data records for this series |
| datetime | Creation/capture timestamp (ISO 8601) |
| default | Whether this is the default value |
| default_position_style | Default styling applied to all positions |
| default_value | Default value if not provided |
| deletedFeatures | IDs of features removed (REQUIRED for deletions) |
| depth | Depth in meters (negative = below surface) |
| description | Additional description |
| direction | 'source' or 'target' (for branch events) |
| dirty | Unsaved changes exist - ephemeral (FR-020) |
| disabled | Whether this entry is skipped during replay |
| display_name | Human-readable platform display name override |
| displayMode | Track visualization mode (FR-011) |
| document | Editor state |
| domain | Vessel domain override |
| end | End of time extent (ISO 8601) |
| end_datetime | Range end datetime (ISO 8601) |
| end_time | Segment end timestamp (ISO8601) |
| epoch | Milliseconds since Unix epoch |
| execution_duration | Wall-clock execution time in ISO 8601 duration format (e |
| feature_id | ID of the feature whose pre-operation state is captured |
| feature_tags | Union of all feature-level tags from the plot's GeoJSON features |
| featureCollectionUri | Reference to external feature collection (FR-016) |
| featureIds | Selected feature paths |
| features | Feature-related state |
| fill | Whether to fill the shape |
| fill_color | Fill color (CSS color string) |
| fill_opacity | Fill transparency (0-1) |
| frequency | Measured frequency in Hz |
| generated | Feature IDs or versioned asset paths of outputs |
| generated_result_id | Stable logical identity for artifact-producing tools |
| geometry | Track path as LineString (simple) or MultiLineString (compound) |
| has_ambiguous | Controls ambiguous bearing display |
| has_bearing | Controls bearing line display (true=show, false=hide) |
| has_frequency | Controls frequency data display |
| hiddenFeatureIds | Features hidden from display (FR-018) |
| host_sensor_name | Towed array sensor name (RELATIVE_TMA) |
| host_track_id | ID of track this solution is relative to (RELATIVE_TMA) |
| host_track_name | Name of track this TUA set relates to |
| href | Relative path to artifact file (REQUIRED for artifacts) |
| id | Unique identifier (UUID recommended) |
| index | 0-based ordinal matching coordinates array position |
| input_state | Pre-operation feature states for coordinate-mutating tools |
| iso | ISO 8601 UTC format string |
| item_path | Path to item |
| kind | Feature type discriminator |
| label | Custom label text (null = use timestamp) |
| label_interval | ISO 8601 duration for interval-based label display |
| label_location | Label horizontal alignment |
| last_tool_execution | Last tool execution record for single-step undo |
| latitude | Latitude in degrees (-90 to 90) |
| legacy_style | Legacy symbol name from Debrief symbology (e |
| line | Styling for the track line path |
| line_cap | Line endpoint style |
| line_join | Line join style |
| line_number | Source line number for debugging |
| line_style | Bearing line visual style |
| line_thickness | Bearing line width in pixels |
| location | Array centre position [longitude, latitude] (GeoJSON coordinate order) |
| location_count | Number of reference locations in this plot |
| location_type | Type of reference |
| longitude | Longitude in degrees (-180 to 180) |
| max | Maximum number of features of this kind allowed |
| maxima | Semi-major axis in metres |
| measured_positions | Actual towed array positions for MEASURED array centre mode |
| metadata | Axis definitions and display hints |
| metadata_expression | Serialised CQL2 filter expression from the filter bar, stored as an opaque JS... |
| metadata_filtered_ids | Set of exercise IDs passing the current metadata filter |
| min | Minimum number of features of this kind required |
| minima | Semi-minor axis in metres |
| name | Human-readable segment name |
| nationality | ISO 3166-1 alpha-2 country code override (e |
| new_value | Value after tuning |
| next | Link to next snapshot |
| offset | Sensor offset from host platform in metres |
| offset_bearing | Bearing offset in degrees (RELATIVE_TMA) |
| offset_range | Range offset in metres (RELATIVE_TMA) |
| opacity | Stroke transparency (0-1) |
| orientation | Ellipse orientation from north in degrees |
| origin | Explicit sensor location override [longitude, latitude] |
| param_type | References a schema-defined parameter-type enum by name |
| parameter | Name of the parameter that was changed |
| parameters | Full resolved parameter set |
| path | Full hierarchical path |
| platform_id | Platform/vessel identifier |
| platform_name | Human-readable platform name |
| platforms | Fully-resolved per-platform metadata array |
| playbackRate | Playback speed multiplier 0 |
| playbackState | Current playback state - ephemeral (FR-010) |
| point | Styling for position markers |
| point_metadata | Per-point metadata array, parallel to MultiPoint coordinates |
| position_style_overrides | Parallel array of per-position style overrides |
| positions | Per-position metadata (parallel to coordinates) |
| prev | Link to previous snapshot |
| previous_value | Value before tuning |
| primary | Primary selection path for properties display |
| properties | Track metadata |
| prov_entry_count | Number of provenance entries in the snapshot |
| provenance | PROV-aligned provenance records (append-only log of tool operations) |
| put_label_at | Label position along bearing line |
| radius | Marker radius in pixels |
| range | Range to contact in metres |
| rationale | Free-text analyst annotation explaining the reasoning for this operation |
| required | Whether parameter must be provided |
| requirements | List of selection requirements |
| result_layer_ids | IDs of the result layers produced by the tool |
| result_layers | Accumulated tool result features |
| resultType | Hierarchical result type (e |
| rotation | Map rotation in degrees 0-360 (FR-013) |
| savedAt | When the session was saved (ISO 8601) |
| savePath | Last save location |
| schemaVersion | Schema version for persistence compatibility (FR-026) |
| segment_type | Segment type discriminator |
| segments | Per-segment metadata for compound tracks |
| selected_ids | Array of selected feature IDs - for selection state |
| selection | Currently selected features (FR-017) |
| sensors | Embedded sensor data associated with this track |
| series | Named data series for multi-line/multi-series charts |
| series_key | Series discriminator for multi-series datasets (e |
| shape | Marker shape |
| show_label | Whether to display labels at positions |
| show_symbol | Whether to display a symbol at positions |
| snapshot_links | Doubly-linked snapshot chain |
| solutions | Array of TUA estimates |
| source_asset | Relative path to the source plot file |
| source_feature_ids | IDs of the source features the tool operated on |
| source_features | IDs of input features used to generate this result |
| source_path | Original source file path (for provenance) |
| source_tool | Name of calculation tool that produced this result |
| sourceFeatures | IDs of input features used to generate this result |
| spatial | Geographic view state |
| spatial_filter_active | Whether the map viewport is used as a spatial filter |
| speed | Speed in knots |
| start | Start of time extent (ISO 8601) |
| start_datetime | Range start datetime (ISO 8601) |
| start_time | Segment start timestamp (ISO8601) |
| state_type | Discriminator for state variant (temporal, spatial, selection) |
| stepSize | Step size for discrete navigation (FR-008) |
| store_id | Parent store identifier (needed for URI construction) |
| stroke | Whether to draw outline |
| style | Per-segment line styling override |
| symbol | Shape to use for position symbols |
| symbol_interval | ISO 8601 duration for interval-based symbol display |
| tags | Free-text labels assigned to this feature by the analyst |
| target_asset | Relative path to the branched plot file |
| temporal | Time-related state |
| temporal_filter_active | Whether the timeline range is used as a temporal filter |
| text | Narrative text content |
| time | Position timestamp (ISO8601) |
| time_extent | Temporal extent of the plot (start/end ISO 8601 strings) |
| timeFilter | Optional visible time window constraint (FR-007) |
| timeRange | Full temporal extent of loaded data (FR-006) |
| timestamp | When the operation occurred (ISO 8601 with timezone) |
| title | Plot title from STAC metadata |
| tool | Tool identifier (kebab-case, e |
| tool_id | Identifier of the tool that was executed |
| tool_version | Semantic version of the tool (e |
| track_count | Number of tracks in this plot |
| track_id | Associated track identifier (optional) |
| track_type | Type of track |
| tuas | Embedded Target Uncertainty Area data associated with this track |
| tunable | Whether this parameter can be modified during replay |
| tune | Parameter tuning record |
| type | Geometry type discriminator |
| unit | Unit of the step |
| units | Units for the axis values (e |
| used | Feature IDs of inputs |
| valid_from | Start of validity period |
| valid_until | End of validity period |
| value | The parameter value (any JSON type) |
| version | Tool version string for provenance tracking |
| vertex_count | Number of unique vertices (excluding ring closure point) |
| vessel_class | Full vessel classification path override using slash-separated notation (e |
| vessel_role | Vessel role override (parent of leaf in classification path, e |
| vessel_type | Vessel type override (leaf of classification path, e |
| viewport | Visible map area as 4-corner polygon (FR-012) |
| visible | Contact visibility |
| was_generated_by | Tool identity and parameters for this invocation |
| weight | Stroke width in pixels |
| worm_in_hole | Display mode flag |
| x_value | Primary independent-axis value serialised as a string |
| xAxis | X-axis metadata |
| y_value | Primary dependent-axis value serialised as a string (decimal or label) |
| yAxis | Y-axis metadata |
| zoom | Map zoom level - for spatial state |
Enumerations¶
| Enumeration | Description |
|---|---|
| AddressingMode | How addresses in a selection path level are interpreted (Feature 053) |
| ArrayCentreModeEnum | Array centre calculation mode for towed array sensors |
| CardinalDirectionEnum | Eight-point compass directions |
| DisplayModeEnum | Track visualization display mode |
| DurationPresetEnum | Common ISO 8601 duration presets for interval parameters |
| ErrorCategory | Categories of tool execution errors |
| FeatureKindEnum | Discriminator for GeoJSON feature types |
| FileProvDirectionEnum | Direction of a branch event |
| FileProvEventTypeEnum | Type of file-level provenance event |
| LabelLocationEnum | Horizontal alignment of contact labels |
| LineCapEnum | How line endpoints are rendered (SVG/CSS standard) |
| LineJoinEnum | How line segment joints are rendered (SVG/CSS standard) |
| LineLabelPositionEnum | Position along the bearing line where the label is placed |
| LineStyleEnum | Visual style for bearing lines |
| LocationTypeEnum | Type of reference location |
| MarkerSymbolEnum | Marker shapes for tool parameter choices (superset of PointShapeEnum) |
| NamedColorEnum | Predefined named colours for styling tool parameters |
| NumericPresetEnum | Common numeric presets for count and distance parameters |
| OutputKindEnum | Canonical output kind identifiers for tool result features |
| ParameterTypeEnum | Names of available schema-defined parameter types |
| PlaybackStateEnum | Current state of time playback |
| PointShapeEnum | Valid shapes for point markers |
| ReferencePointPatternEnum | Generation patterns for reference point placement |
| ResultCategoryEnum | Top-level result type categories per TOOL-RESULTS |
| ResultTopType | Top-level result type categories |
| SegmentTypeEnum | Discriminator for track segment types within compound tracks |
| SystemStateTypeEnum | Discriminator for system state variants |
| TimeUnitEnum | Units for time step navigation |
| TrackTypeEnum | Type of track feature |
| VesselDomainEnum | Top-level vessel domain classification |
Types¶
| Type | Description |
|---|---|
| Boolean | A binary (true or false) value |
| Coordinate | A geographic coordinate value (longitude or latitude in degrees) |
| CSSColor | A CSS color string (e |
| Curie | a compact URI |
| Date | a date (year, month and day) in an idealized calendar |
| DateOrDatetime | Either a date or a datetime |
| Datetime | The combination of a date and time |
| Decimal | A real number with arbitrary precision that conforms to the xsd:decimal speci... |
| Double | A real number that conforms to the xsd:double specification |
| Float | A real number that conforms to the xsd:float specification |
| Integer | An integer |
| Jsonpath | A string encoding a JSON Path |
| Jsonpointer | A string encoding a JSON Pointer |
| Ncname | Prefix part of CURIE |
| Nodeidentifier | A URI, CURIE or BNODE that represents a node in a model |
| Objectidentifier | A URI or CURIE that represents an object in the model |
| Sparqlpath | A string encoding a SPARQL Property Path |
| String | A character string |
| Time | A time object represents a (local) time of day, independent of any particular... |
| Uri | a complete URI |
| Uriorcurie | a URI or a CURIE |
Subsets¶
| Subset | Description |
|---|---|