Idea 1
A file format to serve as a little plaintext database.
It's inspired by the vCard and iCal formats, reimagining them as if they were intended for general data.
It comes in two parts.
Data files and definition files.
Data files, as the name suggests, are for storing data!
Looking something like this:
BEGIN:BOOK VERSION:0.1 TITLE:How to Prove It AUTHOR:Daniel J. Velleman YEAR:2006 READ;UP-TO=300:YES END:BOOK BEGIN:BOOK VERSION:0.1 TITLE:Book of Proof AUTHOR:Richard Hammock YEAR:2018 READ;UP-TO=40:YES END:BOOK
Here we are storing some books, which have some properties and parameters like TITLE, AUTHOR, and so on.
Then there are definition files!
Definition files, as the name suggests, are for defining data, what does a book look like, what about a movie, and a workout, anything really.
It would look something like this:
DEFINE:BOOK VERSION:0.1 TITLE:STRING AUTHOR:STRING, YEAR:INTENGER READ;UP-TO=220:YES/NO END:BOOK
Version 0.1 of a book has title, author, year, and read properties.
The read property has an optional parameter to specify up to which page did you read the book.
Definition files could be used to parse and validate/query the data files.
Data files should be good enough to be used on their own, without definition files.