"""vmssailor.core — Modelo de datos compartido entre Studio y Runtime. Este módulo es el **corazón del sistema**. Define todas las entidades del producto y se construye en Sprint 0 antes de cualquier UI o driver. Entidades principales: - `ShipCoord` — sistema de coordenadas naval (x_pp, y_cl, z_bl) - `Vessel`, `Deck` — definición física del buque - `Equipment`, `EquipmentModel`, `Sensor` — equipos y sus sensores típicos - `Tag`, `AlarmConfig`, `TagBinding` — punto I/O concreto y su mapeo físico - `CardInstance`, `Bus`, `Topology` — tarjetas AR-NMEA-IO y la red - `Alarm` — instancia activa de alarma - `PermissiveRule`, `Condition` — pre-condiciones para acciones de control - `Project` — agregado raíz que une todo lo anterior Reglas de oro relevantes: - Coordenadas navales SIEMPRE: ShipCoord. - Unidades SI internas SIEMPRE: m, kg, Pa, °C, s. - Idioma: español por defecto (campos `name`, `description` libres). - Persistencia portable a SQLite (`.vmsproj`). """ from vmssailor.core.alarm import Alarm from vmssailor.core.card import Bus, CardInstance, Topology from vmssailor.core.coords import ShipCoord from vmssailor.core.enums import ( AlarmPriority, AlarmState, AuthorityRequired, BusRole, ChannelType, ControlMode, EquipmentCategory, FilterType, Protocol, Quality, SignalType, SystemId, UnitSI, VesselSubtype, VesselType, ) from vmssailor.core.equipment import Equipment, EquipmentModel, EquipmentSpec, Sensor from vmssailor.core.permissive import Condition, PermissiveRule from vmssailor.core.project import Project from vmssailor.core.tag import AlarmConfig, Scaling, Tag, TagBinding from vmssailor.core.vessel import Bulkhead, Deck, Vessel __all__ = [ # noqa: RUF022 -- agrupado por entidad, no alfabético, para legibilidad # coords "ShipCoord", # enums "AlarmPriority", "AlarmState", "AuthorityRequired", "BusRole", "ChannelType", "ControlMode", "EquipmentCategory", "FilterType", "Protocol", "Quality", "SignalType", "SystemId", "UnitSI", "VesselSubtype", "VesselType", # vessel "Bulkhead", "Deck", "Vessel", # equipment "Equipment", "EquipmentModel", "EquipmentSpec", "Sensor", # tag "AlarmConfig", "Scaling", "Tag", "TagBinding", # card "Bus", "CardInstance", "Topology", # alarm "Alarm", # permissive "Condition", "PermissiveRule", # project (root aggregate) "Project", ]