import { Vm } from "../vm"; import { TextPiece } from "../words"; import { getOpt } from "./options"; /** * Basic unit of information, also an "actor" in the programming system */ export type Card = { /** Unique identifier */ id: number; /** Key-value properties on the card */ fields: Record<string, string>; /** Eventually: a markdown string containing code, but for now, just code */ code: string; }; export type CardVm = Vm<{ card: Card; }>; export function GetField(vm: CardVm, argv: TextPiece[]): TextPiece { const [{ error }, fieldName] = getOpt(argv, { $min: 1, $max: 1 }); return { text: vm.card.fields[fieldName] ?? error ?? "" }; }