A Project contains a set of macros and any menus, hotkeys etc that are used to invoke the macros.
Project files are created from the File menu, New Project option:

Project files carry a unique identifier tag (UUID) so it's important to create a new project files in this manner. However, should you copy a project file from an existing file, you need to load the file into a text editor and change the UUID value at the top of the file to one generated from a UUID generator. Projects with the same UUID can potentially cause issues.
When a project contains a set of menus and macros to control a specific application, we also refer to this as a library file, such as the various library files that have been created for Logic Pro, ProTools etc
Standard open projects are saved in .fdproj files. Professional library files available in our store can be 'locked' such that the macros are fixed and cannot be modified. These are known as Premium projects with the file extension .fdprojp.
Typically, a project contains a collection of macros and menus to perform a specific set of playback functions associated to a particular task, but it is up to you to structure your project, macros and menus as you see fit.
You may, for example, have one project file that contains all your macros and menus and use a macro / menu naming convention that identifies their usage.
Alternatively, you may have a project file per application to be associated with the playback requirements of a particular application.
An action exists to load a project file such that they can be loaded during the playback process allowing projects to be switched within macros.
Projects can be exported for backup or sharing purposes. Project files carry a marker to indicate the computer used to create them. Importing a project file into a different computer will issue a warning each time it is imported unless you add the computer to your trusted source.
The Flexi-deck daemon process can handle any number of loaded projects, processing their menus and macro, but there is only ever one 'active' project.
The 'active' project is either the last opened project or as specifically selected from the File Menu or Menu Bar Item:
The active project is the project that will be loaded by default into the various editors when they are invoked from the Menu Bar item.
However, it's also used in a few other places where multiple projects create ambiguities, such as:
- To resolve hotkey conflicts since only one macro can run at a time, if two projects have a hotkey using the same keystroke shortcut then the hotkey in the active project will be chosen.
- To resolve project-relative paths in global macros that were executed from the command line interface. Normally project-relative paths in actions are resolved using the project containing the action, or if the action is part of a global macro, using the project that contains the menu or hotkey that triggered the macro. But it's possible to execute global macros from the command line (meaning nothing from any project triggered it), and in that case FD will use the active project to resolve any project relative paths.
- If a global macro shows or hides menus and it is executed from the command line, FD will look for those menus in the active project, for similar reasons to 2 above.