Components can be anything you want, the only requirements you have is to register them to the Registry CLASS, there’s many components, but its the same way to use them. Here’s the main Comp, but you can see in the code, that’s a component is a simple struct with one or 2 attributs.
In order for a component to be loaded it needs to be a shared library in the components direcory at the root of your working tree. This library needs to expose the following method that will register the component.
void register_component(std::shared_ptr<ecs::Registry> &, ecs::Entity &, const nlhomann::json &);
All the definitions for these types can be found in the headers of the ecs for Registry and Entity and for the json we use https://github.com/nlohmann/json
This json is de component description, it can be anything you need. Here is an example with position:
{
x: 10,
y: 10
}