# CHANGELOG

## Emoji Cheatsheet
- :pencil2: doc updates
- :bug: when fixing a bug
- :rocket: when making general improvements
- :white_check_mark: when adding tests
- :arrow_up: when upgrading dependencies
- :tada: when adding new features

## Version History

### Pending Fixed

### v14.44.3 - 2025-07-07

- :bug: Hanle `hae` as `NaN`

### v14.44.2 - 2025-07-07

- :arrow_up: Update Core Deps

### v14.44.1 - 2025-07-05

- :rocket: Make Chat.ID Optional

### v14.44.0 - 2025-07-03

- :tada: Add support for parsing Chat Receipt CoTs (`b-t-f-d`, `b-t-f-r`, `b-t-f-p`, `b-t-f-s`) - the ATAK style `__chatreceipt` detail is now included in the `Detail` schema and populates `properties.chat` in `to_geojson`
- :tada: Add `DirectChatReceipt` builder for generating Chat Receipt CoTs
- :tada: Add `CoT.is_chat_receipt()` helper
- :white_check_mark: Add tests for ATAK (`__chatreceipt`) & WinTAK (`__chat`) style Chat Receipts

### v14.43.2 - 2025-07-03

- :arrow_up: Update protobuf

### v14.43.1 - 2025-07-02

- :rocket: Include error logging if the XML is invalid

### v14.43.0 - 2025-07-01

- :arrow_up: Migrate to `@tak-ps/xml-js` which is a fill TypeScript port of `xml-js`
- :bug: Fix attribute escaping in `xml-js` to ensure callsigns with `&` are properly escaped

### v14.42.1 - 2025-06-25

- :arrow_up: Remove `rimraf` now that `node.fsp.rm` is available
- :arrow_up: Update Core Deps

### v14.42.0 - 2025-06-24

- :bug: Ensure empty track.slope doesn't result in a parsing error

### v14.41.0 - 2025-06-13

- :bug: Fix Opacity bug in Polygon Features created via ATAK
- :bug: Fix ellipse orientation in ATAK created Ellipse Features

### v14.40.1 - 2025-06-11

- :arrow_up: Update Core Deps

### v14.40.0 - 2025-06-11

- :rocket: Introduce BiDirectional Support for CBRN Data
- :rocket: Introdice BiDirectional Support for `spatial` attribute - Closes: https://github.com/dfpc-coe/node-CoT/issues/130

### v14.39.0 - 2025-06-11

- :tada: Introduce CBRN Data Types

### v14.38.0 - 2025-05-20

- :arrow_up: Update to strongly typed archiver library

### v14.37.2 - 2025-05-03

- :arrow_up: Update all Core Deps

### v14.37.1 - 2025-04-27

- :arrow_up: Update all Core Deps

### v14.37.0 - 2025-04-20

- :arrow_up: Update all Core Deps

### v14.36.0 - 2025-04-14

- :bug: Allow buffer input to Data Package

### v14.35.1 - 2025-04-14

- :bug: Fix TS Build Error

### v14.35.0 - 2025-04-14

- :rocket: Add support for additional Ellipse Types

### v14.34.0 - 2025-04-13

- :arrow_up: Remove `tape` in favor of `node:test` for unit tests

### v14.33.0 - 2025-04-11

- :rocket: `creator.callsign` property is optional

### v14.32.0 - 2025-04-06

- :arrow_up: Update to TypeScript@6

### v14.31.0 - 2025-03-26

- :tada: Introduce basic validation CLI
- :rocket: Normalize `False`/`True` boolean values to actual booleans when parsing XML

### v14.30.1 - 2025-03-18

- :tada: Retain Non-TAK Server Flow Tags

### v14.30.0 - 2025-03-18

- :tada: Add the ability to reset flow tags

### v14.29.0 - 2025-03-12

- :rocket: Add MVP for MissionChat builder

### v14.28.1 - 2025-03-10

- :arrow_up: Update Core Deps
- :white_check_mark: Add test for XML Escaped Characters

### v14.28.0 - 2025-02-27

- :rocket: If a `LineString` feature is provided that happens to have the same first and end coordinate, TAK will treat it as a polygon as the U-D type doesn't differentiate
           Set fillOpacity: 0 for LineString features to ensure they at least look correct. When it is parsed back into GeoJSON it will "become" a polygon which will need to 
           be handled by downstream users if they want to maintain the original geometry type

### v14.27.0 - 2025-02-26

- :tada: Add bi-directional parsing of `marti_archive` tag in `dest` section of CoT messages

### v14.26.0 - 2025-02-26

- :tada: Add support for Marti.archive=<boolean> which in TAK server 5.7 will disable archiving in the `cot_router` table

### v14.25.0 - 2025-02-26

- :rocket: Make Geofence Types Boolean where possible

### v14.24.3 - 2025-02-20

- :rocket: Update to_geojson conversion of missionChanges

### v14.24.2 - 2025-02-20

- :rocket: Set `tool` as optional property in MissionChange contentResource

### v14.24.1 - 2025-02-20

- :rocket: Set `filename` as optional property in MissionChange contentResource

### v14.24.0 - 2025-02-19

- :tada: Update CoT and GeoJSON schemas to support the contentResource type on MissionChange objects

### v14.23.2 - 2025-02-13

- :bug: Ensure Fill Color attribute is on all Polygon types

### v14.23.1 - 2025-02-13

- :bug: Fix color issue surfaced by KML Parsing fixes in 14.23

### v14.23.0 - 2025-02-13

- :bug: Fix transparency parsing and writing of KML Alpha values

### v14.22.1 - 2025-02-07

- :bug: Fix test input for isFederatedChange

### v14.22.0 - 2025-02-07

- :rocket: Change isFederatedChange from `String` to `Boolean` to match API Definition

### v14.21.0 - 2025-02-04

- :rocket: Include more properties from MOBAC Basemap.xml

### v14.20.0 - 2025-02-03

- :rocket: Permissive changes to UID Schema

### v14.19.0 - 2025-01-28

- :rocket: Update MissionChange Types

### v14.18.4 - 2025-01-02

- :arrow_up: Update Core Deps

### v14.18.3 - 2025-01-02

- :bug: Fixing GH Actions Trusted Publishing

### v14.18.2 - 2025-01-02

- :bug: Ensure normalize step never produces center with > 3 coordinates

### v14.18.1 - 2025-12-24

- :rocket: Update GitHub Actions release step

### v14.18.0 - 2025-12-21

- :arrow_up: Update Protobuf@8

### v14.17.3 - 2025-12-16

- :rocket: Fix Build

### v14.17.2 - 2025-12-16

- :rocket: Add Build Step

### v14.17.1 - 2025-12-15

- :rocket: Update Release Process

### v14.17.0 - 2025-12-08

- :tada: Support passing through non-URL Links

### v14.16.0 - 2025-11-26

- :tada: Bi-Directional MilIcon Support

### v14.15.0 - 2025-11-18

- :tada: Add Mission Link Field

### v14.14.0 - 2025-11-17

- :tada: Add BiDirectional support for Spotted Map Items

### v14.13.0 - 2025-11-10

- :tada: Allow setting rotation on Features

### v14.12.0 - 2025-10-17

- :tada: Allow setting display minzoom/maxzoom on Features

### v14.11.1 - 2025-10-12

- :bug: Ensure Direct Chat messages have a `Dest` flag

### v14.11.0 - 2025-10-10

- :rocket: Fix version conflict on NPM

### v14.10.0 - 2025-10-10

- :rocket: Expand type definitions and tests to allow parsing DataPackages that include an AOI file from ATAK

### v14.9.3 - 2025-10-03

- :bug: Ensure additional coordinates are removed properly in normalize step

### v14.9.2 - 2025-09-25

- :bug: Relax Creator parsing to allow undefined `time`

### v14.9.1 - 2025-09-17

- :bug: Relax Mission Change parsing to allow empty `details`

### v14.9.0 - 2025-09-17

- :bug: Relax Mission Change parsing to allow empty `creatorUid`

### v14.8.2 - 2025-09-15

- :bug: Improve COT Type Parsing

### v14.8.1 - 2025-09-12

- :rocket: Support Circle KML Style Properties

### v14.8.0 - 2025-09-12

- :rocket: Support Circle KML Style Properties

### v14.7.9 - 2025-09-12

- :rocket: Loosen support for Route Prefix

### v14.7.8 - 2025-09-11

- :rocket: Loosen support for Route NavCues

### v14.7.7 - 2025-09-09

- :arrow_up: Update UUID to latest version

### v14.7.6 - 2025-09-08

- :bug: https://jdstaerk.substack.com/p/we-just-found-malicious-code-in-the - Revert Deps

### v14.7.5 - 2025-09-07

- :bug: Migrate single point 2525D symbols to `__milicon`

### v14.7.4 - 2025-09-07

- :bug: Support TAK Aware's Pathless Iconset Property

### v14.7.3 - 2025-09-07

- :rocket: MilSym Battle Dimension is now case-insensitive

### v14.7.2 - 2025-09-07

- :rocket: MilSym Augmentation should never error out parsing

### v14.7.1 - 2025-09-07

- :rocket: Export CoTOptions objects from CoT for downstream users

### v14.7.0 - 2025-09-07

- :rocket: Introduce 2525 Augmentation Feature

### v14.6.0 - 2025-09-06

- :arrow_up: Update Core Deps

### v14.5.0 - 2025-08-26

- :arrow_up: Update Core Deps

### v14.4.0 - 2025-08-23

- :rocket: Include types in package exports field

### v14.3.0 - 2025-08-19

- :tada: Add TAK Request/Response type defs

### v14.2.2 - 2025-08-19

- :bug: Postfix Icon with .png if it isn't present

### v14.2.1 - 2025-08-12

- :rocket: Include ACKRequested in FileRequest Builder

### v14.1.1 - 2025-08-07

- :rocket: Support WebIcon style icon paths

### v14.1.0 - 2025-08-07

- :rocket: Include `InputFeatureCollection` and `FeatureCollection` in types

### v14.0.5 - 2025-07-13

- :bug: Fix TS error

### v14.0.4 - 2025-07-13

- :rocket: Prepend `#` to color values in normalized features to ensure they are valid hex colors

### v14.0.3 - 2025-07-13

- :rocket: Use `Type.Literal` for `type: Feature`

### v14.0.2 - 2025-07-13

- :rocket: Include .d.ts files in output

### v14.0.1 - 2025-07-13

- :bug: Ensure `archived: true` is set on normalized features as these will result in `u-d` type CoTs

### v14.0.0 - 2025-07-13

- :rocket: Replace AJV with TypeBox for schema validation in `from_geojson`
- :rocket: **Breaking** All parser functions now return `Promise`

### v13.6.0 - 2025-07-10

- :rocket: Include KML Styling

### v13.5.0 - 2025-07-10

- :rocket: Update Schema to support additional symbol properties
- :tada: Add support for new circle type `u-r-b-c-c`
- :rocket: Add support for Circle Style properties
- :tada: Add support for `labels_on`

### v13.4.0 - 2025-07-03

- :tada: Add `Emergency` section to schema
- :rocket: Infer `emergency` section in `from_geojson` if an Emergency CoT type is matched

### v13.3.0 - 2025-06-25

- :rocket: Direct import of CoT Library

### v13.2.0 - 2025-06-25

- :rocket: Web Compatible UUID generation

### v13.1.0 - 2025-06-25

- :tada: Support parsing to Route format if type is set during `from_geojson`

### v13.0.0 - 2025-06-25

- :tada: The base CoT object is now seperate from the Parser
- :rocket: Migrate to/from calls to use `CoTParser` class

### v12.37.0 - 2025-06-06

- :tada: First pass at mapping MilSym

### v12.36.0 - 2025-06-01

- :rocket: `archived(archived?: boolean): boolean` Helper Function
- :white_check_mark: Add basic helper function tests

### v12.35.0 - 2025-05-28

- :rocket: `stale` value is now calculated based on current time

### v12.34.0 - 2025-05-26

- :tada: Add to/from parsing of R&B to geojson utilities
- :bug: Ensure units are in Km for Turf Conversion

### v12.33.0 - 2025-05-26

- :tada: Initial support for Range & Bearing geometry generation
- :arrow_up: Update Core Deps

### v12.32.4 - 2025-05-20

- :arrow_up: Update Core Deps

### v12.32.3 - 2025-04-30

- :rocket: Expose 2525 via index

### v12.32.2 - 2025-04-30

- :rocket: Remove Main

### v12.32.1 - 2025-04-30

- :rocket: Add 2525 Export

### v12.32.0 - 2025-04-30

- :tada: Augment COT Types with 2525B

### v12.31.0 - 2025-04-30

- :tada: Add CoT Type <=> SIDC

### v12.30.1 - 2025-04-28

- :arrow_up: Update Core Deps

### v12.30.0 - 2025-04-24

- :tada: Bi-Directional `creator` support
- :tada: COT core MilSym support
- :rocket: Avoid constant `detail` check with new helper fn

### v12.29.0 - 2025-04-21

- :rocket: Add `COT.type()` helper fn

### v12.28.0 - 2025-04-17

- :bug: Update StrokeWidth to allow Numeric Values

### v12.27.0 - 2025-04-17

- :rocket: Add `is_stale` fn

### v12.26.0 - 2025-04-17

- :rocket: Allow specifying a working path when creating a DataPackage

### v12.25.0 - 2025-04-15

- :rocket: Add support for `Marti => Dest => Group`

### v12.24.0 - 2025-04-15

- :bug: Fix paths when running on windows
- :arrow_up: Update all base deps

### v12.23.0 - 2025-03-04

- :rocket: Ensure DataPackage zip reader is closed when using `DataPackage.parse`
- :rocket: Automatically remove provided zip container given to `DataPackage.parse` unless `opts.cleanup = false`

### v12.22.0 - 2025-03-04

- :arrow_up: Update core deps

### v12.21.0 - 2025-02-03

- :tada: Add support for identifying DataPackages that are Mission Archive Exports
- :rocket: Add types present in MissionArchive Exports
- :rocket: Include unknown properties in `unknown` object of DataPackage

### v12.20.0 - 2025-01-28

- :rocket: Make Callsign Optional

### v12.19.0 - 2025-01-04

- :rocket: Ensure entire attribute type is reflected in GeoJSON

### v12.18.0 - 2025-01-01

- :tada: Add `strict: false` mode to DataPackage parsing that will turn a zip file into a DataPackage if it is not valid

### v12.17.1 - 2024-12-27

- :arrow_up: Update all core deps

### v12.17.0 - 2024-12-04

- :arrow_up: Update all core deps

### v12.16.2 - 2024-12-04

- :bug: Fix bug where calling `to_proto` twice would fail

### v12.16.1 - 2024-11-23

- :bug: Fix type complaint on CoT being converted to XML when it could be a `Buffer<ArrayBufferLike>`

### v12.16.0 - 2024-11-21

- :tada: Add limited Sensor GeoJSON Parsing - NOTE: it does not respect that sensors are in a 3D space reprojected into 2D so the sensor geojson isn't entirely correct

### v12.15.0 - 2024-11-11

- :rocket: Add internally stored `path` value

### v12.14.0 - 2024-11-11

- :rocket: Allow `Feature.Path: string` on GeoJSON Features

### v12.13.0 - 2024-11-04

- :rocket: Add support for Mission GUID dest tagging

### v12.12.0 - 2024-11-04

- :rocket: Add full bidirectional support for `ConnectionEntry` fields

### v12.11.0 - 2024-11-01

- :rocket: Allow `string` and `buffer` in `DataPackage.addFile` definition

### v12.10.0 - 2024-10-31

- :rocket: Add a ton of new Sensor Attribute keys that were surfaced in CoT mining
- :data: Add Video Configuration object type

### v12.9.0 - 2024-10-26

- :bug: MissionChange can have no text in `creatorUid` Tag

### v12.8.0 - 2024-10-26

- :rocket: Add `.to_json` call for Basemap XML

### v12.7.1 - 2024-10-16

- :rocket: Remove `exports` from package.json for now Ref: https://github.com/dfpc-coe/node-CoT/issues/47

### v12.7.0 - 2024-10-16

- :rocket: Add `DataPackage.files()` Fn for getting non-attachment files

### v12.6.0 - 2024-10-15

- :rocket: Allow 0 length polylines to allow for removal from ATAK

### v12.5.2 - 2024-10-10

- :bug: Resolver was having trouble with export path
- :bug: Group parsing wasn't adding `__` prefix from proto => CoT

### v12.5.1 - 2024-10-09

- :rocket: Add Types Export

### v12.5.0 - 2024-10-09

- :rocket: Use Numerics for Sensor Attributes

### v12.4.0 - 2024-09-30

- :rocket: Use internal XMLDocument class as base for Iconset/Basemap
- :tada: Add initial Iconset Types

### v12.3.0 - 2024-09-18

- :bug: Support parsing CoTs with empty/non-populated video tag

### v12.2.0 - 2024-09-17

- :tada: Add support for parsing Basemap XML Documents

### v12.1.0 - 2024-09-09

- :rocket: Add preliminary support for TAK Routes => GeoJSON LineStrings

### v12.0.0 - 2024-09-05

- :rocket: Add `object` type support to COT Constructor definition
- :bug: Removal of `Type.Index` on `event` in JSONCOT type definition to fix AJV Coerce Types
- :bug: Removal surfaced `archive` inconsistencies
- :bug: Removal surfaced `__forcedelete` inconsistencies

### v11.2.0 - 2024-09-03

- :rocket: Add basic typed support for Range & Bearing Values

### v11.1.0 - 2024-08-16

- :bug: Tasking messages don't have location field in MissionChange entry

### v11.0.0 - 2024-08-14

- :rocket: Require the top level TAKMessage Protobuf in `from_proto` Fn

### v10.12.2 - 2024-08-12

- :bug: MissionSync required uid to be the same for `t-x-d-d`

### v10.12.1 - 2024-08-12

- :white_check_mark: Add validation tests to ensure validation takes place

### v10.12.0 - 2024-08-12

- :data: Add `ForceDelete` helper class

### v10.11.0 - 2024-08-08

- :white_check_mark: Fixing type test

### v10.10.1 - 2024-08-08

- :bug: Fix deploy on branch

### v10.10.0 - 2024-08-08

- :bug: Fix default export in COTTypes

### v10.9.5 - 2024-08-07

- :arrow_up: Update batch-error

### v10.9.4 - 2024-08-07

- :rocket: Seperate out Geometry type into unique type def

### v10.9.3 - 2024-08-07

- :rocket: Enforce `import type` vs `import`

### v10.9.2 - 2024-08-07

- :bug: Fix polyline parsing error

### v10.9.1 - 2024-08-06

- :bug: Swap path and UID

### v10.9.0 - 2024-08-06

- :rocket: Extend the `DataPackage.addFile` method to allow specifying the file is an attachment

### v10.8.0 - 2024-08-05

- :tada: Expose a tmp dir aware version of the hash code

### v10.7.0 - 2024-08-05

- :bug: Hash should be `sha256sum` and not UID in MANIFEST

### v10.6.2 - 2024-08-05

- :bug: Fix bug in DataPackage attachment hash calculation

### v10.6.1 - 2024-08-05

- :bug: Fix bug in DataPackage attachment hash calculation

### v10.6.0 - 2024-08-05

- :tada: Initial release of the CotTypes manager/parser

### v10.5.0

- :bug: Fix an instance of `a-f-g` cot type to `a-f-G`

### v10.4.0

- :rocket: Merge attachments defined in DataPackage manifest with those defined via CoT `attachment_list` property

### v10.3.0

- :rocket: Add `MissionChange` parsing

### v10.2.0

- :rocket: Add `DataPackage.hash` fn

### v10.1.0

- :rocket: Add `addFile` `getFile` Endpoints

### v10.0.0

- :rocket: Move `Feature` and `Types` out of root for cleaner docs
- :rocket: Add `attachments` suppport for GeoJSON
- :rocket: Add `attachment_list` suppport for CoTs

### v9.10.0

- :rocket: Support QuickPic File Relations
- :bug: Fix type in DataPackage Error
- :rocket: Add additional `<link\>` attrs

### v9.9.0

- :rocket: Surface `ackrequest` in GeoJSON

### v9.8.0

- :rocket: Hoise Polyline Styles to top level geojson style

### v9.7.0

- :rocket: support closing polylines and point polylines

### v9.6.0

- :rocket: Add truncation to Ellipse outputs (including circle)

### v9.5.0

- :rocket: Add support for Circles

### v9.4.0

- :rocket: Add support for Targeting

### v9.3.0

- :rocket: Add support for `geofence` property

### v9.2.0

- :white_check_mark: Add missionLayer test
- :rocket: Add `DEBUG_COTS` debug output

### v9.1.0

- :rocket: Add support for `mission` & `missionLayer` Tags

### v9.0.0

- :rocket: Use opacity values between `0-1` instead of TAK style values `0-255` for better interop with external data

### v8.5.2

- :arrow_up: Update Core Deps

### v8.5.1

- :rocket: Use Simple Style Spec where possible `color` => `marker-color` and `opacity` => `marker-opacity`

### v8.5.0

- :bug: Fix colour encoding to XML
- :white_check_mark: Add Reversal Tests for Color

### v8.4.0

- :rocket: Add `color` detail properties in encoding/decoding and types

### v8.3.0

- :rocket: Add Schema support for `path` and `after` when using `<dest/>` with Mission Sync API Ref: https://wiki.tak.gov/display/VBM/Mission+Layers

### v8.2.0

- :white_check_mark: Add tests for ensuring newlines are retained in remarks

### v8.1.0

- :rocket: Add ability to set Ephemeral or Permanent package type

### v8.0.1

- :bug: Include `@openaddresses/batch-error`

### v8.0.0

- :tada: *BREAKING* Full Bi-Directional Parsing of DataPackages

### v7.3.0

- :rocket: Relax speed/course/slope to allow floats

### v7.2.2

- :bug: Ensure Proto Directory is copied to dist/lib/proto

### v7.2.1

- :bug: Ensure Proto Directory is copied to dist

### v7.2.0

- :tada: Preliminary support for V1 Protobuf encoded CoT messages
- :white_check_mark: Round trip to/from proto tests mirring the to/from geojson tests
- :arrow_up: Update to latest deps

### v7.1.0

- :rocket: Distribute ATAK CoT Proto files with node-cot

### v7.0.1

- :bug: Ensure `Feature` is accessible outside of library by using named

### v7.0.0

- :tada: Use more strictly defined Feature types

### v6.11.0

- :rocket: `Track._attributes` is now optional

### v6.10.0

- :tada: :arrow_up: Add basic support for UAS generated CoTs
- :tada: Add `video` parsing
- :tada: Add `sensor` parsing

### v6.9.1

- :bug: Only pass in _attributes in GeoJSONified Links

### v6.9.0

- :rocket: Add BiDirectional parsing of Feature Links

### v6.8.0

- :rocket: Add support for URL Links

### v6.7.0

- :rocket: Add schema support for `ackrequest`

### v6.6.0

- :rocket: Allow type coercion as all XML attrs are in strings by default

### v6.5.0

- :rocket: Add ability to ignore `dest` section in diff

### v6.4.0

- :rocket: Add ability to ignore `flow` section in diff

### v6.3.3

- :white_check_mark: Update GH Release action

### v6.3.2

- :white_check_mark: Update GH Release action

### v6.3.1

- :white_check_mark: Update iTAK CoT tests

### v6.3.0

- :white_check_mark: Add basic unit tests for diff mode

### v6.2.2

- :bug: Explicit array check to keep tsc happy

### v6.2.1

- :bug: Cleaner `addDest` TS code

### v6.2.0

- :arrow_up: Switch to ESLint Flat Config

### v6.1.0

- :rocket: Add reversal of `metadata` property in `to_geojson()`

### v6.0.0

- :tada: Add `metadata` section in GeoJSON feature for custom props
- :rocket: Add `addDest` function for easily adding dest to an existing COT
- :rocket: Add `isDiff` function for comparing two COTs
- :data: Add DataPackage builder

### v5.7.1

- :bug: Add missing file

### v5.7.0

- :tada: Build FileShare helper class

### v5.6.0

- :tada: Add support for `fileshare` COT

### v5.5.1

- :tada: Add TAK Server Version Attributes

### v5.5.0

- :tada: Migrate to TypeBox based schema for stricter types and to avoid JSONSchema compilation step

### v5.4.0

- :tada: Include suppport for `archived` tag
- :arrow_up: Update Core Deps

### v5.3.1

- :arrow_up: Update Core Deps

### v5.3.0

- :rocket: Add full reversal support for Marti/Dest tags

### v5.2.0

- :rocket: Add basic support for Marti/Dest tags in schema

### v5.1.1

- :bug: Make Chat vars optional

### v5.1.0

- :rocket: Add `chat` property to GeoJSON output

### v5.0.6

- :bug: Detail is optional in Tak/Pongs

### v5.0.5

- :bug: Object Defs

### v5.0.4

- :bug: Optional `_flow-tags_._attributes`

### v5.0.3

- :bug: `remarks._text` is optional

### v5.0.2

- :bug: `remarks._attributes` is optional

### v5.0.1

- :bug: Add `package.json` in `dist/`

### v5.0.0

- :tada: `schema.json` is now automatically generated from Type Defs
- :tada: Add Chat interface for easily creating Direct Messages
- :rocket: Add Flow Tag when parsed by NodeCoT
- :arrow_up: Update Typescript
- :white_check_mark: Add Chat & Flow tests

### v4.6.0

- :rocket: Decode `__group` to `.properties.group`

### v4.5.1

- :bug: Fix contact parser in `from_geojson`

### v4.5.0

- :rocket: Support `center` property and calculate if not present
- :rocket: Support `flow` property from `_flow-tags_`;
- :rocket: Support `group` property from `__group`;
- :rocket: Support `takv` property from `takv`;
- :rocket: Support `status` property from `status`;
- :rocket: Support `Droid` property from `uid._attributes.Droid`;
- :rocket: Support `contact` property from `contact`;
- :rocket: Support `precisionlocation` property from `precisionlocation`;

### v4.4.2

- :bug: Close `u-d-r` Polygons

### v4.4.1

- :rocket: `u-d-r` type can also be a polygon

### v4.4.0

- :rocket: Support `Polygon` & `LineString` `to_geojson()`
- :bug: Fix previously unused Packed colour => opacity

### v4.3.0

- :bug: Fix Opacity default to a non-zero value

### v4.2.1

- :bug: Close coordinates in `u-d-f` type

### v4.2.0

- :bug: Fix the polygon type from a Rectangle CoT type to a Polygon

### v4.1.2

- :pencil2: Update Git Repo Location

### v4.1.1

- :arrow_up: Update Core Deps

### v4.1.0

- :bug: Fix parsing of `remarks` field in `from_geojson`
- :rocket: Support for `course` in `to_geojson`
- :rocket: Support for `speed` in `to_geojson`
- :rocket: Support for `icon` in `to_geojson`
- :rocket: Support for `remarks` in `to_geojson`
- :rocket: Support for HAE in `to_geojson`

### v4.0.0

- :rocket: Rename `XMLCoT` to `CoT` and make it the default export
- :tada: Add `.is_` fns for testing CoT type
- :white_check_mark: Add `cot.is_*` unit tests

### v3.5.4

- :bug: Ensure `to_geojson` FN returns proper coordinate order
- :arrow_up: Update Deps

### v3.5.3

- :bug: Ensure `to_geojson` FN returns numeric coordinates

### v3.5.2

- :arrow_up: Update Deps

### v3.5.1

- :arrow_up: Update Deps

### v3.5.0

- :rocket: Add support for the `remarks` field

### v3.4.3

- :arrow_up: `TypeScript@5`

### v3.4.2

- :bug: Fix location of track data

### v3.4.1

- :bug: Fix location of track data

### v3.4.0

- :tada: Add `speed` & `course` parsing

### v3.3.0

- :tada: Add Height Extraction from GeoJSON from `z` coordinate

### v3.2.0

- :tada: Add support for icon property parsing in GeoJSON

### v3.1.1

- :bug: Include schema.json in dist output

### v3.1.0

- :rocket: Expand use of known vs generic raw attributes

### v3.0.0

- :rocket: Rewrite in TypeScript

### v2.8.1

- :bug: Fix typo in error message

### v2.8.0

- :bug: Significant improvements to start/time/stale parsing
- :white_check_mark: Add tests for date parsing
- :rocket: Support parsing `Date` types
- :arrow_up: General Dep Update

### v2.5.0

- :tada: Automatically perform basic schema validation on CoT Creation

### v2.4.0

- :tada: `from_geojson(Feature.LineString)` Support

### v2.3.0

- :tada: `from_geojson(Feature.Polygon)` Support

### v2.2.1

- :bug: `event.display` => `event.detail`

### v2.2.0

- :bug: Bugfixes in default values
- :bug: Ensure `to_geojson` is a function call that doesn't modify underlying message

### v2.1.3

- :bug: Continue squashing a ton of small expectation issues to get an MVP of a point on TAK

### v2.1.2

- :bug: Parse GeoJSON Point coords into COT

### v2.1.1

- :bug: Parse GeoJSON Point coords into COT

### v2.1.0

- :rocket: Allow setting `type` & `how` from GeoJSON

### v2.0.0

- :rocket: Class based XML CoT approach
- :tada: Add GeoJSON to/from parsing (experimental)
- :white_check_mark: Update tests to use `tape`
- :pencil2: Update docs to Class approach
- :pencil2: Add a CHANGELOG
