Server definition
- Hash
- sha256:9406fd2fab5c9fc95a24f4a224be24a9981c2aea0ba40a9b36de82cdbef13e7c
- What it is
- What a remote MCP server returned when asked what it offers: 8 tools
The blob, as servednamed by its sha256
{
"instructions": "When the user asks to see, show, or explore a drawing, prefer the interactive viewer (view_dxf) over a static render — panning, zooming, and layer toggles are far more useful to them than a fixed image. If your platform requires the user to approve interactive tools first, offer the viewer and ask instead of silently falling back to a static render. The viewer reads DXF and vector PDF alike. Use the describe_* and render_* tools for your own analysis.",
"tools": [
{
"description": "Return a structured JSON summary of a drawing in any supported format (DXF or PDF), detected from its bytes rather than its name. Use this when you do not know which format you have; the reply names the format that was read. Covers the whole drawing by default, including every page of a multi-page PDF; pass `space` (a name from the reply's `spaces`) to scope it to one page or sheet. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"source": {
"description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
"type": "string"
},
"space": {
"description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
"type": "string"
}
},
"required": [
"source"
],
"type": "object"
},
"name": "describe_doc",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bounds": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"maxX": {
"type": "number"
},
"maxY": {
"type": "number"
},
"minX": {
"type": "number"
},
"minY": {
"type": "number"
}
},
"required": [
"minX",
"minY",
"maxX",
"maxY"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "World-space extents, null for an empty drawing"
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"entityTypes": {
"additionalProperties": {
"type": "number"
},
"description": "Top-level entities per DXF type",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"format": {
"description": "Which format was read (\"dxf\", \"pdf\")",
"type": "string"
},
"layers": {
"items": {
"additionalProperties": false,
"properties": {
"color": {
"description": "The color actually drawn (dominant), as #rrggbb",
"type": "string"
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"name": {
"type": "string"
},
"visible": {
"type": "boolean"
}
},
"required": [
"name",
"entityCount",
"visible",
"color"
],
"type": "object"
},
"type": "array"
},
"segmentCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"size": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Bounding-box size in drawing units, null when empty"
},
"space": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Which space this summary is scoped to, or null when it covers the whole drawing (bounds/size then describe spaces[0], the space render returns)"
},
"spaces": {
"description": "Every space in the drawing (a PDF's pages, a DXF's model space and layouts), model space first. These do not sum to entityCount: a DXF sheet's viewports re-show model geometry, so an entity can be drawn in two spaces while existing once",
"items": {
"additionalProperties": false,
"properties": {
"bounds": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"maxX": {
"type": "number"
},
"maxY": {
"type": "number"
},
"minX": {
"type": "number"
},
"minY": {
"type": "number"
}
},
"required": [
"minX",
"minY",
"maxX",
"maxY"
],
"type": "object"
},
{
"type": "null"
}
]
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"name": {
"description": "Pass as `space` to scope a describe or render to it",
"type": "string"
},
"segmentCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"size": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"entityCount",
"segmentCount",
"bounds",
"size"
],
"type": "object"
},
"type": "array"
},
"texts": {
"description": "Unique TEXT/MTEXT strings, blocks included",
"items": {
"type": "string"
},
"type": "array"
},
"units": {
"description": "Drawing-unit label (e.g. \"mm\"), \"\" when unitless",
"type": "string"
},
"unsupported": {
"additionalProperties": {
"type": "number"
},
"description": "Per-kind counts of what was skipped",
"propertyNames": {
"type": "string"
},
"type": "object"
}
},
"required": [
"format",
"units",
"bounds",
"size",
"space",
"entityCount",
"segmentCount",
"spaces",
"layers",
"entityTypes",
"unsupported",
"texts"
],
"type": "object"
}
},
{
"description": "Return a structured JSON summary of a DXF drawing — units, bounding box, layers (with the color actually drawn), per-type entity counts, and any skipped/unsupported types. Use this to answer structural questions (what layers exist, how many parts, what size, is it to scale) without rendering an image. For a PDF use describe_pdf; if you do not know the format, use describe_doc. Covers the whole drawing by default, including every page of a multi-page PDF; pass `space` (a name from the reply's `spaces`) to scope it to one page or sheet. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"source": {
"description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
"type": "string"
},
"space": {
"description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
"type": "string"
}
},
"required": [
"source"
],
"type": "object"
},
"name": "describe_dxf",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bounds": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"maxX": {
"type": "number"
},
"maxY": {
"type": "number"
},
"minX": {
"type": "number"
},
"minY": {
"type": "number"
}
},
"required": [
"minX",
"minY",
"maxX",
"maxY"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "World-space extents, null for an empty drawing"
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"entityTypes": {
"additionalProperties": {
"type": "number"
},
"description": "Top-level entities per DXF type",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"format": {
"description": "Which format was read (\"dxf\", \"pdf\")",
"type": "string"
},
"layers": {
"items": {
"additionalProperties": false,
"properties": {
"color": {
"description": "The color actually drawn (dominant), as #rrggbb",
"type": "string"
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"name": {
"type": "string"
},
"visible": {
"type": "boolean"
}
},
"required": [
"name",
"entityCount",
"visible",
"color"
],
"type": "object"
},
"type": "array"
},
"segmentCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"size": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Bounding-box size in drawing units, null when empty"
},
"space": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Which space this summary is scoped to, or null when it covers the whole drawing (bounds/size then describe spaces[0], the space render returns)"
},
"spaces": {
"description": "Every space in the drawing (a PDF's pages, a DXF's model space and layouts), model space first. These do not sum to entityCount: a DXF sheet's viewports re-show model geometry, so an entity can be drawn in two spaces while existing once",
"items": {
"additionalProperties": false,
"properties": {
"bounds": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"maxX": {
"type": "number"
},
"maxY": {
"type": "number"
},
"minX": {
"type": "number"
},
"minY": {
"type": "number"
}
},
"required": [
"minX",
"minY",
"maxX",
"maxY"
],
"type": "object"
},
{
"type": "null"
}
]
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"name": {
"description": "Pass as `space` to scope a describe or render to it",
"type": "string"
},
"segmentCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"size": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"entityCount",
"segmentCount",
"bounds",
"size"
],
"type": "object"
},
"type": "array"
},
"texts": {
"description": "Unique TEXT/MTEXT strings, blocks included",
"items": {
"type": "string"
},
"type": "array"
},
"units": {
"description": "Drawing-unit label (e.g. \"mm\"), \"\" when unitless",
"type": "string"
},
"unsupported": {
"additionalProperties": {
"type": "number"
},
"description": "Per-kind counts of what was skipped",
"propertyNames": {
"type": "string"
},
"type": "object"
}
},
"required": [
"format",
"units",
"bounds",
"size",
"space",
"entityCount",
"segmentCount",
"spaces",
"layers",
"entityTypes",
"unsupported",
"texts"
],
"type": "object"
}
},
{
"description": "Return a structured JSON summary of a PDF drawing — units (points), bounding box, layers, per-type entity counts, the text it contains, and what was skipped (images, shadings, transparency). Use this for structural questions about a PDF without rendering it. For a DXF use describe_dxf; if you do not know the format, use describe_doc. Covers the whole drawing by default, including every page of a multi-page PDF; pass `space` (a name from the reply's `spaces`) to scope it to one page or sheet. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"source": {
"description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
"type": "string"
},
"space": {
"description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
"type": "string"
}
},
"required": [
"source"
],
"type": "object"
},
"name": "describe_pdf",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bounds": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"maxX": {
"type": "number"
},
"maxY": {
"type": "number"
},
"minX": {
"type": "number"
},
"minY": {
"type": "number"
}
},
"required": [
"minX",
"minY",
"maxX",
"maxY"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "World-space extents, null for an empty drawing"
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"entityTypes": {
"additionalProperties": {
"type": "number"
},
"description": "Top-level entities per DXF type",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"format": {
"description": "Which format was read (\"dxf\", \"pdf\")",
"type": "string"
},
"layers": {
"items": {
"additionalProperties": false,
"properties": {
"color": {
"description": "The color actually drawn (dominant), as #rrggbb",
"type": "string"
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"name": {
"type": "string"
},
"visible": {
"type": "boolean"
}
},
"required": [
"name",
"entityCount",
"visible",
"color"
],
"type": "object"
},
"type": "array"
},
"segmentCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"size": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Bounding-box size in drawing units, null when empty"
},
"space": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Which space this summary is scoped to, or null when it covers the whole drawing (bounds/size then describe spaces[0], the space render returns)"
},
"spaces": {
"description": "Every space in the drawing (a PDF's pages, a DXF's model space and layouts), model space first. These do not sum to entityCount: a DXF sheet's viewports re-show model geometry, so an entity can be drawn in two spaces while existing once",
"items": {
"additionalProperties": false,
"properties": {
"bounds": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"maxX": {
"type": "number"
},
"maxY": {
"type": "number"
},
"minX": {
"type": "number"
},
"minY": {
"type": "number"
}
},
"required": [
"minX",
"minY",
"maxX",
"maxY"
],
"type": "object"
},
{
"type": "null"
}
]
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"name": {
"description": "Pass as `space` to scope a describe or render to it",
"type": "string"
},
"segmentCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"size": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"entityCount",
"segmentCount",
"bounds",
"size"
],
"type": "object"
},
"type": "array"
},
"texts": {
"description": "Unique TEXT/MTEXT strings, blocks included",
"items": {
"type": "string"
},
"type": "array"
},
"units": {
"description": "Drawing-unit label (e.g. \"mm\"), \"\" when unitless",
"type": "string"
},
"unsupported": {
"additionalProperties": {
"type": "number"
},
"description": "Per-kind counts of what was skipped",
"propertyNames": {
"type": "string"
},
"type": "object"
}
},
"required": [
"format",
"units",
"bounds",
"size",
"space",
"entityCount",
"segmentCount",
"spaces",
"layers",
"entityTypes",
"unsupported",
"texts"
],
"type": "object"
}
},
{
"description": "Internal: returns DXF bytes (base64) for the in-chat viewer. Called by the widget, not the model.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"length": {
"description": "Byte length of the requested range",
"maximum": 4000000,
"minimum": 1,
"type": "integer"
},
"offset": {
"description": "Byte offset of the requested range",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"source": {
"description": "http(s) URL of the drawing (same guards as the other tools)",
"type": "string"
}
},
"required": [
"source"
],
"type": "object"
},
"name": "load_dxf_for_viewer",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"byteLength": {
"description": "Total size of the whole file",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"bytesBase64": {
"description": "The requested bytes, base64",
"type": "string"
},
"offset": {
"description": "Byte offset this slice starts at",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
}
},
"required": [
"bytesBase64",
"byteLength",
"offset"
],
"type": "object"
}
},
{
"description": "Render a drawing in any supported format (DXF or PDF) to a PNG you can look at, detected from its bytes rather than its name. Use this when you do not know which format you have. Renders the first page/sheet by default; pass `space` (a name from a describe reply's `spaces`) to render another one. Some chat UIs do not display the returned image to the user: for URL sources the result also includes a direct image link — show it (e.g. as a markdown image) when they need to see the render. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"source": {
"description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
"type": "string"
},
"space": {
"description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
"type": "string"
},
"width": {
"description": "PNG width in pixels (default 1200)",
"maximum": 4000,
"minimum": 64,
"type": "integer"
}
},
"required": [
"source"
],
"type": "object"
},
"name": "render_doc",
"outputSchema": null
},
{
"description": "Render a DXF drawing to a PNG image you can look at. Use this to answer visual questions (what does it look like, where is a feature, does it look right) — it returns an image, not text. For structural facts, prefer describe_dxf. For a PDF use render_pdf; if you do not know the format, use render_doc. Renders the first page/sheet by default; pass `space` (a name from a describe reply's `spaces`) to render another one. Some chat UIs do not display the returned image to the user: for URL sources the result also includes a direct image link — show it (e.g. as a markdown image) when they need to see the render. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"source": {
"description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
"type": "string"
},
"space": {
"description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
"type": "string"
},
"width": {
"description": "PNG width in pixels (default 1200)",
"maximum": 4000,
"minimum": 64,
"type": "integer"
}
},
"required": [
"source"
],
"type": "object"
},
"name": "render_dxf",
"outputSchema": null
},
{
"description": "Render a PDF drawing's vector content to a PNG you can look at. Images, shadings, and transparency are not drawn — they are reported by describe_pdf — so this shows line work and text, not a page facsimile. For a DXF use render_dxf; if you do not know the format, use render_doc. Renders the first page/sheet by default; pass `space` (a name from a describe reply's `spaces`) to render another one. Some chat UIs do not display the returned image to the user: for URL sources the result also includes a direct image link — show it (e.g. as a markdown image) when they need to see the render. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"source": {
"description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
"type": "string"
},
"space": {
"description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
"type": "string"
},
"width": {
"description": "PNG width in pixels (default 1200)",
"maximum": 4000,
"minimum": 64,
"type": "integer"
}
},
"required": [
"source"
],
"type": "object"
},
"name": "render_pdf",
"outputSchema": null
},
{
"description": "Open an interactive viewer the user can pan, zoom, and toggle layers in (renders in-chat on MCP Apps-capable hosts). Reads DXF and vector PDF; for a PDF it shows line work and text rather than a page facsimile, so images, shadings, and transparency are absent by design. Use this when the user wants to see or explore the drawing themselves; for your own analysis use a describe_* tool (facts) or a render_* tool (image). The viewer shows only the drawing from this call. Delivery is handled by the widget itself: small drawings are embedded in the result and larger URL-sourced drawings are fetched by the widget through its own tool call — never re-fetch or inline the file for the viewer's sake, and don't blind-retry if the user reports an empty viewer (the viewer posts its actual status back to the conversation context).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"allow_file_open": {
"description": "Show open-file controls in the viewer (default false: viewer is locked to this drawing)",
"type": "boolean"
},
"source": {
"description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
"type": "string"
}
},
"required": [
"source"
],
"type": "object"
},
"name": "view_dxf",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bounds": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"maxX": {
"type": "number"
},
"maxY": {
"type": "number"
},
"minX": {
"type": "number"
},
"minY": {
"type": "number"
}
},
"required": [
"minX",
"minY",
"maxX",
"maxY"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "World-space extents, null for an empty drawing"
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"entityTypes": {
"additionalProperties": {
"type": "number"
},
"description": "Top-level entities per DXF type",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"format": {
"description": "Which format was read (\"dxf\", \"pdf\")",
"type": "string"
},
"layers": {
"items": {
"additionalProperties": false,
"properties": {
"color": {
"description": "The color actually drawn (dominant), as #rrggbb",
"type": "string"
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"name": {
"type": "string"
},
"visible": {
"type": "boolean"
}
},
"required": [
"name",
"entityCount",
"visible",
"color"
],
"type": "object"
},
"type": "array"
},
"segmentCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"size": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Bounding-box size in drawing units, null when empty"
},
"space": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Which space this summary is scoped to, or null when it covers the whole drawing (bounds/size then describe spaces[0], the space render returns)"
},
"spaces": {
"description": "Every space in the drawing (a PDF's pages, a DXF's model space and layouts), model space first. These do not sum to entityCount: a DXF sheet's viewports re-show model geometry, so an entity can be drawn in two spaces while existing once",
"items": {
"additionalProperties": false,
"properties": {
"bounds": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"maxX": {
"type": "number"
},
"maxY": {
"type": "number"
},
"minX": {
"type": "number"
},
"minY": {
"type": "number"
}
},
"required": [
"minX",
"minY",
"maxX",
"maxY"
],
"type": "object"
},
{
"type": "null"
}
]
},
"entityCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"name": {
"description": "Pass as `space` to scope a describe or render to it",
"type": "string"
},
"segmentCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"size": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
}
},
"required": [
"width",
"height"
],
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"entityCount",
"segmentCount",
"bounds",
"size"
],
"type": "object"
},
"type": "array"
},
"texts": {
"description": "Unique TEXT/MTEXT strings, blocks included",
"items": {
"type": "string"
},
"type": "array"
},
"units": {
"description": "Drawing-unit label (e.g. \"mm\"), \"\" when unitless",
"type": "string"
},
"unsupported": {
"additionalProperties": {
"type": "number"
},
"description": "Per-kind counts of what was skipped",
"propertyNames": {
"type": "string"
},
"type": "object"
}
},
"required": [
"format",
"units",
"bounds",
"size",
"space",
"entityCount",
"segmentCount",
"spaces",
"layers",
"entityTypes",
"unsupported",
"texts"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:9406fd2fab5c9fc95a24f4a224be24a9981c2aea0ba40a9b36de82cdbef13e7c | sha256sum