Variable FeatureConst

Feature: TObject<{
    geometry: TUnion<[TObject<{
        coordinates: TArray<TNumber>;
        type: TLiteral<"Point">;
    }>, TObject<{
        coordinates: TArray<TArray<TNumber>>;
        type: TLiteral<"LineString">;
    }>, TObject<{
        coordinates: TArray<TArray<TArray<TNumber>>>;
        type: TLiteral<"Polygon">;
    }>]>;
    id: TString;
    properties: TObject<{
        ackrequest: TOptional<TObject<{
            ackrequested: TBoolean;
            tag: TString;
            uid: TString;
        }>>;
        archived: TOptional<TBoolean>;
        attachments: TOptional<TArray<TString>>;
        callsign: TString;
        center: TArray<TNumber>;
        chat: TOptional<TObject<{
            chatgrp: TAny;
            chatroom: TString;
            groupOwner: TOptional<TString>;
            id: TString;
            messageId: TOptional<TString>;
            parent: TOptional<TString>;
            senderCallsign: TString;
        }>>;
        contact: TOptional<TObject<{
            endpoint: TOptional<TString>;
            phone: TOptional<TString>;
        }>>;
        course: TOptional<TNumber>;
        dest: TOptional<TUnion<[TObject<{
            after: TOptional<TString>;
            callsign: TOptional<TString>;
            mission: TOptional<TString>;
            path: TOptional<TString>;
            uid: TOptional<TString>;
        }>, TArray<TObject<{
            after: TOptional<(...)>;
            callsign: TOptional<(...)>;
            mission: TOptional<(...)>;
            path: TOptional<(...)>;
            uid: TOptional<(...)>;
        }>>]>>;
        droid: TOptional<TString>;
        fileshare: TOptional<TObject<{
            filename: TString;
            name: TString;
            senderCallsign: TString;
            senderUid: TString;
            senderUrl: TString;
            sha256: TString;
            sizeInBytes: TInteger;
        }>>;
        fill: TOptional<TString>;
        fill-opacity: TOptional<TNumber>;
        flow: TOptional<TRecord<TString, TString>>;
        geofence: TOptional<TObject<{
            boundingSphere: TOptional<TNumber>;
            elevationMonitored: TOptional<TString>;
            maxElevation: TOptional<TString>;
            minElevation: TOptional<TString>;
            monitor: TOptional<TString>;
            tracking: TOptional<TString>;
            trigger: TOptional<TString>;
        }>>;
        group: TOptional<TObject<{
            name: TString;
            role: TString;
        }>>;
        how: TString;
        icon: TOptional<TString>;
        links: TOptional<TArray<TObject<{
            mime: TOptional<TString>;
            parent_callsign: TOptional<TString>;
            point: TOptional<TString>;
            production_time: TOptional<TString>;
            relation: TOptional<TString>;
            remarks: TOptional<TString>;
            type: TOptional<TString>;
            uid: TOptional<TString>;
            url: TOptional<TString>;
        }>>>;
        marker-color: TOptional<TString>;
        marker-opacity: TOptional<TNumber>;
        metadata: TOptional<TRecord<TString, TUnknown>>;
        mission: TOptional<TObject<{
            authorUid: TOptional<TString>;
            guid: TOptional<TString>;
            missionChanges: TOptional<TArray<TObject<{
                contentUid: ...;
                creatorUid: ...;
                details: ...;
                isFederatedChange: ...;
                missionName: ...;
                timestamp: ...;
                type: ...;
            }>>>;
            missionLayer: TOptional<TObject<{
                name: TOptional<(...)>;
                parentUid: TOptional<(...)>;
                type: TOptional<(...)>;
                uid: TOptional<(...)>;
            }>>;
            name: TOptional<TString>;
            tool: TOptional<TString>;
            type: TOptional<TString>;
        }>>;
        precisionlocation: TOptional<TObject<{
            altsrc: TOptional<TString>;
            geopointsrc: TOptional<TString>;
        }>>;
        remarks: TOptional<TString>;
        sensor: TOptional<TObject<{
            azimuth: TOptional<TString>;
            elevation: TOptional<TString>;
            fov: TOptional<TString>;
            model: TOptional<TString>;
            north: TOptional<TString>;
            range: TOptional<TString>;
            roll: TOptional<TString>;
            type: TOptional<TString>;
            version: TOptional<TString>;
            vfov: TOptional<TString>;
        }>>;
        shape: TOptional<TObject<{
            ellipse: TOptional<TObject<{
                angle: TNumber;
                major: TNumber;
                minor: TNumber;
            }>>;
        }>>;
        slope: TOptional<TNumber>;
        speed: TOptional<TNumber>;
        stale: TString;
        start: TString;
        status: TOptional<TObject<{
            battery: TOptional<TString>;
            readiness: TOptional<TString>;
        }>>;
        stroke: TOptional<TString>;
        stroke-opacity: TOptional<TNumber>;
        stroke-style: TOptional<TString>;
        stroke-width: TOptional<TInteger>;
        takv: TOptional<TObject<{
            device: TOptional<TString>;
            os: TOptional<TString>;
            platform: TOptional<TString>;
            version: TOptional<TString>;
        }>>;
        time: TString;
        track: TOptional<TObject<{
            course: TOptional<TString>;
            eCourse: TOptional<TString>;
            eSlope: TOptional<TString>;
            eSpeed: TOptional<TString>;
            slope: TOptional<TString>;
            speed: TOptional<TString>;
        }>>;
        type: TString;
        video: TOptional<TObject<{
            sensor: TOptional<TString>;
            spi: TOptional<TString>;
            url: TOptional<TString>;
        }>>;
    }>;
    type: TLiteral<string>;
}> = ...