semaphore spec draft