CSVS File Format

This document specifies the CSVS file format.

"CSVS" stands for "Comma-Separated Value Store"

grammar: [(no comma) [comma (any utf8)] newline]

A CSVS file MUST have UTF-8 encoding.

A CSVS file MUST have .csv file extension.

A CSVS file MUST not start with a comma.

A CSVS file MUST consist of lines separated by a newline, either Carriage Return 0x0D \r, Line Feed 0x0A \n, or both CR LF 0x0D 0x0A \r\n.

Each line in a CSVS file CAN have no commas.

Each line in a CSVS file CAN have one comma, first comma in each line separates a KEY from VALUE.

only two columns, second optional

all following commas are part of value

unless specified in the extension, keys SHOULD be unique, if non-unique keys are found, only the first value MUST be treated, the rest matching uuids are to be discarded

csvs dataset format 0.0.1

This document specifies the CSVS dataset format.

"CSVS" stands for "Comma-Separated Value Store"

metadir.json

json object MUST have fields for each entity, fields of:

type of list: string, none

task of list: date, text, app-defined

trunk for relative table

description for UI labels

props/

MUST have a folder {prop} for each branch

folder MUST have csvs file "index.csv"

if type is string, value MUST be json-escaped

if type hash, there CAN be no value, and key MUST be treated as value

pairs/

MUST have {trunk}-{leaf}.csv for each branch with trunk