changedInput schema / properties / build_mode / anyOf
Previous value: -[
- {
- "additionalProperties": true,
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "mode": {
+ "const": "fixed_territory_count"
+ },
+ "territory_count": {
+ "minimum": 1,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "mode",
+ "territory_count"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "mode": {
+ "const": "fixed_workload_target"
+ },
+ "target_workload": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "workload_unit": {
+ "default": "hours",
+ "enum": [
+ "minutes",
+ "hours"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode",
+ "target_workload"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ {
+ "type": "null"
+ }
+]
addedInput schema / properties / build_mode / description
Added value: +"Required unless modern form elicitation supplies sizing."
removedInput schema / properties / build_mode / title
Removed value: -"Build Mode"
addedInput schema / properties / map_session_id / description
Added value: +"Open map session (msess_...) from get_map_visualization. Its Territory Solution is the input; omit ts_handle when set."
changedInput schema / properties / metric_fields / anyOf
Previous value: -[
- {
- "items": {
- "additionalProperties": true,
- "type": "object"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "role": {
+ "description": "Optional semantic role for workload columns. Agents should set visit_frequency or dwell_time when declaring canonical workload inputs.",
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "number",
+ "integer",
+ "string",
+ "boolean"
+ ],
+ "type": "string"
+ },
+ "unit": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "field"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+]
addedInput schema / properties / metric_fields / description
Added value: +"Metric columns to declare on the point layer (same shape as ingest_accounts metric_fields)."
removedInput schema / properties / metric_fields / title
Removed value: -"Metric Fields"
changedInput schema / properties / point_filter / anyOf
Previous value: -[
- {
- "additionalProperties": true,
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "additionalProperties": {
+ "anyOf": [
+ {
+ "type": [
+ "string",
+ "number",
+ "boolean"
+ ]
+ },
+ {
+ "items": {
+ "type": [
+ "string",
+ "number",
+ "boolean"
+ ]
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ ]
+ },
+ "minProperties": 1,
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]
addedInput schema / properties / point_filter / description
Added value: +"Optional property filter on the named point layer. Keys are point properties (equality or IN list). Multiple keys are AND. Example: {\"STATE\": \"FL\"}. Unmatched points stay on the layer ungrouped. part_filter and part_scope are not used here."
removedInput schema / properties / point_filter / title
Removed value: -"Point Filter"
addedInput schema / properties / seed_attraction / description
Added value: +"How hard each group centroid is held at its seed. 100 pins it at the seed; 0 seeds only the starting point and lets the solver drift to the workload centroid. Requires seed_point_layer."
addedInput schema / properties / seed_point_layer / description
Added value: +"Second ingested point layer whose locations anchor the group centroids one-to-one (technician homes, depots). Must differ from point_layer; its point count must equal the group count."
removedInput schema / properties / ts
Removed value: -{
- "anyOf": [
- {
- "additionalProperties": true,
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null,
- "title": "Ts"
-}
addedInput schema / properties / ts_handle / description
Added value: +"Territory Solution reference (tsh_...) from a build, ingest_accounts, import_geojson, import_designer_project, or get_map_visualization; Territory Solutions are not accepted inline."
removedOutput schema / additionalProperties
Removed value: -true
addedOutput schema / properties
Added value: +{
+ "error": {
+ "description": "Present when ok is false.",
+ "properties": {
+ "ask_user": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "code": {
+ "type": "string"
+ },
+ "details": {
+ "type": "object"
+ },
+ "do_this_next": {
+ "type": "object"
+ },
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "ok": {
+ "type": "boolean"
+ },
+ "result": {
+ "description": "Present when ok is true.",
+ "properties": {
+ "annotation_summary": {
+ "type": "object"
+ },
+ "build_mode_summary": {
+ "type": "object"
+ },
+ "creates_tal": {
+ "type": "boolean"
+ },
+ "distribution_summary": {
+ "type": "object"
+ },
+ "do_this_next": {
+ "type": "string"
+ },
+ "expires_at": {
+ "type": "string"
+ },
+ "group_count": {
+ "type": "integer"
+ },
+ "group_field": {
+ "type": "string"
+ },
+ "group_labels": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "groups": {
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "map_refresh": {
+ "type": "object"
+ },
+ "objective_summary": {
+ "type": "object"
+ },
+ "point_count": {
+ "type": "integer"
+ },
+ "point_filter_summary": {
+ "type": "object"
+ },
+ "point_layer": {
+ "type": "string"
+ },
+ "seed_summary": {
+ "type": "object"
+ },
+ "ts_handle": {
+ "type": "string"
+ },
+ "ts_identity": {
+ "type": "object"
+ },
+ "ts_omitted": {
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "warnings": {
+ "items": {
+ "properties": {
+ "code": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+}
addedOutput schema / required
Added value: +[
+ "ok"
+]
removedOutput schema / title
Removed value: -"cluster_pointsDictOutput"