interface Asset {
  modelUuid: string;
  modelName: string;
  assetId: string;
  position: [number, number, number];
  rotation: [number, number, number];
  isLocked: boolean;
  isCollidable: boolean;
  isVisible: boolean;
  opacity: number;
  animations?: string[];
  animationState?: {
    current: string;
    playing: boolean;
  };
  eventData?: {
    type: string;
    point?: {
      uuid: string;
      position: [number, number, number];
      rotation: [number, number, number];
    };
    points?: {
      uuid: string;
      position: [number, number, number];
      rotation: [number, number, number];
    }[];
  };
}

type Assets = Asset[];

// DXF Entity Schema

interface DXFEntity {
  type: string;
  vertices?: { x: number; y: number }[];
  center?: { x: number; y: number; z: number };
  radius?: number;
  startAngle?: number;
  endAngle?: number;
}

interface DXFData {
  entities?: DXFEntity[];
}

type WallLineVertex = [
  Vector3,
  string, // uuid
  number,
  string // "WallLine"
];
