Draft for a safer API around transferring props