Purely functional All interfaces are pure and types are referentially transparent.

Minimal boilerplate No need to manually define a schema for every type in your API.