changedInput schema / additionalProperties
Previous value: -trueNew value: +{}
removedInput schema / properties / change / items / $ref
Removed value: -"#/properties/ops/items"
addedInput schema / properties / change / items / oneOf
Added value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "entity_type": {
+ "type": "string"
+ },
+ "op": {
+ "const": "add_super_types",
+ "type": "string"
+ },
+ "super_types": {
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "op",
+ "entity_type",
+ "super_types"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "add_domain": {
+ "description": "Entity-type names to add to the relation's domain (source types)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "add_range": {
+ "description": "Entity-type names to add to the relation's range (target types)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "op": {
+ "const": "widen_relation",
+ "type": "string"
+ },
+ "relation": {
+ "description": "Relation to widen, by name (case-insensitive)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "relation"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "description": "Display name of the new entity type (idempotent if it exists)",
+ "type": "string"
+ },
+ "op": {
+ "const": "add_entity_type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "name"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "cardinality": {
+ "description": "Defaults to many_to_many",
+ "enum": [
+ "one_to_one",
+ "one_to_many",
+ "many_to_one",
+ "many_to_many"
+ ],
+ "type": "string"
+ },
+ "domain": {
+ "description": "Entity-type names allowed as the source (domain); must already exist",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "inverse_name": {
+ "description": "Optional inverse-relation display name, e.g. PHASE_OF (enables one-hop reverse traversal)",
+ "type": "string"
+ },
+ "name": {
+ "description": "Display name of the new relation, e.g. HAS_PHASE",
+ "type": "string"
+ },
+ "op": {
+ "const": "add_relation",
+ "type": "string"
+ },
+ "range": {
+ "description": "Entity-type names allowed as the target (range); must already exist",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "reducer": {
+ "description": "State-reducer token, e.g. append_only (default), latest_wins",
+ "type": "string"
+ },
+ "symmetric": {
+ "type": "boolean"
+ },
+ "temporal_semantics": {
+ "description": "Defaults to bitemporal",
+ "enum": [
+ "atemporal",
+ "valid_time",
+ "commit_time",
+ "bitemporal"
+ ],
+ "type": "string"
+ },
+ "transitive": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "op",
+ "name"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "allowed_values": {
+ "description": "Enforced allowed values (sh:in): a commit with another value for the field is refused. For keyword, text, i64 and bool fields only",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Display name of the new scalar property field, e.g. status (idempotent if it exists)",
+ "type": "string"
+ },
+ "op": {
+ "const": "add_property",
+ "type": "string"
+ },
+ "required": {
+ "description": "Advisory required flag (not enforced on commit)",
+ "type": "boolean"
+ },
+ "unit": {
+ "description": "Unit of an i64 or f64 field, e.g. mm, cm, kg, m2 or h. Writers that read text, such as values.extract, convert numbers to it",
+ "type": "string"
+ },
+ "value_type": {
+ "description": "Scalar type; defaults to text. Lets a later lbb_commit set entity_properties[].field",
+ "enum": [
+ "bool",
+ "i64",
+ "f64",
+ "date_time",
+ "keyword",
+ "text",
+ "bytes"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "name"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "op": {
+ "const": "set_property_unit",
+ "type": "string"
+ },
+ "property": {
+ "description": "An existing i64 or f64 field, by name",
+ "type": "string"
+ },
+ "unit": {
+ "description": "The unit's symbol, as add_property takes it; omit it to clear the unit. Stored values are not converted",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "property"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "allowed_values": {
+ "description": "The allowed values that later commits are checked against; empty or absent clears the constraint. Stored values are not checked again",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "op": {
+ "const": "set_property_constraint",
+ "type": "string"
+ },
+ "property": {
+ "description": "An existing field, by name",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "property"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "from": {
+ "description": "Current entity-type name",
+ "type": "string"
+ },
+ "op": {
+ "const": "rename_entity_type",
+ "type": "string"
+ },
+ "to": {
+ "description": "New display name (stable id stays frozen; records keep resolving)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "from",
+ "to"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "from": {
+ "description": "Current relation name",
+ "type": "string"
+ },
+ "op": {
+ "const": "rename_relation",
+ "type": "string"
+ },
+ "to": {
+ "description": "New display name (stable id stays frozen; edges keep resolving)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "from",
+ "to"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "inverse_name": {
+ "description": "Inverse-relation display name, e.g. PHASE_OF (enables one-hop reverse traversal)",
+ "type": "string"
+ },
+ "op": {
+ "const": "set_relation_inverse",
+ "type": "string"
+ },
+ "relation": {
+ "description": "Relation to set the inverse on, by name",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "relation",
+ "inverse_name"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "cardinality": {
+ "enum": [
+ "one_to_one",
+ "one_to_many",
+ "many_to_one",
+ "many_to_many"
+ ],
+ "type": "string"
+ },
+ "op": {
+ "const": "set_relation_cardinality",
+ "type": "string"
+ },
+ "relation": {
+ "description": "Relation to change, by name",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "relation",
+ "cardinality"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "op": {
+ "const": "narrow_relation",
+ "type": "string"
+ },
+ "relation": {
+ "description": "Relation to narrow, by name",
+ "type": "string"
+ },
+ "remove_domain": {
+ "description": "Entity-type names to remove from the relation's domain (subtractive)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "remove_range": {
+ "description": "Entity-type names to remove from the relation's range (subtractive)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "op",
+ "relation"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "description": "Entity type to tombstone — kept readable for old records, rejected for new commits",
+ "type": "string"
+ },
+ "op": {
+ "const": "remove_entity_type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "name"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "description": "Relation to tombstone — old edges stay readable, rejected for new commits",
+ "type": "string"
+ },
+ "op": {
+ "const": "remove_relation",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "name"
+ ],
+ "type": "object"
+ }
+]
changedInput schema / properties / entity_types / items / anyOf
Previous value: -[
- {
- "type": "string"
- },
- {
- "additionalProperties": {},
- "type": "object"
- }
-]New value: +[
+ {
+ "type": "string"
+ },
+ {
+ "additionalProperties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+]
addedInput schema / properties / evidence / properties / records / maximum
Added value: +9007199254740991
removedInput schema / properties / evidence / properties / samples / items / $ref
Removed value: -"#/properties/entity_types/items/anyOf/1"
addedInput schema / properties / evidence / properties / samples / items / additionalProperties
Added value: +{}
addedInput schema / properties / evidence / properties / samples / items / propertyNames
Added value: +{
+ "type": "string"
+}
addedInput schema / properties / evidence / properties / samples / items / type
Added value: +"object"
addedInput schema / properties / expected_ontology_version / maximum
Added value: +9007199254740991
addedInput schema / properties / expected_version / maximum
Added value: +9007199254740991
removedInput schema / properties / facts / properties / entity_properties / items / $ref
Removed value: -"#/properties/entity_types/items/anyOf/1"
addedInput schema / properties / facts / properties / entity_properties / items / additionalProperties
Added value: +{}
addedInput schema / properties / facts / properties / entity_properties / items / propertyNames
Added value: +{
+ "type": "string"
+}
addedInput schema / properties / facts / properties / entity_properties / items / type
Added value: +"object"
removedInput schema / properties / facts / properties / replace_owned / properties / retract_entities / items / $ref
Removed value: -"#/properties/facts/properties/triplets/items/properties/source"
addedInput schema / properties / facts / properties / replace_owned / properties / retract_entities / items / additionalProperties
Added value: +{}
addedInput schema / properties / facts / properties / replace_owned / properties / retract_entities / items / properties
Added value: +{
+ "key": {
+ "description": "The record's external key, when it has one",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+}
addedInput schema / properties / facts / properties / replace_owned / properties / retract_entities / items / required
Added value: +[
+ "type",
+ "name"
+]
addedInput schema / properties / facts / properties / replace_owned / properties / retract_entities / items / type
Added value: +"object"
removedInput schema / properties / facts / properties / replace_owned / properties / subjects / items / $ref
Removed value: -"#/properties/facts/properties/triplets/items/properties/source"
addedInput schema / properties / facts / properties / replace_owned / properties / subjects / items / additionalProperties
Added value: +{}
addedInput schema / properties / facts / properties / replace_owned / properties / subjects / items / properties
Added value: +{
+ "key": {
+ "description": "The record's external key, when it has one",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+}
addedInput schema / properties / facts / properties / replace_owned / properties / subjects / items / required
Added value: +[
+ "type",
+ "name"
+]
addedInput schema / properties / facts / properties / replace_owned / properties / subjects / items / type
Added value: +"object"
changedInput schema / properties / facts / properties / triplets / items / additionalProperties
Previous value: -trueNew value: +{}
addedInput schema / properties / facts / properties / triplets / items / properties / evidence / anyOf
Added value: +[
+ {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "observation_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "region": {
+ "anyOf": [
+ {
+ "additionalProperties": {},
+ "properties": {
+ "confidence": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "page": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "x0": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "x1": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y0": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y1": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "page",
+ "x0",
+ "y0",
+ "x1",
+ "y1",
+ "confidence"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "source_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "text": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+]
changedInput schema / properties / facts / properties / triplets / items / properties / source / additionalProperties
Previous value: -falseNew value: +{}
changedInput schema / properties / facts / properties / triplets / items / properties / source / properties / key / type
Previous value: -"string"New value: +[
+ "string",
+ "null"
+]
removedInput schema / properties / facts / properties / triplets / items / properties / target / $ref
Removed value: -"#/properties/facts/properties/triplets/items/properties/source"
addedInput schema / properties / facts / properties / triplets / items / properties / target / additionalProperties
Added value: +{}
addedInput schema / properties / facts / properties / triplets / items / properties / target / properties
Added value: +{
+ "key": {
+ "description": "The record's external key, when it has one",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+}
addedInput schema / properties / facts / properties / triplets / items / properties / target / required
Added value: +[
+ "type",
+ "name"
+]
addedInput schema / properties / facts / properties / triplets / items / properties / target / type
Added value: +"object"
removedInput schema / properties / ontology / properties / format / $ref
Removed value: -"#/properties/format"
addedInput schema / properties / ontology / properties / format / enum
Added value: +[
+ "auto",
+ "turtle",
+ "json_ld",
+ "rdf_xml",
+ "csv",
+ "tsv",
+ "lbb_json",
+ "spec"
+]
addedInput schema / properties / ontology / properties / format / type
Added value: +"string"
removedInput schema / properties / ops / items / anyOf
Removed value: -[
- {
- "additionalProperties": false,
- "properties": {
- "entity_type": {
- "type": "string"
- },
- "op": {
- "const": "add_super_types",
- "type": "string"
- },
- "super_types": {
- "items": {
- "type": "string"
- },
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "op",
- "entity_type",
- "super_types"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "add_domain": {
- "description": "Entity-type names to add to the relation's domain (source types)",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "add_range": {
- "description": "Entity-type names to add to the relation's range (target types)",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "op": {
- "const": "widen_relation",
- "type": "string"
- },
- "relation": {
- "description": "Relation to widen, by name (case-insensitive)",
- "type": "string"
- }
- },
- "required": [
- "op",
- "relation"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "name": {
- "description": "Display name of the new entity type (idempotent if it exists)",
- "type": "string"
- },
- "op": {
- "const": "add_entity_type",
- "type": "string"
- }
- },
- "required": [
- "op",
- "name"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cardinality": {
- "description": "Defaults to many_to_many",
- "enum": [
- "one_to_one",
- "one_to_many",
- "many_to_one",
- "many_to_many"
- ],
- "type": "string"
- },
- "domain": {
- "description": "Entity-type names allowed as the source (domain); must already exist",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "inverse_name": {
- "description": "Optional inverse-relation display name, e.g. PHASE_OF (enables one-hop reverse traversal)",
- "type": "string"
- },
- "name": {
- "description": "Display name of the new relation, e.g. HAS_PHASE",
- "type": "string"
- },
- "op": {
- "const": "add_relation",
- "type": "string"
- },
- "range": {
- "description": "Entity-type names allowed as the target (range); must already exist",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "reducer": {
- "description": "State-reducer token, e.g. append_only (default), latest_wins",
- "type": "string"
- },
- "symmetric": {
- "type": "boolean"
- },
- "temporal_semantics": {
- "description": "Defaults to bitemporal",
- "enum": [
- "atemporal",
- "valid_time",
- "commit_time",
- "bitemporal"
- ],
- "type": "string"
- },
- "transitive": {
- "type": "boolean"
- }
- },
- "required": [
- "op",
- "name"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "name": {
- "description": "Display name of the new scalar property field, e.g. status (idempotent if it exists)",
- "type": "string"
- },
- "op": {
- "const": "add_property",
- "type": "string"
- },
- "required": {
- "description": "Advisory required flag (not enforced on commit)",
- "type": "boolean"
- },
- "value_type": {
- "description": "Scalar type; defaults to text. Lets a later lbb_commit set entity_properties[].field",
- "enum": [
- "bool",
- "i64",
- "f64",
- "date_time",
- "keyword",
- "text",
- "bytes"
- ],
- "type": "string"
- }
- },
- "required": [
- "op",
- "name"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "from": {
- "description": "Current entity-type name",
- "type": "string"
- },
- "op": {
- "const": "rename_entity_type",
- "type": "string"
- },
- "to": {
- "description": "New display name (stable id stays frozen; records keep resolving)",
- "type": "string"
- }
- },
- "required": [
- "op",
- "from",
- "to"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "from": {
- "description": "Current relation name",
- "type": "string"
- },
- "op": {
- "const": "rename_relation",
- "type": "string"
- },
- "to": {
- "description": "New display name (stable id stays frozen; edges keep resolving)",
- "type": "string"
- }
- },
- "required": [
- "op",
- "from",
- "to"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "inverse_name": {
- "description": "Inverse-relation display name, e.g. PHASE_OF (enables one-hop reverse traversal)",
- "type": "string"
- },
- "op": {
- "const": "set_relation_inverse",
- "type": "string"
- },
- "relation": {
- "description": "Relation to set the inverse on, by name",
- "type": "string"
- }
- },
- "required": [
- "op",
- "relation",
- "inverse_name"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cardinality": {
- "enum": [
- "one_to_one",
- "one_to_many",
- "many_to_one",
- "many_to_many"
- ],
- "type": "string"
- },
- "op": {
- "const": "set_relation_cardinality",
- "type": "string"
- },
- "relation": {
- "description": "Relation to change, by name",
- "type": "string"
- }
- },
- "required": [
- "op",
- "relation",
- "cardinality"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "op": {
- "const": "narrow_relation",
- "type": "string"
- },
- "relation": {
- "description": "Relation to narrow, by name",
- "type": "string"
- },
- "remove_domain": {
- "description": "Entity-type names to remove from the relation's domain (subtractive)",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "remove_range": {
- "description": "Entity-type names to remove from the relation's range (subtractive)",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "op",
- "relation"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "name": {
- "description": "Entity type to tombstone — kept readable for old records, rejected for new commits",
- "type": "string"
- },
- "op": {
- "const": "remove_entity_type",
- "type": "string"
- }
- },
- "required": [
- "op",
- "name"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "name": {
- "description": "Relation to tombstone — old edges stay readable, rejected for new commits",
- "type": "string"
- },
- "op": {
- "const": "remove_relation",
- "type": "string"
- }
- },
- "required": [
- "op",
- "name"
- ],
- "type": "object"
- }
-]
addedInput schema / properties / ops / items / oneOf
Added value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "entity_type": {
+ "type": "string"
+ },
+ "op": {
+ "const": "add_super_types",
+ "type": "string"
+ },
+ "super_types": {
+ "items": {
+ "type": "string"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "op",
+ "entity_type",
+ "super_types"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "add_domain": {
+ "description": "Entity-type names to add to the relation's domain (source types)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "add_range": {
+ "description": "Entity-type names to add to the relation's range (target types)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "op": {
+ "const": "widen_relation",
+ "type": "string"
+ },
+ "relation": {
+ "description": "Relation to widen, by name (case-insensitive)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "relation"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "description": "Display name of the new entity type (idempotent if it exists)",
+ "type": "string"
+ },
+ "op": {
+ "const": "add_entity_type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "name"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "cardinality": {
+ "description": "Defaults to many_to_many",
+ "enum": [
+ "one_to_one",
+ "one_to_many",
+ "many_to_one",
+ "many_to_many"
+ ],
+ "type": "string"
+ },
+ "domain": {
+ "description": "Entity-type names allowed as the source (domain); must already exist",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "inverse_name": {
+ "description": "Optional inverse-relation display name, e.g. PHASE_OF (enables one-hop reverse traversal)",
+ "type": "string"
+ },
+ "name": {
+ "description": "Display name of the new relation, e.g. HAS_PHASE",
+ "type": "string"
+ },
+ "op": {
+ "const": "add_relation",
+ "type": "string"
+ },
+ "range": {
+ "description": "Entity-type names allowed as the target (range); must already exist",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "reducer": {
+ "description": "State-reducer token, e.g. append_only (default), latest_wins",
+ "type": "string"
+ },
+ "symmetric": {
+ "type": "boolean"
+ },
+ "temporal_semantics": {
+ "description": "Defaults to bitemporal",
+ "enum": [
+ "atemporal",
+ "valid_time",
+ "commit_time",
+ "bitemporal"
+ ],
+ "type": "string"
+ },
+ "transitive": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "op",
+ "name"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "allowed_values": {
+ "description": "Enforced allowed values (sh:in): a commit with another value for the field is refused. For keyword, text, i64 and bool fields only",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "name": {
+ "description": "Display name of the new scalar property field, e.g. status (idempotent if it exists)",
+ "type": "string"
+ },
+ "op": {
+ "const": "add_property",
+ "type": "string"
+ },
+ "required": {
+ "description": "Advisory required flag (not enforced on commit)",
+ "type": "boolean"
+ },
+ "unit": {
+ "description": "Unit of an i64 or f64 field, e.g. mm, cm, kg, m2 or h. Writers that read text, such as values.extract, convert numbers to it",
+ "type": "string"
+ },
+ "value_type": {
+ "description": "Scalar type; defaults to text. Lets a later lbb_commit set entity_properties[].field",
+ "enum": [
+ "bool",
+ "i64",
+ "f64",
+ "date_time",
+ "keyword",
+ "text",
+ "bytes"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "name"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "op": {
+ "const": "set_property_unit",
+ "type": "string"
+ },
+ "property": {
+ "description": "An existing i64 or f64 field, by name",
+ "type": "string"
+ },
+ "unit": {
+ "description": "The unit's symbol, as add_property takes it; omit it to clear the unit. Stored values are not converted",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "property"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "allowed_values": {
+ "description": "The allowed values that later commits are checked against; empty or absent clears the constraint. Stored values are not checked again",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "op": {
+ "const": "set_property_constraint",
+ "type": "string"
+ },
+ "property": {
+ "description": "An existing field, by name",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "property"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "from": {
+ "description": "Current entity-type name",
+ "type": "string"
+ },
+ "op": {
+ "const": "rename_entity_type",
+ "type": "string"
+ },
+ "to": {
+ "description": "New display name (stable id stays frozen; records keep resolving)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "from",
+ "to"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "from": {
+ "description": "Current relation name",
+ "type": "string"
+ },
+ "op": {
+ "const": "rename_relation",
+ "type": "string"
+ },
+ "to": {
+ "description": "New display name (stable id stays frozen; edges keep resolving)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "from",
+ "to"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "inverse_name": {
+ "description": "Inverse-relation display name, e.g. PHASE_OF (enables one-hop reverse traversal)",
+ "type": "string"
+ },
+ "op": {
+ "const": "set_relation_inverse",
+ "type": "string"
+ },
+ "relation": {
+ "description": "Relation to set the inverse on, by name",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "relation",
+ "inverse_name"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "cardinality": {
+ "enum": [
+ "one_to_one",
+ "one_to_many",
+ "many_to_one",
+ "many_to_many"
+ ],
+ "type": "string"
+ },
+ "op": {
+ "const": "set_relation_cardinality",
+ "type": "string"
+ },
+ "relation": {
+ "description": "Relation to change, by name",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "relation",
+ "cardinality"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "op": {
+ "const": "narrow_relation",
+ "type": "string"
+ },
+ "relation": {
+ "description": "Relation to narrow, by name",
+ "type": "string"
+ },
+ "remove_domain": {
+ "description": "Entity-type names to remove from the relation's domain (subtractive)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "remove_range": {
+ "description": "Entity-type names to remove from the relation's range (subtractive)",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "op",
+ "relation"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "description": "Entity type to tombstone — kept readable for old records, rejected for new commits",
+ "type": "string"
+ },
+ "op": {
+ "const": "remove_entity_type",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "name"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "description": "Relation to tombstone — old edges stay readable, rejected for new commits",
+ "type": "string"
+ },
+ "op": {
+ "const": "remove_relation",
+ "type": "string"
+ }
+ },
+ "required": [
+ "op",
+ "name"
+ ],
+ "type": "object"
+ }
+]
changedInput schema / properties / relations / items / anyOf
Previous value: -[
- {
- "type": "string"
- },
- {
- "$ref": "#/properties/entity_types/items/anyOf/1"
- }
-]New value: +[
+ {
+ "type": "string"
+ },
+ {
+ "additionalProperties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+]