Syntax

Here is the syntax that I have come up with so far.

Schemas

The main way things are grouped is by schemas, like a directory or folder
CategorySymbolDescriptionExample
##groups entities below into a schema## historical

Tables / Entities

Here we specify what things we want to track, blueprints, tables, or entities
CategorySymbolDescriptionExample
-creates an entity- dragon
flag+auto generate a id- dragon +
flag@auto generate a creation timestamp- dragon @

Columns / Attributes

Finally some specifics, what columns go into the table, or features of an entity are we interested in tracking
CategorySymbolDescriptionExample
-creates an attribute-
type- [ b | bool | boolean ]creates an attribute of type boolean- boolean alive
type- [ c | char | character ]creates an attribute of type character- character status
type- bitcreates an attribute of type bit- bit state
type- [ i | int | integer ]creates an attribute of type integer- integer count
type- [ d | dec | decimal ]creates an attribute of type decimal- decimal cost
type- [ f | float ]creates an attribute of type float- float weight
type- [ r | real ]creates an attribute of type real- real weight
type- [ dt | date ]creates an attribute of type date- date birthday
type- [ t | time ]creates an attribute of type time- time start
type- [ ts | timestamp ]creates an attribute of type timestamp- timestamp created
type- [ s | str | string ]creates an attribute of type varchar(n) where n is the max in a range- string message 10..255
type- ^creates a reference to another entity- ^ color
flag+flags an attribute as a primary key- xs code +
flagmin..maxindicates the acceptable range for validation and precision. required for strings, recommended for numerical- d price 0.00..999.99
flag[ * | ** | *** | and more ]flags a attribute(s) as unique with matching star count- b alive *
flag!flags a value as not nullable- b alive !
flag?flags a value as default null- b alive ?
append modifier| delimitercreates an alias for a reference- ^ dragon|mother
prefix modifier_ prefixgives the readonly attribute to an entity- _birthday !
flageverything elsesets the default value for an attribute- b alive false