---
title: Template:Infobox/ship_hull
canonical_url: https://paxabyssi.com/wiki/Template:Infobox/ship_hull
markdown_url: https://paxabyssi.com/wiki/Template:Infobox/ship_hull.md
type: wiki-page
namespace: Template
revision_id: 14
revision_view: stable
last_updated: 2026-09-27
license: CC BY-SA 4.0
license_url: https://creativecommons.org/licenses/by-sa/4.0/
summary: "Infobox schema for ship pages: the fields, their groups, labels and units, as a JSON Schema."
categories:
  - Infobox schemas
---

# Template:Infobox/ship_hull

> Source: https://paxabyssi.com/wiki/Template:Infobox/ship_hull
>
> Licence: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/). Text by Pax Abyssi Wiki contributors; history at https://paxabyssi.com/wiki/Template:Infobox/ship_hull/history
>
> Revision 14, 27 September 2026

This page holds the JSON Schema for `infobox: type: ship_hull`, used by ship pages (the field list follows SCIENCE_CORPUS 3.4 K). Every page whose frontmatter names this type is validated against it on save: a schema error blocks a save by a new account or an API client and warns a trusted editor.

Values are flexible so that writers can record what the sources allow. A field may be plain text or a number, a quantity object `{value, unit, min, max, error, source, note}`, or a by-status mapping `{observed, model, sim}` when the measured, inferred and generated values differ. Fields not listed here are allowed and shown under "Other" in the infobox. The `x-pax` block carries display metadata: the groups in order, each group's default provenance tag, and the label and unit for every field.

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://paxabyssi.com/wiki/Template:Infobox/ship_hull",
  "title": "Ship hull",
  "description": "Infobox for ship pages. Fields follow SCIENCE_CORPUS 3.4 K.",
  "type": "object",
  "required": [
    "type",
    "name"
  ],
  "properties": {
    "type": {
      "const": "ship_hull"
    },
    "image": {
      "$ref": "#/$defs/fileTitle",
      "description": "Lead image, a File: title."
    },
    "caption": {
      "type": "string"
    },
    "image_caption": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "class": {
      "type": "string"
    },
    "shipyard": {
      "$ref": "#/$defs/field"
    },
    "factions": {
      "$ref": "#/$defs/field"
    },
    "role": {
      "$ref": "#/$defs/field"
    },
    "size_band": {
      "$ref": "#/$defs/field"
    },
    "length_m": {
      "$ref": "#/$defs/field"
    },
    "mass_t": {
      "$ref": "#/$defs/field"
    },
    "crew": {
      "$ref": "#/$defs/field"
    },
    "cost_denarii": {
      "$ref": "#/$defs/field"
    },
    "impulse_max_speed_km_s": {
      "$ref": "#/$defs/field"
    },
    "stardrive_max_c": {
      "$ref": "#/$defs/field"
    },
    "weapons": {
      "$ref": "#/$defs/field"
    },
    "walkable": {
      "$ref": "#/$defs/field"
    },
    "in_ue_build": {
      "$ref": "#/$defs/field"
    },
    "physics_note": {
      "$ref": "#/$defs/field"
    },
    "sim_source": {
      "$ref": "#/$defs/field"
    },
    "physics_engine": {
      "$ref": "#/$defs/field"
    },
    "science_doc": {
      "$ref": "#/$defs/field"
    },
    "rendered_example": {
      "$ref": "#/$defs/field"
    },
    "last_verified": {
      "$ref": "#/$defs/field"
    }
  },
  "additionalProperties": true,
  "$defs": {
    "quantity": {
      "type": "object",
      "description": "A number or range with its unit and provenance.",
      "properties": {
        "value": {
          "type": [
            "number",
            "string",
            "null"
          ]
        },
        "unit": {
          "type": "string"
        },
        "min": {
          "type": [
            "number",
            "string"
          ]
        },
        "max": {
          "type": [
            "number",
            "string"
          ]
        },
        "error": {
          "type": [
            "number",
            "string"
          ]
        },
        "uncertainty": {
          "type": [
            "number",
            "string"
          ]
        },
        "source": {
          "type": "string",
          "description": "observed | model | sim | catalogue | fiction, or a citation."
        },
        "note": {
          "type": "string"
        },
        "as_of": {
          "type": [
            "string",
            "number"
          ]
        }
      },
      "additionalProperties": true
    },
    "byStatus": {
      "type": "object",
      "description": "The same quantity as measured (observed), inferred (model) and generated (sim).",
      "properties": {
        "observed": {
          "$ref": "#/$defs/cell"
        },
        "model": {
          "$ref": "#/$defs/cell"
        },
        "sim": {
          "$ref": "#/$defs/cell"
        },
        "note": {
          "type": "string"
        }
      },
      "additionalProperties": true
    },
    "cell": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        },
        {
          "type": "array"
        },
        {
          "$ref": "#/$defs/quantity"
        }
      ]
    },
    "field": {
      "anyOf": [
        {
          "$ref": "#/$defs/cell"
        },
        {
          "$ref": "#/$defs/byStatus"
        },
        {
          "type": "object"
        }
      ]
    },
    "fileTitle": {
      "type": "string",
      "pattern": "^File:"
    },
    "status": {
      "description": "One or more of observed, model, sim, speculative, fiction; or a sentence saying which parts carry which label.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    }
  },
  "x-pax": {
    "label": "Ship hull",
    "image_field": "image",
    "caption_field": "caption",
    "groups": [
      {
        "index": "01",
        "title": "Identity",
        "fields": [
          "name",
          "class",
          "shipyard",
          "factions",
          "role",
          "size_band"
        ],
        "provenance": "fiction"
      },
      {
        "index": "02",
        "title": "Dimensions",
        "fields": [
          "length_m",
          "mass_t",
          "crew",
          "cost_denarii"
        ],
        "provenance": "sim"
      },
      {
        "index": "03",
        "title": "Performance",
        "fields": [
          "impulse_max_speed_km_s",
          "stardrive_max_c",
          "weapons",
          "walkable",
          "in_ue_build"
        ],
        "provenance": "sim"
      },
      {
        "index": "04",
        "title": "Sim",
        "fields": [
          "physics_note",
          "sim_source",
          "physics_engine",
          "science_doc",
          "rendered_example",
          "last_verified"
        ],
        "provenance": "sim"
      }
    ],
    "fields": {
      "name": {
        "label": "Name"
      },
      "class": {
        "label": "Class"
      },
      "shipyard": {
        "label": "Shipyard"
      },
      "factions": {
        "label": "Factions"
      },
      "role": {
        "label": "Role"
      },
      "size_band": {
        "label": "Size band"
      },
      "length_m": {
        "label": "Length m"
      },
      "mass_t": {
        "label": "Mass t"
      },
      "crew": {
        "label": "Crew"
      },
      "cost_denarii": {
        "label": "Cost denarii"
      },
      "impulse_max_speed_km_s": {
        "label": "Impulse max speed",
        "unit": "km/s"
      },
      "stardrive_max_c": {
        "label": "Stardrive max c"
      },
      "weapons": {
        "label": "Weapons"
      },
      "walkable": {
        "label": "Walkable"
      },
      "in_ue_build": {
        "label": "In ue build"
      },
      "physics_note": {
        "label": "Physics note"
      },
      "sim_source": {
        "label": "Sim source"
      },
      "physics_engine": {
        "label": "Physics engine"
      },
      "science_doc": {
        "label": "Science document"
      },
      "rendered_example": {
        "label": "Rendered example"
      },
      "last_verified": {
        "label": "Last verified"
      }
    }
  }
}
```

Categories: [Infobox schemas](https://paxabyssi.com/wiki/Category:Infobox_schemas.md)
