package vato007:ingey; world dynamic { resource row { get: func(name: string) -> string; } resource reader { columns: func() -> list; next: func() -> row; has-next: func() -> bool; // Get a row by values in one or more columns query: func(values: list>) -> row; } resource read-map { get: func(key: string) -> string; } resource write-map { add: func(name: string, value: string); } resource readers { get-reader: func(name: string) -> option; } resource writer { write: func(row: write-map); } export evaluate: func(readers: readers, properties: read-map, writer: writer); }