Authoring reference

Schema property fields

Property Items represent individual values inside structured files, the Registry, Windows Runtime, and REST services. Their Schema fields tell Pinman how to interpret a value, compare it, present it to a user, and write it where supported.

This page covers fields shared across property itemtypes. Start with Schema items for locations, itemtypes, and parent-child structure.

Value fields#

FieldValuesPurpose
datatypestring, int, float, boolType-aware comparison and conversion.
default_valuescalarFallback used by itemtypes that define a value for missing source data.
unitsstringDisplayed unit such as Hz, ms, %, or pixels.
storage_formatformat stringSpelling to use when writing a new value.
display_formatformat stringHuman-readable rendering in the UI and CLI.
io_moderead-write, read-only, ephemeralI/O policy inherited through the tree.
write_strategytarget, guidedDirect or guided write behavior where supported.
post_actionstringFollow-up hint such as restart service or reboot required.

Datatypes and comparison#

datatype gives comparison a type-aware value. For example, the text token "1" and the integer 1 compare as the same value when datatype is int.

The datatype also controls validation and conversion when Pinman writes a value. Declare it when the source format alone does not establish the intended type.

I/O modes#

The I/O mode distinguishes persistent settings from live readings:

io_modeMeaning
read-writePersistent, comparable, and writable.
read-onlyPersistent and comparable, but not writable through Pinman.
ephemeralA live reading that is neither writable nor compared as persistent state.

Descendants inherit the container's I/O policy. A child can narrow that policy, but it cannot make itself more writable than its parent.

Storage and display formats#

When writing text, Pinman follows the spelling already present in the file. An existing lowercase true remains lowercase, and a fixed-width float keeps at least its existing precision. storage_format supplies the spelling when Pinman creates a new value.

Boolean storage format names are:

true_false  True_False  yes_no  Yes_No  1_0  on_off  On_Off

Numeric display and storage formats use Python-style format specifications such as .2f, .6f, or .0%.

display_format changes presentation without changing the stored value. For example, .0% presents the stored float 0.8 as 80%.

UI control fields#

Writable properties can describe how the Pinman UI should present their controls.

FieldMeaning
widgetslider, toggle, stepper, select, text, color, duration, or button
min, max, stepNumeric control bounds in the stored unit.
choicesMapping from stored values to user-facing labels.

This Windows volume property appears as a slider from 0 through 100 percent, while its stored value remains between 0 and 1:

- selector: Volume
  itemtype: winrt_property
  datatype: float
  units: "%"
  display_format: .0%
  widget: slider
  min: 0
  max: 1
  step: 0.01

Pinman's Windows Runtime catalog already supplies metadata for its known properties. A Schema can declare these fields when it needs to override the catalog values. File, Registry, and REST property itemtypes can declare the same shared fields directly in Schema YAML.

Realm-specific fields#

Each property itemtype can add fields required by its source. For example, a CSV file defines row identity on its file Item, while a REST property declares read and write blocks.

Continue with the relevant reference: