Contract = 추상 인터페이스@Controller(contract)가 클래스 형태를 자동 강제한다. 메서드 누락이나 시그니처 mismatch는 IDE에서 빨간 줄로 잡힌다. implements 선언이 필요 없다.
EventSourceService가 EventSource로 이벤트를 발행하면 프레임워크가 contract.forwards를 통해 자동으로 webContents.send()로 전달한다. push 보일러플레이트를 제거한다.
Contract Systemcontract()로 IPC 채널과 타입을 한 곳에 정의하면, createBridge()와 createService()가 preload와 렌더러 코드를 자동 생성한다.