···11+{
22+ "lexicon": 1,
33+ "id": "host.plural.system.link",
44+ "defs": {
55+ "main": {
66+ "type": "record",
77+ "description": "Declares that a secondary DID is linked to this system. Both this record and a corresponding host.plural.system.reference on the secondary DID must exist for the link to be valid.",
88+ "key": "tid",
99+ "record": {
1010+ "type": "object",
1111+ "required": ["did", "createdAt"],
1212+ "properties": {
1313+ "did": {
1414+ "type": "string",
1515+ "maxLength": 2048,
1616+ "description": "The secondary DID being linked to this system."
1717+ },
1818+ "memberTid": {
1919+ "type": "string",
2020+ "maxLength": 50,
2121+ "description": "Optional TID of the member this DID belongs to."
2222+ },
2323+ "createdAt": {
2424+ "type": "string",
2525+ "format": "datetime",
2626+ "description": "When this link was created (ISO 8601)."
2727+ }
2828+ }
2929+ }
3030+ }
3131+ }
3232+}
+125
lexicons/host/plural/system/member.json
···11+{
22+ "lexicon": 1,
33+ "id": "host.plural.system.member",
44+ "defs": {
55+ "main": {
66+ "type": "record",
77+ "description": "A system member. Uses TID as rkey. Can be public (plaintext) or private (encrypted).",
88+ "key": "tid",
99+ "record": {
1010+ "type": "object",
1111+ "properties": {
1212+ "visibility": {
1313+ "type": "string",
1414+ "knownValues": ["public", "private"],
1515+ "description": "Visibility setting. Private members store data in ciphertext only."
1616+ },
1717+ "name": {
1818+ "type": "string",
1919+ "maxLength": 200,
2020+ "description": "Member name/identifier. Only present for public members."
2121+ },
2222+ "displayName": {
2323+ "type": "string",
2424+ "maxLength": 640,
2525+ "description": "Display name. Only present for public members."
2626+ },
2727+ "pronouns": {
2828+ "type": "string",
2929+ "maxLength": 100,
3030+ "description": "Member pronouns. Only present for public members."
3131+ },
3232+ "avatar": {
3333+ "type": "blob",
3434+ "accept": [
3535+ "image/png",
3636+ "image/jpeg",
3737+ "image/webp",
3838+ "image/gif",
3939+ "application/octet-stream"
4040+ ],
4141+ "maxSize": 1000000,
4242+ "description": "Avatar image blob (plaintext for public, encrypted for private)."
4343+ },
4444+ "bio": {
4545+ "type": "string",
4646+ "maxLength": 2560,
4747+ "description": "Member bio/description. Only present for public members."
4848+ },
4949+ "colour": {
5050+ "type": "string",
5151+ "maxLength": 7,
5252+ "description": "Member colour (hex format). Only present for public members."
5353+ },
5454+ "proxyTags": {
5555+ "type": "array",
5656+ "maxLength": 10,
5757+ "items": {
5858+ "type": "ref",
5959+ "ref": "#proxyTag"
6060+ },
6161+ "description": "Proxy tags for message proxying. Only present for public members."
6262+ },
6363+ "customFields": {
6464+ "type": "array",
6565+ "maxLength": 25,
6666+ "items": {
6767+ "type": "ref",
6868+ "ref": "#customField"
6969+ },
7070+ "description": "Custom profile fields. Only present for public members."
7171+ },
7272+ "did": {
7373+ "type": "string",
7474+ "maxLength": 2048,
7575+ "description": "Optional DID associated with this member. Must match a host.plural.system.link record for the link to be valid. Only set on public members."
7676+ },
7777+ "ciphertext": {
7878+ "type": "bytes",
7979+ "description": "Encrypted member data (IV + AES-256-GCM ciphertext). Only present for private members."
8080+ },
8181+ "createdAt": {
8282+ "type": "string",
8383+ "format": "datetime",
8484+ "description": "When the member was created (ISO 8601)."
8585+ },
8686+ "updatedAt": {
8787+ "type": "string",
8888+ "format": "datetime",
8989+ "description": "When the member was last updated (ISO 8601)."
9090+ }
9191+ },
9292+ "required": ["visibility", "createdAt"]
9393+ }
9494+ },
9595+ "proxyTag": {
9696+ "type": "object",
9797+ "description": "Proxy tag for message proxying. At least one of prefix or suffix should be defined.",
9898+ "properties": {
9999+ "prefix": {
100100+ "type": "string",
101101+ "maxLength": 50
102102+ },
103103+ "suffix": {
104104+ "type": "string",
105105+ "maxLength": 50
106106+ }
107107+ }
108108+ },
109109+ "customField": {
110110+ "type": "object",
111111+ "description": "Custom field on a member profile.",
112112+ "properties": {
113113+ "name": {
114114+ "type": "string",
115115+ "maxLength": 100
116116+ },
117117+ "value": {
118118+ "type": "string",
119119+ "maxLength": 500
120120+ }
121121+ },
122122+ "required": ["name", "value"]
123123+ }
124124+ }
125125+}
···11+{
22+ "lexicon": 1,
33+ "id": "host.plural.system.reference",
44+ "defs": {
55+ "main": {
66+ "type": "record",
77+ "description": "Points back to the primary DID where this system's data lives. Singleton record (rkey: 'self'). Both this record and a corresponding host.plural.system.link on the primary DID must exist for the link to be valid.",
88+ "key": "literal:self",
99+ "record": {
1010+ "type": "object",
1111+ "required": ["primaryDid", "createdAt"],
1212+ "properties": {
1313+ "primaryDid": {
1414+ "type": "string",
1515+ "maxLength": 2048,
1616+ "description": "The primary DID where this system's data lives."
1717+ },
1818+ "createdAt": {
1919+ "type": "string",
2020+ "format": "datetime",
2121+ "description": "When this reference was created (ISO 8601)."
2222+ }
2323+ }
2424+ }
2525+ }
2626+ }
2727+}
···11+export * as HostPluralFrontAnnotation from './types/host/plural/front/annotation.js'
22+export * as HostPluralFrontLog from './types/host/plural/front/log.js'
33+export * as HostPluralSystemKey from './types/host/plural/system/key.js'
44+export * as HostPluralSystemLink from './types/host/plural/system/link.js'
55+export * as HostPluralSystemMember from './types/host/plural/system/member.js'
66+export * as HostPluralSystemProfile from './types/host/plural/system/profile.js'
77+export * as HostPluralSystemReference from './types/host/plural/system/reference.js'
+43
src/lex/types/host/plural/front/annotation.ts
···11+import type {} from "@atcute/lexicons";
22+import * as v from "@atcute/lexicons/validations";
33+import type {} from "@atcute/lexicons/ambient";
44+import * as ComAtprotoRepoStrongRef from "@atcute/atproto/types/repo/strongRef";
55+66+const _mainSchema = /*#__PURE__*/ v.record(
77+ /*#__PURE__*/ v.tidString(),
88+ /*#__PURE__*/ v.object({
99+ $type: /*#__PURE__*/ v.literal("host.plural.front.annotation"),
1010+ /**
1111+ * When the annotation was created (ISO 8601).
1212+ */
1313+ createdAt: /*#__PURE__*/ v.datetimeString(),
1414+ /**
1515+ * Encrypted note content (always encrypted for privacy).
1616+ */
1717+ note: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.bytes()),
1818+ /**
1919+ * Reference to the front log entry being annotated.
2020+ */
2121+ get subject() {
2222+ return ComAtprotoRepoStrongRef.mainSchema;
2323+ },
2424+ /**
2525+ * When the annotation was last updated (ISO 8601).
2626+ */
2727+ updatedAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()),
2828+ }),
2929+);
3030+3131+type main$schematype = typeof _mainSchema;
3232+3333+export interface mainSchema extends main$schematype {}
3434+3535+export const mainSchema = _mainSchema as mainSchema;
3636+3737+export interface Main extends v.InferInput<typeof mainSchema> {}
3838+3939+declare module "@atcute/lexicons/ambient" {
4040+ interface Records {
4141+ "host.plural.front.annotation": mainSchema;
4242+ }
4343+}
+47
src/lex/types/host/plural/front/log.ts
···11+import type {} from "@atcute/lexicons";
22+import * as v from "@atcute/lexicons/validations";
33+import type {} from "@atcute/lexicons/ambient";
44+55+const _mainSchema = /*#__PURE__*/ v.record(
66+ /*#__PURE__*/ v.tidString(),
77+ /*#__PURE__*/ v.object({
88+ $type: /*#__PURE__*/ v.literal("host.plural.front.log"),
99+ /**
1010+ * When this record was created (ISO 8601).
1111+ */
1212+ createdAt: /*#__PURE__*/ v.datetimeString(),
1313+ /**
1414+ * TIDs of members who were fronting.
1515+ */
1616+ fronters: /*#__PURE__*/ v.optional(
1717+ /*#__PURE__*/ v.array(/*#__PURE__*/ v.string()),
1818+ ),
1919+ /**
2020+ * When this front period started (ISO 8601).
2121+ */
2222+ startedAt: /*#__PURE__*/ v.datetimeString(),
2323+ /**
2424+ * Optional public status message.
2525+ * @maxLength 500
2626+ */
2727+ status: /*#__PURE__*/ v.optional(
2828+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
2929+ /*#__PURE__*/ v.stringLength(0, 500),
3030+ ]),
3131+ ),
3232+ }),
3333+);
3434+3535+type main$schematype = typeof _mainSchema;
3636+3737+export interface mainSchema extends main$schematype {}
3838+3939+export const mainSchema = _mainSchema as mainSchema;
4040+4141+export interface Main extends v.InferInput<typeof mainSchema> {}
4242+4343+declare module "@atcute/lexicons/ambient" {
4444+ interface Records {
4545+ "host.plural.front.log": mainSchema;
4646+ }
4747+}
+44
src/lex/types/host/plural/system/key.ts
···11+import type {} from "@atcute/lexicons";
22+import * as v from "@atcute/lexicons/validations";
33+import type {} from "@atcute/lexicons/ambient";
44+55+const _mainSchema = /*#__PURE__*/ v.record(
66+ /*#__PURE__*/ v.literal("self"),
77+ /*#__PURE__*/ v.object({
88+ $type: /*#__PURE__*/ v.literal("host.plural.system.key"),
99+ /**
1010+ * Algorithm identifier.
1111+ */
1212+ algorithm: /*#__PURE__*/ v.string<"argon2id-aes256gcm" | (string & {})>(),
1313+ /**
1414+ * When the key was created (ISO 8601).
1515+ */
1616+ createdAt: /*#__PURE__*/ v.datetimeString(),
1717+ /**
1818+ * Encrypted master key.
1919+ */
2020+ encryptedKey: /*#__PURE__*/ v.bytes(),
2121+ /**
2222+ * Salt used for key derivation.
2323+ */
2424+ salt: /*#__PURE__*/ v.bytes(),
2525+ /**
2626+ * When the key was last updated (ISO 8601).
2727+ */
2828+ updatedAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()),
2929+ }),
3030+);
3131+3232+type main$schematype = typeof _mainSchema;
3333+3434+export interface mainSchema extends main$schematype {}
3535+3636+export const mainSchema = _mainSchema as mainSchema;
3737+3838+export interface Main extends v.InferInput<typeof mainSchema> {}
3939+4040+declare module "@atcute/lexicons/ambient" {
4141+ interface Records {
4242+ "host.plural.system.key": mainSchema;
4343+ }
4444+}
+44
src/lex/types/host/plural/system/link.ts
···11+import type {} from "@atcute/lexicons";
22+import * as v from "@atcute/lexicons/validations";
33+import type {} from "@atcute/lexicons/ambient";
44+55+const _mainSchema = /*#__PURE__*/ v.record(
66+ /*#__PURE__*/ v.tidString(),
77+ /*#__PURE__*/ v.object({
88+ $type: /*#__PURE__*/ v.literal("host.plural.system.link"),
99+ /**
1010+ * When this link was created (ISO 8601).
1111+ */
1212+ createdAt: /*#__PURE__*/ v.datetimeString(),
1313+ /**
1414+ * The secondary DID being linked to this system.
1515+ * @maxLength 2048
1616+ */
1717+ did: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
1818+ /*#__PURE__*/ v.stringLength(0, 2048),
1919+ ]),
2020+ /**
2121+ * Optional TID of the member this DID belongs to.
2222+ * @maxLength 50
2323+ */
2424+ memberTid: /*#__PURE__*/ v.optional(
2525+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
2626+ /*#__PURE__*/ v.stringLength(0, 50),
2727+ ]),
2828+ ),
2929+ }),
3030+);
3131+3232+type main$schematype = typeof _mainSchema;
3333+3434+export interface mainSchema extends main$schematype {}
3535+3636+export const mainSchema = _mainSchema as mainSchema;
3737+3838+export interface Main extends v.InferInput<typeof mainSchema> {}
3939+4040+declare module "@atcute/lexicons/ambient" {
4141+ interface Records {
4242+ "host.plural.system.link": mainSchema;
4343+ }
4444+}
+168
src/lex/types/host/plural/system/member.ts
···11+import type {} from "@atcute/lexicons";
22+import * as v from "@atcute/lexicons/validations";
33+import type {} from "@atcute/lexicons/ambient";
44+55+const _customFieldSchema = /*#__PURE__*/ v.object({
66+ $type: /*#__PURE__*/ v.optional(
77+ /*#__PURE__*/ v.literal("host.plural.system.member#customField"),
88+ ),
99+ /**
1010+ * @maxLength 100
1111+ */
1212+ name: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
1313+ /*#__PURE__*/ v.stringLength(0, 100),
1414+ ]),
1515+ /**
1616+ * @maxLength 500
1717+ */
1818+ value: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
1919+ /*#__PURE__*/ v.stringLength(0, 500),
2020+ ]),
2121+});
2222+const _mainSchema = /*#__PURE__*/ v.record(
2323+ /*#__PURE__*/ v.tidString(),
2424+ /*#__PURE__*/ v.object({
2525+ $type: /*#__PURE__*/ v.literal("host.plural.system.member"),
2626+ /**
2727+ * Avatar image blob (plaintext for public, encrypted for private).
2828+ * @accept image/png, image/jpeg, image/webp, image/gif, application/octet-stream
2929+ * @maxSize 1000000
3030+ */
3131+ avatar: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.blob()),
3232+ /**
3333+ * Member bio/description. Only present for public members.
3434+ * @maxLength 2560
3535+ */
3636+ bio: /*#__PURE__*/ v.optional(
3737+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
3838+ /*#__PURE__*/ v.stringLength(0, 2560),
3939+ ]),
4040+ ),
4141+ /**
4242+ * Encrypted member data (IV + AES-256-GCM ciphertext). Only present for private members.
4343+ */
4444+ ciphertext: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.bytes()),
4545+ /**
4646+ * Member colour (hex format). Only present for public members.
4747+ * @maxLength 7
4848+ */
4949+ colour: /*#__PURE__*/ v.optional(
5050+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
5151+ /*#__PURE__*/ v.stringLength(0, 7),
5252+ ]),
5353+ ),
5454+ /**
5555+ * When the member was created (ISO 8601).
5656+ */
5757+ createdAt: /*#__PURE__*/ v.datetimeString(),
5858+ /**
5959+ * Custom profile fields. Only present for public members.
6060+ * @maxLength 25
6161+ */
6262+ get customFields() {
6363+ return /*#__PURE__*/ v.optional(
6464+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.array(customFieldSchema), [
6565+ /*#__PURE__*/ v.arrayLength(0, 25),
6666+ ]),
6767+ );
6868+ },
6969+ /**
7070+ * Optional DID associated with this member. Must match a host.plural.system.link record for the link to be valid. Only set on public members.
7171+ * @maxLength 2048
7272+ */
7373+ did: /*#__PURE__*/ v.optional(
7474+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
7575+ /*#__PURE__*/ v.stringLength(0, 2048),
7676+ ]),
7777+ ),
7878+ /**
7979+ * Display name. Only present for public members.
8080+ * @maxLength 640
8181+ */
8282+ displayName: /*#__PURE__*/ v.optional(
8383+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
8484+ /*#__PURE__*/ v.stringLength(0, 640),
8585+ ]),
8686+ ),
8787+ /**
8888+ * Member name/identifier. Only present for public members.
8989+ * @maxLength 200
9090+ */
9191+ name: /*#__PURE__*/ v.optional(
9292+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
9393+ /*#__PURE__*/ v.stringLength(0, 200),
9494+ ]),
9595+ ),
9696+ /**
9797+ * Member pronouns. Only present for public members.
9898+ * @maxLength 100
9999+ */
100100+ pronouns: /*#__PURE__*/ v.optional(
101101+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
102102+ /*#__PURE__*/ v.stringLength(0, 100),
103103+ ]),
104104+ ),
105105+ /**
106106+ * Proxy tags for message proxying. Only present for public members.
107107+ * @maxLength 10
108108+ */
109109+ get proxyTags() {
110110+ return /*#__PURE__*/ v.optional(
111111+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.array(proxyTagSchema), [
112112+ /*#__PURE__*/ v.arrayLength(0, 10),
113113+ ]),
114114+ );
115115+ },
116116+ /**
117117+ * When the member was last updated (ISO 8601).
118118+ */
119119+ updatedAt: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()),
120120+ /**
121121+ * Visibility setting. Private members store data in ciphertext only.
122122+ */
123123+ visibility: /*#__PURE__*/ v.string<"private" | "public" | (string & {})>(),
124124+ }),
125125+);
126126+const _proxyTagSchema = /*#__PURE__*/ v.object({
127127+ $type: /*#__PURE__*/ v.optional(
128128+ /*#__PURE__*/ v.literal("host.plural.system.member#proxyTag"),
129129+ ),
130130+ /**
131131+ * @maxLength 50
132132+ */
133133+ prefix: /*#__PURE__*/ v.optional(
134134+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
135135+ /*#__PURE__*/ v.stringLength(0, 50),
136136+ ]),
137137+ ),
138138+ /**
139139+ * @maxLength 50
140140+ */
141141+ suffix: /*#__PURE__*/ v.optional(
142142+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
143143+ /*#__PURE__*/ v.stringLength(0, 50),
144144+ ]),
145145+ ),
146146+});
147147+148148+type customField$schematype = typeof _customFieldSchema;
149149+type main$schematype = typeof _mainSchema;
150150+type proxyTag$schematype = typeof _proxyTagSchema;
151151+152152+export interface customFieldSchema extends customField$schematype {}
153153+export interface mainSchema extends main$schematype {}
154154+export interface proxyTagSchema extends proxyTag$schematype {}
155155+156156+export const customFieldSchema = _customFieldSchema as customFieldSchema;
157157+export const mainSchema = _mainSchema as mainSchema;
158158+export const proxyTagSchema = _proxyTagSchema as proxyTagSchema;
159159+160160+export interface CustomField extends v.InferInput<typeof customFieldSchema> {}
161161+export interface Main extends v.InferInput<typeof mainSchema> {}
162162+export interface ProxyTag extends v.InferInput<typeof proxyTagSchema> {}
163163+164164+declare module "@atcute/lexicons/ambient" {
165165+ interface Records {
166166+ "host.plural.system.member": mainSchema;
167167+ }
168168+}
+70
src/lex/types/host/plural/system/profile.ts
···11+import type {} from "@atcute/lexicons";
22+import * as v from "@atcute/lexicons/validations";
33+import type {} from "@atcute/lexicons/ambient";
44+55+const _mainSchema = /*#__PURE__*/ v.record(
66+ /*#__PURE__*/ v.literal("self"),
77+ /*#__PURE__*/ v.object({
88+ $type: /*#__PURE__*/ v.literal("host.plural.system.profile"),
99+ /**
1010+ * Avatar image blob.
1111+ * @accept image/png, image/jpeg, image/webp, image/gif
1212+ * @maxSize 1000000
1313+ */
1414+ avatar: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.blob()),
1515+ /**
1616+ * System colour (hex format, e.g. '#ff6b6b').
1717+ * @maxLength 7
1818+ */
1919+ colour: /*#__PURE__*/ v.optional(
2020+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
2121+ /*#__PURE__*/ v.stringLength(0, 7),
2222+ ]),
2323+ ),
2424+ /**
2525+ * When the record was created (ISO 8601).
2626+ */
2727+ createdAt: /*#__PURE__*/ v.datetimeString(),
2828+ /**
2929+ * System description/bio.
3030+ * @maxLength 2560
3131+ */
3232+ description: /*#__PURE__*/ v.optional(
3333+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
3434+ /*#__PURE__*/ v.stringLength(0, 2560),
3535+ ]),
3636+ ),
3737+ /**
3838+ * Display name for the system.
3939+ * @maxLength 640
4040+ */
4141+ displayName: /*#__PURE__*/ v.optional(
4242+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
4343+ /*#__PURE__*/ v.stringLength(0, 640),
4444+ ]),
4545+ ),
4646+ /**
4747+ * System pronouns.
4848+ * @maxLength 100
4949+ */
5050+ pronouns: /*#__PURE__*/ v.optional(
5151+ /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
5252+ /*#__PURE__*/ v.stringLength(0, 100),
5353+ ]),
5454+ ),
5555+ }),
5656+);
5757+5858+type main$schematype = typeof _mainSchema;
5959+6060+export interface mainSchema extends main$schematype {}
6161+6262+export const mainSchema = _mainSchema as mainSchema;
6363+6464+export interface Main extends v.InferInput<typeof mainSchema> {}
6565+6666+declare module "@atcute/lexicons/ambient" {
6767+ interface Records {
6868+ "host.plural.system.profile": mainSchema;
6969+ }
7070+}
+35
src/lex/types/host/plural/system/reference.ts
···11+import type {} from "@atcute/lexicons";
22+import * as v from "@atcute/lexicons/validations";
33+import type {} from "@atcute/lexicons/ambient";
44+55+const _mainSchema = /*#__PURE__*/ v.record(
66+ /*#__PURE__*/ v.literal("self"),
77+ /*#__PURE__*/ v.object({
88+ $type: /*#__PURE__*/ v.literal("host.plural.system.reference"),
99+ /**
1010+ * When this reference was created (ISO 8601).
1111+ */
1212+ createdAt: /*#__PURE__*/ v.datetimeString(),
1313+ /**
1414+ * The primary DID where this system's data lives.
1515+ * @maxLength 2048
1616+ */
1717+ primaryDid: /*#__PURE__*/ v.constrain(/*#__PURE__*/ v.string(), [
1818+ /*#__PURE__*/ v.stringLength(0, 2048),
1919+ ]),
2020+ }),
2121+);
2222+2323+type main$schematype = typeof _mainSchema;
2424+2525+export interface mainSchema extends main$schematype {}
2626+2727+export const mainSchema = _mainSchema as mainSchema;
2828+2929+export interface Main extends v.InferInput<typeof mainSchema> {}
3030+3131+declare module "@atcute/lexicons/ambient" {
3232+ interface Records {
3333+ "host.plural.system.reference": mainSchema;
3434+ }
3535+}