import type { InventoryEntry, Vector3Dto } from "./contractsCommon"; export interface ShipSnapshot { id: string; label: string; kind: string; class: string; systemId: string; localPosition: Vector3Dto; localVelocity: Vector3Dto; targetLocalPosition: Vector3Dto; state: string; orderKind: string | null; defaultBehaviorKind: string; behaviorPhase: string | null; controllerTaskKind: string; commanderObjective: string | null; celestialId?: string | null; dockedStationId?: string | null; commanderId?: string | null; policySetId?: string | null; cargoCapacity: number; travelSpeed: number; travelSpeedUnit: string; inventory: InventoryEntry[]; factionId: string; health: number; history: string[]; currentAction?: ShipActionProgressSnapshot | null; spatialState: ShipSpatialStateSnapshot; } export interface ShipDelta extends ShipSnapshot { } export interface ShipActionProgressSnapshot { label: string; progress: number; } export interface ShipSpatialStateSnapshot { spaceLayer: string; currentSystemId: string; currentCelestialId?: string | null; localPosition?: Vector3Dto | null; systemPosition?: Vector3Dto | null; movementRegime: string; destinationNodeId?: string | null; transit?: ShipTransitSnapshot | null; } export interface ShipTransitSnapshot { regime: string; originNodeId?: string | null; destinationNodeId?: string | null; startedAtUtc?: string | null; arrivalDueAtUtc?: string | null; progress: number; }