The First-Order Approach to Principal-Agent Problems | Synapse