In Atoms users can attach custom data to almost every entity available. We call this custom data "Metadata".
Atoms has already some predefined Metadatas on most entities such as Agent Types, Animation Clips, etc.
All the fields for the Agent Type (State Machine, Scale Multiplier) and Animation Clip (Loop, Loop Start, Loop End, etc.) Simulation Events are in fact metadatas.
Users can create their own metadatas on any Atoms entity and use them at simulation time.
For instance, you might want to tag a specific skeleton joint and access it via python or C++ or stick some custom metadata on an agent to define a specific behaviour.
The available Metadata types are: String, Int, Double, Bool, Euler, Vector3, Vector4, Quaternion, Matrix, Box3, Curve and Mesh.
There's also an array version type for all these metadatas.
The most powerful metadatas is the MapMetadata, a map container for mixed type of metadata.
Metadatas are most useful when used in conjunction with custom python and C++ Behaviour Modules.