Features
========
``czml3`` is built upon `pydantic `_ and leverages a lot of its capabilities to achieve its goal: making the process of writing CZML files in Python easy.
Type Checking
-------------
Inputs to classes are type checked, which ensures that the data is in the correct format before it is written to the CZML file.
Coercion of Data
-----------------
Inputted data that is not of the specified type in the class is `coerced to their right type `_. See Example 2 in :ref:`examples-label`.
Forbid Unrecognised Properties
------------------------------
Unrecognised inputs to classes are forbidden, which ensures the CZML document contains only recognised and valid fields.
If a valid property of a ``czml3`` class is missing then please `open an issue `_.
Minimal CZML File Creation
--------------------------
``czml3`` will remove all fields that are not set (i.e. ``None``), which ensures that the CZML file is as small as possible.
Fast JSON Serialisation
--------------------------
Pydantic is very fast at JSON serialisation. See `here `_ for a breakdown.