All FreeCAD objects are natively parametric, which means their shape can be based on properties or even depend on other objects, all changes being recalculated on demand, and recorded by the undo/redo stack.
FreeCAD can be imported as a Python module, inside other applications that can run python scripts, or in a python console.
In development is also Assembly module and CAM module.
NOTE: FreeCAD is under heavy development and might not be ready for production use!
When you start FreeCAD with no workbench loaded, you will then have a minimal preferences window.
As you load additional modules, new sections will appear in the preferences window, allowing you to configure the details of each workbench.