Opinionated multi-model delegation for very large repos.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:thunderkit:continuity:v1",
"title": "Thunderkit model-free continuity v1",
"$comment": "No settings object carries authority. Runtime decoding additionally enforces UTF-8 byte/depth/duplicate-key bounds, exact identity/index/path bindings and merged numeric cross-field limits. Paths are literal POSIX paths; filesystem safety is checked separately. Integer tokens must be JSON integers, not bool or floating-point spellings.",
"oneOf": [
{"$ref": "#/$defs/policy"},
{"$ref": "#/$defs/project-settings"},
{"$ref": "#/$defs/global-settings"},
{"$ref": "#/$defs/context-pointer"}
],
"$defs": {
"token": {
"type": "string", "minLength": 1, "maxLength": 128,
"pattern": "^(?![\\s\\S]*\\.\\.)[A-Za-z0-9][A-Za-z0-9_.-]{0,127}(?![\\s\\S])"
},
"path": {
"type": "string", "minLength": 1, "maxLength": 4096,
"pattern": "^(?!//)(?![\\s\\S]*(?:^|/)\\.\\.(?:/|$))[^\\\\:\u0000-\u001f\u007f-\u009f\\ud800-\\udfff]+(?![\\s\\S])"
},
"absolute-path": {
"allOf": [{"$ref": "#/$defs/path"}, {"pattern": "^/"}]
},
"identity": {
"type": "object", "additionalProperties": false, "required": ["kind", "id"],
"properties": {
"kind": {"enum": ["project", "global"]}, "id": {"$ref": "#/$defs/token"}
}
},
"project-identity": {
"allOf": [{"$ref": "#/$defs/identity"}, {"properties": {"kind": {"const": "project"}}}]
},
"global-identity": {
"allOf": [{"$ref": "#/$defs/identity"}, {"properties": {"kind": {"const": "global"}}}]
},
"locator": {
"type": "object", "additionalProperties": false, "required": ["identity", "path"],
"properties": {"identity": {"$ref": "#/$defs/identity"}, "path": {"$ref": "#/$defs/path"}}
},
"policy": {
"type": "object", "additionalProperties": false, "required": ["schema"],
"properties": {
"schema": {"type": "integer", "const": 1},
"backup": {
"type": "object", "additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
"interval_minutes": {"type": "integer", "minimum": 1, "maximum": 10080, "default": 15},
"retention": {"type": "integer", "minimum": 1, "maximum": 10000, "default": 20},
"prune": {"type": "boolean", "default": false},
"limits": {
"type": "object", "additionalProperties": false,
"properties": {
"max_file_bytes": {"type": "integer", "minimum": 1, "maximum": 1073741824, "default": 10485760},
"max_snapshot_bytes": {"type": "integer", "minimum": 1, "maximum": 10737418240, "default": 104857600},
"max_files": {"type": "integer", "minimum": 1, "maximum": 100000, "default": 10000},
"max_path_bytes": {"type": "integer", "minimum": 1, "maximum": 4096, "default": 4096},
"max_sources": {"type": "integer", "minimum": 1, "maximum": 10000, "default": 1000}
}
}
}
},
"restore": {
"type": "object", "additionalProperties": false,
"properties": {
"max_context_bytes": {"type": "integer", "minimum": 1, "maximum": 16777216, "default": 65536}
}
},
"git": {
"type": "object", "additionalProperties": false,
"properties": {"push_after_commit": {"type": "boolean", "default": true}}
}
}
},
"project-entry": {
"type": "object", "additionalProperties": false, "required": ["identity", "project_root"],
"properties": {
"identity": {"$ref": "#/$defs/project-identity"},
"project_root": {"$ref": "#/$defs/absolute-path"},
"backup_root": {"$ref": "#/$defs/absolute-path"},
"latest_context": {"$ref": "#/$defs/locator"}
}
},
"project-settings": {
"type": "object", "additionalProperties": false,
"required": ["schema", "kind", "identity", "project_root"],
"properties": {
"schema": {"type": "integer", "const": 1}, "kind": {"const": "project-settings"},
"identity": {"$ref": "#/$defs/project-identity"},
"project_root": {"$ref": "#/$defs/absolute-path"},
"backup_root": {"$ref": "#/$defs/absolute-path"},
"latest_context": {"$ref": "#/$defs/locator"}
}
},
"global-entry": {
"type": "object", "additionalProperties": false, "required": ["identity"],
"properties": {
"identity": {"$ref": "#/$defs/global-identity"},
"backup_root": {"$ref": "#/$defs/absolute-path"},
"latest_context": {"$ref": "#/$defs/locator"},
"approved_sources": {
"type": "array", "maxItems": 10000, "uniqueItems": true,
"items": {"$ref": "#/$defs/absolute-path"}
}
}
},
"global-settings": {
"type": "object", "additionalProperties": false, "required": ["schema", "kind"],
"properties": {
"schema": {"type": "integer", "const": 1}, "kind": {"const": "global-settings"},
"policy": {"$ref": "#/$defs/policy"}, "global": {"$ref": "#/$defs/global-entry"},
"projects": {
"type": "object", "maxProperties": 10000,
"propertyNames": {"$ref": "#/$defs/token"},
"additionalProperties": {"$ref": "#/$defs/project-entry"}
}
}
},
"context-pointer": {
"type": "object", "additionalProperties": false, "required": ["schema", "kind", "identity", "path"],
"properties": {
"schema": {"type": "integer", "const": 1}, "kind": {"const": "context-pointer"},
"identity": {"$ref": "#/$defs/identity"}, "path": {"$ref": "#/$defs/path"}
}
}
}
}