How to create new ProjectPolicy?

In a nutshell, this can be accomplished by creating new Content Type that inherits from ProjectPolicy content type, and then creating new Policy object based on our newly created content type. This procedure is similar to internal ProjectPolicy method for creation of new policies (that can be verified using ILSpy). For portability and reusability reasons, new policy should be created on Content Type Hub site and then published as any other content type. In such scenario, new policy can automatically be deployed to all sites that consume content types from Content Type Hub.