Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,542Letters: 14Defects: 1,324counted 3 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:9406fd2fab5c9fc95a24f4a224be24a9981c2aea0ba40a9b36de82cdbef13e7c | sha256sum