Interface is similar to TypeScript's interface. Internally it's a Dictionary schema type with each field being typed. Interface supports type generics and it's useful for custom handlers CONCEPT, generated model entities and generated query clients.

The interface declaration feels like TypeScript, too:

interface DataMeta<T, U> {
  data: T
  meta: U

Multiple inheritance

Interface can be extended.

interface Triple<T> {
    single: T
    double: (T, T) 
interface Description {
    description: String
interface TripleInt extends Triple<Int>, Description {
    sum: Int

In the code snippet above, the TripleInt interface contains 4 fields while 3 of them are inherited.