Skip to main content

Squillify development is paused indefinitely. Read why, and discover what this experiment achieved. Read the story

MicroSkills Reference

Schema Name Normalizer

schema.normalize_schema_names

ProductionBounded custom (Class B)Deterministicverifiablefastv1.0.0
No network

Overview

You send a JSON Schema or a plain JSON object and pick a convention — camelCase, PascalCase, snake_case, or kebab-case — and we rename the fields to match. You get the rewritten document plus a mapping that lists every field's old and new name, so the rename stays reversible and reviewable. In schema mode we only touch property names, keeping keywords, $ref targets, and definition names exactly as you wrote them. If two different names collapse into one, we tell you rather than quietly losing a field.

A document that mixes user_id, userName, and User-Email breaks code generation and makes mapping layers miserable. Renaming by hand is tedious and easy to get subtly wrong, so we do it by rule and show you every change we made.

Reliability

Deterministic: the same document and options always produce the same names, the same mapping order, and the same collisions. Names are split on underscores, hyphens, spaces, dots, and case boundaries, so HTTPServer becomes two words rather than one. We reject the call, and an unchanged retry will not help, when input is missing, when targetCase, inputKind, or collisionPolicy is not one of the listed values, or when two names collide while collisionPolicy is error — in that last case switch to suffix, or rename one of the fields yourself, and call again.

Context footprint

The document is capped at 1000000 bytes, and the response repeats it once unless you set includeTransformed to false. A successful call costs 1 execution credit.

When to use it

Before you generate code, documentation, or a mapping layer from a schema or a sample payload whose names are inconsistent.

When the original names have to survive as-is, or when the document leans on $ref targets that a rename would leave pointing at the old names.

Scope

Note
We rename the field names in a JSON Schema or JSON object to the convention you choose and hand back the rewritten document, a full mapping, and any collisions.

Non-goals

  • We never rename schema keywords such as type, items, required, $ref, or $defs
  • We never rewrite the target of a $ref, so a rename can leave a reference stale
  • We never check the document against a schema

Properties

IdempotentRetry safeStreaming supportedFile input supportedRequires external service

Capabilities

data-transformation

Cost & billing

Flat rate per invocation

MetercallsBillable onsuccessCost per call1 credit

File handling

Accepts file_refProduces file_refMax input976.6 KB

How we handle your data

Sensitive input, safe output
What this means

This skill may receive sensitive content, but it does not target sensitive data and returns only a structured non-sensitive result.

Squillify guarantees
  • Runs inside Squillify
  • This skill runs inside Squillify.
  • Payloads are not sent to an external service by this skill.
  • Squillify does not permanently store submitted payloads.
  • Telemetry records metadata only, not submitted content.
  • Submitted payloads are not used for training.
  • Submitted payloads are not reviewed by humans.
  • This skill does not target sensitive data.
  • The response does not contain submitted content.
Your responsibility

Squillify does not determine whether submitted content is sensitive. Your application is responsible for deciding what data it is allowed to submit. Your application is responsible for securing the response.

Read the Microskill Data Handling Policy

Input schema

FieldTypeRequiredDescription
inputobjectYesJSON object to rename; extra keys are schema keywords or payload fields depending on inputKind. — unconstrained RFC 8259 JSON items.
inputKindstringNojson_schema renames property names only; json_object renames every key. Omit it for json_schema.
targetCasestringYesConvention to rename into.
preserveAcronymsbooleanNoWhether to keep runs of capitals such as ID; omit it for false.
collisionPolicystringNoerror rejects colliding names; suffix appends _2, _3. Omit it for error.
includeTransformedbooleanNoWhether the rewritten document comes back; omit it for true.

Output schema

FieldTypeRequiredDescription
transformedobjectNoRewritten document with field names replaced; omit it when includeTransformed is false. — unconstrained RFC 8259 JSON items.
mappingsarrayYesEvery field looked at, 0 through 100000 closed {path, original, normalized} objects in document order.
collisionsarrayYesCollapsed names, 0 through 10000 closed objects; empty when every name stayed distinct.

API contract

POST /v1/execute
curl
curl -sS -X POST "$BASE/v1/execute" -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d '{"skillKey":"schema.normalize_schema_names","input":{"input":{"type":"object","properties":{"user_id":{"type":"string"}}},"targetCase":"camelCase"}}'
Integrations
TypeScript SDK
import { Squillify } from "@squillify/sdk";

const sq = new Squillify({ apiKey: process.env.SQUILLIFY_API_KEY });

const { output } = await sq.execute("schema.normalize_schema_names", {"input":{"type":"object","properties":{"user_id":{"type":"string"}}},"targetCase":"camelCase"});

Errors

CodeHTTPRetryableDescription
VALIDATION_ERROR400NoThe request payload failed schema validation.
UNAUTHORIZED401NoMissing or invalid API key.
SKILL_NOT_ACCESSIBLE403NoThe API key is not granted access to this skill.
SKILL_NOT_AVAILABLE_FOR_PLAN403NoThis skill is not included in your current plan.
PLAN_ELIGIBILITY_UNAVAILABLE503YesPlan eligibility could not be decided. Retry after backoff.
SKILL_NOT_FOUND404NoThe requested skill or version does not exist.
TENANT_RATE_LIMITED429YesRequest rate limit exceeded. Retry after backoff.
QUOTA_EXCEEDED429YesPlan quota exhausted. Retryable once the quota period resets.
EXECUTION_TIMEOUT504YesExecution exceeded the allowed time budget.

Other limits

LimitValue
Recommended inline bytes32 KiB

Limitations

  • We never rename schema keywords such as type, items, required, $ref, or $defs
  • We never rewrite the target of a $ref, so a rename can leave a reference stale
  • We never check the document against a schema
  • Renaming schema keywords or the names inside $defs
  • Checking data against a schema (schema.validate_json)

How to call

POST /v1/execute (requires authentication)

Request bodyjson
{
  "skillKey": "schema.normalize_schema_names",
  "input": {
    "input": {
      "type": "object",
      "properties": {
        "user_id": {
          "type": "string"
        }
      }
    },
    "targetCase": "camelCase"
  }
}

Examples

snake_case to camelCase

Inputjson
{
  "input": {
    "type": "object",
    "properties": {
      "user_id": {
        "type": "string"
      }
    }
  },
  "targetCase": "camelCase"
}
Expected outputjson
{
  "transformed": {
    "type": "object",
    "properties": {
      "userId": {
        "type": "string"
      }
    }
  },
  "mappings": [
    {
      "path": "/properties/user_id",
      "normalized": "userId",
      "original": "user_id"
    }
  ],
  "collisions": []
}

Mapping report only

Inputjson
{
  "targetCase": "PascalCase",
  "includeTransformed": false,
  "input": {
    "type": "object",
    "properties": {
      "user_name": {
        "type": "string"
      }
    }
  }
}
Expected outputjson
{
  "collisions": [],
  "mappings": [
    {
      "path": "/properties/user_name",
      "normalized": "UserName",
      "original": "user_name"
    }
  ]
}
  • Line up payload keys with your language's conventions before you generate code
  • Move a schema from snake_case to camelCase without hand-editing every property
  • Produce the rename map a mapping or migration layer needs

Avoid for

  • Renaming schema keywords or the names inside $defs
  • Checking data against a schema (schema.validate_json)

Composable with

Safety & privacy

  • Runs without calling any external service.
  • Your payloads are never stored permanently.
  • Telemetry captures metadata only — never your payload contents.
  • We never train models on your payloads.
  • No human reviews your payloads.

Tags

schematransformation