···4545 since: tid | null;
46464747 @doc("CAR file containing relevant blocks, as a diff since the previous repo state. The commit must be included as a block, and the commit block CID must be the first entry in the CAR header 'roots' list.")
4848- @bytesMaxLength(2000000)
4848+ @maxBytes(2000000)
4949 @required
5050 blocks: bytes;
5151···7676 did: did;
77777878 @doc("CAR file containing the commit, as a block. The CAR header must include the commit block CID as the first 'root'.")
7979- @bytesMaxLength(10000)
7979+ @maxBytes(10000)
8080 @required
8181 blocks: bytes;
8282
···11+import "@tlex/emitter";
22+33+namespace com.example.nullableFields {
44+ @doc("Demonstrates nullable field semantics")
55+ model Main {
66+ @doc("Required, cannot be null or omitted")
77+ @required
88+ requiredField: string;
99+1010+ @doc("Must be present, but can be null")
1111+ nullableRequired?: string | null;
1212+1313+ @doc("Can be omitted, present with value, or present as null")
1414+ nullableOptional?: string | null;
1515+1616+ @doc("Can be omitted or present with value, but not null")
1717+ optionalField?: string;
1818+ }
1919+}