// { type: "handshake", version: "10"} // { type: "handshake", data: {version: "10"}} // { "handshake": {version: "10"}} export type ServerboundPacket = null export type ClientboundPacket = Handshake interface Handshake { type: "handshake" version: string } interface Download { type: "download", } interface DownloadResponse { type: "download_response", entries: TodoEntry[] } interface TodoEntry { name: string, description: string, tags: string[], priority: number, completed?: number, scheduled?: number, occurence?: Condition, deadline?: Condition, } /* { and: [ { or: [{ dayofweak: 0 }, { dayofweak: 1 }] }, { weekofmonth: 0 } { hour: [11, 13] } ]} */ // should only have one property interface Condition { from: Condition to: Condition or: Condition[] and: Condition[] year?: [number, number], monthofyear?: [number, number], weekofmonth?: [number, number], dayofyear?: [number, number], dayofmonth?: [number, number], dayofweek?: [number, number], hour?: [number, number], minute?: [number, number], second?: [number, number], unix?: [number, number], }