Work Item Tracker

First, we need to define top-level constructs:

Uniqueness

fact Project
{
   unique;
}

fact Developer
{
   unique;
}

Both a Project and a Developer are unique constructs in their own right. They both have “unique” fields (GUIDs, in practice) that make them unique. Without these fields, every Project would be the same, and every Developer would be the same.