Implement capability generics, checked package specializations and CRUD scaffolding

Add kinded parameters, capability bounds, Self, aliases and closed application identities. Check generic implementations universally and build candidate-specific codecs and descriptors from immutable schemas. Preserve lexical aliases and exact dispatch identities in package and host bindings.

Add an imperative CRUD+index domain scaffold with explicit soft-deletion semantics, source/codegen regression coverage, installed CLI tests and an authoring guide. Existing Web Studio opaque props and class-level create-menu migration are separate from the implemented language core.
This commit is contained in:
Timothy J. Aveni
2026-09-16 00:12:39 -07:00
parent 9358b5ed0e
commit 52803dda05
26 changed files with 6009 additions and 2193 deletions
@@ -1,213 +1,227 @@
WORKSPACE=1
FRAGMENT=2
IMPORT=3
EXTERNAL=4
ATOM=5
INTERFACE=6
INTERFACES=7
PACKAGE=8
VALUE=9
RELATION=10
OPERATION=11
FUNCTION=12
CONSTRUCTOR=13
CONSTRUCTS=14
INPUT=15
CONFORM=16
AS=17
BIND=18
TO=19
PRIVATE=20
SHARED=21
STATE=22
EDGE=23
PROJECTION=24
WITH=25
USING=26
VIA=27
MATERIALIZE=28
IF=29
ABSENT=30
ON=31
POLICY=32
DEFAULT=33
SOURCE=34
REPOSITORY=35
COMMIT=36
REVISION=37
SEMANTIC_MAJOR=38
ON_DELETE=39
RETAIN_OTHER=40
KEYED=41
PUBLIC_TRAVERSAL=42
ID=43
DOC=44
MODE=45
EMITS=46
RECEIVER=47
REQUIRES=48
ANY=49
GET=50
SET=51
WATCH=52
START=53
STOP=54
READ=55
WRITE=56
RESOLVE=57
CONNECT=58
DISCONNECT=59
CALL=60
WATCH_START=61
WATCH_STOP=62
SUBSCRIBE=63
UNSUBSCRIBE=64
OPTIMISTIC_REGISTER=65
CRDT=66
OPTIONAL_ONE=67
EXACTLY_ONE=68
MANY_UNIQUE=69
MANY=70
ORDERED=71
UNIT=72
WATCH_HANDLE=73
MESSAGE=74
ATOM_REF=75
INTERFACE_REF=76
OPTIONAL=77
LIST=78
RECORD=79
BOOL=80
BYTES=81
DOUBLE=82
INT32=83
INT64=84
STRING=85
UINT32=86
UINT64=87
TRUE=88
FALSE=89
NULL=90
ARROW=91
COLON=92
SEMI=93
COMMA=94
DOT=95
LBRACE=96
RBRACE=97
LBRACK=98
RBRACK=99
LPAREN=100
RPAREN=101
LT=102
GT=103
INTEGER=104
JSON_NUMBER=105
IDENTIFIER=106
STRING_LITERAL=107
LINE_COMMENT=108
BLOCK_COMMENT=109
WS=110
TYPE=2
OBJECT=3
STORABLE=4
IMPLEMENTS=5
REF=6
FRAGMENT=7
IMPORT=8
EXTERNAL=9
ATOM=10
INTERFACE=11
INTERFACES=12
PACKAGE=13
VALUE=14
RELATION=15
OPERATION=16
FUNCTION=17
CONSTRUCTOR=18
CONSTRUCTS=19
INPUT=20
CONFORM=21
AS=22
BIND=23
TO=24
PRIVATE=25
SHARED=26
STATE=27
EDGE=28
PROJECTION=29
WITH=30
USING=31
VIA=32
MATERIALIZE=33
IF=34
ABSENT=35
ON=36
POLICY=37
DEFAULT=38
SOURCE=39
REPOSITORY=40
COMMIT=41
REVISION=42
SEMANTIC_MAJOR=43
ON_DELETE=44
RETAIN_OTHER=45
KEYED=46
PUBLIC_TRAVERSAL=47
ID=48
DOC=49
MODE=50
EMITS=51
RECEIVER=52
REQUIRES=53
ANY=54
GET=55
SET=56
WATCH=57
START=58
STOP=59
READ=60
WRITE=61
RESOLVE=62
CONNECT=63
DISCONNECT=64
CALL=65
WATCH_START=66
WATCH_STOP=67
SUBSCRIBE=68
UNSUBSCRIBE=69
OPTIMISTIC_REGISTER=70
CRDT=71
OPTIONAL_ONE=72
EXACTLY_ONE=73
MANY_UNIQUE=74
MANY=75
ORDERED=76
UNIT=77
WATCH_HANDLE=78
MESSAGE=79
ATOM_REF=80
INTERFACE_REF=81
OPTIONAL=82
LIST=83
RECORD=84
BOOL=85
BYTES=86
DOUBLE=87
INT32=88
INT64=89
STRING=90
UINT32=91
UINT64=92
TRUE=93
FALSE=94
NULL=95
ARROW=96
COLON=97
SEMI=98
COMMA=99
DOT=100
LBRACE=101
RBRACE=102
LBRACK=103
RBRACK=104
LPAREN=105
RPAREN=106
LT=107
GT=108
AMP=109
EQUAL=110
INTEGER=111
JSON_NUMBER=112
IDENTIFIER=113
STRING_LITERAL=114
LINE_COMMENT=115
BLOCK_COMMENT=116
WS=117
'workspace'=1
'fragment'=2
'import'=3
'external'=4
'atom'=5
'interface'=6
'interfaces'=7
'package'=8
'value'=9
'relation'=10
'operation'=11
'function'=12
'constructor'=13
'constructs'=14
'input'=15
'conform'=16
'as'=17
'bind'=18
'to'=19
'private'=20
'shared'=21
'state'=22
'edge'=23
'projection'=24
'with'=25
'using'=26
'via'=27
'materialize'=28
'if'=29
'absent'=30
'on'=31
'policy'=32
'default'=33
'source'=34
'repository'=35
'commit'=36
'revision'=37
'semantic-major'=38
'on-delete'=39
'retain-other'=40
'keyed'=41
'public-traversal'=42
'id'=43
'doc'=44
'mode'=45
'emits'=46
'receiver'=47
'requires'=48
'any'=49
'get'=50
'set'=51
'watch'=52
'start'=53
'stop'=54
'read'=55
'write'=56
'resolve'=57
'connect'=58
'disconnect'=59
'call'=60
'watch-start'=61
'watch-stop'=62
'subscribe'=63
'unsubscribe'=64
'optimistic-register'=65
'crdt'=66
'optional-one'=67
'exactly-one'=68
'many-unique'=69
'many'=70
'ordered'=71
'unit'=72
'watch-handle'=73
'message'=74
'atom-ref'=75
'interface-ref'=76
'optional'=77
'list'=78
'record'=79
'bool'=80
'bytes'=81
'double'=82
'int32'=83
'int64'=84
'string'=85
'uint32'=86
'uint64'=87
'true'=88
'false'=89
'null'=90
'->'=91
':'=92
';'=93
','=94
'.'=95
'{'=96
'}'=97
'['=98
']'=99
'('=100
')'=101
'<'=102
'>'=103
'type'=2
'object'=3
'storable'=4
'implements'=5
'ref'=6
'fragment'=7
'import'=8
'external'=9
'atom'=10
'interface'=11
'interfaces'=12
'package'=13
'value'=14
'relation'=15
'operation'=16
'function'=17
'constructor'=18
'constructs'=19
'input'=20
'conform'=21
'as'=22
'bind'=23
'to'=24
'private'=25
'shared'=26
'state'=27
'edge'=28
'projection'=29
'with'=30
'using'=31
'via'=32
'materialize'=33
'if'=34
'absent'=35
'on'=36
'policy'=37
'default'=38
'source'=39
'repository'=40
'commit'=41
'revision'=42
'semantic-major'=43
'on-delete'=44
'retain-other'=45
'keyed'=46
'public-traversal'=47
'id'=48
'doc'=49
'mode'=50
'emits'=51
'receiver'=52
'requires'=53
'any'=54
'get'=55
'set'=56
'watch'=57
'start'=58
'stop'=59
'read'=60
'write'=61
'resolve'=62
'connect'=63
'disconnect'=64
'call'=65
'watch-start'=66
'watch-stop'=67
'subscribe'=68
'unsubscribe'=69
'optimistic-register'=70
'crdt'=71
'optional-one'=72
'exactly-one'=73
'many-unique'=74
'many'=75
'ordered'=76
'unit'=77
'watch-handle'=78
'message'=79
'atom-ref'=80
'interface-ref'=81
'optional'=82
'list'=83
'record'=84
'bool'=85
'bytes'=86
'double'=87
'int32'=88
'int64'=89
'string'=90
'uint32'=91
'uint64'=92
'true'=93
'false'=94
'null'=95
'->'=96
':'=97
';'=98
','=99
'.'=100
'{'=101
'}'=102
'['=103
']'=104
'('=105
')'=106
'<'=107
'>'=108
'&'=109
'='=110